ruby-trunk-changes 2019-11-18

今日は $SAFE の deprecated 化や builtin 関数の機構でメソッドの引数を C に委譲する時に専用の VM 命令を使う条件を緩和する変更などがありました。

[910f9b8338] aycabta 2019-11-17 14:12:18 UTC

標準添付ライブラリ reline のバージョンを 0.0.5 に更新しています。

[be95d59160] aycabta 2019-11-17 14:11:58 UTC

irb のバージョンを 1.1.0.pre.4 に更新しています。

[e7c5c60095] aycabta 2019-11-17 14:25:37 UTC

irb の gemspec ファイルの spec.files から 45bb6f28db04a1f267f5b8d79392cb35087510d8 で削除した lib/irb/ruby-token.rb を削っています。

[7c6bedfe5c] aycabta 2019-11-17 18:23:45 UTC

標準添付ライブラリ reline の Reline::LineEditor#input_key で引数の nil? でのチェックは不要として削っています。

[7b6a8b5b54] git 2019-11-17 18:25:17 UTC

version.h の日付更新

[c5c05460ac] Jeremy Evans 2019-09-21 02:06:22 UTC

tainted フラグをチェックする処理を削り、$SAFE を操作したり $SAFE の値に応じたチェックを行う API で警告を出力するようにして $SAFE を deprecated にしています。互換性のため C API の rb_eval_cmd() の level 引数は残されていますが、たぶん代替となる API を追加する予定とのこと。

[ffd0820ab3] Jeremy Evans 2019-09-25 03:59:12 UTC

OBJ_TAINT()、OBJ_TAINTED() や OBJ_INFECT() などの tainted フラグ操作/チェックのマクロ利用しているところをさらに削っています。また対応するテストも削除しています。

[ab42e5a486] Jeremy Evans 2019-11-15 02:54:13 UTC

$SAFE の deprecated の対応続き。

[50013f7ebc] Jeremy Evans 2019-10-18 18:33:09 UTC

標準添付ライブラリ rexml で戻り値に taint してるところを RUBY_VERSION が 2.6 以前の時だけ taint するように対応しています。

[23f1fb0663] Jeremy Evans 2019-11-14 20:30:56 UTC

標準添付ライブラリ rss でもファイルパスの tainted チェックをするのを 2.6 以前だけにするように対応しています。

[398cd3cc7d] Jeremy Evans 2019-10-18 19:10:03 UTC

拡張ライブラリ etc で taint フラグのチェックの API を呼ぶのを削っています。

[17e8a6eff4] Jeremy Evans 2019-10-18 19:25:15 UTC

拡張ライブラリ io/console からも rb_check_safe_obj() の呼び出しを削っています。

[afbd8f384a] Jeremy Evans 2019-10-18 19:28:44 UTC

拡張ライブラリ openssl からも rb_check_safe_obj() や OBJ_TAINT() の呼び出しを削っています。

[d03da13b17] Jeremy Evans 2019-11-15 00:56:02 UTC

拡張ライブラリ strscan からも OBJ_INFECT() を呼ぶユーティリティを削除しています。

[c257303ae7] Jeremy Evans 2019-09-25 22:49:21 UTC

互換性のため safe_level を指定する引数を消せなかった rb_eval_cmd() を deprecated にして代替として rb_eval_kw() という C API を追加しています。

[3a0de05bee] Jeremy Evans 2019-10-04 15:44:33 UTC

doc/security.rdoc および doc/extension.rdoc, doc/extension.ja.rdoc から $SAFE についての記述や関連する C API の説明を削除しています。

[4c7dc9fbe6] Jeremy Evans 2019-11-14 20:15:01 UTC

NEWS ファイルに $SAFE の deprecation について追記しています。

[b753929806] git 2019-11-17 23:00:52 UTC

4c7dc9fbe604cc0c8343b1225c96d4e5219b8147 の行末の空白除去。

[93ce4f1cd7] Koichi Sasada 2019-11-18 01:14:56 UTC

prelude.rb を builtin を使うようにした変更に追随して common.mk の依存関係を再生成しています。

[71fee9bc72] Koichi Sasada 2019-11-15 08:49:49 UTC

builtin function の機能で ruby 実装のメソッドからその引数をそのまま委譲して C の関数を呼び出す機構で引数が完全に一致してなくてメソッド引数のうち後半の部分のみ渡すケースも対応できるように専用の VM 命令に offset の operand を追加しています。さらにローカル変数も引数に続いて宣言順? に local_table に並ぶので「引数の後半+ローカル変数の前半」みたいな順で引数に渡す時は専用の命令が使われるようになってます。こうすると VM stack に値を積むのを省略できてちょっと効率的らしい。

