ruby-trunk-changes 2019-08-16

今日は String#sub! が条件によって不正メモリアクセスを起こす可能性があった不具合の修正や rdoc の parser の性能改善, bundler の更新などがありました

[fff2b231a3] Nobuyoshi Nakada 2019-08-15 12:26:32 UTC

make update-githubGITHUB_TOKEN の有無による分岐を1行で書くようにリファクタリングしています。

[c4152b11a7] Nobuyoshi Nakada 2019-08-15 12:34:34 UTC

make fetch-github で git notes のための remote の reference も追加するようにしています。

[d5c33364e3] Nobuyoshi Nakada 2019-08-15 14:25:37 UTC

String#sub! で文字列オブジェクトの RSTRING_PTR() でポインタを取り出した後で実際に参照する前に repl と str が実は同じ String オブジェクトだと RESIZE_CAPA() でバッファが変更される可能性があるので、参照直前に取得するように修正しています。 [ruby-core:94356] [Bug #16105]

[b1003301af] Nobuyoshi Nakada 2019-08-15 14:59:28 UTC

標準添付ライブラリ English の rdoc 用コメントのマークアップの修正。これ RD の記法かなぁ。

[40806793a9] Nobuyoshi Nakada 2019-08-15 15:00:50 UTC

標準添付ライブラリ English の rdoc 用コメントのマークアップ修正。

[715218c430] git 2019-08-15 15:02:38 UTC

version.h の日付更新

[d2070f2e45] songhuangcn 2019-08-15 15:20:52 UTC

BasicObject クラスの rdoc 用コメントの method_missing のサンプルのバグを修正しています。 https://github.com/ruby/ruby/pull/2239

[7704bbd640] Nobuyoshi Nakada 2019-08-15 15:28:16 UTC

doc/globals.rdoc の特殊変数のドキュメントで関連するコマンドラインオプションを tt タグでマークアップしています。

[7c46aa6911] Olivier Lacan 2019-08-15 15:42:17 UTC

Array#- と Array#difference の rdoc 用コメントの英文修正。confusion を避けるためとのことだけど英語よくわからないので confusing だったということがよくわからない。 https://github.com/ruby/ruby/pull/2068 https://github.com/ruby/ruby/pull/2070

[d013d8e02e] Takashi Kokubun 2019-08-15 16:11:18 UTC

make update-github の FORK_REPO と PR_BRANCH の取得方法を修正。

[789f17665e] Takashi Kokubun 2019-08-15 16:18:26 UTC

make update-github で git remote が既に存在してたら追加しないように修正しています。

[2f919a92ba] Takashi Kokubun 2019-08-15 16:34:51 UTC

make update-github を checkout-github に依存させてたのを fetch-github に依存するように変更。 make update-github 時の再 configure を避けるためみたいです。あと pull requests ごとのブランチを git worktree を使って分離するようにしているようです。

[2665e5858f] Espartaco Palma 2019-08-15 16:38:46 UTC

Net::HTTP::Get.new に不正な URI を渡した時のテストを追加しています。 https://github.com/ruby/ruby/pull/1278 https://github.com/ruby/ruby/pull/1835

[d21616eeb0] Takashi Kokubun 2019-08-15 16:45:00 UTC

make update-github で最後に git remote と worktree を削除しておくようにしています。

[409ce8c3da] Takashi Kokubun 2019-08-15 16:51:22 UTC

d21616eeb0616095bb96408036a7548a30987e02 に追加して worktree に対応したローカルの branch も削除しておくようにしています。

[74726691ba] OKURA Masafumi 2019-08-15 17:21:17 UTC

Module#define_method の rdoc 用コメントにブロックにブロックパラメーターがあったらそれが定義されるメソッドの引数として使われる点を追記しています。 https://github.com/ruby/ruby/pull/2165

[9d2fed2ccd] Steven Willis 2019-03-20 18:50:05 UTC

irb でデフォルトでは代入文の時に評価結果を端末に出力しないようにしています。設定ファイルの ECHO_ON_ASSIGNMENT および --echo-on-assignment オプションで表示するように戻せるようになっています。テストコードにデバッグ用と思われる puts が残ってますね。

