ruby-trunk-changes 2022-08-28

今日は拡張ライブラリ ripper のヒアドキュメントの扱いの修正や MJIT 有効時の rubygems のテストの不具合修正などがありました。

[381d8e43ce] Aleksandr Varnin 2022-08-24 16:09:10 UTC

bundler の Gemfile.lock に出力する文字列の余計な改行の削除。

[4de09574e0] git 2022-08-27 17:04:31 UTC

version.h の日付更新

[458d49a04a] Takashi Kokubun 2022-08-27 17:21:23 UTC

13d2225c460cfc3daa679acb89433289527a844f の続きで rubygems のテスト時のヘルパーメソッドで CI 上でディレクトリ削除を FileUtils.rm_rf を使わず rm コマンドの実行に変更しましたが Kernel#system の exception: true を指定していたのをやめてエラーを無視するようにしています。 rm コマンドでもエラーが発生するということは FileUtils.rm_rf が rm と挙動を揃えたから発生するようになったってことなので FileUtils.rm_rf の例外を無視するのと同等っぽいですね。

[95d2d7920c] Takashi Kokubun 2022-08-27 19:05:41 UTC

13d2225c460cfc3daa679acb89433289527a844f および 458d49a04ab7ce8a61be11fbaf341ee252b8253a の続きで rubygems のテストのヘルパーメソッドで CI の時に rm コマンドを実行するようにしてたのをやっぱり FileUtils.rm_rf を利用するように戻して、その前後で MJIT が有効な場合に RubyVM::MJIT.pause/RubyVM::MJIT.resume で MJIT の worker を止めるようにしています。

[a797ded8e2] spaette 2022-08-27 21:09:55 UTC

ヘッダのコメントの typo 修正。

[83375f47e1] Takashi Kokubun 2022-08-27 21:48:10 UTC

a797ded8e2637de91dd4dd5b54bed515f6cda08atypo 修正でピリオドだけ行頭に残るような変更があったので直前の単語から改行するようにしています。

[111b69e8a0] Takashi Kokubun 2022-08-27 22:47:18 UTC

95d2d7920c97d0502ebed4ba439177325ad05e57rubygems のテスト用ヘルパーメソッドで FileUtils.rm_rf 前に MJIT の worker を止めるための RubyVM::MJIT.pause の呼び出しでキーワード引数 wait: false を渡しています。タイムアウトを避けるためとのことですがこれ止まるのを待たなくてもファイル削除は大丈夫なんでしょうか。

[ace2eee544] Nobuyoshi Nakada 2022-08-28 00:29:24 UTC

