ruby-trunk-changes 2020-05-23

今日は Module の include と prepend の組合せでの不具合修正や bundler の更新、 fiddle の構造体アクセスの機能の強化などがありました。

[c7ebeb7eda] Hiroshi SHIBATA 2020-05-15 12:31:12 UTC

bundler を upstream からマージしています。

[9c2752296d] Hiroshi SHIBATA 2020-05-16 00:24:57 UTC

c7ebeb7eda9f7f6bbb48effe1efc026eeb64d09c の bundler 更新で bundler.gemspec ファイルの spec.files に格納するファイルの glob のパターンを ruby リポジトリ同梱版にあわせて? man file を含めるよう修正しています。

[26367367ec] Hiroshi SHIBATA 2020-05-16 10:47:24 UTC

c7ebeb7eda9f7f6bbb48effe1efc026eeb64d09c の bundler 更新の対応で ruby リポジトリ同梱版で通らないテストにタグをつけて実行除外するようにしています。

[93ebf9643d] Hiroshi SHIBATA 2020-05-21 10:57:19 UTC

1f011cccb16ca9e8ee378cb5a9d4c14459afd68c の bundler のテストの skip 追加のうちひとつを revert しています。

[1d889c9656] Hiroshi SHIBATA 2020-05-21 12:05:07 UTC

再度 bundler を upstream からマージしています。

[df5fd1d09c] Hiroshi SHIBATA 2020-05-21 12:57:47 UTC

今度は 1d889c96562e9619d2cab443da711e82daeb983c での bundler の更新に対応して失敗する bundler のテストに :ruby_repo タグをつけて実行除外するようにしています。

[ef13558fcd] Nobuyoshi Nakada 2020-05-22 12:21:50 UTC

79d9528ddca1dfe2dd99287dc88fd7c2b30f7137 の struct pinned_list を wrap するオブジェクトを生成する時の潜在的メモリリーク修正でうっかり rubygems の変更が混ざってたのを revert しています。

[c745a60634] Jeremy Evans 2020-04-05 19:10:42 UTC

Module を include した時に内部的に作られる IClass が Module#prepend 対応のために指す RCLASS_ORIGIN() を対応するの Module の RCLASS_ORIGIN() になるようにしていたのが GC の不具合を引き起こしていたようなので、Module#include や #prepend 時に Array を使って IClass と origin の指す先の参照を両方保持しておくようにしています。また obj_free() で T_ICLASS の mtbl が共有されていた時に解放しないようにしています。 [ruby-core:97581] [Bug #16736]

[8d798e7c53] Jeremy Evans 2020-05-22 14:54:34 UTC

c745a60634260ba2080d35af6fdeaaae86fe5193 の修正が VM の assertion にひっかかるようになったそうなので revert しています。

[36f29b598a] Hiroshi SHIBATA 2020-05-22 22:27:42 UTC

tool/sync_default_gems.rb で rubygems と bundler の同期の前の掃除で削除するファイル名パターンを修正しています。

[2ec5f324f4] git 2020-05-22 22:28:32 UTC

version.h の日付更新

[f8647343ed] David Rodríguez 2020-05-14 10:02:16 UTC

bunder の upstream で削除済みのファイルの削除。

[da484c3187] BurdetteLamar 2020-05-22 20:40:01 UTC

Hash#delete, Hash#shift, Hash#delete_if, Hash#reject! などの rdoc 用コメントを修正しています。なんか最近 Hash のドキュメントの修正が続いているけど説明が良くなってるのかどうかはいまひとつよくわからない。

[fdb31aa7ab] Henrik Nyh and Tomas Skogberg 2020-04-20 15:10:37 UTC

標準添付ライブラリ time の Time. xmlschema の引数名の修正とエラーメッセージのちょっとした修正。

[ad729a1d11] Jeremy Evans 2020-04-05 19:10:42 UTC

8d798e7c531c19756f38aadd03cb801a48cbd97d で revert された c745a60634260ba2080d35af6fdeaaae86fe5193 のリトライ。rb_vm_check_redefinition_opt_method() で最適化命令の脱最適化のためのメソッド再定義の検出部分や find_defined_class_by_owner() で追随する変更が必要だったようです。 [ruby-core:97581] [Bug #16736]

[aa1d3c7d2c] sinisterchipmunk 2020-01-22 07:30:22 UTC

拡張ライブラリ fiddle の Fiddle.malloc で確保したメモリを明示的に 0 クリアするようにしています。

[4a835621ce] sinisterchipmunk 2020-01-22 07:55:16 UTC

拡張ライブラリ fiddle の Fiddle::CStruct#[] や #[]= で offset とsize によるメモリ領域の ASCII-8BIT の文字列としての切り出しに対応するようにしています。よくみてないけど便利そう。

[77cc13943c] sinisterchipmunk 2020-01-23 01:37:23 UTC

拡張ライブラリ fiddle に StructArray というクラスを導入して Fiddle::CStruct#[] で配列型のメンバーをこれで返すことで値の参照をしやすくしています。便利そう。

[5fb7ca33e6] Sutou Kouhei 2020-04-18 06:40:13 UTC

拡張ライブラリ fiddle の gemspec ファイルに拡張ライブラリビルド用の extconf.rb のパス指定を追加しています。

[13f64333ea] Sutou Kouhei 2020-04-18 06:51:03 UTC

拡張ライブラリ fiddle のバージョンを ext/fiddle/lib/fiddle/version.rb を追加して定数として定義するようにしています。

[a0dcdd64c5] Sutou Kouhei 2020-04-18 06:51:14 UTC

拡張ライブラリ fiddle のバージョンを 1.0.1 に更新しています。

[d5c0018a9a] Sutou Kouhei 2020-04-18 06:56:51 UTC

13f64333ea6c6b904274cb1a95d2bc82236e9237 で導入した ext/fiddle/lib/fiddle/version.rb で Fiddle を Class として定義してたので Module に修正しています。

[74a4558c14] Sutou Kouhei 2020-04-18 06:56:57 UTC

拡張ライブラリ fiddle の gemspec ファイルの spec.files を更新しています。

[24b615e82e] Sutou Kouhei 2020-04-18 06:57:41 UTC

拡張ライブラリ fiddle で require "fiddle" したら Fiddle::VERSION も定義されるように require を追加しています。

[3015a7aae7] Chris Seaton 2020-05-18 23:12:47 UTC

拡張ライブラリ fiddle の rdoc 用コメントでメモリ管理についての説明を追加。テストでも解放漏れなどを修正しています。

[0b2fc4cf37] Nobuyoshi Nakada 2020-05-23 05:56:13 UTC

tool/extlibs.rb の do_link で symbolik link を作成する前に対象のファイルが存在するかチェックして、なかったら生成しないようにしています。

[d48c92aa04] Hiroshi SHIBATA 2020-05-23 07:43:58 UTC

0e3b0fcdba70cf96a8e0654eb8f50aacb8024bd4 で導入された blocking fiber のテストのために追加された test/fiber/ の配下のテスト(test/scheduler/ から移動されたもの)がテストクラス名はまだ TestSchedulerXxxx になってたのでテストクラス名も TestFibverXxxx に改名しています。また test/fiber/test_fiber.rb は逆に test/fiber/test_scheduler.rb にファイル名を改名しています。

[b2976a4fca] Hiroshi SHIBATA 2020-05-23 08:24:29 UTC

d48c92aa04ffd3a1cecef599eaa5e4409aab2fe4 の再修正。test_fiber.rb を test_scheduler.rb に改名した時に assertion でファイル名を使ってるところが追随してなかったので追随させています。