ruby-trunk-changes 2020-12-24

今日は Method#inspect や Ractor 関係の不具合修正や magic comment の shareable_constant_value の設定値を増やす新機能追加の他は主にドキュメントの加筆修正などがありました。

[31bd172185] aycabta 2020-12-23 12:18:48 UTC

lib/irb/ruby-lex.rb でブロックパラメーターに外側の変数と同じ名前を使っていたのを警告抑制のため改名しています。

[129ecb43e5] aycabta 2020-12-23 12:19:27 UTC

irb のプロンプトのテストでエラー時のメッセージをより詳細にしています。

[28e9344fa4] aycabta 2020-12-23 11:29:57 UTC

標準添付ライブラリ irb の StdioInputMethod#eof? で単に IO#eof? を呼ぶのではなくて IO.select で入力を待って getc でなにが取れるかをチェックするように変更しています。 --inf-ruby-mode というオプションをつけた時の対策らしいです。

[94015200b6] Kenta Murata 2020-12-23 14:40:04 UTC

拡張ライブラリ fiddle の Fiddle::VERSION を 1.0.6 に更新しています。

[3a81daaf8d] Yusuke Endoh 2020-12-23 15:15:29 UTC

Module#public_class_method も attr_xxx と同様に引数に引数を受け取れるようになってたのでドキュメントと NEWS に反映させています。 [ruby-core:100763] [Feature #17314]

[221ca0f828] git 2020-12-23 15:16:59 UTC

version.h の日付更新

[fb54574393] Nobuyoshi Nakada 2020-12-23 16:24:30 UTC

テスト用の assert_syntax_error にキーワード引数の委譲用の keyword rest 引数を追加しています。

[4a8ff22f0c] Nobuyoshi Nakada 2020-12-23 16:25:22 UTC

