ruby-trunk-changes 2020-08-10

今日は主に assert(3) がデフォルトで無効になったために未使用の警告が出てた関数や変数の対応などがありました。

[fac62f094e] Nobuyoshi Nakada 2020-08-10 07:35:42 UTC

string.c のインデント修正のみ。

[9260b0aece] git 2020-08-10 07:36:35 UTC

version.h の日付更新

[c355fa72d4] Nobuyoshi Nakada 2020-08-10 07:54:09 UTC

array.c の初期化関数 Init_Array() で should_be_T_ARRAY() と should_not_be_shared_and_embedded() という関数を呼び出すようにしています。コミットログによると NDEBUG がデフォルトで真になったので ARY_SHARED_P() や ARY_EMBED_P() マクロ内での assert(3) で呼ばれてるこれらの関数が展開されなくなって、未使用関数という警告が出るようになったのでその対策のためとのこと。引数を定数にしているので実際にはコンパイル時に消えるはずとのこと。

[187c164d71] Nobuyoshi Nakada 2020-08-10 08:46:32 UTC

id_table.c の rb_id_table_foreach_with_replace() 内で assert(3) の引数としてしか使ってない変数を削除して、代入部分をそのまま assert() に渡すようにしています。これも NDEBUG 真の時の警告除去のため。

[17d869c7d6] Nobuyoshi Nakada 2020-08-10 10:39:58 UTC

GitHub Actions の設定ファイル .github/workflows/check_encoding.yml を追加して C のソースファイル/ヘッダファイルおよび parse.y に非 ASCII 文字がないかのチェックを行なうとのこと。grep で「TAB と " "(\x20) と "~"(\x7e) の間の文字以外」にマッチ、として、マッチしたら失敗しているわけですね。

[0ca6b973e8] Nobuyoshi Nakada 2020-08-10 10:45:17 UTC

ということで 17d869c7d65534a18885162ea4daa78ade3254d6 のチェックによる? Array と String の rdoc 用コメントに入ってた非 ASCII 文字を置き換えています。