ruby-trunk-changes 2020-08-31

今日はバージョン番号を 2.8.0 から 3.0.0 に変更する matz のコミットやテストなどでのその対応がありました。

[585a659b1e] Burdette Lamar 2020-08-30 15:34:13 UTC

Array の rdoc 用コメントで call-seq から alias のぶんを消したり不要なサンプルを消したり。 https://github.com/ruby/ruby/pull/3475

[9b88851c83] git 2020-08-30 15:34:36 UTC

version.h の日付更新

[21c62fb670] "Yukihiro \"Matz\" Matsumoto" 2020-08-31 07:38:13 UTC

include/ruby/version.h の RUBY_API_VERSION_{MAJOR,MINOR} を更新してバージョンを 2.8 から 3.0 にしています。ついに 3.0 になりましたかー。

[f588caa797] Nobuyoshi Nakada 2020-08-31 07:50:15 UTC

NEWS.md のサンプルコードの部分をインデントしないように書いてたのをインデントさせています。

[34c20c995d] Nobuyoshi Nakada 2020-08-31 07:51:37 UTC

NEWS の拡張ライブラリ sdbm の削除についての記述の英文法修正。

[3e1aea4613] Hiroshi SHIBATA 2020-08-31 08:18:14 UTC

gems/bundled_gems から minitest を削除しています。 minitest が ruby のバージョンが 2.x であることを要求しているそうなので、とりあえず消しとくということみたいです。

[0eec4ae851] Nobuyoshi Nakada 2020-08-31 08:23:54 UTC

標準添付ライブラリ webrickWEBrick::Utils.getservername が Socket.gethostbyname を利用していたのでこれをやめて Socket.gethostname をそのまま返すようにしています。

[eb9342d348] Nobuyoshi Nakada 2020-08-31 08:37:21 UTC

String#lines などの Enumerator にブロックを渡した時の警告は r66575 でとりやめていて、テストでは 3.0 以降は再度警告が出る予定として分岐が書かれてたのも取り下げています。 [ruby-core:90728] [Feature #6670]

[b674fc9ca2] 卜部昌平 2020-07-28 01:58:37 UTC

