ruby-trunk-changes r58592 - r58609

今日は mspec を本体のリポジトリに取り込む変更や rb_mutex_t の構造体サイズのダイエットなどがありました。

eregon: r58592 2017-05-07 21:00:58 +0900

spec/default.mspec で require "./rbconfig" するのを RbConfig が未定義の時だけにしています。

eregon: r58593 2017-05-07 21:01:12 +0900

spec/README の内容を更新しています。

eregon: r58594 2017-05-07 21:01:26 +0900

make update-mspec と make update-rubyspec で mspec, rubyspec をリポジトリからチェックアウトする処理を削ってメッセージのみ出すようにしています。

eregon: r58595 2017-05-07 21:04:49 +0900

spec/mspec に GitHubリポジトリから mspec をマージしています。本体に mspec および ruby/spec を取り込むことになってたんですね。この議論見逃してた。 [ruby-core:79246] [Feature #13156]

svn: r58596 2017-05-07 21:05:36 +0900

r58595 の行末の空白除去とファイル末尾の改行追加。

svn: r58597 2017-05-07 21:05:45 +0900

r58595 で新規追加されたファイルの svn property 設定。

eregon: r58598 2017-05-07 21:17:21 +0900

spec/README を spec/README.md に改名しています。

eregon: r58599 2017-05-07 21:26:25 +0900

r58596 でファイル末尾の改行が追加されたことに対応するようにテストを修正しています。

nobu: r58600 2017-05-07 22:06:34 +0900

tool/make-snapshot で各種変数の置換内容を tool/prereq.status というファイルに切り出しています。

nobu: r58601 2017-05-07 22:40:56 +0900

make の update-mspec, update-rubyspec, test-rubyspec-precheck などのターゲットを common.mk に移動して空っぽのターゲットにしています。 win32/Makefile.sub にはまだチェックアウトするコードが残ってたようですね。

nobu: r58602 2017-05-07 23:03:52 +0900

parse.y の rb_parser_fatal() の宣言を export するための関数の位置に移動しています。

nobu: r58603 2017-05-07 23:21:10 +0900

common.mk の ext/ripper/ripper.c を生成するためのルールで VPATH の値を相対パス(../..)にして submake を呼ぶようにしています。

normal: r58604 2017-05-08 09:18:53 +0900

構造体ダイエットのプロ normalperson さんが rb_mutex_t の構造体サイズを 160 bytes から 80 bytes になんと半分に減量しています。すごいなーどうやったんだろうと思ったら pthread_mutex_t や pthread_cond_t を使うのをやめて独自に linked-list 構造を導入して待ち行列を実装するという荒技でした。ひえー。 [ruby-core:80913] [Feature #13517]

svn: r58605 2017-05-08 09:18:54 +0900

version.h の日付更新。

normal: r58606 2017-05-08 10:59:12 +0900

Fiber の resume/yield を繰り返すベンチマークスクリプトを追加しています。 [ruby-core:65518] [Feature #10341]

svn: r58607 2017-05-08 10:59:13 +0900

r58606 で新規追加したベンチマークスクリプトsvn property の設定。

normal: r58608 2017-05-08 10:59:17 +0900

rb_mutex_t をさらに 80bytes から 72 bytes に減らしています(64bit 環境で)。 allow_trap メンバーを削除して struct RBasic::flags のビットフラグを流用するようにしています。

nobu: r58609 2017-05-08 14:31:02 +0900

ext/socket/depend で constdefs.h と constdefs.c の依存関係を分離しています。並列ビルド時に同時に同じコマンドが実行されるのを防ぐためみたいです。