ruby-trunk-changes 2020-04-08

今日は autoload で定義された定数の const_source_location の位置が定義位置じゃなくなる不具合の修正や default gem のバージョン更新、include/ruby/ruby.h のヘッダ分割などがありました。

[ce60821387] Nobuyoshi Nakada 2020-04-07 11:20:34 UTC

variable.c の autoload_const_set() の引数を VALUE から内部で実際に使っている struct autoload_const * に変更してキャストを消しています。

[927308108c] Nobuyoshi Nakada 2020-04-07 12:35:28 UTC

Module#autoload によって定義された定数に対して Module#const_source_location を使うと、定義された位置じゃなくてロードするトリガーになった定数参照の位置がかえってきてたのを修正しています。 [ruby-core:97733] [Bug #16764]

[1711258144] git 2020-04-07 15:06:47 UTC

version.h の日付更新

[2f1895fa15] Nobuyoshi Nakada 2020-04-07 16:13:03 UTC

Time#strftime で %c 指示子で文字列幅に 27以上を指定するとおかしな文字列になる不具合を修正しています。 [ruby-dev:50926] [Bug #16767]

[8c8e64a295] Nobuyoshi Nakada 2020-04-08 02:51:27 UTC

win32/Makefile.sub で config.h を生成する時に _MSC_VER がビルド時の設定とずれてたらエラーにするための #error pragma で _MSC_VER を出してましたが、これは展開されなくてこのまま表示されるので消しています。

[5ac4bf2cd8] Nobuyoshi Nakada 2020-04-08 02:53:14 UTC

win32/setup.mak で生成する verconf.bat というバッチファイルから生成する verconf.mk に MSC_VER の定義を移動しています。

[9e6e39c351] 卜部昌平 2020-04-08 04:28:13 UTC

include/ruby/ruby.h を分割して大量のヘッダの集合にしています。 この include/ruby/3/xxx.h の 3 ってなんだろう。また GitHub Actions に様々なコンパイラコンパイラオプションの組み合わせによるビルドのテストを追加しています。 https://github.com/ruby/ruby/pull/2991
[追記]メジャーバージョンの 3 からきてるんだそうです。まだ RUBY_VERSION_MAJOR は 2 ですけど。[/追記]

[393789f320] Hiroshi SHIBATA 2020-04-08 05:21:14 UTC

標準添付ライブラリ English の .gemspec ファイルのバージョンを更新しています。また gem 名である spec.name は English から english に変更しています。

[3b1029f894] Hiroshi SHIBATA 2020-04-08 05:33:22 UTC

標準添付ライブラリ prime の .gemspec ファイルの spec.files の更新と development dependency の削除。

[e474c189da] Nobuyoshi Nakada 2020-04-08 06:13:37 UTC

switch 文の default 節がなくて警告が出るものを抑制するため空の default 節を追加しています。

[484ed0d2a5] Hiroshi SHIBATA 2020-04-08 05:52:59 UTC

標準添付ライブラリ tempfile の gemspec ファイルで要求する ruby のバージョンを 2.5.0 以上に変更しています。

[0c131fb7ff] Hiroshi SHIBATA 2020-03-26 10:24:41 UTC

net/ftp のテストで MJIT が有効かどうかの判定に RubyVM::MJIT を利用しているところで、古い ruby ではこの定数自体がないので defined? でチェックしてからアクセスするようにしています。

[3e8e4c0505] Hiroshi SHIBATA 2020-04-08 06:42:22 UTC

0c131fb7ff0b927d8d7bf5824dcb19ed2efc926d と同様に net/ftp のテストで MJIT が有効な時に skip するようにしているテストで参照する前に defined? で定数 RubyVM::MJIT の存在確認するようにしています。

[ba3b99b96a] Hiroshi SHIBATA 2020-04-08 06:59:55 UTC

標準添付ライブラリ net/http の gemspec ファイルで要求する ruby バージョンを 2.6.0 以上に変更しています。

[6163a4e1b3] 卜部昌平 2020-04-08 07:18:59 UTC

9e6e39c3512f7a962c44dc3729c98a0f8be90341 の include/ruby/ruby.h の分解で icc でのビルドのエラーが起きたので、GCC系や MSVC 系以外のコンパイラでの RUBY3_HAS_BUILTIN() マクロの定義に +0 を追加しています。RUBY3_TOKEN_PASTE() がからっぽに展開された時に数値として解釈されるようにするためみたいです。

[d8720eb7de] Nobuyoshi Nakada 2020-04-08 07:06:30 UTC

拡張ライブラリや rubyspec の C API テスト用拡張ライブラリで size_t 型や ssize_t 型、time_t 型の変数をオブジェクトに変換するのに INT2NUM() を使ってたところを SIZET2NUM() や SSIZET2NUM()、TIMET2NUM() を使うよう修正しています。

[11d5a8318d] Nobuyoshi Nakada 2020-04-08 09:03:46 UTC

double 型や VALUE 型の変数を long 型の引数へ渡す時に明示的なキャストを追加して MSVC での警告を抑制するようにしています。

[8d622a58c6] Hiroshi SHIBATA 2020-03-26 10:39:41 UTC

標準添付ライブラリ weakref の gemspec の spec.summary と spec.description が bundle gem で生成されるテンプレートの TODO のままだったので説明を追記しています。