ruby-trunk-changes 2023-01-09

今日は拡張ライブラリ zlib と psych のビルド関係の小さな変更などがありました。

[60ccd1ca81] Nobuyoshi Nakada 2023-01-08 11:58:12 UTC

tool/sync_default_gems.rb で bundler の同期時に除外する LICENSE や COPYING などのライセンス記述系のファイルがいっぱいあったのをリストアップして書いていたのを Dir.glob でパターンマッチで書くように変更しています。

[1cd4db772c] Nobuyoshi Nakada 2023-01-08 12:02:38 UTC

tool/sync_default_gems.rb の同期処理で rubygems の同期時に bundler のテストが含まれる可能性がある? みたいでそれは巻き戻すようにしています。

[8f6a9ad35d] Nobuyoshi Nakada 2023-01-08 15:02:29 UTC

GitHub Actions の MinGW 環境およびいろんなコンパイラオプションを試す workflow で UPDATE_UNICODE を設定するのが残ってたのを削除しています。もう不要になっているため。

[20b691d664] Burdette Lamar 2023-01-08 17:11:07 UTC

標準添付ライブラリ uri の rdoc 用コメントの手直し。

[41a947e72a] Burdette Lamar 2023-01-08 23:14:44 UTC

標準添付ライブラリ uri の Kernel#URI() の rdoc 用コメントにサンプルを追加しています。

[f6952a94eb] Lars Kanis 2023-01-09 08:19:30 UTC

拡張ライブラリ psych の gemspec ファイルに f877805a0c9dcb90635f4b3d100a4367bf346c4a で追加した specmetadata['msys2_mingw_dependencies'] の設定から libyaml-devel を削除しています。 libyaml-devel というパッケージはなかったとのこと。

[9d078fe477] Nobuyoshi Nakada 2023-01-09 09:53:00 UTC

拡張ライブラリ zlib のテストに 6fd5d2dc003bda5ce0685abd2b975d7ac7079d46 で IO#path メソッド追加時にこれを利用するように書きかえられたところをメソッド定義の有無で分岐するようにしています。default gem なので古い ruby でも動くようにしないといけないため。

[0a2bf5f1e2] Nobuyoshi Nakada 2023-01-09 09:41:02 UTC

拡張ライブラリ zlib の extconf.rb で外部ライブラリの zlib が存在するかのチェック部分をリファクタリングして have_library でチェックする関数の記述を引数まで明示するようにしています。

ruby-trunk-changes 2023-01-08

今日は主に Integer#<< メソッドの発生させる例外の修正やそのテストの修正などがありました。

[897cf122bf] Benoit Daloze 2023-01-07 12:13:03 UTC

rubyspec の Integer#<< と Integer#>> のテストで引数が大きすぎる時のテストが実装依存なので RUBY_ENGINE をみて数値を変えるようにしています。もはや spec ではないな、というのは今更ですが。

[28cfc0c116] Benoit Daloze 2023-01-07 12:18:04 UTC

897cf122bf491ecf00d6374d944654bc85f8ed0f で変更している rubyspec の Integer#<< や Integer#>> のテストで NoMemoryError が実際に発生することはないので期待する例外を RangeError のみとしてチェックするように書き直しています。

[fd98169e00] Burdette Lamar 2023-01-07 19:22:31 UTC

標準添付ライブラリ uri の rdoc 用コメントの手直し。

[1a1b653c9c] Nobuyoshi Nakada 2023-01-04 15:16:35 UTC

rubygems の Kernel#require を上書きする処理でドキュメント化を抑制するための rdoc の tag を追加したりしています。

[55aa1a206c] Nobuyoshi Nakada 2023-01-05 02:52:14 UTC

rubygems の Kernel#require の上書き定義で LoadError 発生時の処理に LoadError#path の値をチェックして直接 require しようとしたファイルの LoadError かどうか確認するようにしています。不要なリトライ時のロック取得を抑制するため。

[89546dce21] Nobuyoshi Nakada 2022-12-30 11:19:49 UTC

rubygems の Kernel の module 文の前に書かれたコメントが rdoc によってドキュメント化されてしまうので削除しています。

[1cdf8ab07b] Nobuyoshi Nakada 2023-01-08 11:54:48 UTC

Integer#<< の右辺に非常に大きな数を渡すと ArgumentError が発生する場合があったので他のエラーと同様に RangeError を発生させるように変更しています。 [ruby-core:111735] [Bug #19323]