[c3693bbaaa] Koichi Sasada 2019-11-18 01:24:38 UTC

71fee9bc720ba7a117062bf3f78b6086527b656c の変更に追随して Array#pack のテストでコンパイル後の VM 命令が変化するのにあわせてテストを修正。

[5e34ab5406] Koichi Sasada 2019-11-18 01:36:48 UTC

71fee9bc720ba7a117062bf3f78b6086527b656c の変更で vm_invoke_builtin_delegate() の引数 に追加した index の型を unsigned int に変更。コンパイラの警告抑制のため。

[22c9504905] Nobuyoshi Nakada 2019-11-18 02:05:08 UTC

string.c の rb_tainted_str_new_with_enc() という static 関数が未使用になってたので削除。

[57cd4623cf] Koichi Sasada 2019-11-18 04:36:34 UTC

71fee9bc720ba7a117062bf3f78b6086527b656c で追加したデバッグ用の printf() に渡してる __func__ を移植性のため RUBY_FUNCTION_NAME_STRING に変更。

[7a9b2039b7] 卜部昌平 2019-11-18 03:00:19 UTC

process.c、ruby.c、string.c などで代入して未使用の変数の削除。

[209164e44f] Nobuyoshi Nakada 2019-11-18 09:42:22 UTC

missing/x86_64-chkstk.s の拡張子を大文字の .S に変更しています。

[227220b25a] Nobuyoshi Nakada 2019-08-09 15:02:17 UTC

tool/update-deps で .timestamp ファイルへの依存関係は skip するようにしています。

[39492d6ce6] Nobuyoshi Nakada 2019-08-09 15:02:17 UTC

tool/update-deps で make -p で依存関係を表示させる時に ruby のかわりに ruby-runner を指定するようにしています。

ruby-trunk-changes 2019-11-17

昨日は1つもコミットがなくてお休みでした。今日は racc が生成するコード内に埋め込まれるコメントの typo 修正だけでした。

[449b2b9214] Kazuhiro NISHIYAMA 2019-11-17 04:11:25 UTC

標準添付ライブラリ racc が生成するファイルに埋め込むコメントの typo 修正およびそれに対応してテストの修正。

[a8e4a9f03a] git 2019-11-17 04:12:06 UTC

version.h の日付更新

ruby-trunk-changes 2019-11-15

今日は prelude.rb を builtin の機構と同じ方法でロードするようにする変更などがありました。

[9c1abe2a6c] Koichi Sasada 2019-11-14 18:51:06 UTC

インタプリタに埋め込まれて起動時にロードされる prelude.rb も builtin 機能を使って ISeq を直接ロードされるようにしています。 なるほど、__builtin_xxx は使わなくても parse/compile を飛ばしてロードできるのでちょっと効率的になるんですね(というのが狙いと思われる)。

[018be445e9] git 2019-11-14 18:56:58 UTC

version.h の日付更新

[6744593b8c] Kazuhiro NISHIYAMA 2019-11-15 02:01:06 UTC

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

[fa7618e4c1] aycabta 2019-11-15 07:50:11 UTC

標準添付ライブラリ reline の Reline::LineEditor に mark 機能用のキーバインドの対応を追加しています。なんだけど追加する時に :ed_move_to_end を消してしまって :ed_prev_char が二重に書かれてしまっているような。

[11ae47c266] aycabta 2019-11-15 07:50:11 UTC

と、思ったら fa7618e4c1b382cb5863161017ef89116af3e24f で消してしまった :ed_move_to_end を復活させています。

ruby-trunk-changes 2019-11-14

今日は builtin.h が vm_core.h を必要としてた不具合の修正などがありました。

[3a408aff57] Koichi Sasada 2019-11-13 16:48:08 UTC

pack.c から vm_core.h の #include を消して builtin.h に rb_vm_lvar() の prototype 宣言を追加しています。

[a102bcab41] git 2019-11-13 16:48:41 UTC

version.h の日付更新

[afc93e96ff] Takashi Kokubun 2019-11-13 17:30:53 UTC

GitHub Actions の Slack 通知の並び順などを調整しています。 Travis-CI の通知に近付けるようにしたとのこと。

[a8f9e25ca8] Takashi Kokubun 2019-11-13 17:37:25 UTC

大量の Fiber を作るテストが MJIT 有効化時にうまく動かないので skip するようにしています。

[179062dd80] Koichi Sasada 2019-11-13 19:18:41 UTC

