ruby-trunk-changes 2019-08-18

今日は bundler の更新や標準添付ライブラリ reline の不具合修正などがありました。

[765eb18a45] Nobuyoshi Nakada 2019-08-17 14:14:52 UTC

vm_core.h の VM_DEBUG_VERIFY_METHOD_CACHE というマクロは VM_DEBUG_MODE に依存して定義していたのを VMDEBUG をみるように変更しています。 VM_DEBUG_MODE というマクロは既に使われてなかった模様。

[8b8e7e6e9e] Nobuyoshi Nakada 2019-08-17 15:25:48 UTC

rubygems のテスト用クラスで $LOAD_PATH の内容をチェックして @gem_prelude_index をセットする処理でファイルパスを File.realpath で絶対パス化するようにしています。

[aa00f7b8ec] git 2019-08-17 15:33:13 UTC

version.h の日付更新

[6db3051fcc] Nobuyoshi Nakada 2019-08-17 14:28:46 UTC

mv_method.c の verify_method_cache() という関数は VM_DEBUG_VERIFY_METHOD_CACHE が真の時だけ定義するようにしていて呼び出し元も preprocessor による分岐をしていましたが、関数定義は常にしてその中で VM_DEBUG_VERIFY_METHOD_CACHE が偽の時はすぐ return するようなコードにしています。コンパイルが通る状態にするためみたいです。static 関数だし定数による分岐で return してるからコンパイラの最適化で関数呼び出し自体が消されて実質変化はないかも。

[1d11a8b193] Nobuyoshi Nakada 2019-08-17 14:29:54 UTC

6db3051fcc08440fb1d80617dae90ae3f97db95c と同様に OPT_GLOBAL_METHOD_CACHE が真の時だけ定義していた Init_Method() の関数内部(こちらは関数宣言自体は常に行なわれているけど内容を preprocessor の分岐で消してた)を早期 return するようにしてコンパイルは通る状態でないとビルドできないようにしています。

[74ca6b88dd] Nobuyoshi Nakada 2019-08-17 14:33:12 UTC

load.c の rb_load_internal0() を load_wrapping() と改名して wrap 引数を削除、呼び元の rb_load_internal() に wrap が 0 の時の処理を吊り上げていて、この時は top_wrapper = 0 で呼ぶのではなくて load_iseq_eval() を直接呼ぶようにしています。不要な TAG セットを抑制するためみたいです。

[7bb0a7d7cb] Nobuyoshi Nakada 2019-08-17 14:35:35 UTC

make benchmark ターゲットの引数で変数 ITEM にファイル名の拡張子を省略しない書きかたをした時も許容するようにしています。

[e9f82585ee] Alan Wu 2019-08-08 22:38:40 UTC

標準添付ライブラリ reline の Reline::LineEditor で行末で delete の処理をしようとしてエラーになるのを修正しています。

[0bbbe82986] aycabta 2019-08-17 22:52:49 UTC

tool/sync_default_gems.rb の reline の同期でテストディレクトリの構成を修正しています。

[113a5c1e1d] aycabta 2019-08-17 23:03:32 UTC

reline の gemspec ファイルの spec.bindir と spec.executables が upstream リポジトリに exe ディレクトリがあることを前提にした書きかたになってたのを削除しています。これ書き直しじゃなくて単に削除でいいのかな。

[50623f3df0] aycabta 2019-08-17 23:04:06 UTC

reline のテストのコメントアウトされた状態で残ってたデバッグ用の出力を消しています。

[a0e80c7cb7] Takashi Kokubun 2019-08-18 00:30:33 UTC

.github/workflows/ubuntu.yml の make check 時の continue-on-error: true の設定を消しています。

[3ecb5125c6] Hiroshi SHIBATA 2019-08-18 04:25:13 UTC

rubygems の定数 Gem::ConfigMap は deprecated になったので tool/lib/envutil.rb で利用してたところは削除しています。

[a02dbcecb1] David Stosik 2019-08-15 05:47:57 UTC

bundler の Gemfile に重複した gem のエントリがあった時の警告メッセージを修正しています。

[cc644c7116] David Rodríguez 2019-08-16 12:02:03 UTC

