ruby-trunk-changes 2023-01-30

今日はドキュメントやテストの小さな変更だけでした。

[b432867429] Hiroshi SHIBATA 2023-01-30 07:55:14 UTC

拡張ライブラリ openssl のテストで RHEL の 9 でうまく動かないものがあったとのことで Etc.uname でチェックして skip するようにしています。

[1c7bf378a1] git 2023-01-30 08:29:31 UTC

NEWS の default gems のバージョンリストに abbrev が記述されてましたが 3.3.x になってからの更新はないので削除しています。自動更新用のスクリプトが参照している標準添付ライブラリのバージョンリストのほうが追随漏れしてたのではないかと思われる。

ruby-trunk-changes 2023-01-29

今日は拡張ライブラリ stringio の StringIO#gets のキーワード引数 chomp に true を指定した時の不具合の修正などがありました。

[21dced8b01] Nobuyoshi Nakada 2023-01-28 12:59:54 UTC

拡張ライブラリ stringio の StringIO#gets にキーワード引数で chomp: true を指定した時に区切り文字が複数バイトであった時に結果に区切り文字が帰ってきてしまう不具合を修正しています。 [ruby-core:112098] [Bug #19389]

[8250b46794] BurdetteLamar 2023-01-28 20:42:08 UTC

標準添付ライブラリ net/http の rdoc 用コメントの typo 修正。

[4ffef59bb1] Luke Gruber 2023-01-29 01:01:49 UTC

Ractor の rdoc 用コメントの英文の修正など。 https://github.com/ruby/ruby/pull/7180

ruby-trunk-changes 2023-01-28

今日は主に YJIT の Rust 実装から不要な symbol の公開がされていた問題の対策などがありました。

[17c8bf2c63] Alan Wu 2023-01-12 23:38:00 UTC