rb_vm_lvar_exposed() の定義を builtin.c から vm_insnhelper.c に移動しています。 mini_builtin.c にも必要なのに miniruby にリンクされない builtin.c にあったのがまずかったらしい。なんでビルドできてたんだろ。

[48edaf8b8a] Yusuke Endoh 2019-11-14 04:00:25 UTC

Proc.new にブロックを渡さずに呼び元のメソッドに渡されたブロックを capture する挙動に対する警告のテストで、メソッドの再定義の警告抑制のため既に定義されてたら remove_method で消してから再定義するように対応しています。

[3b614ec48a] Hiroshi SHIBATA 2019-11-14 07:07:48 UTC

NEWS ファイルの RubyGems と Bundler のバージョンを更新しています。

[703e05b0ee] Hiroshi SHIBATA 2019-11-14 07:09:36 UTC

NEWS ファイルに標準添付ライブラリのうち default gem 化されたものを追記しています。

[4d615a0c8f] Nobuyoshi Nakada 2019-11-14 07:37:25 UTC

numbered parameter の記法を変更した時に文字列リテラル内の #@1 の記法を消し忘れてたので削除しています。

[c9ffe751d1] 卜部昌平 2019-11-13 03:41:39 UTC

使っていない関数群を消した、とのことで libruby-static.a のシンボル内で一応 export してるものは消さないようにしているみたいですけど、C API っぽいもあるけどこれは外からはリンクできない状態だったのかな……。

ruby-trunk-changes 2019-11-13

今日は nil::CONST のような定数参照を defined? で判定した時の不具合修正や rubygems/bundler の更新、MJIT のテストを GitHub Actions で行なうように移植する変更などがありました。

[fe45bee093] osyo-manga 2019-11-10 07:00:41 UTC

標準添付ライブラリ reline の Reline#readline と Reline#readmultiline を private メソッドにしています。

[3816622fbe] manga_osyo 2019-11-11 05:59:17 UTC

fe45bee09312a233466171f40d6826e5e4f1f2f0 で追加したテストの assert_equal の引数の順番を修正。

[bf34ade7ef] Nobuyoshi Nakada 2019-11-12 13:58:09 UTC

ブロックなしの proc でその呼び出し元のメソッドに渡されているブロックを capture する動作で出力する警告メッセージをKernel#proc か Proc.new かどちらが呼ばれたかによって変更するようにしています。

[4334c9315a] Takashi Kokubun 2019-11-06 17:10:27 UTC

.travis.yml の arm64-liunx のビルドでエラーを無視しないように再度戻しています。

[a5448c46bd] git 2019-11-12 17:29:13 UTC

version.h の日付更新

[4bbfe1f7c4] Jun Aruga 2019-10-15 15:08:00 UTC

.travis.yml に arm32-linux プラットフォームでのビルドの設定を追加しています。

[ae33f93836] Yuichiro Kaneko 2019-11-13 00:50:58 UTC

1f7cb4bee9f711d07a5b31f439f621a2557e7505 の rb_parser_lex_state_names の prefix 削除に追随して ext/ripper/lib/ripper/lexer.rb のコメント内の記述も prefix を削っています。

[00d56bdf66] Kazuhiro NISHIYAMA 2019-11-13 00:55:54 UTC

pack.c で builtin.h の #include の前に vm_core.h を追加しています。これ builtin.h から vm_core.h を #include しておくようにするとまずいのかな。

[bb9ecd026a] Hiroshi SHIBATA 2019-11-12 22:57:02 UTC

bundler に upstream から 2.1.0.pre3 をマージ。

[63f363b70d] Kazuhiro NISHIYAMA 2019-11-13 01:31:02 UTC

pack.c の #include 追加に伴ない common.mk の依存関係の再生成。

[546e50c2fb] Hiroshi SHIBATA 2019-11-13 01:35:52 UTC

rubygems も upstream から 3.1.0.pre3 をマージしています。といっても require の削除の小さな修正だけのようです。

[3ad78264dc] Kazuhiro NISHIYAMA 2019-11-13 04:13:52 UTC

GitHub Actions の JOBS 環境変数設定のための記法を変更しています。

[9980728ad6] Takashi Kokubun 2019-11-13 04:22:33 UTC

.drone.yml を削除しています。 arm32 のテストが Travis-CI で動かすようになったから不要になったということですかね。

[3118c7a2d2] Takashi Kokubun 2019-11-13 04:38:05 UTC

GitHub Actions の Ubuntu 16.04 で test-bundler と test-bundled-gems の実行を省略するようにしています。

[02b6451c17] Takashi Kokubun 2019-11-13 04:44:00 UTC