[0a0760aa63] Yusuke Endoh 2019-08-06 16:53:56 UTC

詳細は読んでませんが rdoc の RDoc::Markup::Parser のパフォーマンス改善の変更。

[723a37d038] Yusuke Endoh 2019-08-06 17:32:03 UTC

標準添付ライブラリ rdoc の RDoc::TokenStream#add_tokens と RDoc::TokenStream#add_token というメソッドは alias になってましたが、add_tokens は配列を受け取り、add_token は1つの token だけ受け取るように変更しています。

[64f9f512c5] aycabta 2019-08-08 07:35:34 UTC

標準添付ライブラリ rdoc の anchor 生成の修正。こんな記法もあるのか。

[1a5304228a] Nobuyoshi Nakada 2018-12-02 02:36:45 UTC

rdoc のテストで minitest のかわりに test-unit を利用するように変更しています。 https://github.com/seattlerb/minitest/issues/779

[8045ebbf78] Nobuyoshi Nakada 2018-12-02 02:46:13 UTC

rdoc の locale ディレクトリがない時のテストを File.exist? を stub してテストしてたのを実際に存在しないディレクトリを指定して実行するようにしています。

[5555e3ef57] Nobuyoshi Nakada 2019-08-08 14:09:24 UTC

test/rdoc/minitest_helper.rb を test/rdoc/helper.rb に改名しています。

[787b437a2a] Nobuyoshi Nakada 2019-08-08 14:04:32 UTC

rdoc のテストで最近の rubygems の更新で deprecated になってた Gem::Specification.default_specifications_dir を Gem.default_specifications_dir に変更しています。

[71fd26b195] Nobuyoshi Nakada 2019-08-08 16:43:51 UTC

787b437a2aaf8bfd60a9ac151f52cdb2638b7d8d の再修正。古い rubygems を使ってた場合を考慮して respond_to? でチェックしてから呼び分けるようにしています。

[8a18a639b7] Hiroshi SHIBATA 2019-08-10 09:01:08 UTC

rdoc の gemspec ファイルから add_development_dependency を削除しています。かわりに Gemfile を使うとのこと。

[9218655660] Hiroshi SHIBATA 2019-08-11 03:35:54 UTC

test/rdoc/helper.rb の capture_io の alias を削除しています。minitest からの移行にまつわる変更ですね。

[2066dae991] Hiroshi SHIBATA 2019-08-11 03:37:05 UTC

test/rdoc/helper.rb のコメントアウトされてた行の削除。

[e87e10e5e7] Hiroshi SHIBATA 2019-08-11 03:39:11 UTC

rdoc のテストで require するのを test-unit から test/unit に変更しています。 えーとたしか test-unit って……なにが違うんだっけ?

[daf5ce3ba1] Hiroshi SHIBATA 2019-08-11 03:50:54 UTC

rdoc のテストで skip を omit の alias として定義して使ってたのを、omit のほうを使うようにして alias 宣言削除しています。

[bad937b00b] Hiroshi SHIBATA 2019-08-11 03:53:49 UTC

daf5ce3ba1545e295ba2efd0ee153638ae446e6e の再修正。 rdoc のテストのうち Gem::TestCase に依存しているものは Minitest を使っているので omit ではなく skip を使うようにしています。

[b64911f4e2] aycabta 2019-08-14 10:06:27 UTC

rdoc のテストに書かれてた FIXME コメントを削除。Parser が書きかえられたから直ってるはず。

[f71bd7477e] Yusuke Endoh 2019-08-06 17:14:39 UTC

標準添付ライブラリ rdoc の C のソースコードを読む parser で String#scan を複数回呼んでたのを、巨大なひとつの正規表現にまとめて一気に scan するようにしています。いやーすごい正規表現だな。メンテは大変そうだけど、これにより rdoc が高速になったそうです。

[a458317b91] aycabta 2019-08-15 21:45:36 UTC

rdoc のテストで test/unit の流儀にそって assert_raises → assert_raise に、omit はやっぱり skip に変更しています。結局 skip って test/unit にあるのか。

