ruby-trunk-changes 2021-02-23

今日は win32/win32.c の排他処理の追加や Module#prepend で循環する継承関係になるエラー時の副作用をなくす修正などがありました。

[58e8220605] Alan Wu 2021-02-13 03:45:08 UTC

2d877327e12f499ac1a0d7096f4314cc92ef228e の続きで、Module#prepend で循環する継承関係になってないかのチェックを prepend のために T_ICLASS を差し込むための origin を生成する前に行うことで、エラー時に副作用がないようにしています。 [ruby-core:102283] [Bug #17590]

[7d4a3ac0c5] git 2021-02-22 22:58:05 UTC

version.h の日付更新

[09c74a1702] Lars Kanis 2021-02-22 15:35:47 UTC

089b7a84606925e885fe91050483a352735aa91e の再修正。doc/extension.rdoc に追記したサンプル内の変数名の typo 修正。

[0d76636117] Andrew Aladjev 2021-02-22 22:35:01 UTC

win32/win32.c の constat_delete()、vm_exit_handler()、socklist_insert()、socklist_lookup() などの Windows で socket を管理するためのリストの操作を排他処理するための Mutex を追加しています。 Ractor 対応のためかな。

[95251dc8a9] Takashi Kokubun 2021-02-23 07:38:44 UTC

edd25382687c840f10eec23d72fa08ebd3515fbf で pull request を master に向けさせるようにするために追加した GitHub Actions の workflow .github/workflows/check_branch.yml を削除しています。コミットログによると本来の意図とは違ってコミットログに [ci skip] が含まれているためにマージできない pull request ができてしまうとのことで、もう必要はなくなったので消すとのこと。

[b956efdc1e] Takashi Kokubun 2021-02-23 07:46:04 UTC

GitHub Actions の設定に明示的にコミットログに "[ci skip]" が含まれてたら処理しないという if が含まれてたのを削っています。GitHub Actions がデフォルトに "[ci skip]" などのキーワードに対応したので不要になったそうです。 https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/

[19cc24b34b] Nobuyoshi Nakada 2021-02-23 07:22:43 UTC

0d76636117c99921ac7c43293ba7962d22e72fbd の続きで win32/win32.c に追加した mutex を使って排他処理するあたりを thread_exclusive() というマクロ化して for 文にすることでブロックっぽく賭けるようにしています。

[da18d6f015] Nobuyoshi Nakada 2021-02-23 10:08:31 UTC

win32/win32.c の errmap の宣言に const 修飾子を追加。また get_wsa_extension_function() の引数 guid をポインタで渡してたのを値渡しするようにしています。

[41eb4fbf86] Nobuyoshi Nakada 2021-02-23 11:46:40 UTC

19cc24b34b0490b7c2779eec521fe0089e05f183 の続きで thread_exclusive() を使うリファクタリングの追加と constat_handle() の EnterCriticalSection()/LeaveCriticalSection() による排他処理を不要にするリファクタリングをしています。

[5a4742a0b4] Nobuyoshi Nakada 2021-02-23 11:51:02 UTC

19cc24b34b0490b7c2779eec521fe0089e05f183 および 41eb4fbf86e7ae9c9ff993e07a19fa44eb74be9b の続きで win32/win32.c にもうひとつ uenvarea_mutex という mutex を追加して w32_getenv() に排他処理を追加しています。

[819dd464de] Nobuyoshi Nakada 2021-02-23 12:23:46 UTC

19cc24b34b0490b7c2779eec521fe0089e05f183 および 41eb4fbf86e7ae9c9ff993e07a19fa44eb74be9b5a4742a0b4d57e95d6ed7e27c786a74e7cb55977 の続きで constat_handle() に thread_exclusive() マクロを使った排他処理追加をしています。 return のかわりに thread_exclusive() マクロが for 文になってるので continue でブロックを抜けるようにしてるのが hacky ですねえ。