configure でリンカコマンドを格納する変数 LD に clang 利用時に clang が設定されるのを避けて ld コマンドに置換するようにしているようです。 YJIT で LD を使いたくて clang では利用できないオプションがあるからとのこと。 [ruby-core:111402] [Bug #19255]

[e7e48e8a66] Alan Wu 2023-01-12 22:07:00 UTC

configure で objcopy コマンドに相当するコマンドを変数 OBJCOPY に設定するための AC_CHECK_TOOLS() でみつからなかった時に ":" をセットしておくようにしています。これも YJIT で OBJCOPY 変数が必要だからとのこと。 [ruby-core:111402] [Bug #19255]

[7d4395cb69] Alan Wu 2023-01-18 20:58:35 UTC

YJIT の Rust 実装で大量の関数名などの symbol が公開されているのを修正するため libyjit.o を $(LD) と $(OBJCOPY) を使って export する symbol を削って生成するようにしているようです。 Rust で symbol の公開状態を制御することはできないそうなので生成したオブジェクトファイルをいじるということをしているみたいですね。 [ruby-core:111402] [Bug #19255]

[8429134d0d] Daniel Colson 2023-01-27 01:39:27 UTC

bundler の --standalone というオプション利用時の警告が意図せず出ることがあったみたいなのを修正しています。

ruby-trunk-changes 2023-01-27

今日は主に拡張ライブラリ fiddle のビルド修正などがありました。

[88f2b94065] Aaron Patterson 2023-01-26 16:04:55 UTC

78fcc9847a9db6d42c8c263154ec05903a370b6b の Object Shapes の機構でインスタンス変数管理する上限のインスタンス変数の数を絞った変更を revert しています。

[70829928cb] Samuel Giddins 2023-01-26 03:30:37 UTC

rubygems の Gem::List というクラスを deprecate 定数として、rdoc によるドキュメントも抑制するように :nodoc: タグを追加しています。削除予定みたいです。

[1b06cd3f09] Samuel Williams 2023-01-27 01:49:26 UTC

Coverage 情報のセットアップのための iseq_new_setup_coverage() から iseq_setup_coverage() を呼ぶ時に line_offset 引数をちゃんと伝播させるようにしています。まあただ今の呼び元は常に 0 なので現状では実質的な変更はないみたいです。 https://github.com/ruby/ruby/pull/7177

[5afc830130] Andrew Konchin 2023-01-03 17:24:42 UTC

拡張ライブラリ openssl のテストでいくつか使われていたユーティリティメソッドを子プロセスを起動するテストから使うためにわざわざ require していたので廃止して呼び元に処理を展開するようにしています。

[967dec5d61] Hiroshi SHIBATA 2023-01-04 08:28:27 UTC

拡張ライブラリ openssl のテストで upstream リポジトリ内でのテストのために envutil への依存をやめて core_assertions の require を追加しています。

[1df7f359d1] Aaron Patterson 2022-12-27 19:19:25 UTC

拡張ライブラリ fiddle の Fiddle.dlwrap, Fiddle.dlunwrap の rdoc 用コメントでメモリアドレスを 16進数表記の文字列で扱うという(古い挙動?)記述になってたのを整数に修正しています。

[f4609b6bc4] Aaron Patterson 2022-12-27 22:23:51 UTC

1df7f359d1ce916b34d141e6fbc0f591a2bc8428 の続きで拡張ライブラリ Fiddle.dlwrap, Fiddle.dlunwrap の rdoc 用コメントのサンプルコードから不要なプロンプト部分を削っています。

[f49bb1505b] Khem Raj 2023-01-25 01:54:33 UTC

拡張ライブラリ fiddle のヘッダファイル ext/fiddle/fiddle.h に ALIGN_OF() マクロを _Alignof() を利用して定義するようにしています。ただし古い GCC には不具合があるそうなのでその場合のために offsetof() を使った定義も preprocessor 分岐して残しています。 https://github.com/ruby/fiddle/pull/120

[06e30df408] Nobuyoshi Nakada 2023-01-07 09:45:15 UTC

標準添付ライブラリ syntax_suggest の Kernel モジュールを再 open してメソッド追加しているところで rdoc によるコメントのドキュメント化を抑制するようにしています。

[71256caf7f] Samuel Giddins 2023-01-26 03:20:15 UTC

rubygems の各種ライセンスの一覧を持ってる lib/rubygems/util/licenses.rb を更新して新しいライセンスを追加しています。

[47b66a5acd] Benoit Daloze 2023-01-25 13:01:10 UTC

拡張ライブラリ bigdecimalBigDecimal.allocate を読んだ時のエラーを確認するテストに TruffleRuby 対応の分岐を追加しています。

ruby-trunk-changes 2023-01-26

今日は主にテストの coverage 測定のための整備や bundled gems のビルドプロセスまわりの変更などがありました。

[78fcc9847a] Jemma Issroff 2023-01-25 18:45:32 UTC

Object Shapes の機構でインスタンス変数を管理する Shape をインスタンス変数の数が 50 までの時に限り、それを越えたらひとつのクラス内でたくさん Shape がある時の fallback と同様に st_table で管理する方法を使うようにしています。

[17f5631c6e] Nobuyoshi Nakada 2023-01-18 11:36:31 UTC

make extract-gems で gems/bundled_gems に commit hash やタグの指定が記述されていた時にリポジトリから clone してきたソースコードから gem をビルドするようにしています。これって make install した時もバージョンで指定したパッケージを rubygems.org からとってくるかわりにビルドしたものを install することになるのかな? [ruby-core:111812] [Bug #19340]

[7a4f7fc14d] Nobuyoshi Nakada 2023-01-19 12:55:44 UTC

bundled gems のビルド用のディレクトリのタイムスタンプファイルの依存関係を追加しています。gems/bundled_gems の更新によって再ビルドが必要な時に実施するためかな?

[7eef4547b1] Hiroshi SHIBATA 2023-01-20 09:13:53 UTC

17f5631c6ea118b9ce0e8776dc50c7b1dcdaf596 の defs/gmake.mk の変更で git clone する時のディレクトリ名の指定が間違っていたのを修正。

[be6a347ace] Nobuyoshi Nakada 2023-01-20 14:18:56 UTC

17f5631c6ea118b9ce0e8776dc50c7b1dcdaf596 などの続きで defs/gmake.mk で gems/bundled_gems の commit hash やタグの指定をとりだす処理? に渡すファイル名が間違っていたのを修正しているみたいです。Makefile の難しい機能を使ってるっぽい。

[eb2670e32d] Hiroshi SHIBATA 2023-01-26 01:17:09 UTC

e25c173c97e1e0e538aeb85734cabcbb59cd11ab で標準添付ライブラリ reline から win32api を require する時の feature 名を大文字小文字を区別するように変更したのを revert しています。 JRuby のためとのことでしたが JRuby 側で修正されたのかな?

[98e84f3f7a] Hiroshi SHIBATA 2023-01-26 01:50:08 UTC

make test-all のテスト時の coverage を取るための tool/test-coverage.rb で除外するファイルパスに tool/lib や lib/bundler/vendor などを追加しています。

[8662d70a8b] Hiroshi SHIBATA 2023-01-26 02:02:41 UTC

98e84f3f7a1fa69530c67ab9bc63271b812718ea に続いて tool/test-coverage.rb で coverage 測定除外するファイルに lib/rubygems/ の配下の vendoring されている gem のディレクトリを追加しています。

[069b6f88e2] Hiroshi SHIBATA 2023-01-26 02:16:55 UTC

さらに tool/test-coverage.rb の coverage 測定除外するディレクトリの指定を tool/ 配下全て無視するように追加しています。

[6608d47bed] Hiroshi SHIBATA 2023-01-26 04:07:00 UTC

make test-syntax-suggest でも環境変数 COVERAGE の指定で coverage 測定できるようにしています。

[2d98127131] Hiroshi SHIBATA 2023-01-26 05:05:01 UTC

6608d47bed660a3f5ea4c10ac6410747152db546 に対応して tool/test-coverage.rb で coverage 測定除外するディレクトリとして spec も追加しています。

[545ade21a2] Hiroshi SHIBATA 2023-01-26 05:13:13 UTC

make test-spec つまり rubyspec でも環境変数 COVERAGE が設定されたら coverage 測定するようにしています。

[00ee1d128f] Nobuyoshi Nakada 2023-01-25 04:20:39 UTC

configure で BASERUBY にオプションを追加するのに RUBY_APPEND_OPTION というコマンドを利用して重複したオプション追加を抑制するようにしています。

[9794e49c88] Nobuyoshi Nakada 2023-01-25 06:30:29 UTC

defs/gmake.mk で rubyspec の C API テストのための拡張ライブラリのビルドの時の ld に -L. オプションを追加するようにしています。

[6422fef90c] Nobuyoshi Nakada 2023-01-25 07:09:40 UTC

tool/mkconfig.rb で rbconfig.rb を生成する時に(主に macOS の?) universal binary でビルドされている時の "target_cpu" の項目の設定のしかたを変更しているみたいですが、難しくてよくわからない。

ruby-trunk-changes 2023-01-25

今日は array.c の ary_recycle_hash() という内部的な Hash オブジェクトのメモリを強制的に解放する関数の利用をやめる変更などがありました。

[5eeebd68cf] Peter Zhu 2023-01-20 20:45:31 UTC

array.c の inline 関数 ary_recycle_hash() を削除して呼んでるところも削除しています。 内部的に利用する Hash オブジェクトの st_table を GC を待たずに強制的にクリアしてメモリ解放する処理ですが、GC で管理すべきでしょってことで削除しています。まあそれはそうですが、これ結構昔から入ってるものなので影響はどうかな。

[e82cef1762] yui-knk 2023-01-23 14:54:27 UTC

parse.y の static 関数 tokenize_ident() から未使用の引数 last_state を削除しています。

[5e1e5af2e7] Hiroshi SHIBATA 2023-01-25 07:45:19 UTC

make test-all で coverage を取るために利用する simplecov の gem をインストールするバージョンの指定をやめて、新しいバージョンをサポートするための修正を tool/test-coverage.rb に加えています。 Coverage.result の戻り値の細かい仕様が変化してたみたいです。

ruby-trunk-changes 2023-01-24

今日はテストの追加や rubygems のテスト用 Rust 製拡張ライブラリのパッケージ更新の変更だけでした。

[e23e8f4a6b] "dependabot[bot]" 2023-01-23 15:05:17 UTC

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

[98081ac7cc] "dependabot[bot]" 2023-01-23 22:18:55 UTC

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

[5a73e131d7] Nobuyoshi Nakada 2023-01-17 01:08:06 UTC

プロセス終了時に実行される END ブロック内で外のローカル変数を参照するテストを test-all と rubyspec で追加しています。