ruby-trunk-changes 2022-03-16

今日はクラスの継承関係チェックの処理の高速化の続きなどの変更や Windows の新しいバージョンでの端末判定の処理の修正などがありました。

[d76ba1c219] John Hawthorn 2022-03-05 21:03:33 UTC

Class/Module の継承関係をチェックする rb_class_inherited_p() で引数が両方とも T_CLASS 型だった時に b13a7c8e36e9b00b5c6668846f31be4e25523111 で導入した superclasses という構造体メンバーに保持した配列を使った高速な判定を利用するように分岐を追加しています。

[bc62cbd563] git 2022-03-15 15:50:14 UTC

version.h の日付更新

[56d9d78f14] Martin Dürst 2022-03-15 08:17:15 UTC

Unicode 13.0.0 用のヘッダファイル群を削除しています。

[48f1e8c5d8] Martin Dürst 2022-03-15 09:55:16 UTC

fc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8a の再修正で Unicode のデータファイルそのもののチェックをテストで行なっていたところでファイル名に UNICODE_VERSION を使っていたところを EMOJI_VERSION を参照するようにしています。がこれは間違いだったみたいで後で戻されています。

[5d90c60109] YO4 2022-03-16 01:28:35 UTC

Windows 版で標準入力が端末かどうかチェックする時に利用する API を PeekConsoleInput() から PeekConsoleInputW()、ReadConsoleInput() から ReadConsoleInputW() と W つきの API を利用するように変更しています。新しいバージョンの Windows 10 でマルチバイト文字の一部を読んでしまった時に後続の読み込みが化ける現象が起きてたみたいです。 [ruby-dev:51165] [Bug #18588]

[fc6e4ce62b] Koichi Sasada 2022-03-16 02:30:37 UTC

48f1e8c5d85043e6adb8e93c94532daa201d42e9 の影響で Unicode のファイルチェックのテストがこけていたのでチェックの条件でバーオン部分に ".0" を追加したものも許容するようにしていますが、 48f1e8c5d85043e6adb8e93c94532daa201d42e9 が間違ってたのでそれを修正すればよかったみたいなので後で revert されています。

[ebcbca96fb] Nobuyoshi Nakada 2022-03-16 06:05:26 UTC

標準添付ライブラリ rdoc でクラスのドキュメントのクラス名を決めるロジックに問題があって File::Constants が File::File::Constants になっていたのを修正しているようです。クラスを探索する時に名前空間の最後の要素(basename)を切り出してなにやらしています(よくわかってない)。

[6d603cfde1] Martin Dürst 2022-03-16 06:15:21 UTC

common.mk の Unicode 関係のデータファイルの更新をするための tool/enc-unicode.rb への引数に UNICODE_AUXILIARY_FILES と UNICODE_UCD_EMOJI_FILES の変数の内容も追加しています。

[e85547ae81] Martin Dürst 2022-03-16 06:17:30 UTC

fc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8aUnicode 用ファイルチェックのテストのチェック部分を修正していたのを revert しています。

[151208a19b] Martin Dürst 2022-03-16 06:18:30 UTC

48f1e8c5d85043e6adb8e93c94532daa201d42e9Unicode 用ファイルチェック用のテストでファイル名を決めるのに参照する定数を変更したのを UNICODE_VERSION に戻しています。

[f91ea23324] Nobuyoshi Nakada 2022-03-16 08:50:13 UTC

include/ruby/internal/stdbool.h で _Bool を typedef するのを既に _Bool が定義済みだったら避けるようにしています。

[4d93b6299c] Nobuyoshi Nakada 2022-03-16 09:51:34 UTC

string.c の crypt(3) を並列に呼び出さないようにするための crypt_mutex という変数で rb_nativethread_lock_t の初期化のために rb_atomic_t による CAS での排他を行なっていたのをやめて PTHREAD_MUTEX_INITIALIZER を代入する方法で初期化するようにしています。 crypt(3) が利用可能な環境ではこの方法で良いとのこと。

[b426de9e8e] Nobuyoshi Nakada 2022-03-16 10:07:09 UTC

doc/documentation_guide.rdoc 内のリンクに docs.ruby-lang.org への絶対 URL を書いていたのを rdoc-ref による相対リンクに変更しています。