[1b02f6c020] aycabta 2019-08-15 22:10:45 UTC

irb のテストで IRB::Context#return_format を設定しておくようにしています。

[12074ad01c] Nobuyoshi Nakada 2019-08-15 17:08:02 UTC

make update-github の echo と cut コマンドを使って文字列を切り出してたのを GNU make の word というコマンドを利用するように書きかえています。

[64bffddda1] Nobuyoshi Nakada 2019-08-15 17:08:40 UTC

同じく make update-githubruby の Kernel#exit に 0 か 1 を渡すため条件演算子を使ってましたが、Kernel#exit は true/false も受付けるので条件の真偽値を反転してそのまま渡すようにしています。

[cd41378ef9] Yusuke Endoh 2019-08-16 02:36:47 UTC

rdoc の ruby スクリプトのほうの parser で最後の文字をチェックするのに chars + to_a を使ってたのを正規表現を使ってより省メモリに実現するように書きかえています。

[500c3cb6a5] David Rodríguez 2019-07-24 17:45:53 UTC

bundler のリファクタリング。 Bundler::Source::Path で Bundler.root を直接呼び出してたのを wrap しているメソッド root の呼び出しに置き換え。

[c11c8b69ea] David Rodríguez 2019-07-24 17:48:10 UTC

bundler のテストで生成する Gemfile.lock ファイルの内容を記述するヒアドキュメントをインデント除去つきのものに変更しています。

[6711343d5a] David Rodríguez 2019-07-24 17:46:19 UTC

bundler の Gemfile に相対パスで書かれてた時の処理を修正。

[2b0f3aa095] Benoit Daloze 2019-08-04 12:52:15 UTC

bundler で実行している ruby のバージョンを調べるのに実装毎に参照する定数を変更していたのを RUBY_ENGINE_VERSION を参照するように統合しています。

[3f0e19c9fa] David Rodríguez 2019-08-05 15:20:34 UTC

bundler のテストで spec/bundler/realworld/double_check_spec.rb の spec のタグに :sometimes => true というのを追加しています。このタグはリトライ対象になるものみたいで、つまりたまに失敗することがあるのでその時に自動的なリトライ対象にするってことみたいですね。

[3c23bb29ec] David Rodríguez 2019-08-06 11:59:39 UTC

bundler のテストで $LOAD_PATH の内容を検査する時に除外するパスのうち不要なものを削除。

[41534ce327] David Rodríguez 2019-08-05 16:43:47 UTC

3c23bb29ecbc0c736e99d23a3c47892d67f3a322 と同じ bundler のテストで $LOAD_PATH の内容をチェックするもので global なところに bundler.gem がインストールされてても通るようにパスの整形を修正しています。

[129657ab6a] David Rodríguez 2019-08-06 14:56:01 UTC

bundler の Windows でのテストで $LOAD_PATH にいくつかのパスを unshift で追加してたのを Dir.glob を利用して 1行に書きなおしています。

[0aed0bd9ed] David Rodríguez 2019-08-06 14:59:02 UTC

bundler のテストで $LOAD_PATH に追加するパスに mustermann という gem のものも追加しています。あと利用する? rack と sinatra の依存バージョンを更新しています。

[ee1f3038f1] David Rodríguez 2019-05-24 15:46:26 UTC

bundler のテストの spec の description の修正。

[6c6c4c7388] David Rodríguez 2019-08-07 18:33:04 UTC

bundler のテストでインストール先のディレクトリ指定にオプションではなく bundle config path を利用するようにしています。

[7ff0b4fec4] David Rodríguez 2019-08-07 18:35:28 UTC

bundler のテストのお作法で system_gems っていうのを指定する位置を外の before に移動しています。

[5bff72c912] David Rodríguez 2019-08-07 18:37:50 UTC

6c6c4c7388c2f1c0f579de363bb0ec66ad851b5b の追加修正で bundle install の実行するのに bundle メソッドではなく bundle! メソッドを利用するようにしています。調べてないけどコメントなどからたぶん失敗した時に例外を発生させるバージョンとかなんだろうな。

