ruby-trunk-changes 2019-05-17

今日は(Fiber の Coroutine 実装の対応で気がついたと思われますが)意図せず公開している関数や変数などのシンボルを消すための修正などがありました。

[e0f0ab959e] Nobuyoshi Nakada 2019-05-16 21:58:42 +0900

coroutine/ ソースをビルドする時にマクロ SYMBOL_PREFIX を伝播させて不要なシンボルを export しないようにしています。

[23751a2681] Nobuyoshi Nakada 2019-05-16 23:34:01 +0900

tool/leaked-globals というツールを追加して、ビルド結果に意図しない関数や変数の export がないかチェックするようにしています。これを起動する make leaked-globals というターゲットも追加しています。

[0971cab4d0] Nobuyoshi Nakada 2019-05-17 10:05:57 +0900

String#upcase, String#downcase でマルチバイト文字を含む文字列のテストケースを追加しています。 https://github.com/ruby/ruby/pull/2187#issuecomment-492949218

[f1f4029460] git 2019-05-17 10:10:39 +0900

version.h の日付更新。

[32e8b42852] Koichi Sasada 2019-05-17 12:59:49 +0900

GC.compact 関連のテストスクリプトの先頭に toplevel return を入れて全体的にテストしないようにしています。

[b1b385465e] Nobuyoshi Nakada 2019-05-17 13:16:39 +0900

e7b18ca6d9b45b7e71694557b9fab8152c62c1ed や 34e1079aef81d108890fb167d7df69960e994ff5 で memcpy(3) にサイズが0の時でもポインタに NULL を渡すとエラー? 警告? になるのに対処してましたが、memcpy をマクロで上書きしてサイズが 0 だったら呼び出しを省略する関数で wrap するようにしています。

[e29a85a96c] Nobuyoshi Nakada 2019-05-17 13:16:39 +0900

a160b2f56716f70fa3e485ae89875da48baefc1d の続きで coroutine/win64/Context.h の定数 COROUTINE_XMM_REGISTERS も一緒に enum による定数に変更しています。

[0723c107f4] Nobuyoshi Nakada 2019-05-17 13:55:59 +0900

win32/mkexports.rb で公開しない名前を判定する正規表現に InitVM_ ではじめるものも含めるようにしています。