ruby-trunk-changes r54858 - r54876

今日は search_nonascii() の最適化の続きで big endian の考慮や、Fixnum と Bignum の統合に向けたテストの整理などがありました。

akr: r54858 2016-05-01 07:05:43 +0900

r54828 の ChangeLog エントリの typo 修正。

naruse: r54859 2016-05-01 07:32:05 +0900

昨日の r54854 の search_nonascii() の最適化で big endian なシステムでは ntz_intptr() のかわりに nlz_intptr() を利用するようにしています。

nobu: r54860 2016-05-01 09:56:15 +0900

r54822 の ChangeLog エントリの typo 修正。

akr: r54861 2016-05-01 10:35:43 +0900

Fixnum#succ と Integer#succ の rdoc 用エントリを一箇所にマージしています。

naruse: r54862 2016-05-01 18:07:14 +0900

r54859 の search_nonascii() の最適化での endian の考慮で BYTE_ORDER をチェックするのではなくて WORDS_BIGENDIAN というマクロをみて分岐するように変更しています。

usa: r54863 2016-05-01 20:42:41 +0900

サポート終了した Windows 95/98, ME, NT4 のためのコードを削除しています。 https://github.com/ruby/ruby/pull/1328

usa: r54864 2016-05-01 21:00:35 +0900

さらに Windows 2000 向けの対応コードも削除しています。

akr: r54865 2016-05-01 21:30:51 +0900

test/ruby/test_file_exhaustive.rb で定義している assert_integer_or_nil という独自の assertion で出力するメッセージの Fixnum -> Integer に修正しています。

akr: r54866 2016-05-01 21:50:19 +0900

dbm/gdbm/sdbm のテストの整数を格納する時のコメントの Fixnum -> Integer に変更しています。

naruse: r54867 2016-05-01 23:19:02 +0900

r54854 からの search_nonascii() の最適化の続きで UNALIGNED_WORD_ACCESS が偽の時の開始端のほうのループ展開で、ポインタのサイズを 8 と固定で書いてたところを SIZEOF_VOIDP に置換したり p を1ずつインクリメントしていたところを、最初に次のアライメントされた位置に移動してから負の添字でのアクセスに変更したりしています。

usa: r54868 2016-05-01 23:54:44 +0900

テスト用のライブラリ test/lib/test/unit.rb でオプションを解析する正規表現を修正しています。

usa: r54869 2016-05-01 23:56:45 +0900

標準添付ライブラリ logger の log rotate のテストでログ出力回数が多くて余分なファイル作成しているところがあったので修正しています。

mrkn: r54870 2016-05-02 00:02:47 +0900

Array#sum で標準添付ライブラリ mathn.rb がロードされていると Rational と整数の足し算が Integer になる可能性があるのでそれに対応するための分岐を追加しています。

svn: r54871 2016-05-02 00:02:48 +0900

version.h の日付更新。

akr: r54872 2016-05-02 00:16:17 +0900

テスト用のライブラリの test/lib/envutil.rb に Integer::FIXNUM_MIN と Integer::FIXNUM_MAX という定数を追加して、Fixnum と Bignum の境界をあちこちで独自に調べていたのをこの定数を参照するようにリファクタリングしています。

akr: r54873 2016-05-02 00:42:52 +0900

Kernel#set_trace_func や TracePoint 用の VM のイベントフック用のフラグを管理する recalc_remove_ruby_vm_event_flags() でオーバフロー回避のためのキャストを追加しています。

akr: r54874 2016-05-02 01:01:36 +0900

テスト用のライブラリに Fixnum および Bignum のインスタンスであることをチェックする assert_fixnum と assert_bignum を追加して assert_instance_of を使っていたところをこの assertion メソッドを利用するようにリファクタリングしています。 Fixnum と Bignum の Integer への統合でクラス自体の統合をした時のための下準備でしょうか。

akr: r54875 2016-05-02 01:15:29 +0900

Class#name のテストのために Fixnum を使っていたところを Integer を使うようにしています。
Fixnum が消されそうな予感がしますね…。

akr: r54876 2016-05-02 01:28:18 +0900

test/ruby/test_numeric.rb に Bignum を作るために class をチェックしながら左シフトのループしていたところが残っていたので、r54872 で導入した Integer::FIXNUM_MAX を参照するように書き換えています。