[521a2d2beb] David Rodríguez 2019-07-26 11:37:51 UTC

e97741e12a22d78825a3a9dfcb7382adb0e27855 でマージされた bundler の変更の一部を revert しています。 upstream でいうと https://github.com/bundler/bundler/commit/e63e844bc7444c6a489fcde0dc7011c6c4807edd これらしい。まだまとめてマージしていた時期のなので rubyリポジトリでは混ざってます。

[94e26a97a1] David Rodríguez 2019-08-08 15:27:23 UTC

bundler のテストで利用する(?) rspec の依存バージョンを 3.8 以降に更新しています。

[6412121b00] Masato Ohba 2019-08-10 00:24:30 UTC

lib/bundler/plugin/api/source.rb のコメントの typo 修正。

[4913c9b6bf] David Rodríguez 2019-08-08 10:07:07 UTC

bundler のテストで bundler に含まれるファイルのチェックで既に存在しなくなっているファイルを除外リストからも消しています。

[4af3665fd9] David Rodríguez 2019-08-08 10:08:53 UTC

man/gemfile.5* のサンプル? の依存 gem で上げられてる debugger を byebug に変更しています。

[cd15d27d10] David Rodríguez 2019-08-06 15:23:06 UTC

bundler のテストで rubygems の deprecated の警告を抑制するためのヘルパーメソッドを追加しています。

[8f28ae65a8] David Rodríguez 2019-07-10 15:23:29 UTC

bundler 自体の gemspec ファイルの files についてのコメントを削除しています。

[f48a61fb46] David Rodríguez 2019-07-10 15:26:55 UTC

man/ 配下の bundler のサブコマンドのマニュアルの更新日時を更新したりオプションの説明を変更したりしています。

[cb71930351] David Rodríguez 2019-08-08 10:06:44 UTC

4913c9b6bf78ae697689f89b99754e346603c68a に追加して bundler のテストで除外するファイルリストから、既に存在しなくなってた .marshal も削除しています。

[b587e8c7f1] David Rodríguez 2019-07-24 10:24:55 UTC

bundler の bundle gem に --[no-]git オプションを追加して、生成した gem のディレクトリ内で git init を抑制できるようにしています。

[3b61019a89] tommy 2019-08-13 13:53:33 UTC

bundler のテストに spec/bundler/bundler/build_metadata_spec.rb というファイルを追加して Bundler::BuildMetadata のテストを行うようにしています。

[502ad4d391] Tomoki Aonuma 2019-07-10 14:19:14 UTC

bundle config の man ページの更新。

[8cf90a2f80] Hiroshi SHIBATA 2019-08-15 22:11:14 UTC

8a8f680f017d0d4c410f17ec74e06d0436dcbe83 や ed9d59afc811ff738c4218a2edf71b3c9c49e370 で bundler のテストで GitHub Actions での実行かどうかを判定するのに環境変数 GITHUB_ACTION を参照しているところで、nil? メソッドを利用するように変更しています。 rubocop の警告に対策するためとのこと。

[b8d759806f] Hiroshi SHIBATA 2019-08-16 01:05:15 UTC

3b61019a89c366e50db908ccf25a9156bc500a5f で追加した bundler のテスト spec/bundler/bundler/build_metadata_spec.rb を spec/bundler/build_metadata_spec.rb に改名しています。 https://github.com/bundler/bundler/pull/7297

[02d0d424be] Hiroshi SHIBATA 2019-08-16 05:52:03 UTC

b8d759806ff825e1b9344ba34b1a2bc4809d0988 を revert しています。これは入れるつもりじゃなかったみたいです。

[03f4a0b18e] Nobuyoshi Nakada 2019-08-16 07:47:09 UTC

rdoc のテストで assert_raises のかわりに assert_raise を使うように変更しています。

[619f82bb6b] Nobuyoshi Nakada 2019-08-16 08:36:09 UTC

拡張ライブラリ socket の rsock_inspect_sockaddr() から UNIX Socket のアドレスのサイズを取得する関数を rai_unixsocket_len() として切り出しています。