ruby-trunk-changes 2020-05-11

今日はヘッダファイル群の include/ruby/3/ から include/ruby/internal/ への移動やそれに伴なうマクロや関数名/型名などの改名などがありました。

[f169931414] Nobuyoshi Nakada 2020-05-10 12:35:54 UTC

拡張ライブラリ win32ole でグローバル変数をヘッダに定義してたのを extern 宣言を書いて定義本体はソースコード側に書くようにしています。 GCC 10 でこういう書きかたが linker error になるのがデフォルトの挙動になったようなのでその対応のため。

[3fa4fd4780] Nobuyoshi Nakada 2020-05-10 15:17:02 UTC

拡張ライブラリの configure 時に MAKE 変数を伝播するようにしています。

[27efe3f728] git 2020-05-10 15:19:47 UTC

version.h の日付更新

[a1e1fdca09] Nobuyoshi Nakada 2020-05-10 15:39:35 UTC

3fa4fd4780f9b3a1f2058f8fd2733334868bf24c の続き? で MAKE 変数を伝播させる時に未定義だったらデフォルト値として make を使わせるようにしています。

[5d430c1b34] Nobuyoshi Nakada 2020-05-10 15:24:14 UTC

処理が戻ってこない関数の return に UNREACHABLE_RETURN() を使って NORETURN() つきで関数を宣言するのをいくつかの関数に適用しています。

[4a24cd8eb3] Nobuyoshi Nakada 2020-05-10 17:26:31 UTC

vm_args.c の refine_sym_proc_call() の変数 me の初期化を追加しています。コンパイラの警告抑制のため。

[c89c3801b9] Nobuyoshi Nakada 2020-05-10 18:17:08 UTC

configure で BASERUBY が --disable=gems オプションを受付けることをチェックするようにしています。 BASERUBY は 1.9 以降じゃないと動かないツールがあるので 1.8 以下は弾くようにするためみたいです。 [ruby-core:98241] [Bug #16845]

[dca234a5dc] 卜部昌平 2020-05-04 06:26:12 UTC

9e6e39c3512f7a962c44dc3729c98a0f8be90341 で include/ruby/ruby.h を分割した時に include/ruby/3/ というサブディレクトリを掘ってたのを include/ruby/impl/ に改名しています。

[d7f4d732c1] 卜部昌平 2020-05-04 06:35:26 UTC

dca234a5dc9d5bb39c906d833c43305ce95508fb の include/ruby/3/ -> include/ruby/impl/ の改名に追随して #include や common.mk の変更をしています。

[97672f669a] 卜部昌平 2020-05-04 06:52:56 UTC

dca234a5dc9d5bb39c906d833c43305ce95508fb の include/ruby/3/ -> include/ruby/impl/ の改名に追随してマクロ名 RUBY3_xxx も RBIMPL_xxx に改名しています。

[122f96c362] 卜部昌平 2020-05-04 07:27:48 UTC

dca234a5dc9d5bb39c906d833c43305ce95508fb の include/ruby/3/ -> include/ruby/impl/ の改名に追随して型名や関数名も ruby3_xxx を rbimpl_xxx に改名しています。

[0d88fe3a72] 卜部昌平 2020-05-10 23:32:18 UTC

コメント内の空白の詰めかたの変更。

[b85fd1d690] 卜部昌平 2020-05-08 09:10:13 UTC

dca234a5dc9d5bb39c906d833c43305ce95508fb で include/ruby/impl/ に移動したディレクトリをさらに include/ruby/internal/ に変更しています。

[9e41a75255] 卜部昌平 2020-05-08 09:31:09 UTC

b85fd1d690b65efaa126cf9c24da73f31eee7a4e に追随して再度 #include のファイルパスも ruby/impl/ を ruby/internal に変更しています。

[534277fa7b] 卜部昌平 2020-05-10 09:47:03 UTC

include/ruby/ruby.h の分割時(だったかな)に文字列オブジェクトを生成する関数に引数の C 文字列が静的領域かどうか RBIMPL_CONSTANT_P() で分岐する処理を入れてたのが実行時間に影響してしまったそうなのでやめています。 [ruby-core:98212] [Feature #16837]

[233c2018f1] 卜部昌平 2020-05-11 05:27:25 UTC

標準ライブラリのヘッダ varargs.h の利用をやめています。 stdarg.h で代替されていてもう古いのでとのこと。

[4fbb344156] 卜部昌平 2020-05-11 07:40:52 UTC

NORETURN() マクロ定義のために SunPro というコンパイラでは #pragma does_not_return を利用するようにしていましたが、これが引数が必要で _Pragma() で利用できない? ため利用しないようにしています。

[15e977349e] 卜部昌平 2020-05-11 07:45:40 UTC

関数ポインタの引数に NULL を渡しているところを 0 に変更しています。 (void *) と関数ポインタが互換性がないというやつですね。