ruby-trunk-changes 2023-09-26

今日は主に rb_bug() でバックトレースなどのダンプを出力する先を環境変数やオプションで指定したファイルに切り換える機能の追加などがありました。

[ac244938e8] Nobuyoshi Nakada 2023-07-31 18:04:42 UTC

addr2line.c の DWARF フォーマットの解析をする時にバックトレースを出力する先を stderr 固定にしていたのを引数で FILE を指定できるようにしています。ぱっと見実際に出力先を切り替えているところはみあたりませんでしたが将来的に変更可能にするための準備という感じでしょうか。 [ruby-core:114319] [Feature #19790]

[85984a53e8] Nobuyoshi Nakada 2023-08-04 06:30:36 UTC

rb_bug() などでバックトレースなどの出力がエラーになった時に処理を中断するため fprintf() のかわりに kprintf() というマクロを利用するようにしています。 [ruby-core:114319] [Feature #19790]

[89b3c111ff] Nobuyoshi Nakada 2023-07-31 19:12:22 UTC

85984a53e87dfbccb52aba952367fddea4a77870 の下準備に続いて環境変数 RUBY_BUGREPORT_PATH でファイルパス(pid や時刻などの埋め込み指定のサポートあり)を指定すると rb_bug() などの出力をそこにする機能を追加しています。 [ruby-core:114319] [Feature #19790]

[be40eacc9d] Nobuyoshi Nakada 2023-08-05 10:56:29 UTC

error.c の 89b3c111ff0b846d9ded0cff3ca08cb566c6cc25 で追加した open_report_path() から置換部分を expand_report_argument() という関数に切り出しています。 [ruby-core:114319] [Feature #19790]

[530b5ef6b6] Nobuyoshi Nakada 2023-08-04 07:56:55 UTC

コマンドラインオプションに rb_bug() の出力に使うファイルパスの展開処理のテスト用に --test-bugreport というオプションを追加しています。一時的な追加みたいです。 [ruby-core:114319] [Feature #19790]

[6bb4c9de09] Nobuyoshi Nakada 2023-08-09 15:13:22 UTC

ruby の man ページに環境変数 RUBY_BUGREPORT_PATH についての説明を追加しています。 [ruby-core:114319] [Feature #19790]

[0f64290704] Nobuyoshi Nakada 2023-08-05 13:10:49 UTC

win32/win32.c の w32_aspawn_flags() という関数を w32_spawn_process() と改名して引数を追加し、標準入出力と標準エラー出力を差し替えできるようにしているようです。 [ruby-core:114319] [Feature #19790]

[7e2775b057] Nobuyoshi Nakada 2023-08-05 13:11:52 UTC

環境変数 RUBY_BUGREPORT_PATH で指定したフィアルパスが "|" から開始していた場合は rb_bug() などの出力を子プロセスでコマンドを実行して pipe でそこに渡すようにしています。いやーこれは任意の環境変数が設定できると任意コマンド実行ができそうで怖いな。さらに rb_bug() を実行させないといけないですけど。 [ruby-core:114319] [Feature #19790]

[7c48a70c47] Nobuyoshi Nakada 2023-08-05 13:12:04 UTC

7e2775b057d19d5ed06877c3b02299e3b5d2beb7 の続きで --test-bugreport オプションの対応を追加しています。 [ruby-core:114319] [Feature #19790]

[696f08238b] Nobuyoshi Nakada 2023-08-09 15:16:02 UTC

ruby の man ページに 7e2775b057d19d5ed06877c3b02299e3b5d2beb7 で追加した RUBY_BUGREPORT_PATH の先頭が "|" の時にコマンド実行する仕様について追記しています。 [ruby-core:114319] [Feature #19790]

[70e8a08295] Nobuyoshi Nakada 2023-08-09 09:25:34 UTC

コマンドラインオプション --bugreport-path でも rb_bug() で出力するファイルを指定することができるようにしています。 [ruby-core:114319] [Feature #19790]

[f714448be7] Nobuyoshi Nakada 2023-08-21 08:29:44 UTC

70e8a08295114fa3cb112ddb42844889f7f98eb1 の続きで --bugreport-path オプションを複数指定した時に後のほうを利用するようにしています。 [ruby-core:114319] [Feature #19790]

[bab01d284c] Nobuyoshi Nakada 2023-09-13 06:02:10 UTC

rb_bug() の出力ファイルを指定する環境変数 RUBY_BUGREPORT_PATH を RUBY_CRASH_REPORT に改名しています。 [ruby-core:114319] [Feature #19790]

[fbe4db5182] Nobuyoshi Nakada 2023-09-24 17:28:36 UTC

拡張ライブラリ ripper の ext/ripper/tools/dsl.rb というツールで parse.y の ripper 向けアクション部の新しい記法をサポートするように機能拡張しています。

[963d12722e] Nobuyoshi Nakada 2023-09-24 14:19:15 UTC

fbe4db518289e0b70e770376236740b86b8e86e2 の ripper のソースコード変換の対応を利用して parse.y で名前によるノード参照を書ける記法を利用するようにしています。これ bison の機能なのかな。

[dd292640bf] Nobuyoshi Nakada 2023-09-24 14:54:05 UTC

parse.y で Qundef の値を避けるための escape_Qundef() というマクロを削除して値をそもまま使うようにしています。

[56604c7a3b] Nobuyoshi Nakada 2023-09-25 10:52:47 UTC

parse.y の rescue 節や後置 rescue の文法のアクション部で関数呼び出しをまとめないで NODE の作成の書きかたを平易に書きかえています。

[03ef85bee7] Nobuyoshi Nakada 2023-09-25 11:25:38 UTC

parse.y に begin_definition() というマクロを切り出すリファクタリング

[e2a5f0469c] Nobuyoshi Nakada 2023-09-25 12:41:31 UTC

parse.y の名前によるノード指定の記法を利用するアクションをさらに増やしています。

[766b06dfa3] elfham 2023-09-25 14:28:13 UTC

標準添付ライブラリ reline で Unicode 15.1.0 に対応して East Asian Width の対応のためのテーブルを更新しています。 https://github.com/ruby/reline/pull/591

[cbb38331dd] Nobuyoshi Nakada 2023-09-25 17:07:32 UTC

ac244938e8b97c8bd42d1dc8ed820091e6ef5537 以降の rb_bug() の出力を任意ファイルに出力する変更で FreeBSD で関数の引数追加の対応が漏れててビルドできなくなっていたのを修正しています。 [ruby-core:114319] [Feature #19790]

[1527246a7e] Nobuyoshi Nakada 2023-09-25 17:09:57 UTC

defs/gmake.mk の Unicode のデータファイルダウンロード関係のターゲットの整理のための記述を追加しています。

[ca2594535d] Nobuyoshi Nakada 2023-09-25 17:15:38 UTC

85984a53e87dfbccb52aba952367fddea4a77870 の rb_bug() でのダンプ出力中のエラー処理のための変更で vm_dump.c の rb_print_backtrace() のラベルが抜けてたのを修正しています。

[295862e22a] Jun Aruga 2023-09-25 15:55:17 UTC

拡張ライブラリ zlib のテストで assert_separately を利用して Zlib.gzip のテストを子プロセスを起動してテストするようにしています。

[78af64d08f] "dependabot[bot]" 2023-09-25 15:28:07 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトの rb-sys パッケージのバージョンを更新しています。

[78cb795491] "dependabot[bot]" 2023-09-25 15:04:21 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトの rb-sys パッケージのバージョンを更新しています。

[d2cc4437a1] Nobuyoshi Nakada 2023-09-25 23:31:45 UTC

ca2594535dd314086b5599fcd39cd80f863d80f4vm_dump.c に追加した error ラベルにコメントを付加しています。コミットログによるとラベルをブロックの末尾に置くことができないみたいですね。へー。

[5eef125afe] Nobuyoshi Nakada 2023-09-26 00:02:37 UTC

rb_bug() などでダンプ出力する時に libprocstat というライブラリを利用してプロセスの情報を出力する時にもファイルに出力できるように対応を追加しています。 [ruby-core:114319] [Feature #19790]

[f0d8278607] Nobuyoshi Nakada 2023-09-26 05:28:49 UTC

環境変数 RUBY_CRASH_REPORT を指定したテストで子プロセスを起動する時に RUBY_ON_BUG 環境変数を渡さないようにしています。

[6b66b5fded] Nobuyoshi Nakada 2023-09-26 04:25:44 UTC

Time#strftime に渡した文字列がマルチバイト文字列を含んでいても String#ascii_only? が true になってしまう不具合を修正しています。 rb_str_modify_expand() とかで文字列バッファを拡張して別の文字列バッファからコピーした時に coderange を再計算させるようにしています。 [ruby-dev:52045] [Bug #19902]

[55a297c840] Yusuke Endoh 2023-09-26 07:42:47 UTC

yarp のテストの警告抑制。

[8233572d45] Yusuke Endoh 2023-09-26 08:01:24 UTC

parser のテストの警告抑制。

[6d7730ab98] Nobuyoshi Nakada 2023-09-26 08:25:08 UTC

f0d827860783afd34e12450dd310e50917d396e3環境変数 RUBY_CRASH_REPORT で rb_bug() の出力先指定するテストで子プロセス起動する時に RUBY_ON_BUG 環境変数を渡さなくしたのを revert して、別のコマンドに pipe で渡すテストのほうで RUBY_ON_BUG を渡さないようにしています。前者のほうも渡さないのが正しそう? [追記]前者は assert_segv メソッドを利用していてそこで既に削除しているので不要だったとのこと。[/追記]

[91042ec0ae] Kouhei Yanagita 2023-09-19 22:01:55 UTC

整数の Range の Range#bsearch のベンチマークを追加しています。

[4199e49cad] Kouhei Yanagita 2023-09-19 11:18:00 UTC

Range#bsearch の整数の Range の時の実装で Integer#+ メソッドの呼び出し回数を少し抑えるように最適化しています。

[c2c0a083f0] tomoya ishida 2023-09-26 10:06:13 UTC

irb の組み込みコマンド show_source のテストでページャーコマンドが起動されないように STDIN.tty? が false になるようにしています。 https://github.com/ruby/irb/pull/720