ruby-trunk-changes 2019-08-20

今日は古い macOS 向けの configure 時の処理の修正や bundler のテスト、rubygems の更新などがありました。

[8df25214de] Yusuke Endoh 2019-08-19 15:17:26 UTC

io.c の ioctl_req_t の typedef で Android (マクロ __ANDROID__ が定義されてる)では普通の Linux とは異なり int で定義されるそうなので preprocessor の分岐条件を修正しています。

[1408f15921] git 2019-08-19 15:21:17 UTC

version.h の日付更新

[e6b72e8cae] David Carlier 2019-08-19 14:36:47 UTC

6dd9736c3a73ecd9b0dcf47348a81fb934eb88b3 とも関連して addr2line.c で実行中のファイルパスを得るのに macOS で libproc のproc_pidpath() を使うように修正しています。

[af2c8d2836] Nobuyoshi Nakada 2019-08-19 15:18:07 UTC

configure で macOS の場合の OS のバージョンのチェックを 10.5移行に変更。ついでにチェックに使うマクロを MAC_OS_X_VERSION_MAX_ALLOWED から MAC_OS_X_VERSION_MIN_REQUIRED に変更しています。

[9ee770a2ce] Nobuyoshi Nakada 2019-08-19 15:39:06 UTC

af2c8d283665f741f82b4e16b06c520e702c012b の続きで configure での OS バージョンチェックで古い macOS の時に BROKEN_SETREUID および BROKEN_SETREGID を定義するのはやめています。

[588b74e8d8] Nobuyoshi Nakada 2019-08-19 16:11:28 UTC

af2c8d283665f741f82b4e16b06c520e702c012b, 9ee770a2ce57fce9a5dedf6c6c35ca8e02fd044b のさらに続きで configure の macOS でのバージョンチェックの位置を configure の前のほうへ移動しています。

[19b0161b85] Nobuyoshi Nakada 2019-08-19 16:58:45 UTC

さらに af2c8d283665f741f82b4e16b06c520e702c012b 以降の続き? configure での macOS のバージョンチェックをもともとしていた位置では syscall(2) が deprecated になってるかどうかでチェックするように変更しています。バージョンをみるんじゃなくて本来チェックしたい内容を直接チェックするようにしたということかな。

[dc0e45e39b] Alan Wu 2019-08-19 04:42:29 UTC

