ruby-trunk-changes 2021-06-13

今日は GCC 11 向けの警告除去やリファクタリングなどがありました。

[d54f74a48b] "S.H" 2021-06-13 04:44:46 UTC

rb_block_call() の内容をほぼ同じ実装をしている rb_block_call_kw() を呼び出すようにリファクタリングしています。

[cba92b3289] git 2021-06-13 04:45:07 UTC

version.h の日付更新

[122ce52e8f] Nobuyoshi Nakada 2021-06-13 05:29:01 UTC

C++ 用ヘッダファイルのテスト用の拡張ライブラリをビルドするための extconf.rb でリンクできるかのチェックに使うソースコードRUBY_ALTERNATIVE_MALLOC_HEADER というマクロが定義されてたらこれを #include するようにしています。 jemalloc などの標準以外の malloc 実装を使うためのヘッダが必要だったら定義しておくというマクロのようです。

[9ec6c83c97] Nobuyoshi Nakada 2021-06-13 05:34:46 UTC

gc.c で RUBY_ALTERNATIVE_MALLOC_HEADER が定義されてたら #include してましたが ruby/missing.h で既に #include されているとのことで削ってその旨コメントを残しています。

[9ab6d39a66] Nobuyoshi Nakada 2020-12-12 05:22:59 UTC

gc.c の mark_current_machine_context() で関数内で宣言している union 型の中で配列のサイズの指定のため sizeof() を使ってるところでかっこを追加しています。警告の抑制みたいですが sizeof() を sizeof() で割るのがだめなのかな。よくやる方法だと思うけど。

[32b18fe9d0] Nobuyoshi Nakada 2021-06-13 05:59:48 UTC

拡張ライブラリ digest/sha2 の SHA###_Final() などの関数宣言の引数で配列で型を宣言しているのが GCC 11 では警告が出るとのことで配列サイズを明示的に書くようにしています。ここサイズって書けるんだ。けど配列で宣言しても実際はポインタで渡されますよね、たぶん。