ruby-trunk-changes 2023-01-07

今日は主に String の大文字小文字変換まわりの GC からの保護不足の潜在的不具合修正や RubyVM::AbstractSyntaxTree.parse と __END__ トークンの組合せでの不具合修正などがありました。

[cee5beab1d] Nobuyoshi Nakada 2023-01-06 11:26:11 UTC

RubyVM::AbstractSyntaxTree.parse に __END__ トークンを含むスクリプトを渡すと異常終了するという不具合を修正しています。 parser_yylex() で __END__ に対して 0 を返さないといけないところを -1 を return しているところがあったようです。また 0 というマジックナンバーを書いてたところに END_OF_INPUT という定数マクロを利用するようにしています。 https://github.com/ruby/ruby/pull/7077 [ruby-core:111658] [Bug #19312]

[ddbf7be94d] Burdette Lamar 2023-01-06 14:20:31 UTC

標準添付ライブラリ uri の rdoc 用コメントの手直し。

[2b88dbc6f9] Benoit Daloze 2023-01-06 15:28:02 UTC

rubyspec の Float#round の half キーワード引数の挙動についてのテストにチケットの番号を付与しています。

[d8ef0a98c6] Peter Zhu 2023-01-06 15:24:09 UTC

String#capitalize など大文字小文字の変換をするメソッド利用する rb_str_casemap() で変数の RB_GC_GUARD() による保護が足りていなくて GC mark 漏れする可能性があった不具合を修正しています。 [ruby-core:111699] [Bug #19319]

[66bc620963] Jemma Issroff 2023-01-06 14:46:06 UTC

shape.h から未使用(未定義?)の関数 rb_shape_flags_mask() の宣言を削除。

[311ce91733] Takashi Kokubun 2023-01-06 19:49:45 UTC

YJIT 用のオプション --yjit-dump-disasm で JIT したコードのダンプする時に ASCII コードによる色付けをするようにしているようです。 https://github.com/ruby/ruby/pull/7073

[00d58afb5d] Takashi Kokubun 2023-01-06 19:49:59 UTC

よくわかりませんが YJIT で Instruction Sequence からコードの位置情報を取り出す処理を修正しているようです。 https://github.com/ruby/ruby/pull/7074

[41fbcc5193] Nobuyoshi Nakada 2023-01-07 02:47:50 UTC

parse.y の parser_has_token() という関数で rb_bug() で異常終了する時のメッセージに変数を埋め込む指示子に PRIdPTRDIFF マクロを利用するようにしています。

[69a2687a27] Nobuyoshi Nakada 2023-01-07 03:09:02 UTC

拡張ライブラリ bigdecimal の VPrint() でのデバッグ出力? のフォーマット指示子で PRIuSIZE マクロを利用するように修正しています。

[e537aa65c0] Nobuyoshi Nakada 2023-01-03 14:42:41 UTC

標準添付ライブラリ syntax_suggest のテストで ruby コマンドを指定する環境変数 RUBY を参照するようにしています。

[651a098ea1] Yuki Nishijima 2023-01-07 08:46:44 UTC

標準添付ライブラリ did_you_mean で削除予定のクラスなどの TODO コメントで削除予定バージョンの記述を変更しています。削除するのを少し先のばしにしたみたいです。

ruby-trunk-changes 2023-01-06

今日は主に Array#pack や String#unpack の引数の文字列に指示子ではない文字が含まれていた時に例外を発生させる変更などがありました。

[f9148d1580] Stan Lo 2023-01-05 13:06:15 UTC

irb の組み込みコマンドのテストを複数のテストクラスに分割しています。

[358f325bf8] Peter Zhu 2023-01-05 14:24:32 UTC

GC.stat の rdoc 用コメントのマークアップの修正。

[03dd37775a] Benoit Daloze 2023-01-05 17:41:57 UTC

Array#pack や String#unpack で引数の文字列に指示子じゃない文字が含まれていた時に例外を発生させるようにしています。 [ruby-core:111010] [Bug #19150]

[cd5e6cc0ea] Benoit Daloze 2023-01-05 18:05:27 UTC

spec/mspec の upstream からのマージ。

[bbf54ec334] Benoit Daloze 2023-01-05 18:05:29 UTC

spec/ruby の upstream からのマージ。

[54950a78e3] git 2023-01-05 18:06:01 UTC