bundle doctor サブコマンドで参照するパスを Bundler.home を利用していたのが条件によっては存在しないパスになるので Bundler.bundle_path を使うように修正しています。

[e6e8d2d8c0] David Rodríguez 2019-08-09 19:47:09 UTC

bundler のテストで before に明示的に :each を引数に渡してたのを削っています。デフォルトが :each だから不要なことはしないということでやっぱりミニマリストですね。

[98841b2b19] David Rodríguez 2019-08-09 19:48:38 UTC

bundler のテスト spec/bundler/commands/open_spec.rb でテスト全体を 1段 context のブロックでネストさせています。

[d80f5399ad] Zehan Zhao 2016-08-15 14:44:19 UTC

bundle open サブコマンドで default gems を指定された時の処理を追加してエラーメッセージを出力するようにしています。

[7659f00a8d] David Rodríguez 2019-08-16 13:56:19 UTC

d80f5399adc3564d05339e6dff92ea1e95fb280a の続きで bundle open サブコマンドの実装で default gems じゃない時の本来の処理にだけ必要な変数を条件分岐の後で代入するように変更しています。

[f753961611] David Rodríguez 2019-08-03 10:22:36 UTC

bundler のテストで不要な require "rubygems" を削除しています。

[998204882b] David Rodríguez 2019-08-02 11:23:20 UTC

bundler の require を require_relative にしたり autoload に設定するパスを絶対パスにしたりしています。

[c50c2354cf] David Rodríguez 2019-08-02 12:08:28 UTC

libexec/bundle の require を存在するならこのファイル自体からの相対パスで指定して require_relative を利用するようにしています。

[0653d8c601] David Rodríguez 2019-08-16 15:51:18 UTC

bundler のテスト spec/bundler/commands/exec_spec.rb で path の設定に bundle config path を使ってたのを bundle config set path と canonical な書きかたを使うように修正しています。

[5a69a23afc] David Rodríguez 2019-08-16 15:54:12 UTC

同じく bundler のテストで、よくわからないんですが bundle コマンド実行のメソッドに system_bundler というオプションを渡すのをやめています。その環境にインストール済みの bundle コマンドじゃなくてテスト中の bundler のコマンドを使うようにするってことかな。

[4756c5f7e7] David Rodríguez 2019-07-23 16:44:21 UTC

bundler のテストで bundler の require するパスを修正しています。

[683f9e1dbf] David Rodríguez 2019-08-16 15:45:00 UTC

bundler の内部にコピーされてる fileutils の実装で ruby 2.4 より前のためのコードを削除しています。

[a77b3b4476] David Rodríguez 2019-08-17 11:39:56 UTC

683f9e1dbf42aa4b326b244f1d4dbbbdcb9e8ceb で不要になった require "bundler/vendored_fileutils" を bundler のテストから削除しています。

[d3da1d57d3] Hiroshi SHIBATA 2019-08-18 06:02:21 UTC

bundler のテスト spec/bundler/commands/open_spec.rb で json を使ったテストを ruby 本体のリポジトリでは実行しないようにしています。

[cba8166cc1] MSP-Greg 2019-08-18 06:47:19 UTC

appveyor.yml に vc のバージョンによって利用する OpenSSL のバージョンを変更するようにしています。 https://github.com/ruby/ruby/pull/1998

[ad0ea708ca] Takashi Kokubun 2019-08-18 06:48:52 UTC

appveyor.yml の before_test というセクションの内容を before_script に移動てセクションは消しています。

[9132153930] Hiroshi SHIBATA 2019-08-18 08:40:01 UTC

tool/sync_default_gems.rb で default gems の git リポジトリの remote に ruby/ruby を追加して fetch してくる時に tag は取得しないようにしています。

[51edcbad5b] Hiroshi SHIBATA 2019-08-18 09:08:38 UTC

同じく tool/sync_default_gems.rb でついでに rubyリポジトリのデフォルトの branch は master が canonical になったので参照を変更しています。

[829b800c10] Takashi Kokubun 2019-08-18 10:09:40 UTC

.travis.yml の matrix の順序を整理しています。