parse.y の parser_yylex() で struct parser_params::lex::paren_nest の更新が漏れてた不具合を修正。 [ruby-core:101651] [Bug #17431]

[8feb40f49a] Marc-Andre Lafortune 2020-12-16 20:39:02 UTC

新しく追加された magic comment の shareable_constant_value について doc/syntax/comments.rdoc にドキュメントを追加し NEWS にもエントリを追加しています。

[a8fc72f5a8] Yusuke Endoh 2020-12-23 16:50:45 UTC

sample に同梱されている TRICK 2015 の入賞作品が Data クラスの削除により動かなくなってたようなので、かわりに Proc を使う(4文字の定数なら良かったみたいです)ように書き換えています。

[b32ed8aa41] Koichi Sasada 2020-12-23 16:58:43 UTC

DTrace 用の probes.d から method__cache__clear という probe の宣言(っていうのかな)を削除しています。 [ruby-core:97289] [Bug #16658]

[458d5175b9] Marcus Stollsteimer 2020-12-23 18:47:26 UTC

doc/syntax/comments.rdoc の文法やマークアップの細かな修正。

[7fcb6b3dbe] Koichi Sasada 2020-12-23 19:18:17 UTC

rb_ractor_thread_list() で RACTOR_LOCK()/RACTOR_UNLOCK() でのロック内で配列への push をしないようにして、事前に確保したメモリ領域にいったん詰めてからロック解放後に rb_ary_push() を呼ぶようにしています。

[7340e7f827] Koichi Sasada 2020-12-23 19:29:59 UTC

rb_thread_atfork_internal() の Ractor 関係の処理を rb_ractor_atfork() という関数に切り出して ruby_single_main_ractor のリセットなど main Ractor のみでロックや barrier 関係の状態も初期化する処理も追加しています。

[05a756b332] Kenta Murata 2020-12-24 00:32:31 UTC

Memory View の rdoc 用コメントの文法修正。

[f755926ddd] Yusuke Endoh 2020-12-24 01:14:39 UTC

Module のテストで private_methods の結果の順序に依存しないように sort してからチェックするようにしています。

[6ed6b85ece] Nobuyoshi Nakada 2020-12-23 05:09:28 UTC

ruby_atomic.h の atomic な操作をするための各種マクロを include/ruby/atomic.h に移動して拡張ライブラリからも利用できるようにしています。

[66719d7dc8] Nobuyoshi Nakada 2020-12-23 07:30:16 UTC

6ed6b85ece8733518a7da0c3ec714f20d1102bf5 で追加した include/ruby/atomic.h を etc で利用するようにしています。3286380ebcc239b3fe1044884780162f1ee079fe で Ractor safe 化のために mutex を使うようにしたけどこっちのほうが軽いからということですかね。

[9aca51e8a5] Koichi Sasada 2020-12-24 03:09:08 UTC

doc/extension.rdoc および doc/extension.ja.rdoc に Ractor safe な拡張ライブラリにするための方法論を追記しています。

[1e215a66d2] Jeremy Evans 2020-12-23 05:30:32 UTC

Method#inspect が表示するメソッドの所属する Class/Module の表示が特異メソッドの時に? おかしくなってた不具合を修正しています。 [ruby-core:101635] [Bug #17428]

[6f29716f9f] Koichi Sasada 2020-12-24 01:59:27 UTC

magic comment の shareable_constant_value の設定できる値に experimental_copy というのを追加して、定数に代入する値を deep copy して shareable にするようにしています。

[e43b5aa52d] Koichi Sasada 2020-12-24 05:31:01 UTC

6f29716f9ffb710af7f344839ec67ef2b8a48ab2 で doc/syntax/comments.rdoc に追記したサンプルから冗長な行を削除しています。

[8e1c0b2f93] Yusuke Endoh 2020-12-24 04:43:22 UTC

Dir.chdir が重複して呼ばれた時にブロックを渡した場合 "または" 異なる Thread から呼ばれてたら例外を発生させるようにしていましたが、ブロック渡しの時は警告のみに留めるようにしています。 [ruby-core:91807] [Bug #15661]

[5696c69354] zverok 2020-12-22 21:23:14 UTC

Fiber#transfer についての rdoc 用コメントのサンプルなどをコメントを増やして書きなおしています。これをみて思い出したけど拡張ライブラリの fiber はこれを reqiure すると Fiber#transfer が使えるようになるっていうものでしたね。

[24ae0e8ed7] zverok 2020-12-23 06:14:18 UTC

Fiber#transfer の rdoc 用コメント再修正。

[8aa299de24] Marc-Andre Lafortune 2020-12-24 06:36:08 UTC

doc/syntax/comments.rdoc の magic comment shareable_constant_value についての記述の英文修正。

[176b75747c] Takashi Kokubun 2020-12-24 06:59:57 UTC

NEWS に MJIT の inline 化対応命令/メソッドの追加や諸々の最適化などについて追記しています。

[a76082f499] Marc-Andre Lafortune 2020-12-24 07:10:10 UTC

Ractor のメソッドの rdoc 用コメントに call-seq がないものに追加しています。また一部文法の修正もしています。

[b343d54792] Nobuyoshi Nakada 2020-12-24 07:16:20 UTC

6ed6b85ece8733518a7da0c3ec714f20d1102bf5 で追加した include/ruby/atomic.h で preprocessor の分岐のために MSC_VERSION_SINCE() を使って MSVC のバージョンをチェックしていたのを RBIMPL_COMPILER_SINCE() というマクロを利用するように変更しています。

[f910a27d37] Yusuke Endoh 2020-12-24 07:37:52 UTC

README.md の特徴の Portability を謳っている文から Haiku の記述を削っています。もう support 対象ではなくなっているので。

[1729fd8c0a] Yusuke Endoh 2020-12-24 08:00:30 UTC

doc/contributing.rdoc に昔やってた開発者会議で提案したい内容をスライド 1枚にまとめてプレゼンするっていう作法(?) について書かれてましたが、今はもう実施してないので削っています。

[1415653c84] zverok 2020-12-12 16:55:17 UTC

Fiber の non-blocking fiber 関連のメソッドや定数、 Scheduler に定義すべきメソッドについてもダミーの(実際には定義しない)クラスを導入して rdoc 用コメントを追加しています。

[85f0179479] Yusuke Endoh 2020-12-24 08:14:48 UTC

doc/keywords.rdoc の予約語 in の説明に pattern matching での利用についての言及を追記しています。そうかこれキーワード引数についてじゃなくて予約語リストのドキュメントか(細分化されすぎてよくわからなくなってきた)。

[eb3944c287] Soutaro Matsumoto 2020-12-24 08:19:23 UTC

bundled gem の rbs のバージョンを 1.0.0.pre2 に更新しています。 https://github.com/ruby/ruby/pull/3991

[d58537cf8f] "NARUSE, Yui" 2020-12-20 17:26:19 UTC

7856da5fe75a76bec909778e411270c10a04ca3a で tool/format-release で作るリリースノート用のテンプレからパッケージの bz2 のぶんの記述を消してたのを revert しています。 2.7 以前の安定版はまだ .bz2 も提供しているので。

[709d9cf1ba] "NARUSE, Yui" 2020-12-20 18:02:30 UTC

リリース作業で使うためのツールのためのディレクトリ tool/releng/ を追加して、メーリングリストへのメール文面生成のためのツール tool/releng/gen-mail.rb やサイトのリリース文生成のためのツールなども追加しています。

[6a6daf3803] "NARUSE, Yui" 2020-12-24 08:18:07 UTC

709d9cf1ba47d6df20ba067fdc8e92a7a817d1d3 で追加した tool/releng/update-www-meta.rb で生成する YAML ファイルに tag の項目が漏れてたのを追加しています。

[a89932799c] "NARUSE, Yui" 2020-12-24 08:19:16 UTC

同じく 709d9cf1ba47d6df20ba067fdc8e92a7a817d1d3 で追加した tool/releng/gen-release-note.rb で _data/releases.yml (これは www.ruby-lang.org のソースコードに含まれてる設定ファイル)に依存しないようにしています。

[8664c3ddef] Koichi Sasada 2020-12-24 08:41:48 UTC

doc/ractor.md の追記/修正。

[1a74fb011d] Yusuke Endoh 2020-12-24 09:03:39 UTC

doc/maintainers.rdoc の typo (大文字小文字違い)修正。

[7ca2ca9e32] Marc-Andre Lafortune 2020-12-24 07:53:26 UTC

Method#inspect のテストで重複した不要なコードが残ってたのを削除。

[c601a7ecfd] Marcus Stollsteimer 2020-12-24 10:30:30 UTC

85f01794795521e29e64e06ead416cbd3d52c55c の doc/keywords.rdoc の予約語 in についての追記で重複していた単語を削っています。

[a4419a55f0] Marcus Stollsteimer 2020-12-24 10:31:06 UTC

doc/extension.ja.rdoc の行末の空白を削除。

[9f9a389d95] Marcus Stollsteimer 2020-12-24 10:35:03 UTC

doc/syntax/pattern_matching.rdoc の typo や文法の修正。