ruby-trunk-changes r53468 - r53487

今日は主に GC というかメモリ管理関連のマクロ名の変更と RUBY_VERSION 関連のマクロの作りかたの変更やビルドプロセス関連の変更がありました。ビルドプロセス難しい…。

ko1: r53468 2016-01-09 05:45:02 +0900

gc.c の HEAP_XXX の定数名を PAGE_XXX に改名しています。 また GC::INTERNAL_CONSTANTS で取得できる Hash のキーも同様に改名しています。

svn: r53469 2016-01-09 05:45:03 +0900

version.h の日付更新。

ko1: r53470 2016-01-09 05:46:36 +0900

PAGE_BITMAP_PLANES (元 HEAP_BITMAP_PLANES) を 3 から 4 に変更しています。

ko1: r53471 2016-01-09 07:15:40 +0900

r53468 の PAGE_XXX からさらに HEAP_PAGE_XXX に改名しています。 PAGE_SIZE という定数名が OS X で衝突していたそうです。

nobu: r53472 2016-01-09 09:19:16 +0900

r53459、r53427、r53314 などの RUBY_VERSION の定数をマクロで生成するようにする変更とその対応のためのツールの修正を revert しています。後々壊しそうなのでやめたいみたいな感じでした。

nobu: r53473 2016-01-09 09:20:11 +0900

configure で libruby のファイル名などに MAJOR, MINOR, TEENY をドットで繋げていたところは RUBY_PROGRAM_VERSION というマクロを参照するようにリファクタリングしています。

nobu: r53474 2016-01-09 09:20:46 +0900

libruby のバージョン番号に使う teeny は省略 or 0固定にするようにしています。

nobu: r53475 2016-01-09 09:23:04 +0900

win32/setup.mak で RUBY_RELEASE_DATE の version.h からの抜き取りの処理を変更しているようです。コマンドプロンプト力が足りなくてよくわかりません。

nobu: r53476 2016-01-09 10:02:17 +0900

tool/mkconfg.rb で RbConfig::CONFIG の "MAJOR", "MINOR", "TEENY" は version.h の RUBY_VERSION から取得するようにして、include/ruby/version.h の RUBY_API_VERSION から取得していたのはやめています。ってことは "TEENY" はこれまで 0 固定(というか API Version の teeny)だったんですね。

nobu: r53477 2016-01-09 10:44:56 +0900

configure および win32/setup.mak で MAJOR, MINOR, TEENY のマクロを RUBY_API_VERSION_{MAJOR,MINOR,TEENY} から切り取っていたのを version.h の RUBY_VERSION から取得するようにしています。こっちも TEENY は実際のリリースバージョンの teeny から取るようになるんですね。
これはつまり r53474 で共有ライブラリのバージョンの teeny は ${TEENY} に依存しないようにしたので ${TEENY} を 0 (RUBY_API_VERSION 由来)にする必要がなくなったから、ってことでしょうか。

nobu: r53478 2016-01-09 11:03:22 +0900

ruby --copyright の表示の文字列で事前に STRINGIZE() を呼ぶようにしたマクロを参照するようにリファクタリング

nobu: r53479 2016-01-09 11:15:45 +0900

tool/vcs.rb で VCS#srcdir を追加しています。 VCS::GIT でコマンド起動時の :chdir オプションの引数で参照しているため必要だったみたいです。

nobu: r53480 2016-01-09 11:46:31 +0900

cygwin/GNUmakefile.in で拡張子 .rc のファイルを win32/resource.rb を使って生成するのをターゲットのファイル毎に生成するようにしているようです。並列ビルド時に生成が重複してしまうのを防ぐためみたいです。

nobu: r53481 2016-01-09 12:32:43 +0900

DTrace 用の probes.h を probes.dmyh からコピーしていたのを、.dmyh のファイルを #include で取り込むようにしています。これも並列ビルドがらみかなぁ。

nobu: r53482 2016-01-09 12:33:20 +0900

ext/rbconfig/sizeof/depend の sizes.c のターゲットに nmake 向けに {$(VPATH)} を追加していますが、これは次で revert されています。

naruse: r53483 2016-01-09 16:24:56 +0900

r53482 の {$(VPATH)} 追加を revert しています。 make dist が動かなくなっていたそうです。

nobu: r53484 2016-01-09 17:49:56 +0900

r53482 のリベンジ。 ext/rbconfig/sizeof/depend の {$(VPATH)} の追加に伴う common.mk での sed のコマンドの修正がちょっと違うようです。

nobu: r53485 2016-01-09 18:26:23 +0900

symbol.h の is_attrset_id() マクロで idASET、つまり [ ]= メソッドの ID も判定に追加しています。追加されているテストやコミットメッセージをみると、どうも nil に対して [ ]= メソッドを呼ぶと例外にならずに無視されるようになっていたっぽいです。 &. 記法の attr= 型のメソッドへの適用の時の regression?

nobu: r53486 2016-01-09 23:15:49 +0900

拡張ライブラリ openssl のサンプルが参照しているローカル変数の代入がなくてそのままでは実行できないようになっていたのを修正しています。 https://github.com/ruby/ruby/pull/1189

nobu: r53487 2016-01-09 23:19:38 +0900

Hash.try_convert のテストを追加しています。 https://github.com/ruby/ruby/pull/1190