チケットの例をみてもちょっと何が起きているのかよくわからないのですが、ヒアドキュメントの終端トークンが文字列リテラル内に含まれていた時の扱いが拡張ライブラリ ripper で誤っていたのを修正しているようです。というかこの場合終端トークンは文字列リテラルの内容じゃなくて終端トークンとして扱われる(そっちのほうが優先される)んですね。うーむ。 [ruby-core:109476] [Bug #18963]

[1d83302f32] Nobuyoshi Nakada 2022-08-28 04:54:14 UTC

win32/Makefile.sub でなにもしないコマンドとして NULLCMD 変数に格納しているコマンドを type nul から exit /b0. に変更しています。もしコマンドに引数が渡された時にそれを無視するためには exit のほうが良いからということだそうです。

[1486ffe039] Felix Yan 2022-08-28 07:27:11 UTC

ractor.rb の先頭のコメントの英文法修正。

ruby-trunk-changes 2022-08-27

今日はドキュメントやテストの修正/変更だけでした。

[fe4dd18db4] Nobuyoshi Nakada 2022-08-27 03:54:42 UTC

String#[] の rdoc 用コメントの call-seq の typo 修正。

[f97af5cdc3] git 2022-08-27 03:56:00 UTC

version.h の日付更新

[13d2225c46] Takashi Kokubun 2022-08-27 06:32:01 UTC

rubygems のテストのヘルパーメソッドで環境変数 RUBY_DEBUG に ci という部分文字列が含まれていたら FileUtils.rm_rf による削除を Kernel#system による rm コマンドの実行に置き換えるようにしています。 983115cf3c8f75b1afbe3274f02c1529e1ce3a81 で FileUtils.rm_rf が Errno::ENOENT 以外の例外を無視しないようにしてからたまに MJIT の CI 中に失敗することがあるとのこと。

ruby-trunk-changes 2022-08-26

今日は主に標準添付ライブラリ syntax_suggest のテストの追加(upstream からの同期)、bundler の不具合修正、IO.foreach メソッドの不具合修正などがありました。

[ad8774f8e5] David Rodríguez 2022-08-24 20:54:33 UTC

bundler の Gemfile.lock の platform の処理の最近の変更での regression を修正しているとのこと。

[c069f50401] Nobuyoshi Nakada 2022-08-25 14:50:24 UTC

Time の特異メソッドやその alias の定義のための rb_define_alias() や rb_define_private_method() の引数に rb_singleton_class() の呼び出しを直接書いてたのを一旦変数に代入してから渡すようにしています。 rdoc が解釈できるようにするためとのこと。

[c2daa05693] git 2022-08-25 15:08:09 UTC

version.h の日付更新

[b2d0f78869] Jean Boussier 2022-08-25 07:28:07 UTC

bfa6a8ddc84fffe0aef5a0f91b417167e124dbbf の Symbol#to_proc が可視性を考慮するようにした変更で switch 文の break 文が抜けてた不具合を修正しています。 [Bug #18826]

[8706b74b90] Burdette Lamar 2022-08-25 18:02:18 UTC

Time の rdoc 用コメントの手直し。

[52560a9263] Takashi Kokubun 2022-08-25 18:07:23 UTC

標準添付ライブラリ mkmf の try_constant メソッドについてのテストが AppVeyor で失敗するとのことでテストクラス全体をスキップするようにしています。

[af9fa16c96] Takashi Kokubun 2022-08-25 18:31:16 UTC

52560a92631e7b327365383e7ce83c80fcfafc05 の続きで標準添付ライブラリ mkmf.rb のテストで seetup でまとめてスキップするようにした時に親テストクラスの teardown で不要な後始末もスキップするようにしています。また setup に super で親クラスの setup も実行するようにしています。

[881bc2a176] Takashi Kokubun 2022-08-25 18:36:04 UTC

標準添付ライブラリ drb のテストでも MinGW 環境で固まってしまうものをスキップするようにしています。

[21cac42385] Jeremy Evans 2022-05-26 17:37:01 UTC

IO.foreach メソッドの第2引数に limit として整数を渡す呼び方で 0 が渡された時に無限ループ状態に陥ってしまうので IO.readlines の挙動と合わせるためにも ArgumentError 例外を発生させるようにしています。 [ruby-core:108499] [Bug #18767]

[3504be1bc1] Jun Aruga 2022-08-25 18:11:34 UTC

46c3a93982d0b81668668a65c10bc3670a488d8airb の lib/irb/input-method.rb から require "rdoc" を削除していたのを定数 SHOW_DOC_DIALOG に格納する Proc オブジェクトのブロック内に移動して復活させています。やっぱり消しちゃだめだったみたいですね。

[0d9f4ea0d4] Hiroshi SHIBATA 2022-08-19 06:37:45 UTC

標準添付ライブラリ syntax_suggest の単体テストを spec/syntax_suggest/ に追加しています。rspec によるテストですね。

[9c2af0a171] Hiroshi SHIBATA 2022-08-26 01:42:44 UTC

common.mk に test-syntax-suggest ターゲットを追加して rspec を使ったテスト実施できるようにしています。 ruby-prof.gem も必要なんですね。

[bd1b1eeb0e] Hiroshi SHIBATA 2022-08-26 01:49:11 UTC

と、思ったら syntax_suggest のテストで ruby-prof は必須じゃないようで gem install はやめて require 時の LoadError を無視するようにしています。

[8dfc077f70] Hiroshi SHIBATA 2022-08-26 02:10:15 UTC

libexec/syntax_suggest というファイルを追加しています。標準添付ライブラリ syntax_suggest のコマンドラインツールみたいです。また upstream とのディレクトリ構成の違い(exe/ -> libexec/)を吸収するようにテストで対応しています。

[5e4d1f9908] Hiroshi SHIBATA 2022-08-26 02:13:26 UTC

標準添付ライブラリ syntax_suggest のテストで ruby リポジトリ内では ruby コマンド自体に依存しているテストは skip するようにしています。

[3a2bc84954] Hiroshi SHIBATA 2022-08-26 02:15:01 UTC

GitHub Actions の Ubuntu の workflow で make test-syntax-suggest を実行するように追加しています。

[1cbee173be] Hiroshi SHIBATA 2022-08-26 02:18:43 UTC

tool/sync_default_gems.rb で syntax_suggest の同期処理の例外処理に libexec/ へのコピーやテストのコピーの対応を追加しています。

[098a3cfaa7] Hiroshi SHIBATA 2022-08-26 02:25:10 UTC

9c2af0a171cb362ba3b1eb116b6fdb060cb62d2c の common.mk での make test-syntax-suggest 対応追加の変数名の typo 修正。

[d6f21b308b] Takashi Kokubun 2022-08-26 06:00:18 UTC

構造体 struct rb_iseq_constant_body の catch_except_p メンバーの型を char から bool に変更しています。これに伴ない代入する値も TRUE/FALSE のマクロから true/false に変更しています。

ruby-trunk-changes 2022-08-25

今日は主に YJIT のデバッグ用のオプション --yjit-dump-iseqs の追加などがありました。

[b4be3c00c5] Noah Gibbs 2022-07-28 15:45:08 UTC

YJIT のオプションに --yjit-dump-iseqs というのを追加して指定したメソッドの YJIT によるコンパイル次のアセンブリの内容を表示するようにしているようです。

[fa9f4d387c] git 2022-08-24 17:43:03 UTC

version.h の日付更新

[28a3434634] Aaron Patterson 2022-08-23 20:23:40 UTC

ractor_lock_self() および ractor_unlock_self() で cr->sync.locked_by についての VM_ASSERT() によるチェックを RACTOR_CHECK_MODE が 1以上に指定してビルドされた時だけ実施するようにしています。このチェック内容が 32bit 環境では無意味な 32bit のシフトを含んでいるとのことで VALUE が 64bit ある環境でないと RACTOR_CHECK_MODE が真(つまり 1)にならないようにしています。

[f5f81bb777] Jeremy Evans 2022-08-24 21:15:41 UTC

Module#instance_method の rdoc 用コメントに引数に false を指定して継承したメソッドは出さないようにしても private/protected/public などで可視性を変更したメソッドや alias したメソッドはそのクラスの method entry ができるので取得されるというのを明記しています。

ruby-trunk-changes 2022-08-24

今日は bundler を古い rubygems と使った時に libc が musl の Linux 環境対応をモンキーパッチする変更などがありました。

[60c900f452] Maxime Chevalier-Boisvert 2022-08-22 17:42:38 UTC

.github/CODEOWNERS の YJIT 関連のソースコードなどの owner に k0kubun さんを追加しています。

[feff683306] git 2022-08-23 21:28:39 UTC

version.h の日付更新

[314b76a567] Yusuke Endoh 2022-08-24 01:36:17 UTC

C API の rb_eval_string() のテストのための 5bbba76489628f4509495ebf4ba0a7aad4c0b560 で追加された ruby スクリプトで未使用のローカル変数の警告抑制のため変数名の最初に "_" をつけるようにしています。

[0ad9cc1696] David Rodríguez 2022-08-04 11:03:29 UTC

bundler の libc に musl を利用した Linux 環境の platform 指定を正しく処理できない rubygems と組み合わせて使われている時のために Gem::Platform#=== メソッドを再定義するモンキーパッチをあてる実装を追加しています。

ruby-trunk-changes 2022-08-23

今日は bundler の更新/修正、標準添付ライブラリ fileutils の FileUtils.rm_rf が無視するエラーの種類の変更などがありました。

[f99904341e] Nobuyoshi Nakada 2022-08-22 14:14:29 UTC

Time の rdoc 用コメントからドキュメント用ファイルへのリンクの相対パスを修正しています。

[148d0ccd18] Nobuyoshi Nakada 2022-08-22 14:14:58 UTC

doc/time/sec_i.rdoc の typo 修正。どうでもいいけどこのファイル 1行だけのドキュメントなんだな。

[c96ffec984] git 2022-08-22 16:22:01 UTC

version.h の日付更新

[a9ee13365a] "dependabot[bot]" 2022-08-22 15:25:31 UTC

rubygems のテスト用の Rust 製プロジェクト内のパッケージのバージョン更新。

[aeac8b6c3a] Burdette Lamar 2022-08-22 18:17:05 UTC

doc/contributing/documentation_guide.md に関連するメソッドへの参照に書きかたについての記述を追加しています。 https://github.com/ruby/ruby/pull/6271

[085790bdc0] "dependabot[bot]" 2022-08-22 17:27:14 UTC

rubygems のテスト用の Rust 製プロジェクト内のパッケージのバージョン更新。

[615f79be3c] Loic Nageleisen 2020-11-24 12:52:13 UTC

rubygems の platform の名前の整形処理に使っている正規表現を変更しています。 "-" で分割した最後のパーツに数字が入ってない時はくっつけるみたいなロジックを数字で終わってない時だけ、みたいにしているようですがまあ既存の platform 名に依存したルールっぽいですね。

[f254b673f8] Loic Nageleisen 2020-11-24 12:55:10 UTC

おそらく 615f79be3cef210c26b967f06979ed464bf9e178 の変更に対応した rubygems のテストの assertion 追加。

[9819283044] David Rodríguez 2022-08-04 11:02:18 UTC

rubygems の platform 判定で musl などの glibc でない標準添付ライブラリを利用した環境への対応みたいです。

[492e70c7b4] David Rodríguez 2022-08-05 11:24:24 UTC

rubygems の platform 判定で musl を利用した Linux 環境の対応の不具合修正。

[59f27445ea] David Rodríguez 2022-08-05 14:16:34 UTC

さらに rubygems の platform 判定での Linux の libc の種類による違いを意識するようにする変更。

[6465a5331a] Nobuyoshi Nakada 2022-08-23 00:04:57 UTC

Time#getlocal の rdoc 用コメントで再度ドキュメント専用ファイルへの相対パスのリンクの不要なディレクトリの削除。

[b30fc03e92] David Rodríguez 2022-08-08 19:39:49 UTC

bundler の Bundler::MatchPlatform という定数の autoload 設定を削除しています。同時に lib/bundler/lazy_specification.rb の require_relative も削除しているけどいいのかな。と思ったけど必要な箇所では明示的に require しているとのことでいいみたいです。

[29c443fedc] David Rodríguez 2022-08-08 20:03:55 UTC

bundler の Bundler::EndpointSpecification クラスで MatchPlatform を mix-in していたのをやめています。親クラスで既に include しているので不要とのこと。

[a9509068db] David Rodríguez 2022-08-08 21:48:02 UTC

bundler のテストでダミーの rubygems みたいなサーバーの実装を修正しています。ちょっとよくわからない。

[c21c9a29ee] David Rodríguez 2022-08-09 09:39:03 UTC

bundler の Bundler::Resolver::SpecGroup#metadata_dependencies から一部を #metadata_dependency に切り出すリファクタリング

[4790d0accd] David Rodríguez 2022-08-18 21:28:26 UTC

bundler の依存関係解決で bundle update に --conservative オプションを渡した時のロジックの不具合修正みたいです。

[f69244cee8] Hiroshi SHIBATA 2022-08-22 02:52:51 UTC

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

[c1ecc498e4] Hiroshi SHIBATA 2022-08-23 00:34:32 UTC

gems/bundled_gems の rbs の commit hash 指定を更新しています。

[545c2b0047] Takashi Kokubun 2022-08-23 02:28:57 UTC

mjit_unit.h の二重 #include を防ぐための guard に使ってるマクロ名がファイル名と一致してなかったので修正しています。

[892fe9bbba] Hiroshi SHIBATA 2022-08-23 03:49:46 UTC

拡張ライブラリ io/console の IO#getch(intr: false) のテストで一部を FreeBSD でスキップさせていたのをテストメソッド全体をスキップするように変更しています。

[9f6fcfcd7f] Hiroshi SHIBATA 2022-08-23 05:04:09 UTC

GitHub Actions の Ubuntu 版 workflow で ubuntu-18.04 をコメントアウトしていたのを削除しています。

[22a416a3bb] Takuya Noguchi 2022-08-23 03:26:36 UTC

bundler のエラーメッセージからリンクされている URL の修正。

[7c784f0a67] Takuya Noguchi 2022-08-23 04:11:47 UTC

bundler のテストで "can not" と書いてるところを "cannot" と表記するようにしています。英文法的な理由かな? なにか機械的な意味がありそうな気もするけど。

[073f3b7e0a] Yusuke Endoh 2022-07-26 12:17:30 UTC

標準添付ライブラリ fileutils のテストで FileUtils.rm_rf のテストで削除する対象の一時ディレクトリを mode=000 で作成してそれでも消せることを確認するようにしています。参照しているチケットの意図とテスト内容が一致してなかったのでその修正みたいです。 [Bug #6756]

[96562a517d] Yusuke Endoh 2022-07-26 12:23:47 UTC

標準添付ライブラリ fileutils のディレクトリ削除でディレクトリの中身をみることが権限上できなくてもディレクトリの削除は試す(みえないだけで中身が空なら削除はできるかもしれない)という意図で追加されてた ensure の保護対象が広すぎたのでディレクトリの内容の取得の時の Errno::EACCES だけ rescue するように修正しています。 [Bug #6756]

[983115cf3c] Yusuke Endoh 2022-07-26 12:31:27 UTC

標準添付ライブラリ fileutils の FileUtils.rm_rf で全ての例外を無視していたのろ Errno::ENOENT のみ無視するように変更しています。コマンドの rm(1) の挙動にあわせようとしているみたいです。 [ruby-core:108565] [Bug #18784]

[46c3a93982] Vít Ondruch 2022-08-23 08:41:28 UTC

irb で明示的に require "rdoc" しているのを削除しています。 タブ補完による rdoc のドキュメント表示で利用するからだと思うのですがコミットログにあるみたいに遅延 require もしてないし単に消すのはまずそうだけどいいのかな?

ruby-trunk-changes 2022-08-22

今日は Complex#<=> で coerce を利用するようにする修正や標準添付ライブラリ fileutils の Windows のドライブレターの扱いの修正などがありました。

[b043dd9c5d] Nobuyoshi Nakada 2022-08-21 11:06:39 UTC

Kernel#sprintf などの実装の rb_str_format() で空白でパディングする時の書きかたのリファクタリング

[936327a519] Burdette Lamar 2022-08-21 16:36:36 UTC

Time の rdoc 用コメントの手直しと専用のファイルへの切り出し。 https://github.com/ruby/ruby/pull/6255

[73f8027ac6] git 2022-08-21 16:36:54 UTC

version.h の日付更新

[a60507f616] Takashi Kokubun 2022-08-21 18:30:32 UTC

mjit_compile.c を mjit_compiler.c とファイル名を改名しています。

[9f3140a42e] Takashi Kokubun 2022-08-21 18:34:20 UTC

benchmark/ から MJIT のベンチマークの一部を削除しています。

[70f69f8539] David Rodríguez 2022-08-01 18:35:37 UTC

標準添付ライブラリ fileutils の mkdir_p で Windows でのドライブレターの扱いを修正しています。

[3d6baad7fa] Hiroshi SHIBATA 2022-08-22 02:40:38 UTC

NEWS に標準添付ライブラリ syntax_suggest の追加について追記しています。 [Feature #18159]

[954f709f4e] Kazuhiro NISHIYAMA 2022-08-22 03:18:58 UTC

3d6baad7fac8c73cef8c82fe946757cf289c704c で追加したチケット参照のリンクのための footnote をチケット番号順に入れ替えています。

[6afb4f0a28] Hiroshi SHIBATA 2022-08-22 03:05:46 UTC

make help の出力に make test-bundler-parallel についてのメッセージを追加しています。

[d0b17a4d20] Hiroshi SHIBATA 2022-08-22 03:06:23 UTC

defs/gmake.mk の make help に追加するための文字列で表示をそろえるために空白の数を調整しています。

[d5f50463c2] Nobuyoshi Nakada 2022-08-22 03:21:47 UTC

Complex#<=> で数値でない引数を受け取った時に coerce を呼び出して変換を試すようにしています。 [ruby-core:109311] [Bug #18937]

[f0a7694f64] Nobuyoshi Nakada 2022-08-22 07:59:00 UTC

GitHub Actions の WIndows 版の workflow でコンパイラ(cl) を引数なしで実行してみるようにしています。バージョンの確認のためみたいです。 [ruby-core:106268] [Misc #18362]

[d91865f33f] Nobuyoshi Nakada 2022-08-22 09:08:05 UTC

GitHub Actions や AppVeyor、Cirrus などで .document ファイルのみの変更は無視するように設定しています。

[13d31331c8] "S.H" 2022-08-22 09:52:36 UTC

parse.y で nonlocal_var という接頭語つきの変数のトークンをまとめたノードがあるのでそれを再利用するようにリファクタリングしています。