ruby-trunk-changes 2019-07-14

今日は開発者合宿の日だったので多めで 58 commits ありました。大きめの変更としては open-uri で Kernel#open で URL を指定すると deprecated 警告が出て URI.open を使うように促すという変更がありました。

[43677a2c58] Benoit Daloze 2019-07-13 13:07:19 UTC

doc/globals.rdoc のいくつかの特殊変数に別名についての言及などを追記しています。

[b0f6f33094] Benoit Daloze 2019-07-13 13:16:26 UTC

doc/globals.rdoc に RUBY_ENGINE, RUBY_ENGINE_VERSION, RUBY_DESCRIPTION などの定数について追記しています。

[4a935bc6f6] Benoit Daloze 2019-07-13 13:23:49 UTC

doc/globals.rdoc に $LOAD_PATH.resolve_feature_path メソッドについてのドキュメントを追記して vm.c の rdoc 用コメントは削除しています。

[0a5463f764] Benoit Daloze 2019-07-13 13:26:47 UTC

$LOAD_PATH.resolve_feature_path のメソッド移動について NEWS ファイルに追記しています。

[b1ee7148f8] Benoit Daloze 2019-07-13 13:35:16 UTC

doc/globals.rdoc の $LOAD_PATH についてのドキュメントを書き直しています。

[237b3e00c7] Benoit Daloze 2019-07-13 13:39:54 UTC

doc/globals.rdoc の特殊変数 $~ についての説明の順番を類似の last match についての特殊変数の近くに移動しています。

[6ef73c1472] Benoit Daloze 2019-07-13 13:47:37 UTC

doc/globals.rdoc の特殊変数 $!, $@, $\, $>, $?, $$ の説明を修正しています。

[1a4f7c9bfa] Nobuyoshi Nakada 2019-07-13 14:32:18 UTC

doc/globals.rdoc の特殊変数と定数の説明のマークアップの追加。

[dcb8c41a1e] Nobuyoshi Nakada 2019-07-13 15:50:12 UTC

テスト用の拡張ライブラリに depend ファイルを追加しています。

[69a66e8a8b] git 2019-07-13 16:32:27 UTC

version.h の日付更新

[ac2866005b] Nobuyoshi Nakada 2019-07-13 16:41:55 UTC

.travis.yml で依存関係チェックのジョブで ext/ の配下に extconf.rb があって depend ファイルが存在しないサブディレクトリには空の depend ファイルを作って git diff することで表示するようにしています。追加漏れを検出するためですね。

[369ff79394] Martin Dürst 2019-07-14 01:58:50 UTC