GitHub Actions の設定ファイルでジョブ名を make に変更しています。 表示上 make (check, ...) みたいになるのでそれっぽいから、という理由みたいです。

[9ee88a070f] Takashi Kokubun 2019-11-13 04:56:15 UTC

GitHub Actions の UbuntumacOS でのテスト時に MSPECOPT に -ff を設定していたのを削除しています。デバッグ用にだいぶ前に入れてもう不要になったようです。

[245977b286] Takashi Kokubun 2019-11-13 04:56:52 UTC

GitHub Actions の ubuntu 環境でデバッグ用に環境変数 GITHUB_CONTEXT を表示させてたのが重複してたので一方を削っています。

[c4064aef7f] Kazuhiro NISHIYAMA 2019-11-13 04:22:46 UTC

tool/actions-commit-info.sh というツールを追加して、UTC 基準でその日のうちに行なわれたコミット数を取得するようにして、GitHub Actions で Slack 通知する時にその数と最後の変更のタイムスタンプを表示するようにしています。

[331655cbe7] Takashi Kokubun 2019-11-13 05:48:05 UTC

Wercker で行なっていた MJIT 有効にして行なうテストを GitHub Actions を利用するように移植しているようです。 https://github.com/ruby/ruby/pull/2676

[68ea892daf] Takashi Kokubun 2019-11-13 05:55:03 UTC

README.md と README.ja.md から Wercker のバッジのリンクを消しています。

[d336db6568] Kazuhiro NISHIYAMA 2019-11-13 06:04:49 UTC

lib/rubygems/core_ext/kernel_require.rb のコメントの typo 修正。

[dca2eb350c] Kazuhiro NISHIYAMA 2019-11-13 06:11:34 UTC

README.md と README.ja.md の CI のバッジに 331655cbe7139a287267c90b3ab46ed856aebb5b で移植した GitHub Actions の MJIT のものを追加しています。また他のものも URL をちょっと修正して大文字を含むものにしています。

[c33d29fba5] Takashi Kokubun 2019-11-13 06:13:49 UTC

README.md と README.ja.md から Azure Pipelines のバッジを削除しています。

[a5b6d7bca8] aycabta 2019-11-13 06:10:05 UTC

irb で parse 時に警告が出るようなスクリプト片を編集している時に色付けのために ripper で評価するたびに警告が出てしまってあふれるのを抑えるため一時的に $VERBOSE を nil にして評価するようにしています。最終的に enter して実行する時はちゃんと警告が出るようです。

[ac112f2b5d] Dylan Thacker-Smith 2019-11-06 06:47:32 UTC

