ruby-trunk-changes r56683 - r56693

今日は拡張ライブラリ ripper の不具合修正などがありました。

nobu: r56683 2016-11-10 09:49:16 +0900

range.c のコメントのインデント修正だけです。

nobu: r56684 2016-11-10 09:49:17 +0900

Process.spawn の :pgroup オプションのテストで :pgroup に 2 という固定の pid を渡していたので(この 2 ってどういう理由なんでしょう。 1 が init で 2 は空いてそう、とかそういうことかな)、IO.popen で子プロセスを作ってその pid を利用するようにしています。 [ruby-core:78051] [Bug #12909]

svn: r56685 2016-11-10 09:49:17 +0900

version.h の日付更新。

shugo: r56686 2016-11-10 11:23:58 +0900

Thread#kill で pipe から read 中の Thread を停止した時のテストでタイムアウトが発生しがちなのでタイムアウトを伸ばすようにしています。

nobu: r56687 2016-11-10 12:50:46 +0900

tool/make-snapshot のエラー時のメッセージに make-snapshot の名前($0 の basename)を含めるようにしています。

nobu: r56688 2016-11-10 12:50:47 +0900

tool/make-snapshot に -svn と -git というオプションを追加して指定した URL から checkout/clone するのに対応しています。

hsbt: r56689 2016-11-10 15:38:14 +0900

appveyor.yml でビルドに使うシステムの ruby の PATH に使うバージョンの部分を環境変数 ruby_version に切り出すようにして、バージョンを 23-x64 に更新しています。

nobu: r56690 2016-11-10 15:45:57 +0900

拡張ライブラリ ripper のテストでソースディレクトリに含まれている .rb ファイルを片っ端から parse してみる(TEST_RIPPER_RATIO で parse する割合を指定できてデフォルトだとランダムに 5% だけ parse する)というテストで、ディレクトリ毎にテストメソッドを分けて定義するようにしています。

nobu: r56691 2016-11-10 16:47:43 +0900

r56690 の ripper のテストで parse するファイルのサンプリング率のチェックを修正して最低でもディレクトリあたり1ファイルは parse するようにしています。

nobu: r56692 2016-11-10 16:47:44 +0900

拡張ライブラリ ripper で A::a = b のような "::" で a= のような代入記号つきメソッドを呼ぶ記法を parse した時に idCOLON2 を直接参照していたのを ripper_id2sym() で Symbol に変換するようにしています。 SEGV が発生していたそうです。 最近は "::" でメソッド呼び出しする記法あまり使いませんしね。 [ruby-core:78069] [Bug #12916]

nobu: r56693 2016-11-10 19:39:51 +0900

Range オブジェクトを freeze したオブジェクトについて range_modify() 関数が呼ばれても freeze チェックがされていなかったのを修正しています。といっても Range は破壊的メソッドがないはずだけど…とテストをみると Range.allocate で生成したオブジェクトを freeze してから __send__ で initialize メソッドを呼ぶということをしてテストにしています。すごい。