deprecated warning が出る状態で残していた Thread.exclusive をついに削除しています。 [ruby-core:99636] [Feature #17125]

[86737c509c] Hiroshi SHIBATA 2020-08-31 08:48:25 UTC

make test-bundled-gems での gem install する gem から minitest と hoe を削除しています。 3.0 だと動かないためとのこと。

ruby-trunk-changes 2020-08-30

今日はドキュメントの修正と Module#using の潜在的不具合についての KNOWNBUGS.rb への追加などがありました。

[f0ad5594bf] Burdette Lamar 2020-08-29 17:15:06 UTC

Array の rdoc 用コメントの細かすぎるサンプル削除や call-seq のスタイル修正など。 https://github.com/ruby/ruby/pull/3473

[a8f11df328] git 2020-08-29 17:15:26 UTC

version.h の日付更新

[726f2e59f9] Burdette Lamar 2020-08-29 20:16:02 UTC

Array の rdoc 用コメントの細かすぎるサンプルの削除など。 https://github.com/ruby/ruby/pull/3474

[9eda654781] Nobuyoshi Nakada 2020-08-30 07:07:12 UTC

b9007b6c548f91e88fd3f2ffa23de740431fa969 でインラインメソッドキャッシュを T_IMEMO 型のオブジェクトとして持つようにした変更後に Module#using を呼ぶと clang の ASAN (Address Sanitizer) のチェックにひっかかっていたのを再現させるテストを KNOWNBUGS.rb に追加しています。キャッシュの invalidate のところで不正なメモリアクセスの可能性があるみたいですね。

ruby-trunk-changes 2020-08-29

今日は Tempfile.open にブロックつき呼び出しした時に最後に一時ファイルの削除まで行なうようにする仕様変更や IO.copy_stream の RedHat での不具合修正などがありました。

[1c138327e0] Kazuhiro NISHIYAMA 2020-08-28 13:03:06 UTC

75c4e9b72eca22b087c8c2d6d8a950922545aa00 で定数化した re.c の OPTBUF_SIZE を static const int での宣言から enum の定数に変更しています。 VC でうまくコンパイルできなかったようです。

[3dd63108b0] Benoit Daloze 2020-08-28 18:26:00 UTC

ruby/mspec の upstream からのマージ。

[b49307c701] Benoit Daloze 2020-08-28 18:26:02 UTC

ruby/spec の upstream からのマージ。

[3ffef9a032] git 2020-08-28 18:28:09 UTC

version.h の日付更新

[4a5dd970a7] Burdette Lamar 2020-08-28 18:39:16 UTC

doc/method_documentation.rdoc に alias による別名について call-seq に列挙しなくてもいいなどの基準を追記しています。 https://github.com/ruby/ruby/pull/3468

[45c40f5631] Burdette Lamar 2020-08-28 19:56:02 UTC

Array の rdoc から不要な相互参照やサンプルの削除など。 https://github.com/ruby/ruby/pull/3469

[c2011d1a51] Kazuhiro NISHIYAMA 2020-08-29 03:30:37 UTC

include/ruby/internal/config.h のコメントの typo 修正。関係ないですがなんかこのコメント妙に二重のスペースが多いですね。

[93df301048] Masaki Matsushita 2020-08-29 06:38:07 UTC

IO.copy_stream の実装に sendfile(2) を使う時に NFS で ENOTSUP で返ってくることがあったとのことでそれに対応するようにしています。 [ruby-core:98837] [Feature #16965]

[56dd578d7e] Masaki Matsushita 2020-08-29 07:10:58 UTC

93df3010482ad52e5ada2e416c996005da956e1e の再修正。 ENOTSUP のかわりに EOPNOTSUP に対応するように変更しています。 Linux では同じ値に定義されているようですがチケットをみると EOPNOTSUP のほうが意図したエラーだったようなので。 [ruby-core:98837] [Feature #16965]

[6d946665bd] Masaki Matsushita 2020-08-29 08:18:59 UTC

拡張ライブラリ socket の Socket.gethostbyname と Socket.gethostbyaddr にも deprecated warning を表示するようにしています。

[232d6c4077] Benoit Daloze 2020-08-29 09:51:05 UTC

tool/sync_default_gems.rb で利用していたグローバル変数を定数に置き換えています。

[1199f1a4aa] Benoit Daloze 2020-08-29 09:58:05 UTC

6d946665bd79a93fb98b2d25400d1b6174472302 で Socket.gethostbyname と Socket.gethostbyaddr に警告が出るようになったので rubyspec で利用していたところで警告を抑制するようにしています。 Addrinfo による代替を使えば……と思ったけどそもそもそのメソッドのテストだからしかたないのか。

[fa21985a7a] Benoit Daloze 2020-08-29 09:53:05 UTC

標準添付ライブラリ tempfile の Tempfile.open のブロック渡しでの最後の close を close! に変更してファイル削除されるようにしています。

[ff323b2a5c] Benoit Daloze 2020-08-29 10:11:07 UTC

fa21985a7a2f8f52a8bd82bd12a724e9dca74934 で Tempfile.open のブロック渡しで読んだ後にファイルが消されるようになったのに rubyspec を追随させています。

[e8c3872555] Benoit Daloze 2020-08-29 10:17:07 UTC

同じく fa21985a7a2f8f52a8bd82bd12a724e9dca74934 で Tempfile.open のブロック渡してファイル削除するようにしたのに追随してテストやツールで後であらためて close! していたところなどを削っています。

[3beecafc2c] Benoit Daloze 2020-08-29 10:23:31 UTC

標準添付ライブラリ reline と openssl のテストでも fa21985a7a2f8f52a8bd82bd12a724e9dca74934 で Tempfile.open のブロック渡しでファイル削除されるようになった変更に追随させています。

[d7492a0be8] Benoit Daloze 2020-08-29 10:49:20 UTC

e8c3872555fc85640505974e6b1c39d315572689 で Tempfile.open の仕様変更に追随させたテストのうち rubygems と rdoc のテストのぶんを revert しています。これらは古い ruby もサポートするので 2.7 以前でも動かないといけないというのと、close! を余分に呼んでも副作用はないので変更しなくてもあまり問題はないようです。

ruby-trunk-changes 2020-08-28

今日は標準添付ライブラリ stringio と io/console の不具合修正や Method#super_method の alias との組合せでの不具合修正などがありました。

[b8bfb1d5f5] Burdette Lamar 2020-08-27 13:31:32 UTC

Hash の rdoc 用コメントで詳細すぎるサンプルコードの削除など。 https://github.com/ruby/ruby/pull/3459

[96d701f737] Nobuyoshi Nakada 2020-08-27 14:39:15 UTC

2038cc6cab6ceeffef3ec3a765c70ae684f829ed の拡張ライブラリ socket の変更のインデント修正のみ。

[b3c1c767ea] Yoann Lecuyer 2020-08-26 20:46:58 UTC

拡張ライブラリ stringio の StringIO#each_codepoint が返す Enumerator でブロックを呼び出す前にファイルポジションの更新をするように修正しています。これはバックポートしたほうが良さそう。

[f4b9e94317] Leam Hall 2020-08-21 16:10:54 UTC

拡張ライブラリ io/console の winsize= のテストで Errno::EINVAL 例外を無視するようにしています。

[280d028125] Nobuyoshi Nakada 2020-08-27 14:52:10 UTC

拡張ライブラリ stringio の gem としてのバージョンを 0.1.4 に更新しています。

[f41bd0d708] git 2020-08-27 15:06:25 UTC

version.h の日付更新

[c60aaed185] Jeremy Evans 2020-08-27 15:37:03 UTC

Method#super_method を同名のメソッドが継承元にありなおかつ alias で作ったメソッド名で作った Method オブジェクトに呼ぶと本来呼ばれるメソッド(alias で作ったメソッド)ではなくて継承元のメソッドのほうが返されてしまっていた不具合を修正しています。 [ruby-core:99709] [Bug #17130]

[5483bf8fa4] Aaron Patterson 2020-08-27 16:00:14 UTC

misc/lldb_cruby.py の lldb_inspect コマンドを T_ZOMBIE タイプのオブジェクトに表示を対応させています。

[9658a5a849] Masaki Matsushita 2020-08-27 14:49:05 UTC

拡張ライブラリ socket の TCPSocket.gethostbyname メソッドを呼ぶと deprecated 警告を表示するようにしています。

[f332fe236c] Burdette Lamar 2020-08-27 16:52:29 UTC

Hash の rdoc 用コメントの詳細すぎるサンプルを削除しています。 https://github.com/ruby/ruby/pull/3464

[029c7e6045] Burdette Lamar 2020-08-27 18:28:34 UTC

Hash の rdoc 用コメントの詳細すぎるサンプルの削除の続き。 https://github.com/ruby/ruby/pull/3465

[8095114f17] Burdette Lamar 2020-08-27 19:54:36 UTC

Hash の rdoc 用コメントの詳細すぎるサンプルの削除の続き。 https://github.com/ruby/ruby/pull/3466

[3b24b7914c] Jeremy Evans 2020-08-27 22:17:36 UTC

f2d7461e85053cb084e10999b0b8019b0c29e66e で一度入れて 4fc6cfbeae3c86e8f3675c70b417356ecd3d4a56 で revert された backtrace_each() で VM のバックトレースを得るのに一部のフレームのみ得る場合の最適化をリトライしています。 [ruby-core:99169] [Bug #17031]

[8882927036] aycabta 2020-08-26 10:21:24 UTC

標準添付ライブラリ irb のファイル末尾の不要な空行を削除しています。

[cdd7d41046] tompng 2020-07-28 08:25:06 UTC

標準添付ライブラリ reline の Reline::ANSI.cursor_pos で console から期待した出力がなく閉じてしまうと無限ループする? 不具合を修正しています。

[1f09c43628] aycabta 2020-08-27 17:09:34 UTC

標準添付ライブラリ reline の文字列幅を計算するメソッドの実装を Reline::LineEditor から Reline::Unicode に移動しています。

[75c4e9b72e] Nobuyoshi Nakada 2020-08-28 10:29:16 UTC

正規表現の parse をする時に正規表現のオプション(リテラルの最後につく //i の i みたいなの)を文字列化する時に利用するバッファのサイズを 4 と具体的な数値で確保してたのを OPTBUF_SIZE という定数を導入して使うようにリファクタリングしています。 rb_enc_reg_error_desc() では 1バイトぶん大きい配列を宣言してたのでそれを修正するついでのようです。

[7e1fddba4a] Nobuyoshi Nakada 2020-08-28 10:35:54 UTC

rubyspec の Time.at のテストで to_int で変換できないオブジェクトには(to_r が定義されていても)対応してないというテストを追加しています。 [Bug #17131] というチケットがあり(長くてよくわからなかったけど Time.at に ActiveSupport::TimeWithZone を渡して元のと nsec が完全に一致しない場合があるという現象があるらしい)それに対してひとまず現状をそのまま spec にしてみたというもののようです。このチケットで調査されてる内容みると Time.at 自体は to_r があればそれを利用しててそこには問題なさそうですけどね。

ruby-trunk-changes 2020-08-27

今日は今日は主に % 記法によるリテラルでデリミタに非 ASCII 文字を使うのを SyntaxError にする変更や、include/ruby/backward/ 配下のヘッダの deprecated 化や削除などの掃除がありました。

[cc36b5d4ac] Nobuyoshi Nakada 2020-08-26 12:16:51 UTC

parse.y の parse_percent() の条件分岐で常に偽なので意味がなかった条件を削除しています。

[445e5548c9] Nobuyoshi Nakada 2020-08-26 12:36:22 UTC

文字列などのリテラル % 記法でデリミタに非ASCII 文字を使った時に SyntaxError になるようにしています。

[b2e1688e7d] 卜部昌平 2020-07-21 06:22:18 UTC

include/ruby/backward/2/extern.h というヘッダファイルを削除しています。 backward の配下のヘッダは拡張ライブラリで #include "ruby/xxx.h" のように include すべきヘッダファイルを昔は #include "xxx.h" で #include できてしまっていたので、その互換性のために作ったもので、コンパイル時に警告を出しているのでもう include/ruby/backward/ の配下は消そうということになったようです。

[0da2a3f1fc] 卜部昌平 2020-07-21 06:35:26 UTC

b2e1688e7d44d45e772ac9d5e79f4ad6e70141d5 で消した include/ruby/backward/2/extern.h の依存関係や #include しているヘッダの削除。

[4bc3846389] 卜部昌平 2020-07-22 01:10:25 UTC

同様に include/ruby/backward/classext.h の削除。

[6b6a4471d6] 卜部昌平 2020-07-22 01:23:42 UTC

4bc3846389eea28da2ef8c95a199f28b43060779 の include/ruby/backward/classext.h の削除に追随して internal/class.h で定義していたダミーの構造体 struct rb_deprecated_classext_struct を削除しています。

[d9c93a0d90] git 2020-08-27 05:08:21 UTC

version.h の日付更新

[5ca7b6abde] 卜部昌平 2020-07-22 04:55:20 UTC

include/ruby/backward/st.h と include/ruby/backward/util.h を削除しています。

[6ec6dd3ed7] 卜部昌平 2020-07-22 04:08:18 UTC

include/ruby/backward/rubysig.h を削除しています。

[5ae2c1b093] 卜部昌平 2020-07-22 04:15:36 UTC

include/ruby/backward/rubyio.h の削除。

[3353baac3d] Kazuhiro NISHIYAMA 2020-08-27 05:34:42 UTC

sample/drb/name.rb で deprecated なメソッド Thread.exclusive を使ってたので Mutex を使う実装に変更しています。 [ruby-core:99636] [Feature #17125]

[3437e6247d] 卜部昌平 2020-07-22 01:40:41 UTC

include/ruby/backward.h で警告を出しつつ定義してた構造体 struct RClass (正確にはマクロで struct RClassDeprecated にすりかえられてた)の定義を削除しています。

[21b3bc10d3] 卜部昌平 2020-07-22 01:55:30 UTC

configure での DEPRECATED_TYPE() マクロの定義を削除しています。かわりに include/ruby/backward/2/attributes.h に警告つきで代替実装を追加しています。

[442525527e] 卜部昌平 2020-07-22 04:02:33 UTC

21b3bc10d3626272683e085b2b3ea62d2c05b1d7 で include/ruby/backward/2/attributes.h で定義した DEPRECATED_TYPE() の警告で代替として RBIMPL_ATTR_DEPRECATED() を提示するのをやめています。

[cd1d6d9029] 卜部昌平 2020-07-22 05:44:25 UTC

R_CAST() というマクロの利用をやめて include/ruby/backward/2/r_cast.h での定義部分で deprecated 警告を出すようにしています。

[756403d775] 卜部昌平 2020-07-22 05:47:40 UTC

cd1d6d90299d727ad4a87c42f3ba09c87df2bce3 での R_CAST() 依存を消したのにあわせて common.mk や depend ファイルでの include/ruby/backward/2/r_cast.h への依存関係を削除しています。

[1035a3b202] 卜部昌平 2020-07-22 02:30:05 UTC

rubyコマンドラインオプションに --copyright をつけるとその処理をする ruby_show_copyright() の中で exit(3) を呼んでプロセスを終了させていたのですが、7aab062ef3772c7e8e50fc872a1647918c76dbba でこれが変更されていて、この時点では RUBY_SHOW_COPYRIGHT_TO_DIE を 0 にセットしないと処理を続けないで結局すぐ後で exit(3) してたのですが、デフォルトで処理を続けるようにしています。つまり -v オプションと同様になるってことですかね。

[2038cc6cab] Kir Shatrov 2020-08-27 07:39:13 UTC

拡張ライブラリ socket の getaddrinfo(3) を使う名前解決でブロックしてしまって割り込みがきかなくなることがあったのを rb_getaddrinfo_a() という GVL を解放する実装を利用して割り込みがきくようにしています。getaddrinfo_a(3) の wrapper 実装自体はだいぶ昔から存在してたんですね。 [ruby-core:88500] [Bug #14997] [ruby-core:96027] [Feature #16381] [ruby-core:96642] [Feature #16476] https://github.com/ruby/ruby/pull/2827

[5ca44076f4] 卜部昌平 2020-07-22 06:37:28 UTC

RMODULE_xxxx なマクロを定義している include/ruby/backward/2/rmodule.h 全体を deprecated にして本体では利用しないようにしています。

[490010084e] 卜部昌平 2020-07-22 06:40:46 UTC

5ca44076f47dce3a70b5f4755f5195f0f9093fc4 で include/ruby/backward/2/rmodule.h を deprecated にして include/ruby/ruby.h での #include も削除したのに追随して common.mk や depend ファイルでの依存関係から削除しています。

ruby-trunk-changes 2020-08-26

今日は拡張ライブラリ nkf の default gems 化、finalizer に絡んだメモリ管理のカウンタ管理の修正などがありました。

[2e3a7f70ae] Hiroshi SHIBATA 2020-08-25 12:17:19 UTC

拡張ライブラリ nkf に gemspec ファイルを追加して default gems にしています。

[36cc53daae] Burdette Lamar 2020-08-25 15:47:23 UTC

Hash の rdoc 用コメントで細かすぎるサンプルコードの削除や整形の変更。 https://github.com/ruby/ruby/pull/3451

[8c030b5c00] git 2020-08-25 15:47:44 UTC

version.h の日付更新

[326d89b7ce] Peter Zhu 2020-08-24 14:53:11 UTC

gc.c の heap_pages_final_slots の加算を gc_page_sweep() から make_zombie() に移動しています。 finalize_list() で減算する時に underflow してしまう可能性があったのでチェックしていたのが不要になるようです。

[92b2d5816a] Lars Kanis 2020-08-06 20:37:01 UTC

doc/extension.rdoc で構造体 rb_data_type_t の function メンバーの内容で reserved だったうちの1つを GC.compact で使うための関数ポインタ dcompact メンバーに使うようになったのでドキュメントにそのあたりの説明を追加しています。

[a84a2e872f] Burdette Lamar 2020-08-25 21:09:31 UTC

Hash の rdoc 用コメントでも細かすぎるサンプルコード削除と call-seq の体裁の修正。 https://github.com/ruby/ruby/pull/3454

[72cb9bc55f] Kenta Murata 2020-08-26 05:28:05 UTC

標準添付ライブラリ webrick の全体的な rdoc 用コメントに WEBrick はプロダクション環境で使うほどパフォーマンスやセキュリティに注力していないよという注意書きを追記しています。 https://github.com/ruby/ruby/pull/3457

ruby-trunk-changes 2020-08-25

今日は PTY.open の rdoc 用コメントの修正や erb のコマンドの修正などがありました。

[9e25eb308d] Jeremy Evans 2020-08-24 23:04:55 UTC

拡張ライブラリ pty の PTY.open の rdoc 用コメントの call-seq のブロックを渡して呼んだ時のブロックパラメーターの記述をちょっと修正しています。2要素の配列が1つのパラメーターとして渡されるというのがわかるように () でくくっています。通常のブロックだと splat されて 2つのブロックパラメーターでも受け取れますが、lambda 型の Proc オブジェクトやメソッドを渡すと厳密に解釈されるので区別できる必要があるということのようです。なるほどー。 [ruby-dev:50941] [Bug #17094]

[1b34d843ea] git 2020-08-24 23:11:07 UTC

version.h の日付更新

[e6ac1fb612] Hiroshi SHIBATA 2020-08-24 23:44:11 UTC

標準添付ライブラリ erb の gemspec ファイルで spec.executables の設定を spec.files から抽出してたのを単に ["erb"] を決め打ちで書くようにしています。

[8d68f54c94] Lars Kanis 2020-08-24 12:18:16 UTC

libexec/erb で __FILE__ と $0 が一致するかチェックしてましたが、gem 経由で実行されると一致しないこともあるので(?)常にメイン処理実行するようにしています。