nil に対して nil::CONST みたいに定数探索を行なったときにトップレベルの(Object 直下の)定数を探索しないようになっているのに(2.5 か 2.6 からだったかな) defined? で検査すると定数にアクセスできるかのように "constant" を返してしまっていたのを修正しています。 [ruby-core:95746] [Bug #16332]

[7913daf36c] Dylan Thacker-Smith 2019-11-07 16:14:47 UTC

template/Makefile.in の vm 関連の .inc ファイル群の依存関係に VM 系コード生成ツールやテンプレートなど tool/ruby_vm/ 配下のファイル群を追加しています。

[57dc3ff73d] Hiroshi SHIBATA 2019-11-13 04:34:06 UTC

tool/sync_default_gems.rb から標準添付ライブラリ sync のエントリを削除しています。sync は標準添付から外されたので。

[bdf71a3ef0] Takashi Kokubun 2019-11-13 07:04:25 UTC

GitHub Actions の MJIT 用テストの設定で Slack 通知のメッセージに埋め込む変数の間違いを修正。

[3324bc9d17] Takashi Kokubun 2019-11-13 07:09:59 UTC

MJIT 有効化時に tail-call optimization を確認するテストを skip するようにしています。

[e7ea6e078f] Nobuyoshi Nakada 2019-11-13 07:53:12 UTC

time.c のうるう年判定の leap_year_p() に負の値が渡された場合に符号反転して扱うようにしています。 [ruby-core:95761] [Feature #16335]

[990728170c] Kazuhiro NISHIYAMA 2019-11-13 10:49:07 UTC

c4064aef7f48c51add6c24467da64528d5a2a2a5 で追加した tool/actions-commit-info.sh を利用して GitHub Actions の MJIT のテストの Slack 通知でも同様にその日のコミット数などを表示するようにしています。

[7f2c98b11d] Kazuhiro NISHIYAMA 2019-11-13 10:56:33 UTC

c4064aef7f48c51add6c24467da64528d5a2a2a5 や 990728170c5e4d6b763fa42c48ce82473d753aad での tool/actions-commit-info.sh によるコミット数の集計のため GitHub Actions で git clone する時に --depth による指定ではなく --single-branch --shallow-since=yesterday というオプションで昨日からのコミットのみ取得するようにしています。

ruby-trunk-changes 2019-11-12

今日は obj.:meth 記法の revert や rubygems の require の修正(まだ途中?)などがありました。

[f1f27da6c4] Hiroshi SHIBATA 2019-11-11 12:49:21 UTC

8b27c23b5d55bd707a89bb5d95d2bdba9e132c1a の rubygems の変更の部分的 revert を revert。CI のエラーが収まらなかった模様。

[bcfe94b7f2] Hiroshi SHIBATA 2019-11-11 13:17:50 UTC

fdfad905227a0e2e4c224d87181041fb75d5082e で標準添付ライブラリ uri の default gem 化を revert したのを revert して、再度 default gem 化しています。 f1f27da6c457684fdbfc0352297e6847f675ce4c の rubygems の変更(というか revert の revert)により require 時の問題は解決したそうです。

[45bb6f28db] aycabta 2019-11-11 13:55:32 UTC

irb の独自 tokenizer の lib/irb/ruby-token.rb はもう利用していないので削除しています。

[0ba1ea7fbf] "NARUSE, Yui" 2019-11-11 16:00:22 UTC

tool/merger.rb で git を利用している場合 upstream をローカルリポジトリの remote の origin という名前のものを使うのではなく git.ruby-lang.org のほうを URL 指定で参照するように修正しています。

[b2b1279272] "NARUSE, Yui" 2019-11-11 16:22:09 UTC

tool/format-release でパッケージの情報を GitHub Actions による YAML 情報を取り込むようにしています。またリリースノートの雛形を表示するようにしています。

[14b5c4cb66] git 2019-11-11 16:23:23 UTC

version.h の日付更新

[b72eda3c59] Yusuke Endoh 2019-11-11 16:25:42 UTC

rubygems で Bundler.setup を呼ぶ時にメッセージの出力を抑制するようにしています。

[c02de30efb] Yusuke Endoh 2019-11-11 16:30:42 UTC

tool/lib/leakchecker.rb を強化して環境変数 LEAK_CHECKER_TRACE_OBJECT_ALLOCATION をセットしたら fd の leak 検出時にどこで開いた fd かも表示するようにしています。正確にはオブジェクトの allocate した位置ですが。

[99be207c2a] Koichi Sasada 2019-11-11 08:17:26 UTC

NEWS ファイルに ruby による組み込みメソッド実装の機構についてちょっと追記しています。 [Feature #16254]

[a815053a3e] Koichi Sasada 2019-11-11 19:03:33 UTC

f1f27da6c457684fdbfc0352297e6847f675ce4c で revert された rubygems の変更の部分でデバッグのため require を抜ける時点で Monitor を所有しっぱなしだったら例外発生させるようにしています。

[4be1e84d78] Koichi Sasada 2019-11-11 19:13:54 UTC

a815053a3ea16382bea8b420a3070b4da3c3bb94 にさらに例外で抜けようとしていた場合にバックトレースも表示させるようにしています。

[b8d242d221] Koichi Sasada 2019-11-11 19:33:28 UTC

a815053a3ea16382bea8b420a3070b4da3c3bb94 および 4be1e84d7894751799cc9d8ae2dec720952a02a3 のデバッグ用コードで原因が判明したようで rubygems の require の再定義で File.symlink? が例外を発生させた時に Monitor#exit が漏れてたのを修正しています。

[d9978ce5d3] Hiroshi SHIBATA 2019-11-11 23:03:26 UTC

さらに rubygems の require 再定義でパス名を untaint するのに Gem::UNTAINT という定数を使ってたのを直接 untaint メソッドを呼ぶように修正しています。2.7 から $SAFE が deprecated になるのに対応するために 2.7 以降では untaint を省略するために空の Proc オブジェクトを格納しておくようにしていたみたいですけど、現状だとまだ untaint が必要だった(File.symlink? が SecurityError を発生させてしまった)みたいですね。

[9594f57f3d] Yusuke Endoh 2019-11-11 23:31:13 UTC

Kernel#require のテストで $SAFE の機能を確認するテストは削除しています。 [ruby-core:95398] [Feature #16131]

[2407e89725] Yusuke Endoh 2019-11-11 23:39:38 UTC

d9978ce5d397866afae536db2aa708af3b7a4b2f の rubygems の require で untaint を直接呼ぶようにしたのはやっぱり revert しています。 b8d242d221641752a495ca43f8f211a3ad73d467 で問題のテストを削除したのでってことなので、 revert してたのは SecurityError が発生してたからじゃなくて、これらのテストが通らなくなってたからってことだったのかも。

[4a30fabfcf] Koichi Sasada 2019-11-12 00:35:26 UTC

a815053a3ea16382bea8b420a3070b4da3c3bb94 で追加した rubygems の require でのデバッグ出力で require に入る前から Monitor を取得済みだった場合は抜ける時に所有したままでも問題ないので出力を抑制するようにしています。こっちの問題はまだ対応完了じゃなかったのか。

[ed90ec3e0d] Nobuyoshi Nakada 2019-11-12 00:11:16 UTC

メソッド引数などのデフォルト値で def m(a=a) みたいな循環した参照は警告を出すようにした影響か、デフォルト値にブロックつきメソッド呼び出しを書きそのブロックのパラメーターに {|| ... } のように明示的に空のパラメーターを書いた場合に SyntaxError が起きるという不具合があったのを修正しています。 [ruby-core:95799] [Bug #16343]

[fef4370b40] Koichi Sasada 2019-11-12 00:48:49 UTC

4a30fabfcfd72bd61bf1dad61f168eaba6100f12 のさらに続きで rubygems の require でメソッドに入る時と抜ける時とで Monitor の所有状態が変化してたらデバッグ出力するように変更しています。

[fd6445b7e8] Koichi Sasada 2019-11-12 01:02:47 UTC

どうやら rubygems の require の問題は標準添付ライブラリ monitor 側にあったようで Monitor#exit で呼んでいる Thread が Monitor を所有済みの Thread でなかったら例外を発生させるようにしています。

[5ef41c91f0] Jean Boussier 2019-07-24 20:08:59 UTC

拡張ライブラリ psych の gemspec ファイルの依存する ruby のバージョンを 2.4.0 以降に更新しています。

[30fdee65d9] Jeremy Evans 2019-10-18 19:34:59 UTC

拡張ライブラリ psych で 2.7 からの $SAFE の deprecate に対応するため OBJ_TAINT() の呼び出しを削っています。

[db33ab470c] Aaron Patterson 2019-10-17 20:48:24 UTC

拡張ライブラリ psych の Psych.load の rdoc 用コメントに、信頼できないデータをこのメソッドに読ませてはいけないということと、そういう時は safe_load を使うように追記しています。

[b38b26c62d] Jeremy Evans 2019-10-18 18:44:47 UTC

拡張ライブラリ bigdecimal でも $SAFE の deprecate に対応するため rb_check_safe_obj() の呼び出しを削っています。

[593f0b8853] Kazuhiro NISHIYAMA 2019-11-12 02:27:55 UTC

.github/workflows/windows.yml で GitHub Actions の cache 機能を利用してパッケージマネージャで使うパッケージを cache するようにしているようです。

[dbaf589fb8] Hiroshi SHIBATA 2019-11-12 03:49:05 UTC

bundled gems の rake のバージョンを 13.0.1 に更新しています。

[7c22898a3a] Nobuyoshi Nakada 2019-11-12 06:42:53 UTC

parse.y でブロックパラメーターのルール部で空のブロックパラメーター "||" を tOROP トークンとして受け取ってたのを lexer のほうを修正して 2つの "|" にばらして返させるようにしています。

[2de3feab44] Nobuyoshi Nakada 2019-11-11 15:08:39 UTC

31416423809f64d4b5ea6b9651cced3179cc5ced で追加した組み込みメソッド定義時の ruby で使える __builtin_inline! の実装で生成する C のコードで定義する関数名も __builtin_inline{0,1,2,3,..} みたいな名前にしていましたが、C でアンダースコア2つで始まる名前は予約されているので避けて rb_compiled_inline という prefix を使うように修正しています。

[dd0217a869] Nobuyoshi Nakada 2019-11-11 15:07:26 UTC

同じく __builtin_inline! の実装のため builtin.h に追加された rb_vm_lvar() は static 関数として宣言するようにしています。

[b0fb9bda9a] Nobuyoshi Nakada 2019-11-11 15:09:34 UTC

同じく __builtin_inline! で引数の文字列リテラルの末尾の空白文字を削るようにしています。

[14db635097] 卜部昌平 2019-11-12 07:15:58 UTC

NEWS ファイルの numbered parameter のセクションにローカル変数として _1, _2 などを宣言することはできることを追記しています。

[fb02e3192c] Nobuyoshi Nakada 2019-11-12 07:35:01 UTC

拡張ライブラリの出力先に作られる common/ というサブディレクトリの依存関係のため .RUBYCOMMONDIR.time という timestamp ファイルを使って作成するようにしています。 https://github.com/ruby/ruby/pull/2669

[d1ae2bc27f] Yusuke Endoh 2019-11-12 08:04:11 UTC

NEWS ファイルの引数の完全委譲のための m(...) 記法について、明示的なかっこが常に必要であることを追記しています。 [ruby-core:95338] [Feature #16253]

[a58b4eee25] Nobuyoshi Nakada 2019-11-12 08:14:10 UTC

一見 endless range のようにみえてしまう(実際には次の行に連結されてしまう)行末の ... には警告を出力するようにしています。

[b41a19f92f] Kazuhiro NISHIYAMA 2019-11-12 08:22:19 UTC

593f0b88533c9d327b33d098bb6b3b51df871966 の続きで GitHub Actions の Windows 版でパッケージを cache するキーに matrix.os の値も含めるようにしています。 https://github.com/ruby/ruby/pull/2671

[fb6a489af2] Nobuyoshi Nakada 2019-10-23 16:06:59 UTC

obj.:meth という記法で Method オブジェクトを取り出す機能を revert しています。 [ruby-core:95502] [Feature #16275]

[0f2837847d] Kazuhiro NISHIYAMA 2019-11-12 08:46:39 UTC

NEWS ファイルの typo 修正やチケットの参照追加。

[3bf8ffad71] Nobuyoshi Nakada 2019-11-12 09:02:28 UTC

File.realpath や File.realdirpath のテストにちゃんと絶対パスになっていることを確認する assertion を追加しています。いくつかのシステムでは realpath(3) や realdirpath(3) が相対パスを返すことがあるとのこと。

[f36a53d038] Hiroshi SHIBATA 2019-11-12 06:44:19 UTC

Monitor#mon_owned? が使えるのは 2.5 以降とのことで rubygems の require の実装で呼ぶのは respond_to? で確認してからにしています。

ruby-trunk-changes 2019-11-11

今日は組み込みメソッド定義を ruby スクリプトでする時に使える __builtin_inline! という C のソースコードをその場で埋め込めるメソッドの追加や rubygems と bundler の更新などがありました。

[ef03d48cb2] Yuichiro Kaneko 2019-11-10 13:18:08 UTC

mini_builtin.c のコメントの typo 修正。

[6e70fa49b1] Kazuki Tsujimoto 2019-11-10 13:34:49 UTC

後置 in による短縮形の pattern match の記法で Array pattern や Hash pattern の [] や {} が省略されたら SyntaxError になるように修正しています。 [ruby-core:95098] [Feature #16182]

[b5996b25ae] Takashi Kokubun 2019-11-10 21:33:23 UTC

irb の色付けでクオート記号を bold 表示するようにしています。

[958d954a19] git 2019-11-10 21:34:25 UTC

version.h の日付更新

[25c53a8eec] Takashi Kokubun 2019-11-10 21:41:34 UTC

irb の色付けで %I{} による Symbol の配列のリテラルのクオート記号に色をつけるようにしています。

[fcd9bc28e3] Takashi Kokubun 2019-11-10 21:54:44 UTC

25c53a8eec4f73f4d0d127144b24bf68218149e3 の続き? irb で %i と %I の色付けを Symbol と同じになるようにしているようです。

[a733893939] Takashi Kokubun 2019-11-10 22:12:13 UTC

0483d01f6bdd3d16b31244a7aaadb4c31f6ecee7 で切り出した MJIT のテストの mark_tested_insn で uplevel 変数がそもそも渡されてなかったのでキーワード引数で渡すように修正しています。あーそこには気がついていなかった…。

[b5dff926e7] Nobuyoshi Nakada 2019-11-11 00:16:00 UTC

test/ruby/test_parse.rb と test/ruby/test_syntax.rb で SyntaxError になることを確認するテストに assert_raise を使っていたのを assert_syntax_error を使うようにしています。また assert_nothing_raised のかわりに assert_valid_syntax を使うようにしています。一箇所(じゃないかもしれないけど) assert_raise で閉じてない =begin が文法エラーになるのを確認しているところが =end を補ってしまって assert_valid_syntax になっててテスト内容が代わってしまってそうだけどこれはいいのかな。と、思ったけど少し後で再度同じようなテストが追加されていたので意図的だったようです。

[b42656b9c4] Yuichiro Kaneko 2019-11-11 00:22:46 UTC

.gitignore ファイルに *.rbinc を追加してソースディレクトリでビルドした時に生成される *.rbinc ファイルを無視するようにしています。

[ade0388894] Nobuyoshi Nakada 2019-11-11 00:35:37 UTC

複数行コメントを追加する =begin や =end で末尾に NUL 文字や Ctrl-D, Ctrl-Z といった文字コードが挿入されていても受け付けるようにしています。あーこっちで =begin だけで閉じてないテストは再追加されてるのか。

[69ec3f70fa] Nobuyoshi Nakada 2019-11-11 00:59:40 UTC

ade038889468e7755d7ebfe75975e0e77d1e1dec の追加修正で =begin/=end の後の NUL 文字や Ctrl-D/Ctrl-Z は警告を出力するようにしています。

[6f9be8505d] Nobuyoshi Nakada 2019-11-11 03:09:19 UTC

69ec3f70fab0c1c537c68fb135cc315181b1d750 の追加修正でテストの警告のチェック内容を少しゆるめています。

[390293525a] Nobuyoshi Nakada 2019-11-11 03:19:40 UTC

6f9be8505d172b110ec449478a791d70b9b74afb のテスト修正は revert して tool/rbinstall.rb で gemspec ファイル内の NUL 文字を含む行を消すようにしています。 gemspec ファイル対応のためだったのかな。

[6eaac7cfac] Nobuyoshi Nakada 2019-11-11 03:57:40 UTC

69ec3f70fab0c1c537c68fb135cc315181b1d750 の警告メッセージを少し修正しています。

[31ee6f6f5d] Nobuyoshi Nakada 2019-11-11 04:10:55 UTC

make up でソースコード更新後に extract-gems も実行されるように依存関係を追加しています。 optparse のテストで did_you_mean.gem が利用できなくてエラーになる場合があったようです。

[65f7e3156f] Nobuyoshi Nakada 2019-11-11 06:56:59 UTC

拡張ライブラリ json の gemspec ファイル内の spec.files を整形して重複したファイルを削除しています。

[9142f802f1] Koichi Sasada 2019-11-09 17:25:57 UTC

21f7cca2c6394aaaec9189a7cb08a9ad8a2196e3 で vm_call_iseq_setup_kwparm_nokwarg の klocals の末尾をクリアするようにしていましたが、そこにあるコメントの内容がやっぱり食い違ってた(不要だと書いてた)のでコメント内容をクリアする理由に書きなおしています。 VALUE として不正な値にしないためとのこと。

[05a5c69e1a] Koichi Sasada 2019-11-09 22:16:56 UTC

common.mk の miniprelude.c の依存関係に組み込みクラス実装用の .rb ファイル群を追加しています。動的に読み込むのではなくて miniprelude.c に埋め込むようになったので。

[3141642380] Koichi Sasada 2019-11-11 07:38:46 UTC

組込みクラス実装する ruby スクリプト内で使える __builtin_inline! というメソッドを追加して、引数の文字列内に直接 C の実装を書けるようにしています。ほえー、どうしてるのかと思ったら __builtin_inline{0,1,2,...} のような通し番号をつけた C の関数を生成して、この関数引数は ec と self のみで後は呼び元の ruby スクリプトでのメソッドの引数を rb_vm_lvar で参照してローカル変数として代入する文を定義する関数の先頭に挿入することで渡すようにしています。また __builtin_inline! の引数は文字列リテラルじゃないといけない?(putstring 命令のオペランドでないといけない)ようです。すごい。野心的な機能だなぁ。

[7d463e360b] Hiroshi SHIBATA 2019-11-11 06:03:57 UTC

rubygems に upstream から 3.1.0.pre3 をマージしています。不具合修正や 2.7 対応など。

[ba5b51ca59] "NARUSE, Yui" 2019-11-11 08:37:14 UTC

6eaac7cfac668d6669be694fd7b723c4982ed218 の =begin/=end の後の NUL 文字などの警告の変更を revert。

[fd69f82675] "NARUSE, Yui" 2019-11-11 08:37:21 UTC

続いて 69ec3f70fab0c1c537c68fb135cc315181b1d750 の =begin/=end の後の NUL 文字などに警告する変更を revert しています。

[7585bc3187] Hiroshi SHIBATA 2019-11-11 08:57:45 UTC

bundler に upstream から 2.1.0.pre.3 をマージしています。

[9d3213ac85] Kazuhiro NISHIYAMA 2019-11-11 10:03:43 UTC

test/ruby/test_default_gems.rb のテストは git コマンドが利用可能じゃないと失敗するので(gemspec ファイル内で git ls-files を使ってるからかと)、git が使えなかったら skip するようにしています。

[8b27c23b5d] Hiroshi SHIBATA 2019-11-11 11:19:29 UTC

rubygems の更新で失敗したテストの対応で spec.activate の前後の mutex の操作の変更を revert しています。