bbf54ec334fe2edd7669a944d88d17efde49a412 の更新の行末の空白除去やファイル末尾の改行の追加。

[273dca3aed] Peter Zhu 2023-01-05 13:48:19 UTC

Object Shapes の実装の get_next_shape_internal() と rb_shape_traverse_from_new_root() の出力用引数にキャストつきで型の異なる変数のアドレスを取得して渡す呼びかたをしていたのをやめるよう修正しています。 [ruby-core:111361] [Bug #19248]

[1fb0255962] Takashi Kokubun 2023-01-05 18:18:03 UTC

GitHub Actions の pull request の reviewer をセットするための workflow で yjit/src/cruby_bindings.inc.rs の変更は reviewer 設定対象から外します。 https://github.com/ruby/ruby/pull/7004

[ec14861f0d] Benoit Daloze 2023-01-05 19:23:57 UTC

spec/ruby に upstream から最新版をマージしています。

[29a5fcd60b] Peter Zhu 2023-01-05 19:14:59 UTC

pack.c の unknown_directive() の定義に RBIMPL_ATTR_NORETURN() マクロでコンパイラがサポートすれば処理が戻らない関数であることを指定するようにしています。

[53938efd7b] Benoit Daloze 2023-01-05 20:07:29 UTC

spec/ruby に upstream から再度最新版をマージしています。

[2056c0a7c6] Peter Zhu 2023-01-05 15:55:44 UTC

拡張ライブラリ objspace の ObjectSpace.dump で T_OBJECT 型オブジェクトの時にインスタンス変数を slot 内に埋め込んでいる場合に "embedded: true" という行を出力するようにしています。

[979dd02e2f] yui-knk 2022-12-26 08:45:44 UTC

RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location メソッドの引数は Thread::Backtrace::Location のインスタンスを期待しているのですがそうでないオブジェクトを渡すと異常終了する可能性があったので明示的にチェックして TypeError 例外を発生させるようにしています。 [ruby-core:111435] [Bug #19262]

[6c618cb789] Aaron Patterson 2023-01-06 01:13:08 UTC

YJIT が収集する統計情報で JIT をキャンセルする時の原因のカウンタの分離が不足していたのを修正しています。インスタンス変数の set/get で型が特定できなかった時のカウンタを分けるようにしているようです。

[dd0b401716] Nobuyoshi Nakada 2023-01-06 03:11:35 UTC

enc/trans/ 配下のファイルの最後に改行が入ってないものがあったようで改行を追加しています。

[f877805a0c] dsisnero 2022-12-16 00:18:53 UTC

拡張ライブラリ psych の gemspe ファイルに s.metadata['msys2_mingw_dependencies'] というのを設定しています。Windows 版の Msys2 でビルドする環境の時に必要な third party ライブラリを指定することができるみたいです。なにか外部のツールとかプラグインがこれを参照するのかな?

[dcf63b58cf] Nobuyoshi Nakada 2023-01-06 06:36:30 UTC

f877805a0c9dcb90635f4b3d100a4367bf346c4a の psych の gemspec ファイル変更の行末の空白を除去。

[1be669d063] git 2023-01-06 07:02:20 UTC

gems/bundled_gems と NEWS の bundled gems バージョンリストの rbs のバージョンを 2.8.3 に更新/追記しています。

[cd7e14da4e] Nobuyoshi Nakada 2022-11-02 14:42:20 UTC

GitHub Actions の macOS 用 workflow で configure に渡すオプションを事前に環境変数 CONFIGURE_ARGS にセットしておくようにしています。

[b94656147b] Nobuyoshi Nakada 2023-01-06 03:23:25 UTC

標準添付ライブラリ mkmf.rb で RbConfig::CONFIG["configure_args"] や環境変数 CONFIGURE_ARGS を読み込む時に標準添付ライブラリ shellwords の shellsplit を使ってオプションを分割する処理を書くようにリファクタリング? しています。

[42820a9807] Nobuyoshi Nakada 2023-01-06 10:03:25 UTC

doc/contributing/building_ruby.md のコマンドラインのコードブロックにコードの種類を shell と指定するようマークアップを修正しています。

[d9520bf2de] Nobuyoshi Nakada 2023-01-06 10:04:59 UTC

doc/contributing/building_ruby.md の openssl などの拡張ライブラリのビルドのための外部ライブラリの configure のオプションでの指定についての記述を環境変数 CONFIGURE_ARGS に設定する手順に変更しています。

ruby-trunk-changes 2023-01-05

今日は bundler の bundle open サブコマンドのオプション追加、拡張ライブラリ objspace の ObjectSpace.trace_object_allocations_start の不具合修正、TracePoint の不具合修正などがありました。

[87c17a141d] yoka 2022-12-22 06:39:00 UTC

bundler の bundle open サブコマンドに --path というオプションを追加して gem の対応ディレクトリを開く時にベースとなる bundle install のインストール先のディレクトリを指定できるようにしています。

[799d805e21] yoka 2022-12-31 08:58:34 UTC

87c17a141dc4491abf5282d164f2cba13ade18c4 の続きで bundler の bundle open のオプション --path に値が指定されなかった時に例外を発生させるようにしています。

[3bcf92d8af] Peter Zhu 2023-01-03 15:50:40 UTC

gc.c の COULD_MALLOC_REGION_START() と COULD_MALLOC_REGION_END() というマクロで during_gc 変数を一時的に false にするのをやめています。かわりに malloc_during_gc_p() で objspace->flags.dont_gc の値をチェックに追加しています。GC.disable している時は GC 中でも malloc() を呼んで良いとしているみたいです。これってなんでこういうことしてるんだっけ、と思いましたが COULD_MALLOC_REGION_START() は gc_move() で使われているので compaction 対応の時に必要だったからですね。

[b8a3f1bd45] Peter Zhu 2023-01-03 15:59:47 UTC

拡張ライブラリ objspace のオブジェクトの確保と解放をトレースする ObjectSpace.trace_object_allocations_start で TracePoint に登録するコールバックで一時的に GC.disable 相当の関数(rb_gc_disable_no_rest())を呼んで GC を無効化するようにしています。 st_table の操作時に再帰的に GC が発生すると異常終了してしまう可能性があったため。

[f7243d1afb] Burdette Lamar 2023-01-04 19:58:59 UTC

標準添付ライブラリ uri の rdoc 用コメントの手直し。

[837ef8911c] Peter Zhu 2023-01-04 18:15:59 UTC

TracePoint の c_call イベントへのフック内で alias 経由のメソッド呼び出しによるフックで TracePoint#parameters を呼んだ時に異常終了する可能性があった不具合の修正。alias 先のメソッドが remove_method で削除されていた時に起きるとのこと。 [ruby-core:111610] [Bug #19305]

[1f2fef1f9a] Hiroshi SHIBATA 2023-01-04 12:02:10 UTC

tool/lib/core_assertions.rb の Test::Unit::CoreAssertions#separated_runner で Test::Unit::AutoRunner.need_auto_run= に false をセットするようにしています。拡張ライブラリ openssl の upstream での変更の取り込みみたいです。

[b496578758] Hiroshi SHIBATA 2023-01-04 23:16:24 UTC

1f2fef1f9ac03fb01a3150f953e2194e58e437ea の続きで Test::Unit::CoreAssertions#separate_runner の auto run を抑制するのに Test::Unit::Runner 利用時の対応を追加しています。 ruby 本体でのテスト時の対応と思われます。

[ee6e4d63df] Nobuyoshi Nakada 2023-01-05 06:13:10 UTC

defs/gmake.mk で revision.h から RUBY_FULL_REVISION マクロ定義の値を切り出すための sed コマンドのスクリプトを変更しています。 revision.h がビルドディレクトリにもソースディレクトリにも存在していた時に内容が重複して取れるのを防ぐようにするためみたいです。

[4959e01932] Yusuke Endoh 2023-01-04 20:11:50 UTC

common.mk の prepare-gems の依存関係から outdate-bundled-gems を削除して、古い bundled gems の展開したディレクトリ群の削除を抑制するようにしています。 rbs.gem と debug.gem の拡張ライブラリを意図せず消してしまって make install 時に必要な拡張ライブラリが入らなくなってしまうという現象が起きていたようです。 [ruby-core:111456] [Bug #19271]

ruby-trunk-changes 2023-01-04

今日は主に YJIT 利用時に多数の dynamic 変数をもつブロックを呼び出す時の不具合修正などがありました。

[0dc989d031] Matt Valentine-House 2022-12-21 15:48:00 UTC

GC.verify_compaction_references のテストでチェック対象の項目の値が nil の場合の対応を追加しています。

[59cf9ebf4d] Burdette Lamar 2023-01-03 15:33:31 UTC

標準添付ライブラリ uriURI.encode_www_form_component と URI.encode_www_form の rdoc 用コメントにサンプルと説明を追加しています。

[1bb0749c5b] Nobuyoshi Nakada 2023-01-03 15:06:54 UTC

InitVM_Object() の doxygen 用のコメント? を削除して Init_class_hierarchy() の前に移動しています。コメント内容の処理の実体が Init_class_hierarchy() に切り出されてたのでそれにあわせているようです。

[184739f1e2] Peter Zhu 2023-01-03 16:43:43 UTC

gc.c の不要なセミコロンが残っていたのを削除。

[1f9b6bfa93] "dependabot[bot]" 2023-01-01 02:01:54 UTC

GitHub Actions の workflow の actions/cache アクションのバージョンを更新しています。

[43ff0c2c48] Alan Wu 2023-01-03 20:07:33 UTC

YJIT 利用時に 30個以上のローカル変数(dynamic 変数)があるブロックを yield で呼び出すと変数用のスタック領域の初期化処理のタイミングが間違っていて異常終了する可能性があった不具合を修正しています。 [ruby-core:111577] [Bug #19299]

[c240a18968] Alan Wu 2023-01-03 21:33:47 UTC

YJIT でレジスタに割当てきれない変数をスタックに割り当てる処理のデバッグ用のダンプ出力? を標準出力に出していたのを標準エラー出力に出すように変更しています。

[b8673f8b5b] "dependabot[bot]" 2023-01-01 02:01:41 UTC

GitHub Actions の workflow の ruby/setup-ruby アクションのバージョンを更新しています。

[d57148e9e2] Hiroshi SHIBATA 2023-01-04 03:05:21 UTC

GitHub Actions の Cirrus CI の通知用の workflow の octokit/request-action アクションのバージョンを更新しています。

[e25c173c97] Joel Anderson 2022-12-16 04:46:56 UTC

標準添付ライブラリ reline の JRuby の時の win32api を require する時に feature 名を大文字小文字を区別して "Win32API" と記述するようにしています。JRuby の新しいバージョンでは require 時に大文字小文字を区別するようになっているそうです。

[3d6500ee6e] Stan Lo 2023-01-04 09:35:52 UTC

標準添付ライブラリ irb で Binding#source_location を利用しているところで respond_to? でチェックしていたのをやめています。ruby 2.6 以降から追加されたメソッドなのでもう EOF でないバージョンには全て含まれるので。また未使用のメソッド定義を削除しています。

ruby-trunk-changes 2023-01-03

今日は主に Time.new に文字列を渡した時の数値の範囲チェックの強化などがありました。

[291a4098cf] Nobuyoshi Nakada 2023-01-02 14:17:27 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 で導入された Time.new に文字列を渡すと parse する機能で日のところに 1桁の数字を渡すと ArgumentError が発生するのを確認するテストを追加しています。 [ruby-core:104552] [Feature #18033]

[5be0d42d2c] Nobuyoshi Nakada 2023-01-02 14:23:53 UTC

Time.new に文字列を渡した時のチェックを強化しています。月などの数値に必要な bit 数しか割当ててないのでそれを越える数値の時にオーバーフローしていたのを事前にチェックするようにしています。 [Feature #18033] [ruby-core:111571] [Bug #19296]

[34f8ca1714] tomoya ishida 2023-01-02 19:25:07 UTC

irbIRB::RubyLex で入力途中のプロンプト表示の修正。

[2bbf63dd86] Takashi Kokubun 2023-01-02 21:12:47 UTC

f6620037ba1477d2c337d7b511f094d6d0fbb69c で lib/mjit/instruction.rb が誤って復活していたのを削除しています。 [ruby-core:111573] [Bug #19298]

[d87cf4cc2a] git 2023-01-03 06:47:33 UTC

NEWS の bundled gems のバージョンリストに miniteset のバージョンが追記されているのですが、minitest のエントリが重複しているので自動更新の不具合っぽいですね。

[fdac148637] nagachika 2023-01-03 08:15:28 UTC

d87cf4cc2aea072a9c9a98eaf5b2cab4a5af3c00 で重複していた NEWS の bundled gems の行を削除しています。またリストのマークアップの "*" のあとに空白を入れています。