T_IMEMO 型オブジェクトからの ISeq の参照の GC.compact でのオブジェクト移動に対応する参照の付け替えの処理 rb_iseq_update_references() で original_iseq からの参照も付け替えるようにしています。 TracePoint を使った時にエラーになることがあるよってことでした。 [Bug #16098]

[aa03de8ba1] aycabta 2019-08-19 23:24:50 UTC

irb の lexer でインデントレベルの計算で do というキーワードをブロックでなくループの開始(省略可能なのであんまり書かないと思いますが while do ... end って書けるのでした)の時を区別してあげるように修正しています。

[5a384e2c08] David Rodríguez 2019-08-20 00:46:31 UTC

bundler のテストの細かな修正たち。これは squash commit にしてくれたみたいですね。 また tool/runruby.rb で環境変数 BUNDLE_GEM のかわりに GEM_COMMAND を利用するように変更しています。 https://github.com/ruby/ruby/pull/2380

[dd58c4ba35] Nobuyoshi Nakada 2019-08-20 07:07:43 UTC

bundler のテストで GitHub Actions でのエラーのデバッグのために Spec::Indexes#resolve で NoMethodError を捕捉して詳細情報を表示させるようにしています。

[73af1c4d00] Nobuyoshi Nakada 2019-08-20 04:56:04 UTC

rubygems の Gem.default_dir で RbConfig::CONFIG['rubylibprefix'] がない場合の分岐というのを消しています。 1.9.2 以降ずっとあるのでもう考慮しなくていいでしょということのようです。

[7a07c54bef] Nobuyoshi Nakada 2019-08-20 10:20:22 UTC

tool/sync_default_gems.rb の default gems の upstream からの cherry pick 時のコミットログの1行目にコンマが含まれていた場合を考慮するように修正しています。

[af12172035] Nobuyoshi Nakada 2019-08-20 10:26:12 UTC

tool/sync_default_gems.rb で不要なローカル変数の代入を除去しています。

ruby-trunk-changes 2019-08-19

今日は sample/ の配下のサンプル集の修正/警告除去や GitHub Actions の Slack 通知対応などがありました。

[d8807e8b1a] Takashi Kokubun 2019-08-18 14:19:09 UTC

.github/workflows/ の各種 GitHub Actions の設定に Slack への通知を追加しています。

[e4c43207f9] Takashi Kokubun 2019-08-18 14:32:49 UTC

d8807e8b1a9d09ee1543e18618b4ef7e8203c616 の GitHub Actions から Slack への通知設定を revert しています。機能不足してたのでもうプラグイン? にちょっと手を入れようとしているみたいです。

[2f6c8ed26e] Takashi Kokubun 2019-08-18 16:49:51 UTC

.github/actions/notify-slack/action.yml というファイルを追加して GitHub Actions の Slack 通知機能を実装しています。へー、こんなふうに action を追加できるんですね。

[aa5fbb5a76] git 2019-08-18 16:50:18 UTC

version.h の日付更新

[e139d27748] Takashi Kokubun 2019-08-18 18:14:18 UTC

2f6c8ed26eec4ad2d2fdaa0823cc63ba32f4c7a2 で追加した .github/actions/notify-slack/action.yml はやっぱり削除して k0kubun/action-slack@v1.0.0 とリポジトリのタグ? を指定するようにしています。パラメーターの指定方法もちょっと変更になったみたいです。

[c100e3856a] Takashi Kokubun 2019-08-18 18:40:33 UTC

e139d27748a0548c0ae10fb483c7389caacd4b3d の GitHub Actions からの Slack 通知でコミットログが複数行になった時の不具合修正。

[d106f08291] Takashi Kokubun 2019-08-19 00:41:51 UTC

GitHub Actions の make test-bundled-gems の実行に continue-on-error: true をつけてエラーを無視するようにしています。コミットログによるとこれにより Slack 通知にも無視させることができるようです。

[4c13368972] Takashi Kokubun 2019-08-19 00:46:55 UTC

appveyor.yml の Webhook を使った Slack 通知で色付けのためにカラーコードを数字で指定していたのを good/danger などのキーワードを使うようにしています。

[bc1e2271af] Yusuke Endoh 2019-08-19 00:45:41 UTC

標準添付ライブラリ rdoc の parser の未使用のローカル変数の削除。

[574a9edfb3] Nobuyoshi Nakada 2019-08-19 05:34:13 UTC

Windows 環境での symlink の実装で特権ユーザーでなくても作れるように専用のフラグを create_symbolic_link() に追加するようにしています。 https://github.com/ruby/ruby/pull/2381

[1f3f50fb5e] git 2019-08-19 05:34:29 UTC

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

[d76be10df1] Yusuke Endoh 2019-08-19 05:43:15 UTC

missing/memcmp.c で if 文の条件部に代入文を書いてて警告が出たので、先にローカル変数へ代入しておいてそれを参照するように修正しています。

[39a43d9cd0] Benoit Daloze 2019-08-19 05:51:00 UTC

RubyVM およびその配下の rdoc 用コメントを RubyVM は CRuby というか MRI というか、ともかく C 実装の元祖の ruby 実装に特有のものを集めたものだというのを強調するようにしています。 https://github.com/ruby/ruby/pull/2113 [ruby-core:92109] [Bug #15743]

[6c2aa8689a] Takashi Kokubun 2019-08-19 05:59:58 UTC

.github/workflows/macos.yml でやはり brew update がたまに失敗するようで、sleep で時間をあけつつ 2回までリトライするようにしています。

[c5db4c28f9] Yusuke Endoh 2019-08-19 06:01:48 UTC

cont.c の fiber_initialize_coroutine() 内の不要な STACK_GROW_DIR_DETECTION を削除しています。未使用変数の警告の除去のため。

[4515bcc922] NAKAMURA Usaku 2019-08-19 06:37:28 UTC

tool/merger.rb で master の変更をマージするためにパッチを作る時に version.h の変更は取り除くようにしています。また git apply する時の pipe を binary モードで開くようにしています。

[1bd60c66d3] Nobuyoshi Nakada 2019-08-19 06:55:53 UTC

include/ruby/ruby.h の FL_USER19 の定義で RUBY_FL_USER19 を一旦 unsigned int にキャストするようにしています。たぶん RUBY_FL_USER19 が 32bit 整数だと最上位ビットなので、VALUE へのキャストで VALUE と int のサイズが違う場合に上位 bit が埋まってしまうのを避けるようにしているのだと思います。

[8108594f47] Nobuyoshi Nakada 2019-08-19 07:18:54 UTC

1bd60c66d385142d08f678f8a9563c311cfc3fe8 と同様に rb_thread_shield_waiting_inc() でビットフラグとして使う変数を unsigned long から unsigned int に変更しています。 int で十分だからとのこと?

[b4daa44270] Nobuyoshi Nakada 2019-08-19 07:32:57 UTC

error.c の環境変数 RUBY_ON_BUG が設定されてた時にそのコマンドに pid を渡してコマンド実行するためのコマンドラインを作る snprintf(3) で pid を埋め込むための指示子に PRI_PIDT_PREFIX マクロを利用するようにしています。

[45454bdb8b] Nobuyoshi Nakada 2019-08-19 07:37:29 UTC

標準添付ライブラリ cgi正規表現のマッチに Regexp#match より Regexp#=~ を使うようにしたり条件分岐を論理 OR (||) による制御構造を利用するようにしたりなどのリファクタリング。真偽値が欲しい場合は今だと Regexp#match? を使うようにしたほうがモダンなんじゃないかなって気もしますが。[追記]https://bugs.ruby-lang.org/issues/13083#change-63083 の Matz のコメントによると Regexp#match や #match? などは引数が nil の時に例外にしよう、という計画があるようなのでそのために =~ にするようでした。[/追記]

[605d2ce9b9] Kenichi Kamiya 2019-08-19 08:30:59 UTC

sample/dir.rb で表示するファイルの拡張子のフィルタリングに正規表現を使ってるところで \z を追加して正確にファイル名末尾にマッチしていることを確認するように修正しています。 https://github.com/ruby/ruby/pull/2385

[6dd9736c3a] David CARLIER 2019-08-19 08:36:28 UTC

macOS で rb_bug() などで異常終了した時のメッセージで libproc というライブラリを(可能なら)利用してメモリマップの情報を表示させるようにしています。おお、これ確か macOS だと別途ファイルでダンプされちゃうやつ(のうちの一部)ですかね。 https://github.com/ruby/ruby/pull/2384

[355acbafde] Hiroshi SHIBATA 2019-08-19 08:52:13 UTC

標準添付ライブラリ yaml の rdoc 用コメントのリポジトリの URL を変更。

[cda8664471] Kenichi Kamiya 2019-08-19 09:00:29 UTC

sample/list3.rb というサンプルコードで Point というクラスの to_s を再定義してたのを inspect を再定義するように修正しています。昔って inspect は to_s 呼ぶようになってましたね、そういえば…。 https://github.com/ruby/ruby/pull/2387

[97c377e2b1] Takashi Kokubun 2019-08-19 09:11:51 UTC

.travis.yml で macOS のビルドがたまにハングアップするので全リビジョンでのテストではなく定時的なビルドにみにしています。

[9b330200f8] Kenichi Kamiya 2019-08-19 09:16:45 UTC

sample/observ.rb のサンプルコードの未使用の変数除去。 https://github.com/ruby/ruby/pull/2388

[209ea85b54] Hiroshi SHIBATA 2019-08-19 09:37:22 UTC

標準添付ライブラリ uri のテストで明示的な require "envutil" を追加しています。また refute_match の引数に正規表現でなく文字列を渡してたので Regexp.compile するように修正しています。

[8882986d97] Kenichi Kamiya 2019-08-19 09:43:23 UTC

sample/ に似たようなサンプルがあったので削っています。 機能的には似てるけど実装は一応異なってますね。まあ今となっては sample/ のサンプル集もかなり役目を終えた感じはありますが。 https://github.com/ruby/ruby/pull/2389

[45bed2850e] Kazuhiro NISHIYAMA 2019-08-19 10:37:07 UTC

6c2aa8689ade82578e9e16be37e21e16eb7ce069 で GitHub Actions の macOS でのビルド時の brew update のリトライを追加したのを () で sub shell 起動してたのを { } によるブロックに変更し、また sleep と brew update の間も && で連結しています。

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 の順序を整理しています。

ruby-trunk-changes 2019-08-17

今日は rubygems と bundler の更新の cherry-pick で変更がたくさんありました。本体のほうは Refinements の不具合修正? が 1つありました。

[229ae3269d] Yusuke Endoh 2019-08-16 12:27:05 UTC

標準添付ライブラリ rdoc でファイルに対して Marshal.dump で出力するのに一旦文字列オブジェクトにしてから書き込んでたので Marshal.dump の第2引数に IO を渡す方法を使うようにリファクタリングしています。

[bb2a65800d] David Rodríguez 2019-04-03 13:06:29 UTC

rubygems のテストでただの require のかわりに assert_require という assertion を使うようにしています。こんな assertion メソッドがあるのか。

[d4feeb1936] David Rodríguez 2019-04-03 13:11:14 UTC

rubygems の require のテストで loaded_spec_names のチェックも追加しています。

[00cd5d74ce] Samuel Giddins 2017-03-14 17:34:03 UTC

rubygems が上書きする require で $LOAD_PATH 内の gem のパスからファイルを探す通常の探索(のように思える)をその他の処理の前に行うようにしています。 -I オプションによる指定が default gem より優先して効くようにするためらしいです。なんか遅くなりそうだけど…。

[37abd2c390] David Rodríguez 2019-04-03 16:00:02 UTC

00cd5d74cecb6aa4a184e57e2b8246ef6e45d458 の追加修正。 rubygems が古くて Gem.load_path_insert_index が nil だったら $LOAD_PATH を全部調べるように終端を -1 にするようにしています。ますます遅くなりそう…(まあ古い場合だけみたいだけど)。

[b8984370da] David Rodríguez 2019-05-19 15:31:17 UTC

00cd5d74cecb6aa4a184e57e2b8246ef6e45d458 のさらに再修正。ファイルパス探索時に File.expand_path したものを使うようにしています。コミットログによると JRuby での不具合修正らしい。

[89ad5df979] bronzdoc 2019-07-26 05:54:06 UTC

Gem::Command#show_lookup_failure の第4引数 domain を削除してかわりに省略可能引数 suppress_suggestions を追加し実体に名前と渡す内容をあわせるようにリファクタリングしています。

[f42ad4a425] David Rodríguez 2019-04-25 13:57:41 UTC

lib/rubygems.rb の Gem.register_default_spec からファイルの suffix の正規表現の変数をメソッド Gem.suffix_regexp として切り出すようにしています。

[1ac6890bd0] David Rodríguez 2019-04-25 13:58:45 UTC

rubygems の再定義する require で同じファイルを重複してロードしてしまう場合があった不具合を修正しているようです。

[3587824d71] David Rodríguez 2019-04-25 09:48:40 UTC

1ac6890bd05a48e385f564d212765a3a60899659 の再修正。よくわかりませんが default gem の require した時に @path_to_default_spec_map から消すのはやめて、load 済みかどうかのチェックのほうで重複を回避するようにしてるみたいです。

[5998012a0c] David Rodríguez 2019-01-07 11:00:35 UTC

これもよくわかりませんが rubygems の bundler との協調のためのコードで Gemfile.lock に書かれる bundler のバージョンより実際の bundler のバージョンを優先するようにしているっぽいです。

[c78839902b] David Rodríguez 2019-01-10 16:08:59 UTC

5998012a0c7244fe217c2d4f494e50f32ec85d29 の再修正。指定の bundler のバージョンがみつからない時に nil を返すように変更。

[c4f7c260f9] Hiroshi SHIBATA 2019-07-31 03:46:09 UTC

rubygems の Gem::RubyGemsVersion と Gem::ConfigMap という定数を deprecate にしています。

[25a327d41b] Alexander Pakulov 2019-08-14 19:00:27 UTC

rubygems の s3 の署名つき URL 生成のコードの不具合修正。

[56a28a8728] MSP-Greg 2019-08-15 16:43:50 UTC

lib/rubygems/installer.rb の Windows 向けバッチファイル? 生成の ruby.exe のファイル名が決め打ちになってたのを修正しています。

[ae3002b540] Hiroshi SHIBATA 2019-08-16 07:02:32 UTC

rubygems で terminate_interaction の終了コードをマジックナンバー 1 から ERROR_CODE という定数にしています。これ前もあったやつの変更漏れですね。 https://github.com/rubygems/rubygems/pull/2844

[f30d38bdd0] Hiroshi SHIBATA 2019-08-16 12:30:32 UTC

rubygems のテストで $LOAD_PATH にソースディレクトリの lib が含まれてたらそれを末尾に移動するようにしています。default gem のロードの優先度とかが変わっちゃうからかな。

[e0fc9b7ccd] git 2019-08-16 22:49:00 UTC

version.h の日付更新

[7624154595] Hiroshi SHIBATA 2019-08-16 23:44:31 UTC

00cd5d74cecb6aa4a184e57e2b8246ef6e45d458 の変更で rubygems で再定義された require で tainted な文字列を require に渡す可能性があったのを修正しています。

[efd37f8fc3] OKURA Masafumi 2019-08-16 23:52:23 UTC

Enumerable#sum の rdoc 用コメントで数値じゃない要素があった時の TypeError になる例として Array#each で Enemerator を生成してから sum を呼んでる例があって若干まぎらわしかったので、文字列を要素にもつ Range を例に変更しています。 https://github.com/ruby/ruby/pull/2190

[75d29db8f9] Hiroshi SHIBATA 2019-08-16 23:52:13 UTC

00cd5d74cecb6aa4a184e57e2b8246ef6e45d458 の rubygems の再定義する require での default gems より -I オプションを優先するための変更とそれに追随する変更を revert しています。

[045152df9e] Takashi Kokubun 2019-08-17 00:43:05 UTC

.github/workflows/ の GitHub Actions の設定の fail-fast というオプションを false に設定しています。一部のタスク? ジョブ? が失敗しても続きのテストも実行したいため。

[042be439d9] OKURA Masafumi 2019-08-16 13:56:30 UTC

Object#method_missing の rdoc 用コメントのサンプルコードを修正しています。メソッドの引数をちゃんと受け取るのと処理できない時に super を呼んでぶようにする作法を示しています。

[11a9f7ab94] Nobuyoshi Nakada 2019-08-16 15:17:15 UTC

Refinements で Module#using で Refinements を適用している Module 内でさらに Module#refine で refinements のブロックを開くと、その中では外のスコープの using が効かないという不具合を修正しています。これ不具合なのかな…。まあ Refinements は lexical に効くはずだから効いたほうがいいのか。けどなんとなくサンプルをひとめ見た瞬間は、こっちが正しいような気がしてしまったけど…。 [ruby-core:94382] [Bug #16107]

[dc020b06ff] Nobuyoshi Nakada 2019-08-17 03:32:29 UTC

11a9f7ab9431b0f361e43b4ac2bd6ee44827d88b の追加で Refinements 関連の method entry 探索を search_refined_method() という関数に切り出しています。 [ruby-core:94382] [Bug #16107]

[ea496e9fb2] Hiroshi SHIBATA 2019-08-17 02:36:12 UTC

GitHub Actions での Ubuntu のテストに make check を追加しています。

[2468466a1a] Hiroshi SHIBATA 2019-08-17 03:08:07 UTC

ea496e9fb2c930ac0c5ff8c12c4a10fac0ec3c7b の make check 追加に追随して continue-on-error: true の設定が make check についてしまわないよう除外の条件を復活させています。

[ccbfb054b1] Kazuhiro NISHIYAMA 2019-08-17 04:57:12 UTC

bundler の deprecation 警告の typo 修正。

[28267cea08] David CARLIER 2019-08-17 05:17:30 UTC

NetBSD では explicit_bzero() がないそうなので configure でチェックして存在しない場合は explicit_memset を使った代替実装を利用するようにしています。 https://github.com/ruby/ruby/pull/2145

[dce1e14e80] Iain Barnett 2019-08-17 05:24:45 UTC

Fiber#resume の rdoc 用コメントのサンプルで fiber.resume に渡す引数の数値を変更しています。なんかコミットログにいろいろ書いてあるけど、元のサンプルだと最後(にエラーにならずに呼べる) Fiber#resume の戻り値がその前の Fiber.yield に渡した値と関係あるようにみえてしまって混乱するから、みたいです。うーん、そうかな。そうかも。 https://github.com/ruby/ruby/pull/2170

[72adc6cffb] Kenichi Kamiya 2019-08-17 05:56:57 UTC

sample/fact.rb の実装をちょっと整理しています。 https://github.com/ruby/ruby/pull/2374

[9d20d2b0f5] Kenichi Kamiya 2019-08-17 06:03:00 UTC

sample/biorhythm.rb のリファクタリング。このサンプルコードまだあったんだ。 https://github.com/ruby/ruby/pull/2375

[dd16f8524c] Hiroshi SHIBATA 2019-08-16 23:54:05 UTC

75d29db8f965893bb6ab38b9008abc80cdda246e で revert した 00cd5d74cecb6aa4a184e57e2b8246ef6e45d458 はじめとする rubygems の再定義する require で default gems より -I の指定を優先するためのパスを再度追加しています。特に重大な差分はないのでなにか追加修正を一緒にしたというわけではなさそう。

[273f1f4498] Hiroshi SHIBATA 2019-08-17 01:11:05 UTC

rubyspec の require のテストで $LOAD_PATH にパスを追加する時に先頭でなく最後に追加するようにしています。 rubygems の require 関連の変更の影響でしょうね。

[22d9bd944d] Hiroshi SHIBATA 2019-08-17 02:05:29 UTC

dd16f8524c44f8802e634af2577fe5a149cd740e で復活させた rubygems による require 実装でディレクトリパスが symbolic link だった時の対処を追加しています。

[d8148650f6] Hiroshi SHIBATA 2019-08-17 02:30:01 UTC

dd16f8524c44f8802e634af2577fe5a149cd740e で復活させた rubygems の再定義 require で先に $LOAD_PATH 内にみつけたファイルをオリジナルの require に渡した時になぜか LoadError が発生した場合にも対処して残りの処理に fallback させるように例外の捕捉と RUBYGEMS_ACTIVATION_MONITOR のロック再取得するようにしています。

[06fcf88d69] Hiroshi SHIBATA 2019-08-17 03:19:49 UTC

ruby 本体の require のテストで普通に require と書くと rubygems の再定義した Kernel#require が呼ばれてしまってうまくテストできないことがあるので、Kernel.send(:require, ...) でオリジナルのメソッドを呼ぶようにしています。あーなるほど Kernel#require は上書きされるけど特異メソッドの Kernel.require のほうはオリジナルのままなのか。

[260ef51a73] Hiroshi SHIBATA 2019-08-17 03:33:38 UTC

dd16f8524c44f8802e634af2577fe5a149cd740e の rubygems 版の require の対処で Gem.load_path_insert_index が nil の時の対処はやっぱり消しています。これが nil になるのは 1.9 より前らしいので、さすがにそれはもう考慮しないでいいということで。

[d041c6cebb] Hiroshi SHIBATA 2019-08-17 03:35:30 UTC

同じく dd16f8524c44f8802e634af2577fe5a149cd740e で復活させた rubygems 版 require の処理追加のところに意図の説明と rubygems の pull request へのリンクをコメントで追加しています。

[221ba9b66c] Hiroshi SHIBATA 2019-08-17 08:01:19 UTC

260ef51a73c067599826c8ab110c53994c1b6226 で revert した古い ruby 用の Gem.load_path_insert_index が nil を返すケースの対応はやっぱり復活させています。 2.4/2.5 の安定版で壊れるとのこと。

[7664b5cb65] Hiroshi SHIBATA 2019-08-17 07:22:27 UTC

182a408c2c4113eb316c2a87e35880144afb4498 で Proc#to_s および #inspect のファイル名/行番号の表示の前の "@" を削って空白にした変更で rubygems でこれに依存してた部分の修正もしてましたが、古い ruby への対応のためどっちでも動くように再修正しています。

[ef2d415802] David Rodríguez 2019-08-03 12:06:58 UTC

bundler のテストのヘルパーメソッド bundler_path が lib というメソッドとまったく同じ内容だったので削除して lib を使うようにしています。しかし lib ってずいぶん思いきった名前だな…。

[50a91fcd10] David Rodríguez 2019-08-03 12:07:11 UTC

ありそうだなーと思ったらやっぱり bundler のテストのヘルパーメソッド内で lib っていうローカル変数を使ってるところがあったので削除して、内容的には同じだったので lib メソッドをそのまま使うようにしています。

[745b286161] David Rodríguez 2019-08-06 11:16:15 UTC

話題の lib メソッドを spec/bundler/support/helpers.rb から spec/bundler/support/path.rb に移動しています。

[a2ca3a12ba] David Rodríguez 2019-08-06 11:16:44 UTC

bundler のテストの let で bundler_dir というのを定義してたのを同じ内容のヘルパーメソッド root を使うようにしています。

[9995ce64a2] David Rodríguez 2019-08-15 14:37:18 UTC

bundler のテストでローカル変数への代入を繰り返してたところをメソッドチェインに書き換え。

[7551117c70] David Rodríguez 2019-08-08 08:41:56 UTC

bundler のテストで let で setup_path というのを宣言してたのを、これもヘルパーメソッド lib を使って各々の場所で書くようにしています。

[6357540945] David Rodríguez 2019-08-15 14:40:33 UTC

bundler のテストでコマンドとしての bundle ファイルの位置を ruby リポジトリ内では libexec/bundle にするように変更しています。

[7af12a92c8] David Rodríguez 2019-08-15 14:41:52 UTC

63575409458f6b7b1bdaf038a562bc3f011e231e の続きと思われますが bundler のテストで bundle コマンドの位置を特定するのに ruby リポジトリ内かどうかの分岐をヘルパーメソッド bindir にまかせるようにリファクタリングしています。

[3bebdda649] David Rodríguez 2019-08-15 15:58:34 UTC

bundler のテストで ruby 実行時に -rrubygems オプションをつけてたのは、最近の ruby だとデフォルトで rubygems 有効で不要なので削除しています。

[2e6509498c] David Rodríguez 2019-08-15 15:58:56 UTC

bundler の分岐条件の不要な部分の削除。

[63d78afc2d] David Rodríguez 2019-08-15 15:59:48 UTC

2e6509498c1daf3335ac6343bf59441d42011b64 の続き。そもそもオプションの参照が不要ということで条件分岐ごと削除しています。

[e38994d2f7] David Rodríguez 2019-08-15 14:45:04 UTC

bundler のテストで gem_command! というヘルパーメソッドを使うようにするリファクタリング

[91c63828f7] David Rodríguez 2019-08-15 16:12:34 UTC

bundler のテストのヘルパーメソッド gem_bin というのを切り出しています。

[30a4ec1fee] David Rodríguez 2019-08-15 16:13:06 UTC

91c63828f7b841df6b7b124acb752c0a3bca66c0 で切り出した gem_bin で gem コマンドに --backtrace オプションを追加するようにしています。

[122bc65042] David Rodríguez 2019-08-15 16:13:36 UTC

さらに bundler のテストのヘルパーメソッド gem_command でも切り出した gem_bin を流用するようにしています。

[334e615022] David Rodríguez 2019-08-15 14:47:44 UTC

bundler の bundle gem のテストで bundler.gem は不要なので用意しないようにしています。

[b43f4bd218] David Rodríguez 2019-08-15 17:18:01 UTC

bundler のファイルリストについてのテストで変数名の改名。

[c896f71577] David Rodríguez 2019-08-15 14:48:42 UTC

b43f4bd2184989c5f47ee539e583c785dfadb8d0 で改名した tracked_files という変数を bundler のテストのヘルパーメソッドとして定義するように切り出しています。

[19dabfbe57] David Rodríguez 2019-08-15 17:24:56 UTC

同じく bundler のテストで変数名の改名。これもヘルパーメソッドにする布石みたいです。

[6a299906b4] David Rodríguez 2019-08-15 14:59:08 UTC

ということで 19dabfbe574f9a8298054eb417d299ec5fc18412 で改名した変数を bundler のテストのヘルパーメソッドとして切り出し。

[6506993462] David Rodríguez 2019-08-15 15:01:36 UTC

bundler のテストのヘルパーメソッド install_gems でファイルパスの生成に + のかわりに Pathname#join を使うようにリファクタリング

[20af44c277] David Rodríguez 2019-08-15 15:03:26 UTC

bundler のテストのヘルパーメソッドの install_gems には install_gem という alias も残してあったのですが、最後の呼び出し元も改名して alias は削除しています。

[aef5509139] David Rodríguez 2019-08-15 15:07:48 UTC

と思ったら 20af44c27727333b4cd3eef9d5b18daaa0445f0e で削除した alias の install_gem は install_gem から呼び出す 1つの gem のインストールの処理のメソッドとして定義しています。

[f88237623f] David Rodríguez 2019-08-15 15:26:51 UTC

bundler のテストのヘルパーメソッドで Spec::Path という定数参照をしていたところを単に Path を使うようにしています。なんか bundler のテストは省記述指向だな。

[9925e1a10f] David Rodríguez 2019-08-15 16:25:56 UTC

bundler のテストのヘルパーメソッド gem_command! の第2引数に渡す Pathname と to_s してから渡してるところはそのまま渡すようにしています。gem_command! の中でも to_s しているため。

[adfca752d6] David Rodríguez 2019-08-15 16:41:55 UTC

bundler のテストで FileUtils.rm に渡す引数でも to_s してるところがありましたが Pathname も受け付けるのでそのまま渡すようにしています。

[9c0fcd1d0f] David Rodríguez 2019-08-15 16:29:15 UTC

bundler のテストで自明なコメントを削除。

[a56bf5bfde] David Rodríguez 2019-08-15 16:29:23 UTC

同じ bundler のテストでファイル削除に FileUtils.rm のかわりに絶対パスにした上で Pathname#rmtree を使うようにしています。

[580e093fdd] David Rodríguez 2019-08-15 16:46:42 UTC

でもってその絶対パス化した Pathname をローカル変数に一度代入しておくようにしています。

[20c5154f0b] David Rodríguez 2019-08-15 16:48:09 UTC

bundler のテストで Dir.chdir でカレントディレクトリを移動する範囲を狭めて必要なタイミングでのみ移動するようにしています。

[09455301ef] David Rodríguez 2019-08-15 16:53:51 UTC

bundler のテストで bundler.gemspec を作ってテストする処理をヘルパーメソッド with_root_gemspec として切り出しています。

[4318405609] David Rodríguez 2019-08-15 16:54:15 UTC

09455301ef81bc6207e6d3ba1034c35851575e18 で切り出した with_root_gemspec でさらに gemspec ファイルパスを変数に入れて使いまわすようにリファクタリングしています。

[a2d7c97a91] David Rodríguez 2019-08-15 16:58:07 UTC

bundler のテストのヘルパーメソッド with_built_bundler というのも切り出しています。

[08c58e3c0d] David Rodríguez 2019-08-16 06:45:11 UTC

bundler のテストで gemspec ファイルが置かれるディレクトリを取得するヘルパーメソッド gemspec_dir を追加しています。それは root とは違うのか…と思ったけど ruby リポジトリ内の場合はサブディレクトリ内になるんですね。

[37d0e6e471] Hiroshi SHIBATA 2019-08-17 09:18:20 UTC

bundler のテストで $LOAD_PATH を弄った後で復帰する処理は JRuby では実行しないようにしています。 JRuby の $LOAD_PATH は replace できないのかな。

[79fe84edf5] Hiroshi SHIBATA 2019-08-14 12:12:15 UTC

標準添付ライブラリ rdoc のテストのディレクトリ構成の変更。

[3a06c11a7d] Hiroshi SHIBATA 2019-08-14 12:15:43 UTC

rdoc の RDoc::Markup::FormatterTestCase と RDoc::Markup::TextFormatterTestCase の autoload 設定の削除。

[e095803c37] Hiroshi SHIBATA 2019-08-14 12:21:45 UTC

rdoc の gemspec ファイルの spec.files から削除されたファイルを消しています。

[15da2aad76] aycabta 2019-08-16 15:15:07 UTC

rdoc のテストのうち Travis-CI で skip するようにしていたテストの skip をとりやめています。ファイル構成の変更で直ったのかな。

[2a65498ca2] aycabta 2019-08-16 15:14:28 UTC

rdoc の gemspec ファイルの spec.files から .travis.yml を削除しています。

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() として切り出しています。

ruby-trunk-changes 2019-08-15

今日は Range#=== で要素が文字列の時の判定方法の変更や Range#minmax の最適化のためのメソッド定義追加などがありました。

[8be521662d] Takashi Kokubun 2019-08-14 13:21:15 UTC

.github/workflows/check_branch.yml のジョブ名? タスク名? を改名しています。

[bf77f43b39] Takashi Kokubun 2019-08-14 13:36:41 UTC

.github/workflows/check_branch.yml のコメントのこの GitHub Actions のチェックの目的についてまた書きなおしています。

[9874dca3e7] Takashi Kokubun 2019-08-14 14:00:09 UTC

.github/workflows/macos.yml の make check と make test-bundler および make test-bundled-gems の実行を分けて continue-on-error の設定を true にしてエラーを無視させるようにしています。また .github/workflows/ubuntu.yml でも test-bundler と test-bundled-gems のエラーを無視させるようにしています。

[48e9155e65] Nikolai B 2019-08-14 09:16:07 UTC

標準添付ライブラリ English の rdoc 用コメントに rdoc のマークアップではない? \vref というものが書かれてたので削除しています。

[7da40d74e1] Steven Harman 2019-08-14 14:35:47 UTC

Exception#backtrace および Exception#backtrace_locations の rdoc 用コメントの call-seq に nil がかえる可能性があることについて明記しています。 https://github.com/ruby/ruby/pull/2358

[e173012f44] Takashi Kokubun 2019-08-14 14:41:30 UTC

defs/gmake.mk の make merge-github および merge-github-xxx のターゲットを削除しています。

[938e075273] Takashi Kokubun 2019-08-14 16:00:26 UTC

make update-github というターゲットを追加して GitHub の pull request のブランチに master をマージさせることができるようにしています。 https://github.com/ruby/ruby/pull/2368

[7d32cb7631] git 2019-08-14 16:00:46 UTC

version.h の日付更新

[fbcd065294] Jeremy Evans 2019-08-14 05:44:36 UTC

知らなかったのですが nil::C のように nil に対して定数の探索ができてたみたいで、動機はよくわからないのですが VM 命令の getconstant に scope として nil を許容するかどうかを指定するオペランドを追加して構文的な定数アクセスの時には許容しないように修正しています。 [ruby-core:71598] [Bug #11718]

[d053a57014] git 2019-08-14 16:51:19 UTC

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

[6ac6de84ac] Jeremy Evans 2019-08-14 16:59:27 UTC

fbcd0652944568c43a6ae427960d909d62ce6a8d の再修正。 getconstant のオペランドに 0/1 を渡していたのを Qfalse/Qtrue を渡すように修正しています。

[661927a4c5] Jeremy Evans 2019-08-14 18:19:16 UTC

fbcd0652944568c43a6ae427960d909d62ce6a8d のさらに再修正。 VM 命令の getconstant に nil 許容のフラグをオペランドとして追加していたのはやっぱりやめて、VM スタック経由で渡すようにしています。 ISeq の構造が変化しないようにってことだと思いますが、VM スタックの消費量が変わるのも結局結構大きな影響があるような気がするけどなぁ。

[d5c60214c4] Jeremy Evans 2019-06-08 05:03:02 UTC

Range#minmax の定義を追加して Enumerable#minmax を継承していたので非効率な実行になってたり処理が帰ってこなくなってたりしたのを対処しています。 [ruby-core:92459] [Bug #15807] [ruby-core:92789] [Bug #15867]

[082424ef58] Jeremy Evans 2019-05-09 03:35:56 UTC

String#casecmp の実装で大文字小文字を無視して比較する時に TOUPPER() で大文字に揃えて比較してたのを TOLOWER() で小文字に揃えて比較するように変更しています。なんか特別な意味があるのかなと思ったけどコメントみる限り String#casecmp? などと挙動を揃えたということみたいです。

[6954ff1dcb] Jeremy Evans 2019-07-29 23:22:00 UTC

Ragen#=== の文字列を begin/end とする Range について Range#cover? の実装を使ってチェックするようにしています。Range は begin からはじめて succ でインクリメントしていくという semantic なので ("a"..."z") とした時には "aa" はこの Range を each でイテレートした時の要素としては現れないんだけど、<=> で比較すると辞書順なので "a" < "aa" < "z" という順序にはなるのでこの順序としての解釈を使うようにするよ、ということですね。うーん、まあそのほうが便利な気はする(が使うかなぁ)。ただこの挙動は r63453 で再実装した時に変わっちゃったみたいなのでそれを修正しているということみたいですね。 [ruby-core:90660] [Bug #15449]

[132b7eb104] git 2019-08-14 23:16:14 UTC

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

[53a55aeff3] Koichi Sasada 2019-08-15 04:48:58 UTC

RUBY_ON_BUG という環境変数コマンドラインを指定しておくと、rb_bug() で異常終了する際にこのコマンドに自分自身の pid を渡してコマンド実行するようにしています。デバッガを指定することで異常終了する時の状態を保存してデバッガに処理を引き継ぐようにできるようにしています。便利そう。 https://github.com/ruby/ruby/pull/2331 [ruby-core:94216] [Feature #16090]

ruby-trunk-changes 2019-08-14

今日は拡張ライブラリ stringio の最近の IO の BOM への対応などに追随する機能追加や先日の Module/Class の名前付け実装の変更の再修正などがありました。

[94ca848ca1] Takashi Kokubun 2019-08-13 13:56:44 UTC

.github/workflows/check_branch.yml の master 以外からブランチを切った pull request を弾く理由についてのコメントを再度修正しています。

[dd1344b81e] Aaron Patterson 2019-08-12 21:00:34 UTC

Enumerator および Yielder の GC.compact 対応。enumerator_compact() と yielder_compact() を追加して struct enumerator や struct yielder の VALUE な要素について移動をサポートするようにしています。

[c393734c95] git 2019-08-13 14:00:56 UTC

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

[79f9c626b6] Takashi Kokubun 2019-08-13 14:36:31 UTC

.github/workflows/*.yml の各プラットフォームでのリポジトリの clone に GibHub Actions の公式のアクションを利用するように戻しています。 git clone だと対象のコミットをきっちり取得できないのと、fork されたリポジトリからの pull request のコミットを取得する必要があるのでとのこと。 https://github.com/ruby/ruby/pull/2357

[5b1bf8dd2d] Nobuyoshi Nakada 2019-08-13 14:23:43 UTC

IO の Encoding をファイル先頭の BOM を元に設定するために使う io_strip_bom() で UTF-16LE の時の分岐が冗長で、\xFF\xFF\x00 までは 32LE と同じだった場合に誤判定するようになっていたので修正しています。 [ruby-core:94326] [Bug #16099]

[8827697ec4] Nobuyoshi Nakada 2019-08-13 15:23:19 UTC

bootstraptest/test_thread.rb の Thread#backtrace のテストの assertion の書きかたをちょっと変更。

[930e637c0e] git 2019-08-13 15:23:38 UTC

version.h の日付更新

[216d230080] SHIBATA Hiroshi 2019-08-13 22:44:26 UTC

assert_raise_with_message、assert_warning、assert_warn などの assertion メソッドを tool/lib/test/unit/assertions.rb から tool/lib/test/unit/core_assertions.rb に移動しています。 default gems のテストで使うためとのこと。 https://github.com/ruby/ruby/pull/2354

[8a687b8a4f] Takashi Kokubun 2019-08-14 00:23:57 UTC

79f9c626b63c2ce6ed1f3e767838a02a668145ba で GitHub Actions の公式のアクションでリポジトリの取得するようにしてましたが、やっぱりやめて独自に git clone してから狙った commit まで git reset するようにしています。やっぱり公式のアクションでたまに失敗することがあるようです。

[765d603153] Takashi Kokubun 2019-08-14 01:52:15 UTC

8a687b8a4ff4096d7783bed58642112cfa3256a0 の GitHub Actions でのリポジトリ取得の独自コマンド化で .github/workflows/windows.yml では変数の参照を ${{...}} を使うようにしています。これは GitHub Actions 自体の記法かな。 https://github.com/ruby/ruby/pull/2361

[c8f9e9a2a0] Nobuyoshi Nakada 2016-06-10 05:18:14 UTC

拡張ライブラリ stringio の StringIO.new の第2引数の mode で Encoding の指定をサポートし、またキーワード引数にも対応するようにしているよう IO に追随しています。テストにはキーワード引数のほうはないけどたぶん同じような指定ができるように引数処理をそろえていると思う。

[e54d349a01] Nobuyoshi Nakada 2019-08-13 18:02:30 UTC

拡張ライブラリ stringio の c8f9e9a2a0788fff08824985a74748dbe7ff7b18 の変更で利用する関数 rb_io_extract_modeenc() が古い ruby だと存在しないので、default gems 化されているので古い ruby でビルドされた時のための代替関数を追加しています。

[8b44307894] Nobuyoshi Nakada 2019-08-14 01:42:14 UTC

さらに拡張ライブラリ stringio の StringIO.new の mode に Bignum の整数で渡された時にも対応できるように FIX2INT() ではなく NUM2INT() で変換するようにし、さらに to_int で整数化するオブジェクトにも対応するようにしています。

[22e942deb2] Nobuyoshi Nakada 2019-08-14 01:42:46 UTC

e54d349a01043082169a88a2782e6739bdd52c4f で拡張ライブラリ stringio に古い ruby 対応のために追加した rb_io_extract_modeenc() の代替実装で mode: キーをもつハッシュの引数(オプション引数とか言うやつ)による指定もサポートするようにしています。

[cad41bb6d3] Nobuyoshi Nakada 2019-08-14 01:43:46 UTC

拡張ライブラリ stringio に e717d6faa8463c70407e6aaf116c6b6181f30be6 で追加された IO#set_encoding_by_bom と同様に BOM を元に Encoding を決定させる StringIO#set_encoding_by_bom メソッドを追加しています。

[c744b62698] Nobuyoshi Nakada 2016-06-09 23:01:39 UTC

io.c の rb_io_extract_modeenc() から static をはずして include/ruby/io.h で export するようにしています。

[0623e2b7cc] Kazuhiro NISHIYAMA 2019-08-14 02:44:20 UTC

d0b2e6412e58fef052034962c047ce4dafbf88eb で切り出した関数 rb_ec_cleanup() で volatile 変数 errs が未初期化のまま使われると Coverity Scan で検出されたそうで Qundef 2つの配列で初期化するようにしています。 EC_EXEC_TAG が絡んでるので誤検出かなと思いますが、字面をみてるとむしろ素直に読んだほうが未初期化でアクセスはしないようにみえるけどなぁ。

[182a408c2c] Koichi Sasada 2019-08-14 07:25:15 UTC

Proc#to_s のファイル名と行番号の表示に "@" を前置していたのをやめて空白で区切るようにしています。 rubygems もこれに依存してたので一緒に修正しています。 https://github.com/ruby/ruby/pull/2362 [ruby-core:94341] [Feature #16101]

[0971460e31] git 2019-08-14 07:25:32 UTC

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

[1cffd5b4f0] Koichi Sasada 2019-08-14 07:30:30 UTC

182a408c2c4113eb316c2a87e35880144afb4498 で rubygems の追随がもう一箇所漏れてたので追加修正しています。

[c8f97596b7] Alan Wu 2019-08-10 21:32:49 UTC

b00f280d4b9569e7153365d7e1c522b3d6b3c6cf の Module/Class の name の取得方法の変更で無名の Module/Class の配下で定数定義すると無名のクラスの inspec したものが name として登録されてしまうという不具合があった(Module#name が nil を返すべきところ文字列を返してしまう)のを再修正しています。定数の名前付けってすごく複雑だなー。 [ruby-core:94277] [Bug #16097]