7f64a0b4db7ee27a04579236950d88301c7bcabb で新しいエンコーディング CESU-8 を追加したので UTF-8 との相互の変換機能を追加しています。 [ruby-core:93680] [Feature #15995]

[4402c66978] Takashi Kokubun 2019-07-14 03:53:39 UTC

mjit_worker.c でブロック先頭以外でも変数宣言できるのを利用して利用箇所で宣言するようにしています。

[18603e9046] Takashi Kokubun 2019-07-14 03:55:57 UTC

369ff79394765ce198ac7cee872a8c739d895aaa で追加した enc/trans/cesu_8.c の依存関係を enc/depend に追加しています。Travis-CI で依存関係の漏れが検出できたみたいです。

[315d3adf0f] Yusuke Endoh 2019-07-14 04:49:39 UTC

io.c の io_reopen() で io_tell() を呼んでいたところ、戻り値を利用していなくて Coverity Scan で警告が検出されてたので、関数マクロ io_tell() の一部の flush_before_seek() の呼び出しだけでここでの目的は達成できるので直接呼ぶようにしています。

[1d46642487] git 2019-07-14 04:57:57 UTC

315d3adf0f9660568bdca01fd6ddd196c92973d2 のインデントのタブを空白に展開。

[ba94404f70] Yusuke Endoh 2019-07-14 05:03:44 UTC

marshal.c および sprintf.c で switch 文で break していないところに警告除去のため fall through のコメントを追加ています。Coverity Scan こういう警告も出すんだ。

[ff5b149435] git 2019-07-14 05:04:34 UTC

ba94404f7021fae41a827e080be6d5dd0bbac8e4 のインデントのタブを空白に展開。

[34b3ef29b6] Takashi Kokubun 2019-07-14 05:09:32 UTC

MJIT で生成するコードで debug counters の mjit_cancel_ivar をインクリメントするコードを生成してたところを削っています。 mjit_cancel_ivar_inline をかわりに使ってるのでもう不要とのこと。

[219643c075] Yusuke Endoh 2019-07-14 05:27:45 UTC

time.c にも switch 文の break がないところに fall through のコメントを追加しています。

[421dd31145] Kazuhiro NISHIYAMA 2019-07-14 05:33:28 UTC

doc/NEWS-2.6.0 の RubyVM::AbstractSyntaxTree.of についてのエントリの [experimental] がタグみたいな記法になってないので修正しています。

[4f351111b8] Kazuhiro NISHIYAMA 2019-07-14 05:40:38 UTC

NEWS ファイルに flip-flop の警告をやめたことについて追記しています。 [Feature #5400]

[dda2c860d9] Kazuhiro NISHIYAMA 2019-07-14 05:59:34 UTC

doc/NEWS-2.6.0 の TracePoint#enable の引数追加についてのチケット参照も記法を修正しています。 [Feature #15289]

[357f295a0e] Tanaka Akira 2019-07-14 06:01:39 UTC

Proc#lambda? や Proc の rdoc 用コメントに Proc オブジェクトの lambda か否かの違いの影響について説明を増やしています。

[7504d676c8] Hiroshi SHIBATA 2019-07-14 05:17:06 UTC

tool/sync_default_gems.rb のコピー元として使うディレクトリパスを共通の変数を使って参照するようにリファクタリングしています。

[7d24a7ed7b] Hiroshi SHIBATA 2019-07-14 05:29:38 UTC

tool/sync_default_gems.rb でファイルの削除のために外部コマンドの rm を呼び出してたところを FileUtils.rm_rf を利用するようにリファクタリングしています。

[d25f355c65] Hiroshi SHIBATA 2019-07-14 06:07:17 UTC

7504d676c8ee245bb3b117e743fb3921a3ab56f7 で一部ファイルパスの "." が残ってた不具合を修正。コミットログの commit hash は現在の master には存在しないので rebase されたのかな。

[e91ff4dbaf] Hiroshi SHIBATA 2019-07-14 06:20:25 UTC

7d24a7ed7bae3adec131920d98c0b321e9d3e286 と同様に tool/sync_default_gems.rb で cp コマンドのかわりに FileUtils.cp_r を利用するようにリファクタリング

[a73f452476] Hiroshi SHIBATA 2019-07-14 06:21:27 UTC

同じく tool/sync_default_gems.rb で mkdir コマンドのかわりに FileUtils.mkdir_p を使うようにしています。

[4ce935cd5d] Hiroshi SHIBATA 2019-07-14 06:22:12 UTC

7d24a7ed7bae3adec131920d98c0b321e9d3e286, e91ff4dbaf0bdbf7185b485b43cd9393419efd11, a73f45247652d563e4043af8d14964b9d911fe81 で tool/sync_default_gems.rb のファイル操作に FileUtils のメソッドを使うようにしましたが include FileUtils しておくことで直接メソッドを呼ぶようにしています。

[47b04557b0] Koichi Sasada 2019-07-14 06:42:55 UTC

Method#inspect で source_location の情報が取れればそれも文字列に埋め込むようにしています。 [ruby-core:84004] [Feature #14145]

[3163a07878] Luke Gruber 2019-06-08 18:55:41 UTC

標準添付ライブラリ reline で SIGINT のシグナルハンドラを登録してますが Signal.trap が返す元のハンドラも保存しておいて呼ぶようにしていますが、最初の設定時など "DEFAULT" や "IGNORE" などの文字列がかえってくる場合もあるので respond_to? でチェックしてから call メソッドを呼ぶようにしています。

[f2d99fd820] Kazuhiro NISHIYAMA 2019-07-14 06:41:45 UTC

doc/NEWS-2.6.0 のインデント修正。

[95de69df99] Yusuke Endoh 2019-07-14 06:23:15 UTC

io.c の rb_file_open_internal() で構造体の変数 convconfig の全メンバーを明示的に初期化しておくようにして警告除去しています。

[73fab16e76] Yusuke Endoh 2019-07-14 07:17:49 UTC

compile.c の defined_expr() や defined_expr0() の戻り値は常に 1 だったので void に変更しています。

[83153bbb14] git 2019-07-14 07:18:48 UTC

73fab16e76d3879d2a099e2ce949b6b03f227d86 のインデントのタブを空白に展開。

[10de5f149a] Nobuyoshi Nakada 2019-07-14 07:31:36 UTC

complex.c の除算で両方の Complex の real/imag 全てが Float だった時に f_complex_new2() を呼び出すショートカットを削除しています。 f_complex_new2() の引数に Complex を渡す状態になってて assertion にひっかかっていた? ようです。うーんすぐにでもテストで踏みそうなパスだけどどうして見過されてたんだろう。 [追記] complex.c の assert は有効になってなかったそうです[/追記]

[934e6b2aeb] Yusuke Endoh 2019-07-14 08:15:44 UTC

rb_check_arity() で引数の数のチェックをしてるところの一部を戻り値がない rb_error_arity() のほうを利用するようにしています。警告除去のためかな?

[9987296b8b] git 2019-07-14 08:16:35 UTC

934e6b2aeb495686f7fe0d8b1c69d863e6fca072 のインデントのタブを空白に展開。

[05aac90a1b] Tanaka Akira 2019-07-14 08:18:17 UTC

標準添付ライブラリ open-uriURI を指定した open を Kernel#open (つまりたいていの場合は receiver なしの open) で利用した時は deprecated の警告を出して URI.open を使うように促すようにしています。おお、これけっこう大きな変更ですね。 [ruby-core:92922] [Misc #15893]

[6bca4437de] Tanaka Akira 2019-07-14 08:22:13 UTC

NEWS ファイルに open-uri の deprecated 警告について追記しています。

[61577fa53b] Yusuke Endoh 2019-07-14 08:32:49 UTC

load.c の switch 文の break を使ってないところも fall through コメントを追加しています。

[4d9504fe13] Tanaka Akira 2019-07-14 08:39:21 UTC

拡張ライブラリ pathname の Pathname.glob にも Dir.glob と同様に第3引数 base のサポートを追加しています。 [ruby-core:85131] [Feature #14405]

[5786df12f5] Tanaka Akira 2019-07-14 08:44:33 UTC

NEWS ファイルに 4d9504fe13c6470d9da74540f92a247e8c1d9b99 の Pathname.glob の引数追加について追記しています。

[32f0135144] Nobuyoshi Nakada 2019-07-14 04:05:16 UTC

ruby_assert.h の内容から RUBY_ASSERT() などの定義を include/ruby/assert.h に切り出しています。

[73904abb95] git 2019-07-14 08:45:52 UTC

32f013514460574eed03aa678f87ed7ca9600872 のインデントのタブを空白に展開。

[b67b07bd5b] Maxime Lapointe 2019-05-30 20:46:18 UTC

標準添付ライブラリ rdoc のクロスリファレンスのための partial (っていうんだっけ)の命名規則を修正しています。

[47e571c951] Koichi Sasada 2019-07-14 08:48:11 UTC

tet/unit で TESTS 環境変数でテストファイル名を指定した時に ".rb" を省略したら自動的に補完するようにしています。

[db1c30b37f] Yusuke Endoh 2019-07-14 08:53:45 UTC

addr2line.c で /proc ファイルシステムが存在しない時に SEGV する可能性があった不具合を修正しています。

[715955ff27] Nobuyoshi Nakada 2019-07-14 04:06:22 UTC

include/ruby/ruby.h から 32f013514460574eed03aa678f87ed7ca9600872 で分離した include/ruby/assert.h を include するようにして、依存関係も全体的に更新しています。

[08c2a9dc59] Nobuyoshi Nakada 2019-07-14 05:44:59 UTC

RUBY_ASSERT() のチェックを有効にするのに RUBY_DEBUG というマクロを非ゼロに定義したら有効になるようにしています。

[043e3d2cdc] Kazuhiro NISHIYAMA 2019-07-14 08:58:25 UTC

NEWS ファイルの Time クラスと $LOAD_PATH の変更点に新規メソッドの節の見出しを追加しています。

[d30d404bc4] Takashi Kokubun 2019-07-14 09:04:14 UTC

ブロック引数の Proc 化を抑制して高速に呼ぶための命令 getblockparamproxy の MJIT サポートを追加しています。 MJIT コンパイルの変更的には unsupported_insns から削って INSN_LABEL の展開に対応してるのでそれが必要なだけだったのかな。

[2553608c3b] Nobuyoshi Nakada 2019-07-14 08:59:24 UTC

complex.c の既に未使用になってた binop() マクロの定義を削除しています。

[45dfd4c09d] Takashi Kokubun 2019-07-14 09:08:47 UTC

d30d404bc4b848f84959799b543de4bdbd8eef2b の rb_block_param_proxy の宣言を vm_insnhelper.h から vm_core.h に移動しています。