ruby-trunk-changes r41759 - r41779

今日は正規表現エンジン Onigmo の最新版のマージとそれによる正規表現の不具合修正、bignum.c での数値の文字列化の高速化のための変更などがありました。

nobu:r41759 2013-07-03 23:47:42 +0900

VC6 での ATOMIC_CAS の定義で警告を抑制するため _MSC_VER が古い時に InterlockedCompareExchange() をキャストつきで呼び出す関数の追加と ATOMIC_CAS() の再定義をするようにしています。 ATOMIC_CAS() の定義に関数呼び出しが抜けています(引数だけ書かれている)ね。

nobu:r41760 2013-07-04 00:13:06 +0900

r41759 で VC6 向けの ATOMIC_CAS() の定義で関数呼び出しがなかったのを修正。また rb_w32_atomic_cas() のなかで InterlockedCompareExchange() を呼びだすところを ATOMIC_CAS() にしていたのを修正。

svn:r41761 2013-07-04 00:13:11 +0900

version.h の日付更新。

nobu:r41762 2013-07-04 00:36:10 +0900

internal.h で定義されているマクロ SIGNED_INTEGER_MAX で VC6 の警告抑制のためキャストを追加しています。

kazu:r41763 2013-07-04 10:11:23 +0900

r41762 の ChageLog エントリの typo 修正。

naruse:r41764 2013-07-04 10:16:22 +0900

正規表現エンジン Onigmo (鬼雲)の 5.13.5 をマージしています。 最近追加された名前付きキャプチャの機能を使った時にマッチしなくなることがある不具合を修正しています。 [ruby-dev:47471] [Bug #8583]

naruse:r41765 2013-07-04 10:39:25 +0900

r41764 の ChangeLog エントリにチケット番号と新機能について追記しています。 [ruby-dev:47471] [Bug #8583]

hsbt:r41766 2013-07-04 11:53:16 +0900

標準添付ライブラリ net/http.rb の Net::HTTP#set_debug_output の rdoc 用コメントのサンプルコードの間違いを修正しています。

nobu:r41767 2013-07-04 13:32:32 +0900

r41764 でマージした Onigmo の最新版で修正された正規表現の不具合についてのテストを追加しています。 [ruby-dev:47471] [Bug #8583]

naruse:r41768 2013-07-04 15:52:33 +0900

string.c の succ の実装でマルチバイト文字も考慮して1文字ずつ処理するところで rb_enc_precise_mbclen() の戻り値をチェックするために ONIGENC_MBCLEN_CHARFOUND_P() という Onigmo の マクロを利用するように修正しています。マクロの定義内容をみると実質的な変化はなさそうですが、このマクロおよび ONIGENC_MBCLEN_CHARFOUND_LEN() を用いて戻り値を処理するのが正式なインタフェースということのようです。また String#dump の実装では MBCLEN_CHARFOUND_P() が既に使用されていましたが渡す値が -1 されていたのを修正しています。

nobu:r41769 2013-07-04 16:03:01 +0900

mkmf.rb で関数などのチェック用にコンパイルしてみるために作るソースファイルやオブジェクトファイルなどのファイル名の "conftest"(拡張子除く)を定数 CONFTEST および CONFTEST_C (拡張子 ".c" を付加)として定義しておくようにリファクタリングしています。

nobu:r41770 2013-07-04 16:03:05 +0900

mkmf.rb のテストでコンパイラやリンカなどを実行した時にそのコマンドが正常終了したこともチェックするようにしています。

nobu:r41771 2013-07-04 16:03:07 +0900

test/mkmf/base.rb および test/mkmf/test_config.rb のトップレベルでグローバル変数 $extmk を true に初期化するようにしています。並列でテスト実行時に $extmk の設定を効かせるためだそうです。

akr:r41772 2013-07-04 18:38:11 +0900

bignum.c の rb_cstr_to_inum() で基数が2の累乗でなく非常に大きい数の時にだけバッファを確保するようにリファクタリングしています。

akr:r41773 2013-07-04 20:23:46 +0900

bignum.c で数値の文字列化のために 2-36進数までの各基数の累乗で 16bit, 32bit, 64bit, 128bit の整数の範囲内で最大の桁数(指数)とその数をテーブルとしてあらかじめ計算しておいたものを持っておいてそれを参照することで高速化をはかっています。

akr:r41774 2013-07-04 20:40:11 +0900

tool/make-snapshot でパッケージの生成に失敗していた時に終了ステータスをエラーで exit するように修正しています。

charliesome:r41775 2013-07-04 22:31:11 +0900

Object#equal?, Object#== の rdoc 用コメントのサンプルコードで使っていた変数名の一貫性をとるように修正しています。

nobu:r41776 2013-07-04 23:41:26 +0900

r41773 で bignum.c に導入したテーブル群の宣言に const 修飾子を付加して定数テーブル化しています。

nobu:r41777 2013-07-05 00:25:46 +0900

mkmf.rb の Mac OS X での Framework 検出用の have_framework にヘッダ指定の引数を追加してフレームワーク名と異なるヘッダを参照できるようにしています。 [ruby-core:55745] [Bug #8593]

svn:r41778 2013-07-05 00:25:51 +0900

version.h の日付更新。

nobu:r41779 2013-07-05 00:29:50 +0900

r41777 で have_framework の修正のため仮引数の部分で多重代入を行なう記法を使ったのですが、1.8 ではこれは動かないので使わないようにして引数が配列かどうかでチェックするように書き換えています。 [ruby-core:55745] [Bug #8593]