ruby-trunk-changes 2019-08-06

今日は ObjectSpace::WeakMap の GC.compact での移動対応などがありました。

[4c15b241f8] Nobuyoshi Nakada 2019-08-05 04:29:53 UTC

include/ruby/ruby.h の rb_scan_args_count_block(), rb_scan_args_count_end()、rb_scan_args_count_hash()、rb_scan_args_count_trail() といったメソッド引数処理のマクロの未使用の引数 varc を削除しています。

[fb9dd6182a] Nobuyoshi Nakada 2019-08-05 04:43:22 UTC

rb_scan_args_count_end() や rb_scan_args_verify() といったマクロ定義で gcc の拡張属性に依存しない実装をするように変更しています。

[614c90fe21] Takashi Kokubun 2019-08-05 15:01:05 UTC

.travis.yml で addon による apt のパッケージインストールもやめて、before_install で独自に apt-get コマンドを呼ぶようにして失敗時にリトライするようにしています。

[48d460d9a6] git 2019-08-05 15:34:06 UTC

version.h の日付更新

[e80f407ed4] Takashi Kokubun 2019-08-05 15:43:46 UTC

aaf69a8ba866193863a7eafe5c6044844bd71bc3 と 076f3fcf11a061394d3d5f8c671512df1e983023 で Process のテストの sleep を長くしてたのを revert して Travis-CI の macOS ではこの 2つのテストは実行除外するようにしています。

[255e22a827] Takashi Kokubun 2019-08-05 15:49:41 UTC

614c90fe21cf1d9cf6fb18684187d8c7e2f61de6 の .travis.yml の追加修正で baseruby のジョブで gcc-8 の before_install を使うようにしています。

[33d7a58ffb] Aaron Patterson 2019-08-01 20:44:54 UTC

ObjectSpace::WeakMap に compact 処理を実装して、要素を pin しなくてすむようにしています。 https://github.com/ruby/ruby/pull/2314

[c9192ef2e8] git 2019-08-05 15:56:05 UTC

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

[81252c5ccd] Aaron Patterson 2019-08-05 18:32:42 UTC

e352445863588b90f7af6cdf6c1b6dc432ee33ab で Prev EP を GC.compact で移動可能にしたものの CI がエラーになったので 5ad2dfd8dce00f9fb4908adc786f12baaaf2b273 で revert したやつのリトライ。前回からの差分は gc_ref_update_imemo() で ep の指すオブジェクトを移動するのに VM_STACK_ENV_WRITE() を使ってたのを UPDATE_IF_MOVED() で直接書き換えるようにしています。 VM_STACK_ENV_WRITE() のほうだと内部の VM_ASSERT() などの assertion でオブジェクトの型のチェックをしていて、T_MOVED になっているとそこがひっかかってエラーになってしまってたそうです。 https://github.com/ruby/ruby/pull/2320

[2b6441196e] Jeremy Evans 2019-08-05 23:10:25 UTC

拡張ライブラリ syslog の Syslog.log の rdoc 用コメントのフォーマット文字列の指示子 %m についての記述を削除しています。実際にはサポートされていないため。 [ruby-core:46365] [Bug #6726]

[96cec6b277] Jeremy Evans 2019-07-15 02:39:57 UTC

RubyVM::InstructionSequence クラスの rdoc 用コメントにこのクラスは ruby の実装やバージョンによってクラス自体の有無や挙動が異なることを明記しています。 [ruby-core:46710] [Bug #6785]

[4f1a00a746] Justin Collins 2016-09-11 09:09:43 UTC

標準添付ライブラリ fileutils で操作するファイルが同一のパスを指してないかチェックする処理でファイルシステムが大文字小文字を区別するかで分岐してより厳密なチェックができるようにしています。 https://github.com/ruby/ruby/pull/1425

[146cf2f444] Espartaco Palma 2018-10-14 05:36:57 UTC

test/ruby/test_array.rb に冗長な assertion があったので削除しています。 https://github.com/ruby/ruby/pull/1790

[5cff9968ae] Nobuyoshi Nakada 2019-08-06 02:52:17 UTC

include/ruby/ruby.h の rb_scan_args() マクロ定義で(C の)可変長引数部分に引数が1つもない時にも対応できるようにしているようです。

[4daff3a603] Nobuyoshi Nakada 2019-08-06 02:56:37 UTC

マクロ rb_scan_args_verify() の評価値は使われていないので void にキャストして値を返さないことを明示的に宣言するようにしています。

[81a15d636e] aycabta 2019-07-31 15:39:30 UTC

標準添付ライブラリ reline の lib/reline/unicode/east_asian_width.rb のコメントに記述されている unicode.org のサイトへのリンクのバージョンを 12.1.0 のものに更新しています。

[d626ca1e98] aycabta 2019-07-30 17:13:21 UTC

lib/reline/line_editor.rb の不要になった TODO コメントを削除しています。

[842364792f] Charles Oliver Nutter 2019-07-27 06:18:39 UTC

lib/reline.rb で Windows 環境かどうか判定するのに RUBY_PLATFORM でなく RbConfig::CONFIG['host_os'] を参照するようにしています。 JRuby では RUBY_PLATFORM が "java" になるのでうまく判定できないのに対応するためだそうです。

[1ee88c51b3] Steven Willis 2019-03-20 18:50:05 UTC

irb で評価した文が代入文だった時には結果を表示しないようにしているそうです。 --echo-on-assignment オプションや inputrc の ECHO_ON_ASSIGNMENT の設定で表示するように戻すこともできるようです。

[43b52ac0a5] aycabta 2019-08-06 11:28:48 UTC

1ee88c51b3c319b74b69540e111e4a1c24833cad の代入文の評価値を表示しない変更を revert しています。

ruby-trunk-changes 2019-08-05

今日は VM 命令 opt_eq/opt_neq を MJIT 時にインライン化可能にする最適化や rubygems の更新などがありました。

[346aa557b3] Takashi Kokubun 2019-08-04 11:11:00 UTC

VM 命令の opt_eq と opt_neq の attribute の leaf を true にして MJIT でインライン化可能にしています。ついでに(?) string.c の static 関数 str_eql() を internal.h の inline 関数 rb_str_eql_internal() に移動しています。opt_eq_func() で引数の型チェックを追加して rb_str_eql_internal() を呼ぶようにして例外発生の可能性を消してるのだと思います。 https://github.com/ruby/ruby/pull/2318 [Bug #15589]

[76e2370f13] Nobuyoshi Nakada 2019-08-04 13:19:18 UTC

5931857281ce45c1c277aa86d1588119ab00a955 の再修正。 rb_require_internal() でも load_lock() に渡す前の path を fstring 化するようにしています。 [ruby-core:94122] [Bug #16041]

[7817a6fa09] git 2019-08-04 13:27:17 UTC

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

[164f1ac0e9] Takashi Kokubun 2019-08-04 14:08:22 UTC

7a75baa6e294473f02da512c99f7ef1f76b2d83c で一時的に MJIT 有効化で skip するようにしたテストを復活させています。 76e2370f132f83c16c9de39a0a9356579f364527 で直ってるかもしれないみたいです。

[aaf69a8ba8] Takashi Kokubun 2019-08-04 14:41:33 UTC

076f3fcf11a061394d3d5f8c671512df1e983023 と同様に子プロセスにシグナル送信するテストで子プロセスの状態変化を待つ sleep 時間を 3秒に伸ばしています。

[d6ac5c53d4] Nobuyoshi Nakada 2019-08-04 23:55:09 UTC

b452c03a14f943ae25338547bd680fce67399d85 で RUBY_ASSERT_MESG_WHEN() の引数が必ず 1回は評価されるようにしてたのを revert しています。 assert が無効な状態でも評価されるためベンチマークに影響があったそうです。 ASSERT 系マクロで副作用があることを期待した使いかたをしてるほうが間違いということで不要な評価は削っているようです。

[253da5b219] git 2019-08-05 00:00:13 UTC

version.h の日付更新

[6bb3618f28] Yaw Boakye 2018-10-12 00:04:46 UTC

benchmark/other-lang に含んでた python 版の fact がループ回数が少なくなってたのを修正しています。 https://github.com/ruby/ruby/pull/1982

[548cd6e2b5] Takashi Kokubun 2019-08-05 00:16:12 UTC

346aa557b31fe96760e505d30da26eb7a846bac9 で leaf 属性を true にした VM 命令 opt_eq と opt_neq ですが、デフォルトで leaf は true なので明示的な指定と関連するコメントを削除しています。

[29092d35d3] Nobuyoshi Nakada 2019-08-05 01:47:36 UTC

tool/lib/test/unit/core_assertions.rb 内の定数 FailDesc に Proc オブジェクトとして定義した子プロセスが失敗した時の状態表示用の処理の本体を tool/lib/envutil.rb のメソッド EnvUtil.failure_description として切り出しています。

[8cfa3d861c] Nobuyoshi Nakada 2019-08-05 01:51:52 UTC

5931857281ce45c1c277aa86d1588119ab00a955 および 76e2370f132f83c16c9de39a0a9356579f364527 の再修正。76e2370f132f83c16c9de39a0a9356579f364527 の load_lock() 前に path を fstring 化するのはやめて load_unlock() する時にあらためて RSTRING_PTR() で文字列バッファのポインタを取り直すようにしています。 5931857281ce45c1c277aa86d1588119ab00a955 による yycompile() での fstring() 化による unlock の失敗に対処するためポインタを取得しなおす方法に変更しています。

[521e25baa4] Nobuyoshi Nakada 2019-08-05 02:47:25 UTC

Process.spawn 系メソッドの rlimit 関係のオプションのテストで、例外のメッセージもチェックするつもりで assert_raise を使ってたところを assert_raise_with_message を呼ぶように修正しています。

[dc0c04764f] Nobuyoshi Nakada 2019-08-05 02:55:21 UTC

Process.getrlimit のテストで二重にネストした子プロセスを起動したテストをしていたのを、assert_separately の rlimit_cpu オプションが利用できるようになってるのでそれを使って子プロセスのみでテストするようにリファクタリングしています。またただの assert を使ってたところを適宜 assert_file, assert_predicate, assert_send などの専用の assertion メソッドを利用するようにしています。

[6a265278b5] Nobuyoshi Nakada 2019-08-05 03:16:03 UTC

Fiber のテストで定義してる invoke_rec というユーティリティメソッドで、EnvUtil.invoke_ruby で起動した子プロセスがシグナルで停止してないかのチェックを追加しています。

[2403f9ac3a] NAKAMURA Usaku 2019-08-05 03:52:14 UTC

標準添付ライブラリ pstore のテストでタイムアウトを伸ばしています。 mswin での CI の安定化のためらしいです。

[58a478bce4] Yusuke Endoh 2019-08-05 05:37:53 UTC

39622232c7542d062f79277a11f6b8b6b6cfd994 で拡張ライブラリ psych に同梱している libyaml のソースで警告除去のために追加した明示的キャストの一部を、ポインタ演算をした後の値をまとめてキャストするように修正しています。

[5a8d848849] bronzdoc 2019-07-30 00:39:17 UTC

rubygems の FIXME コメントを削除しています。

[8eb2921f56] Hiroshi SHIBATA 2019-07-30 23:54:45 UTC

rubygems のブロックパラメーターを短縮して外側のローカル変数を遮蔽してる警告を抑制しています。

[87bc29fe28] bronzdoc 2019-07-31 12:33:40 UTC

a34168f2ac674b2660fa895271faea258389a614 を revert して Gem::Specification の autorequire という属性を復活させています。

[42a9e27d84] Kazuhiro NISHIYAMA 2019-08-01 09:00:32 UTC

rubygems の S3 の署名つきURL処理で BASE64 の改行を削る処理を String#gsub の第2引数に Hash を渡す記法を使うようにリファクタリングしています。

[f9dac1bd54] David Rodríguez 2019-08-01 11:20:58 UTC

rubygems の rake package のテストで最後に pkg ディレクトリを掃除するようにしています。

[2ea2108a9f] Benoit Daloze 2019-08-04 12:16:42 UTC

rubygems のテストで定数を書き換えて行うテストで書き換え後の本体部分のみ後始末の ensure の対象にするようにしています。

[86ac51c301] Benoit Daloze 2019-08-04 12:39:55 UTC

rubygemsRUBY_ENGINE という定数の defined? での存在チェックしていたところは常にこの定数はあるものとして扱うようにしています。またバージョンを得るのに常に RUBY_ENGINE_VERSION という定数を参照するようにしています(これまでは JRUBY_VERSION みたいな実装毎の定数を参照していましたが、実際には外の実装はこのような定数を用意していないため)。

ruby-trunk-changes 2019-08-04

今日は主に標準添付ライブラリ rexml の更新などがありました。

[d569d721f9] Hiroshi SHIBATA 2019-08-03 13:17:45 UTC

テストに使う assert_throw と assert_ruby_status の定義を tool/lib/test/unit/assertions.rb から tool/lib/test/unit/core_assertions.rb に移動しています。 default gems のテストでも使うためみたいです。

[9733b47eb8] Nobuyoshi Nakada 2019-08-03 22:13:31 UTC

win32/README.win32 のテスト手順として make exam が書かれてましたが今は同じ意味になってるので make check に変更しています。[ruby-core:84275] [Feature #14187]

[586e23c97d] git 2019-08-03 22:15:25 UTC

version.h の日付更新

[9b38c84550] Nobuyoshi Nakada 2019-08-03 23:07:06 UTC

win32/README.win32 に書かれていたアイコンのについてのサイトのリンクが切れていたので別のサイトに変更しています。 [ruby-dev:50028] [Bug #13348]

[7adc8c79ea] Nobuyoshi Nakada 2019-08-03 23:15:05 UTC

win32/README.win32 で外にも make exam が書かれてたところがあったので全て make check に変更しています。 [ruby-core:84275] [Feature #14187]

[326c00b6f8] Takashi Kokubun 2019-08-03 23:38:37 UTC

5931857281ce45c1c277aa86d1588119ab00a955 の eval 内での __FILE__ 参照についての修正をテストのみ残してソース変更部分を一旦 revert しています。 RubyCI のいろんな環境で require 系のテストがこけているようです。

[7614cc5b24] Marcus Stollsteimer 2019-04-21 13:38:10 UTC

tool/format-release の空行追加のみ。

[636a4fad16] Will Binns 2019-06-14 04:18:01 UTC

README.md の ruby-talkメーリングリストの subscribe 用メールアドレスの記載を subscribe 用のメール本文も含んだ mailto リンクとして Markdown で書くようにしています。 https://github.com/ruby/ruby/pull/2236

[9311656914] Lars Kanis 2017-05-11 18:40:57 UTC

Encoding.default_internal の rdoc 用コメントの __ENCODING__ の説明を locale encoding から script encoding に修正しています。 https://github.com/ruby/ruby/pull/1611

[8e7df4bbf9] Olivier Lacan 2019-03-19 17:46:27 UTC

doc/syntax/literals.rdoc のヒアドキュメントについてのセクションの見出しに (heredocs) という略記を追加しています。 https://github.com/ruby/ruby/pull/2103

[4173258fd0] Semyon Pupkov 2017-11-13 09:48:29 UTC

標準添付ライブラリ cgi でクラスメソッドの呼び出しに "::" を使ってるのがあったのを "." によるメソッド呼び出し記法に変更しています。 https://github.com/ruby/ruby/pull/1749

[84829392f5] Kenichi Kamiya 2019-06-24 08:33:30 UTC

Array#difference の rdoc 用コメントの call-seq で戻り値は receiver とは異なるオブジェクトが返ることを強調する記法に修正しています。 https://github.com/ruby/ruby/pull/2255

[0f601df22c] Kenichi Kamiya 2019-06-24 08:03:49 UTC

Array#to_h の rdoc 用コメントでブロックつきで呼び出した時にブロックに渡されるブロックパラメーターがあることがわかるように修正しています。 https://github.com/ruby/ruby/pull/2254

[b6cfacc85d] Dmitry Petrashko 2019-05-29 21:16:06 UTC

ext/openssl/ossl.h から不要な openssl/conf_api.h の #include を削除しています。 boringssl という openssl クローン? のライブラリでビルドしようとしたらこのヘッダファイルがなくてエラーになったそうです。 https://github.com/ruby/ruby/pull/2210

[2d189a6721] David Carlier 2019-07-09 21:08:31 UTC

拡張ライブラリ psych のビルド時の警告除去のため明示的なキャストを追加しています。 https://github.com/ruby/ruby/pull/2283

[a3188f43a8] Takashi Kokubun 2019-08-04 01:08:17 UTC

5931857281ce45c1c277aa86d1588119ab00a955 を一部 revert していた 326c00b6f89e1c86e6fe29ab60da593eb6883a88 を revert して修正を復活させています。無罪だったのかな。というかよく revert してた前のコミットよむと、修正なしだと追加してたテストが本当にこけるのかを確認するという意図もあったようで、確かにいくつかの環境で追加したテストは失敗していたようです。

[7a75baa6e2] Takashi Kokubun 2019-08-04 01:49:03 UTC

5931857281ce45c1c277aa86d1588119ab00a955 の影響でなぜか MJIT 環境下で失敗するようになったテストに MJIT 有効化時のみの skip を追加しています。

[adfc8d6dba] Takashi Kokubun 2019-08-04 02:05:50 UTC

7a75baa6e294473f02da512c99f7ef1f76b2d83c の再修正で skip が早すぎて ensure 節での後始末がうまくいかなくなってたので、もうすこし後のほうで skip するようにしています。

[f76cfb55d7] Kouhei Sutou 2018-12-25 02:20:27 UTC

標準添付ライブラリ rexml のバージョン(REXML::VERSION 定数)を 3.2.0 に更新しています。

[3583fa166c] Kouhei Sutou 2018-12-30 22:21:37 UTC

REXML::XPath.match で namespace のマッチの不具合修正。 [ruby-list:50733]

[27c11892c8] Kouhei Sutou 2018-12-30 22:24:25 UTC

REXML::Attribute#namespace の rdoc 用コメントに namespace attribute がない時は nil を返すべきという TODO コメントを追加しています。

[096e766355] Kouhei Sutou 2018-12-31 20:36:39 UTC

標準添付ライブラリ rexml の REXML::XPathParser#node_test の冗長な nil チェックの削除。

[84c3742466] Kouhei Sutou 2018-12-31 20:39:37 UTC

096e766355f36983676883b7cb83a1b5862be49a で冗長だと思ってた nil チェックは実は必要だったみたいで revert しています。

[9b36f0a787] Kouhei Sutou 2018-12-31 21:02:37 UTC

lib/rexml/element.rb の複数行に渡るメッセージをもつ raise をこれまた長い条件を持つ後置 if で書いてたのを普通の if 文に書きなおしています。確かにこれは読みにくい(元のほうが)。

[0f18bc7fca] Kouhei Sutou 2018-12-31 21:32:18 UTC

標準添付ライブラリ rexml の READML::Attribute の #prefix や #namespace で default namespace の影響を受けないようにしています。非互換になりますが REXML の仕様に準拠するためにとのこと。

[81354bbd1b] Kouhei Sutou 2018-12-31 21:52:24 UTC

REXML::VERSION を再び 3.2.1 に更新しています。

[982208c650] "FUJI Goro (gfx)" 2019-01-05 13:34:03 UTC

REXML::Text.check の例外メッセージに文字列を埋め込む時に inspect を使うようにしています。

[ee8985ef0e] Alyssa Ross 2019-02-09 20:33:06 UTC

標準添付ライブラリ rexml の REXML::Function.string で引数が nil の時の対応を追加しています。

[33e4a59b4a] Kouhei Sutou 2019-02-09 20:37:28 UTC

ee8985ef0e35183d606af3a7360cd4713069e9b2 で追加したテストの assertion をもうちょっと詳しくチェックするようにしています。

[f85caf40a6] ujihisa 2019-02-21 08:42:08 UTC

標準添付ライブラリ rexml の REXML::Parsers::BaseParser#pull_event の例外メッセージの強化。

[de55e0a008] Kouhei Sutou 2019-05-04 05:02:34 UTC

また REXML::VERSION を 3.2.2 に更新しています。

[54525fbfd4] Kouhei Sutou 2019-05-25 06:14:05 UTC

REXML::XPathParser のデバッグ用のコメントアウトされた trace メソッド呼び出しなどを環境変数 REXML_XPATH_PARSER_DEBUG で on にできるようにしています。

[c46ba8e9a3] Kouhei Sutou 2019-05-25 06:54:02 UTC

REXML::XPathParser のデバッグ用メソッド trace でデバッグメッセージ出力に標準添付ライブラリ pp を利用して pretty print するようにしています。

[6ef8294397] Kouhei Sutou 2019-05-25 08:06:53 UTC

rexml の REXML::SyncEnumerator を削除しています。よくわかってないですが REXML::XPath.match の不具合修正のようです。 https://github.com/ruby/rexml/issues/17

[5f78b138b1] Kouhei Sutou 2019-05-25 08:47:41 UTC

REXML::Function.boolean の実装を変更して受け付けるオブジェクトのタイプを増やしています。 String の時の挙動は変化してる(これまでは数値に変換したうえで 0 だったら偽だったけど、空文字列だったら偽になってる)みたい。

[643344dc94] Kouhei Sutou 2019-05-25 08:58:49 UTC

REXML::Function.local_name で namespace がない時? に nil を返してたのを空文字列を返すように修正しています。

[39f275edf7] Kouhei Sutou 2019-05-25 09:25:37 UTC

REXML::Function.number で文字列が数値の表現かどうかチェックする正規表現を修正しているみたいです。コミットログには false が NaN になるのを修正って書いてあるけどそんなことはなさそうな。 https://github.com/ruby/rexml/issues/18

[310a2a9860] Kouhei Sutou 2019-05-25 09:28:00 UTC

39f275edf7284ef0c0f9b9391038ae9f2c019731 の追加修正で REXML::XPathParser の演算子つきの XPath に対応して値の変換処理を修正しています。なるほどーこういう仕様があるのか。大変そう…。 https://github.com/ruby/rexml/issues/18

[2d8c037e97] Sutou Kouhei 2019-05-25 20:32:41 UTC

6ef82943978ea5816a91c32e9ff822c73d1935f9 で削除した lib/rexml/synchnumerator.rb が rexml.gemspec ファイルの spec.files に残ってたので削除しています。

[39622232c7] Hiroshi SHIBATA 2019-08-04 11:12:43 UTC

拡張ライブラリ psych の添付してる libyaml の警告除去のための明示的キャストの追加。

ruby-trunk-changes 2019-08-03

今日は主に bundler の upstream からの cherry-pick や、eval 内で __FILE__ を参照した時の不具合修正などがありました。
ちなみに cherry-pick が大量にあるので今日は 150 commits ありました。最高記録更新です。

[eb638b75b3] Hiroshi SHIBATA 2019-07-23 07:09:46 UTC

tool/lib/test/unit/core_assertions.rb の Test::Unit::CoreAssertions に MiniTest::Assertions を include する時に envutil.rb のパスの違いで include するクラスを変更しています。gem のテストでもこれを使うようにしてるみたいです。

[a1727e43af] Takashi Kokubun 2019-08-02 13:46:15 UTC

cb84824481f205d5c057fe2e31776d40a6b06c7c で追加した opt_nil_p 命令を網羅するための MJIT 向けテストを削除しています。

[247b06d400] Takashi Kokubun 2019-08-02 14:01:54 UTC

.travis.yml で brew.update をコメントアウトしてたのを戻しています。 brew update やめてもやっぱり失敗するみたいで、あとは Travis-CI の中のひとにきくしかないかなって感じみたいです。

[e9e17cbc05] Yusuke Endoh 2019-08-02 14:16:02 UTC

eval 内で __FILE__ を参照した時の警告をデフォルトで(-w や -v なしで)出力されるようにしています。 [ruby-core:35027] [Bug #4352]

[086ffe72c7] Yusuke Endoh 2019-08-02 14:25:38 UTC

a0980f2446c0db735b8ffeb37e241370c458a626 で revert した最適化命令 opt_nil_p を復活させています。

[536ba7c81e] Yusuke Endoh 2019-08-02 14:29:58 UTC

というわけで a1727e43af18c122c4d7adfa603f895fdc8f3df1 で削除した opt_nil_p の MJIT 向けテストも復活させています。

[4eb54c49f7] Takashi Kokubun 2019-08-02 15:55:11 UTC

.travis.yml の homebrew addon を利用せず、before_install で独自に brew update および brew install コマンドを実行するようにしています。

[60ac8ad194] git 2019-08-02 15:55:56 UTC

version.h の日付更新

[44ddfec0bd] Takashi Kokubun 2019-08-02 16:07:40 UTC

4eb54c49f762031df71addd525f015e5e25ffa0c のコマンドラインで行継続のバックスラッシュが不足していたのを修正しています。

[c683763865] Yusuke Endoh 2019-08-02 22:44:44 UTC

e9e17cbc051e894dfd27eda5feca2939f65552db で eval 内の __FILE__ 参照がデフォルトで警告を出すようになったので irb で使ってたところを source_location を参照するように変更しています。 [ruby-core:35027] [Bug #4352]

[4c2255fd5c] Hiroshi SHIBATA 2019-05-02 10:24:30 UTC

ここから bundler の upstream からの cherry-pick が続きます。 dependency のショートカット記述に ruby 2.6 対応を追加。

[b95756c7a9] David Rodríguez 2019-05-24 18:27:09 UTC

bundler の出力の色付けで出力先が端末かどうかのチェックを消しています。thor で既にチェックされてるからいらないとのこと。

[580e165873] David Rodríguez 2019-05-24 18:28:25 UTC

b95756c7a998311a2d4bbee94530c6ad83ab7d06 の続きで Thor::Base.shell の代入は色付け使わない時も nil を明示的に代入するようにしています。警告避けかなぁ。

[214e992556] David Rodríguez 2019-05-24 18:30:43 UTC

bundler のテストで 580e165873c727b9248e1ba7d3ac0af9b121a235 に追随した修正もう一件。

[38df9e18da] David Rodríguez 2019-05-24 18:31:19 UTC

bundler のテストに Bundler::UI::Shell の no-color オプションについてのテストを追加。

[1a4bb80cd7] David Rodríguez 2019-05-24 18:32:45 UTC

bundler の色付け関連のテストを Windows ではスキップするようにしています。

[c5737a9ae1] David Rodríguez 2019-06-08 19:29:44 UTC

bundler 内の vendor ディレクトリに含まれてる thor のファイル群の相互の require に require_relative を利用するようにリファクタリングしています。

[9596f43250] David Rodríguez 2019-06-08 19:30:30 UTC

require するのになぜか Kernel.send(:require, ...) してたところを require_relative に直しています。なんで send してたんだろ…。

[a27198f648] David Rodríguez 2019-06-08 19:41:04 UTC

さらに libexec/bundler からも require を require_relative に変更しています。

[1c070c9c29] David Rodríguez 2019-06-11 09:44:19 UTC

bundler のテストで1つの it になってたやつを before と it に分けるリファクタリング

[d8d5e16305] David Rodríguez 2019-05-31 09:03:11 UTC

bundler のテストのために生成する gemspec ファイルの生成処理を helper ファイルに移動しています。

[c3ddd47ce7] David Rodríguez 2019-05-06 16:06:21 UTC

bundler のテストで Gemfile, Gemfile.lock の source のファイルパスを file:// の schema つきで指定されてた時に古い ruby 向けに localhostホスト部をつけるようにしています。あれ、file schema ならホスト部なんていらないのでは…URI でなんか修正があったような気がそういえばするなぁ。

[e111f38f34] David Rodríguez 2019-05-05 17:00:47 UTC

bundler の file:// ではじまる URI の処理が Windows 環境で壊れていたのを修正。

[81779e2246] David Rodríguez 2019-05-28 06:45:27 UTC

bundler から rubygemsrubygems/util のメソッドを利用していたところを wrapper メソッドを作って rubygems 側のメソッドがあるかどうかチェックして代替を用意するようにしています。

[51bdc9433b] David Rodríguez 2019-05-28 09:41:47 UTC

同じく bundler から rubygems の Gem::Util のメソッドを使ってるところ、こちらは逆に Gem::Util の利用に揃えてます。

[a685a8643f] David Rodríguez 2019-06-11 09:45:09 UTC

bundler の gem push するところで OPT のコード入力でプロンプト出すようにしているようです。コメントから判断しただけですが…。

[cad71f7089] David Rodríguez 2019-03-20 06:52:08 UTC

bundler の git コマンドを起動するところで open3 を利用するようにしています。

[10c0271f97] David Rodríguez 2019-06-17 08:23:24 UTC

bundler のテストで共通の let を親 context に括り出すリファクタリング

[b014a2157f] David Rodríguez 2019-06-17 08:23:47 UTC

bundler のテストの let で定義する変数名(厳密には変数じゃないけどまあ)を変更して gemspec メソッドの呼び出しまで let に出しています。

[a12557dbfd] Miklos Fazekas 2016-03-26 10:47:43 UTC

bundler のテストに gemspec の required_ruby_version のテストを追加。

[e59b57a3a7] David Rodríguez 2019-06-13 07:48:23 UTC

bundler のテストで worker (ってなんだろ)のメソッドを stub した時にオリジナルに stop メソッドが伝播しないので Thread が leak していたのを修正。

[4089f8df1e] David Rodríguez 2019-06-17 11:17:54 UTC

bundle clean で掃除するファイルパスを特定するのに File.realpath を利用するようにしています。

[884f948a90] robuye 2019-05-02 00:00:21 UTC

bundler のテストに BUNDLE_PATH 指定時のテストを追加しています。

[72daf37dee] David Rodríguez 2019-06-20 10:35:55 UTC

bundler のテストのコメントの typo 修正。

[1a8d9a0d5d] David Rodríguez 2019-06-20 11:26:23 UTC

bundler の development_dependency の rubocop のバージョンを更新。

[df011b0238] David Rodríguez 2019-06-20 11:27:31 UTC

bundler の development_dependency の rubocop-performance の依存バージョンを更新しています。

[33fdd87227] David Rodríguez 2019-06-20 10:37:26 UTC

a27198f64850441688ae77d329eab66049d0f5e5 の libexec/bundle の require を require_relative に変更してたのを revert しています。

[2771789302] David Rodríguez 2019-06-18 12:36:58 UTC

bundler の依存関係解決でプラットフォーム固有の gem の lockfile 内での扱いの変更みたいです。

[f2cc018adb] David Rodríguez 2019-03-19 16:08:17 UTC

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

[86757abd25] David Rodríguez 2019-06-26 14:35:37 UTC

bundler のテストのローカル変数名の変更。

[bdcd1990ad] David Rodríguez 2019-06-26 14:35:49 UTC

bundler が gem のテンプレートを生成する時に development dependency を gemspec ファイルじゃなく Gemfile に生成するようにしています。おー、なるほどたしかに。

[ed37de1c82] David Rodríguez 2019-06-26 14:42:38 UTC

bundler でローカル変数に一度受けてたのを参照しているのが1箇所なのでそこに直接右辺の式を書くようにしています。

[e405aede09] David Rodríguez 2019-06-26 14:37:19 UTC

bundler で gem のテンプレート生成する時に gemspec ファイルに bundler への development_dependency を追加するのをやめています。

[4b1395ab4a] David Rodríguez 2019-04-10 09:58:30 UTC

bundler の Bundler::Source::Git::GitProxy で revision がみつからないエラーの時のメッセージを強化しています。

[e6dc7b5b5b] David Rodríguez 2019-06-28 09:06:03 UTC

bundler の git コマンドを操作する機能のテストを追随させています。

[a375a4518f] Ivo Wever 2019-07-03 09:33:42 UTC

bundler の bundle config の man ページ? の記述を修正。

[5a56f4a541] David Rodríguez 2018-11-21 10:18:10 UTC

Bundler::SharedHelper の find_gemfile の引数を削除しています。

[2ccb3db5fb] David Rodríguez 2018-09-05 22:08:46 UTC

bundler のテストのメソッドの mock 漏れ修正。

[d761a0f6ff] Samuel Giddins 2017-10-20 19:19:32 UTC

bundle install ? でオプション --all-platform が指定された時に lockfile に限らず依存関係解決をやりなおすようにしているみたいです。

[215d846ea5] Samuel Giddins 2017-10-20 19:24:48 UTC

bundle のコマンドラインオプション --all-platforms が指定された時に自動で bundle update 相当の処理をしないようにしています。さっきのと逆な気がするけどどうなんだろ。

[82bf064375] Samuel Giddins 2017-10-20 19:36:52 UTC

uninstall できないように細工された gemspec ? を持つ gem をインストールしないように修正しています。この修正がどうしてそういう意味を持つのかはわからないけどテストみるとそういう感じらしい。

[81a84076c2] David Rodríguez 2019-06-20 15:45:12 UTC

bundle コマンドオプションに --all-platforms オプションが指定された時にその影響を config ファイルに書き込んで永続化しないようにしています。

[2c262d137c] David Rodríguez 2019-04-26 15:09:06 UTC

bundler のテストのデバッグメッセージを詳細にしています。

[13e5bf3454] David Rodríguez 2019-04-26 17:02:03 UTC

bundler のテストで重複しているチェックを削除しています。

[05c3b7c8a9] David Rodríguez 2019-04-26 17:02:19 UTC

bundler のテストで rq でチェックできるものを include でチェックしていたのを eq に揃えています。

[aae244569b] David Rodríguez 2018-09-25 18:36:56 UTC

bundler のテストで Gemfile を生成するのに gemfile というヘルパーメソッドを使うようにリファクタリングしています。

[2f1d52c266] David Rodríguez 2019-05-24 16:57:46 UTC

bundler のテストのヘルパーメソッドで不要な処理を削除。

[8d9fc8466f] David Rodríguez 2019-07-04 20:14:19 UTC

bundler のテストで Gemfile.lock ファイルの生成もヘルパーメソッドを利用するようにリファクタリング

[0dad89c0fe] David Rodríguez 2019-03-27 17:22:09 UTC

bundler のテストの名前の typo 修正。

[f8c03b24ca] David Rodríguez 2019-07-05 11:21:53 UTC

bundler の development_requirement の rubocop のバージョンを再度更新。

[b2baf6bb02] David Rodríguez 2019-07-08 10:58:24 UTC

bundler のテストで Hash リテラルを代入するのになぜか begin ... end ブロックで囲んでたのをやめています。謎文法。

[cef81eb8cc] David Rodríguez 2019-06-25 14:50:20 UTC

bundler のテストで context ごとに異なる前処理を if で分岐してたのを context 毎の before にわけて書くように修正しています。

[ead2dc0ec9] Samuel Giddins 2018-11-25 13:23:55 UTC

Bundler::GemHelpers#generic で引数が Gem::Platform::RUBY の時に特別処理してましたが、参照する Hash オブジェクトを格納する GENERIC_CACHE に最初からそのためのエントリを入れておくようにリファクタリングしています。

[3af9d8bb67] David Rodríguez 2019-06-19 13:29:02 UTC

Bundler::Definition#add_current_platform から追加する platform を用意するところを current_platforms という private メソッドに切り出しています。

[ff908983be] David Rodríguez 2019-06-19 13:31:40 UTC

同じく Bundler::Definitions の expand_dependencies の処理の一部を Bundler::Dependency#expanded_platforms というメソッドに切り出すリファクタリング

[d8cd45cb1a] David Rodríguez 2019-06-19 13:49:39 UTC

bundler のテストで専用の matcher を利用するようにリファクタリング

[c1ca77281d] David Rodríguez 2019-06-19 15:01:36 UTC

Gemfile.lock にインストールした platform を全て列挙するようにしています。

[dae6d303d5] David Rodríguez 2019-06-19 15:02:55 UTC

Bundler::Definition#expand_dependencies で対応 platform がみつからなかった時の警告を削除しています。

[6492f23d91] David Rodríguez 2019-06-19 15:03:58 UTC

dae6d303d5aa13eeeb482398eb748b3a8f4edcfa の追随だと思いますが bundler の config ファイルの BUNDLE_DISABLE_PLATFORM_WARNINGS っていう項目を削除しています。

[6e0dc5594c] David Rodríguez 2019-06-19 16:44:44 UTC

3af9d8bb671cfdc474110af3f2db24e36954d38d でリファクタリングした Bundler::Definition#add_current_platform メソッドを削除しています。え、じゃあ current_platforms もいらなくなったんじゃないの、と思ったけどそれは既に別のところでも利用されてました。

[d0c19d1f87] David Rodríguez 2019-07-05 15:26:02 UTC

その Bundler::Definition#current_platforms で配列に platform をつめて返すかわりに tap を利用するようにリファクタリング

[6cbe818c66] David Rodríguez 2018-12-06 17:05:01 UTC

bundler のテストで余計な警告を削る処理が不要になってたみたいで消しています。

[812dfa44f0] David Rodríguez 2019-06-27 11:01:30 UTC

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

[56fd027aa6] David Rodríguez 2019-03-28 15:41:43 UTC

bundler のテストの bundler 自身のファイルの内容のチェック? でチェック対象のディレクトリを増やしています。

[f399a2b796] David Rodríguez 2019-03-28 15:45:31 UTC

56fd027aa6cecaa6910ec6b96270299937f124c8 の続きで bundler のテストで除外ファイル名が typo していて機能していなかったところを消しています。

[a181df7542] David Rodríguez 2019-07-11 09:02:35 UTC

bundler で Gem.refresh を再定義? していたのをやめています。

[a6ce001bab] David Rodríguez 2019-07-11 09:02:49 UTC

bundler のテストの Gem.refresh のテスト? でチェック方法を変更しています。

[f5cd02f362] David Rodríguez 2019-07-11 09:31:19 UTC

bundler のテストで rubygems のバージョンによる guard が不要になったので削除しています。

[fc42423b8d] David Rodríguez 2019-07-11 09:32:03 UTC

同じく bundler のテストで rubygems のバージョンによる guard のテスト対象のバージョンを変更しています。

[31541d7389] David Rodríguez 2019-07-11 09:33:03 UTC

bundler のサポートする rubygems のバージョンを 2.5.2 以降に引き上げています。

[ad3cba02cf] David Rodríguez 2019-03-30 10:21:54 UTC

Bundler::CLI#outdated の分岐内で重複した条件での unless を消しています。

[33ce42dd5d] David Rodríguez 2019-07-15 17:31:10 UTC

Bundler::CLI のサブコマンド実装でチェックするオプションの間違いを修正。

[f73020d493] David Rodríguez 2019-07-15 17:31:51 UTC

33ce42dd5dd10cb86258e78010563f86f412ce01 の再修正。 bundle package サブコマンドのオプション --all を定義するかどうかをフラグで決めてたのを、常に定義してデフォルト値を参照してたフラグに依存させるように修正しています。

[4f5e1b6ebf] David Rodríguez 2019-07-15 17:17:11 UTC

bundler の cache_command_is_package というフラグを消して bundler_3_mode というのを流用するようにしています。

[a1549fba83] David Rodríguez 2019-07-15 18:48:05 UTC

bundle cache というサブコマンドを bundle package の別名にしています。

[7b7caf9b55] MSP-Greg 2019-07-15 23:00:22 UTC

bundler のテストで出力文字列のチェックで rubyリポジトリ内でのテストがこけるのを修正するため受け付けるメッセージの条件を緩めるように正規表現を修正しています。

[24062bd323] MSP-Greg 2019-07-16 16:39:24 UTC

Bundler::BuildMetadata.git_commit_sha で未定義のインスタンス変数への参照の警告抑制のため instance_variable_defined? でチェックしてから参照するようにしています。

[432285c004] MSP-Greg 2019-07-13 13:20:12 UTC

bundler のテストで bundle コマンドの位置を指定するのに rubyリポジトリ内でテストする時の対応を修正しています。

[d6a2e082e6] MSP-Greg 2019-07-21 02:59:43 UTC

432285c0040d547c24294611725edddb78560ac2 で追加したテストでファイルパスの指定の間違いを修正。

[26f651796c] David Rodríguez 2019-07-22 16:21:59 UTC

bundler の spec_helper.rb で環境変数への設定時に不要な original_env という変数への代入を削除しています。

[1b081cdd65] David Rodríguez 2019-07-23 06:15:15 UTC

bundler の環境変数の扱いについてのテストを修正していますが、なんかテスト内容が変わってるような気も。

[6794724548] David Rodríguez 2019-07-23 06:15:29 UTC

Bundler::EnvironmentPreserver::BUNDLER_KEYS という配列の定数から "BUNDLER_ORIG_MANPATH" というキーワードを削除しています。

[55831647fb] David Rodríguez 2019-07-23 06:14:02 UTC

bundler のテストで環境変数をいじるのを spec_helper.rb でやってたのを必要なテストでのみ行うようにしています。

[3e83fbddfa] David Rodríguez 2019-07-23 06:16:17 UTC

55831647fbea0005449f714eec7672fab50cf9d3 で環境変数のリセットを行ってるテスト部分にコメントを追記しています。

[3e10b4a0be] David Rodríguez 2019-07-23 11:01:13 UTC

bundler のテストのインデントの修正のみ。

[bd0f19f137] David Rodríguez 2019-07-16 09:31:38 UTC

bundler で ruby 1.8 との互換性のためにつけていた String#dup の呼び出しを削除しています。

[bb6b9b4929] David Rodríguez 2019-07-16 10:42:39 UTC

lib/bundler/templates/Executable.bundler でも代入右辺を謎の begin ... end ブロックで囲んでたのをやめています。古い ruby 向けの対応だったのかもな。

[a1c69991a5] David Rodríguez 2019-07-16 09:52:14 UTC

lib/bundler/templates/Executable.bundler に bundler_requirement というメソッドを追加しています。うーんそもそもこのファイルはなんなんだろう。

[f40914e3cf] David Rodríguez 2019-07-16 09:50:56 UTC

lib/bundler/templates/Executable.bundler の activate_bundler というメソッドの引数を使ってなかったので削除しています。

[cb6abf551a] David Rodríguez 2019-07-16 11:34:57 UTC

また lib/bundler/templates/Executable.bundler で警告メッセージを修正しています。

[bb50f87b69] David Rodríguez 2019-07-23 13:25:28 UTC

lib/bundler/templates/Executable.bundler の bundler_requirement に古い rubygems 向けの対応を追加。

[9d82962af3] David Rodríguez 2019-07-23 11:01:33 UTC

bundler のテストに使う Gemfile.lock の PLATFORMS の部分を可変にしています。

[d7487d6c08] David Rodríguez 2019-07-23 11:11:33 UTC

bundler のテストの PLATFORM を固定することでテスト実行するプラットームに依存しないようにしているようです。

[51aaed128a] David Rodríguez 2019-07-23 11:56:01 UTC

bundler のテストで Process.fork を利用しているものを Windows で skip するようにしています。

[640dbdd155] David Rodríguez 2019-07-23 17:48:20 UTC

bundler のテストのヘルパークラス RequirementChecker の inspect を定義して意味のある表示をするようにしています。

[76d205c840] David Rodríguez 2019-07-23 14:23:26 UTC

f73020d493ec2bf7c79fc118f83f328caee701d7 を revert してやっぱり --all オプションの定義自体を cache_all フラグに依存させるようにしています。

[30d10be036] David Rodríguez 2019-07-23 14:23:45 UTC

Bundler::CLI で bundler_3_mode というフラグを参照していたところを cache_all をチェックするようにしています。

[322d4fe98d] David Rodríguez 2019-07-23 17:03:19 UTC

bundler のテストで互換性のために? オプション引数を渡すのに使ってた forgotten_command_line_options というメソッドの利用をやめています。

[c4a2a9a381] David Rodríguez 2019-07-23 15:33:27 UTC

bundler のテストのさっき使うのをやめてた forgotten_command_line_options というメソッドで不要になった処理を削除。

[e33dd659d4] Guillermo Guerrero 2019-04-12 16:32:42 UTC

bundler のテストで共通の前処理をひとつ上の before ブロックに移動するリファクタリング

[4e76aef280] David Rodríguez 2019-07-24 11:30:56 UTC

Bundler::CLI::Outdated の options_include_groups を attr_reader で定義するようにリファクタリングしています。

[a42478502c] David Rodríguez 2019-07-24 11:34:52 UTC

4e76aef280f8440a9e499a05a2d74e6f2ba7cdd6 でインスタンス変数 @options_include_groups に格納するものを配列ではなく Array#any? を呼んだ結果の真偽値を入れるようにしています。参照しているところも any? を常に呼んでたので実は欲しいのは真偽値だったみたいなので。

[fd3411c73f] David Rodríguez 2019-07-24 11:38:47 UTC

Bundler::CLI::Outdated さらに filter_options_patch と sources、outdated_gems_by_groups、outdated_gems_list も attr として定義するようにしています。

[e1ccaa8782] Guillermo Guerrero 2019-04-12 16:59:35 UTC

lib/bundler/cli/outdated.rb の gem の情報表示部分を print_gems というメソッドに切り出して共有化しています。

[ee7ec87007] David Rodríguez 2019-07-24 14:03:46 UTC

lib/bundler/cli/outdated.rb のメッセージ文字列を行継続と文字列リテラル連結を使ってたけどそんなに長くないので1行で書くようにリファクタリング

[1fbd6a1fe0] David Rodríguez 2019-07-24 11:00:30 UTC

Bundler::CLI::Outdated で続いて strict も attr_reader で定義するようにしています。

[b855e33b65] David Rodríguez 2019-07-24 11:00:46 UTC

Bundler::CLI::Outdated のメソッド check_for_deployment_mode を check_for_deployment_mode! に改名しています。

[d4b1804b11] Hiroshi SHIBATA 2019-07-19 08:23:42 UTC

bundler のテストの spec_helper.rb で BUNDLE_USER_XXX の環境変数群をリセットしておくようにしています。

[56229c4e5d] David Rodríguez 2019-07-26 09:39:41 UTC

man/gemfile.5.ronn に書かれてる Gemfile での git リポジトリを指定する記法のサンプルを修正。

[d2d6d5c988] Scott Tesler 2019-07-29 20:15:37 UTC

man/bundle-binstubs.ronn の typo 修正。

[7255f55dba] David Rodríguez 2019-04-12 17:05:26 UTC

bundler で定数 RUBY_ENGINE の存在を defined? でチェックしていたのをやめています。 1.8.7 以降ずっとあるのでもういらんやろってことみたいです。

[452516f50f] David Rodríguez 2019-07-08 13:32:18 UTC

bundler 自身の gemspec ファイルに書かれてた add_development_dependency を削除しています。

[6fb73e6043] David Rodríguez 2019-03-21 15:32:35 UTC

lib/bundler/compatibility_guard.rb というファイルを削除して Bundler 2系向けの警告? を出す処理を削っています。

[4dea1356c3] Samuel Giddins 2018-11-25 13:25:17 UTC

Bundler::CurrentRuby#ruby? メソッドに Gem::Platform::RUBY と Bundler::GemHelpers.generic_local_platform を比較するコードを追加しています。よくわからないけどたぶんテスト向けの処理かな。

[e84e63230b] David Rodríguez 2019-03-28 15:46:13 UTC

bundler で生成する gem のテンプレートの README.md でアポストロフィにシングルクオートを使うように修正しています。どこが違うのがいくらみてもわからなかったけどクオート記号だった。

[267a72be80] David Rodríguez 2019-07-23 17:19:31 UTC

bundler で不要な文字列式展開をやめるリファクタリング

[2b7e39f364] David Rodríguez 2019-07-23 15:32:33 UTC

bundler のテストで cache_all オプションを毎回つけてるのを bundle config set で保存しておくように書きかえています。

[97f3ceeaa5] David Rodríguez 2019-06-11 10:48:34 UTC

bundler の vendor ディレクトリ配下に取り込んでる net-http-persistent のバージョンを 3.0.1 に更新しています。今みてみたら bundler の vendor には fileutils もコピーが入ってるんですね。

[1e63683795] David Rodríguez 2019-06-25 14:55:35 UTC

bundler のテスト時の automatiek への依存バージョンを 0.2.0 に更新しています。

[fcb58f65b1] David Rodríguez 2019-06-26 08:42:44 UTC

lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb から connection_pool の require を require_relative にしていたのを通常の require に戻しています。

[dab944e6ca] David Rodríguez 2019-07-25 06:45:39 UTC

bundler の vendor に同梱されている net-http-persistent のバージョンをさらに 3.1.0 に更新しています。

[7ed1fc527e] David Rodríguez 2019-07-31 21:56:05 UTC

bundler の rubocop の依存バージョンを 0.74.0 に更新しています。

[01d141938c] Hiroshi SHIBATA 2019-08-02 21:29:36 UTC

bundler のテストで rubyリポジトリ内で失敗するものを修正しています。

[4c72ca195d] Hiroshi SHIBATA 2019-08-02 22:09:59 UTC

bundler のテストでロードパスのリストに bundler 用のを追加する処理でパスを文字列するようにしています。

[220f6aa01c] Hiroshi SHIBATA 2019-08-02 22:23:58 UTC

bundler のテスト spec_helper.rb で環境変数 GEMRC をクリアしておくようにしています。

[aad7443e16] Adam Wanninger 2019-07-08 22:43:42 UTC

bundler が生成する gem のテンプレートの README.md のリンク修正。

[b3b2b55f7b] Hiroshi SHIBATA 2019-08-01 00:44:46 UTC

bundler のテストのヘルパーで ruby のバージョンを取得するのに RbConfig を利用するようにしています。

[0bd1cd677f] Hiroshi SHIBATA 2019-08-01 00:46:32 UTC

b3b2b55f7b7ab035851176d28ecee4afaa3fe0cc で使わないようにした Bundler.rubygems.config_map をもう一箇所 RbConfig で代替してメソッド定義を削除しています。

[4ea5c5610a] Nobuyoshi Nakada 2019-08-02 23:37:08 UTC

div, divmod, fdiv, quo, name などの Symbol の ID を組込みで定義しておくようにしてあちこちで rb_intern() していたものは組込みのを使うようにしています。

[fb96bea7ed] git 2019-08-03 01:25:20 UTC

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

[688a59f8ac] Nobuyoshi Nakada 2019-08-03 02:31:40 UTC

eval 内で __FILE__ や __LINE__ を参照している時の警告でその場所をメッセージに含めるようにしています。

[5931857281] Nobuyoshi Nakada 2019-08-03 04:41:55 UTC

チケットの報告内容非常が不思議な感じですが Pathname に与える文字列オブジェクトの状態によって(共有文字列かどうかとか?) expand_path の結果を Kernel#eval にファイル名として渡して、その中で __FILE__ としてアクセスされるとバックトレースのファイル名表示が壊れるという不具合を修正しています。修正箇所は parse.y で ruby_sourcefile_string を保存する時に rb_str_new_frozen() のかわりに rb_fstring() を使うようにしています。つまり参照が漏れてて GC されてしまったということかな。 [ruby-core:94122] [Bug #16041]

[cee394eb22] git 2019-08-03 04:51:23 UTC

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

[ec0d742dd7] Nobuyoshi Nakada 2019-08-03 05:06:56 UTC

rubyspec の eval 内で __LINE__ や __FILE__ を使ってたところの警告を抑制するため suppress_warning ブロック内にしています。

[4d75346187] Nobuyoshi Nakada 2019-08-03 05:20:36 UTC

tool/pure_parser.rb で bison がない時のエラーメッセージに色をつけて強調するようにしています。 [ruby-core:94125] [Bug #16042]

[6623cde731] Nobuyoshi Nakada 2019-08-03 05:56:07 UTC

tool/lib/colorize.rb の属性に bold, underline, reverse などの強調用のものを追加しています。

[954223ebd4] Nobuyoshi Nakada 2019-08-03 05:56:41 UTC

doc/contributing.rdoc のビルドに必要なツール autoconf, bison, gperf にそれぞれ必要なバージョンも追記しています。

ruby-trunk-changes 2019-08-02

今日は主に attr_xxx 系メソッドが定義するメソッドが private になる条件の修正や rational.c の関数群のメソッド呼び出しを回避する最適化などがありました。

[b8e351a1b9] Yusuke Endoh 2019-08-01 12:09:59 UTC

Solaris 上の Sun C でビルドエラーになったとのことで 5d33f787169bcc3594d2264726695d58c4a06899 で追加したテスト用の拡張ライブラリに MAYBE_UNUSED() の fallback 定義を追加しています。

[ef45a57801] Jeremy Evans 2019-08-01 00:03:11 UTC

attr_reader や attr_writer などの attr 系メソッドで呼び元がクラス内でない時(klass.send(:attr_reader) のように呼んだ時など)に定義されるメソッドが private になるというのを修正しています。 [Bug #4537]

[8ba8ccc3cc] git 2019-08-01 15:55:03 UTC

version.h の日付更新

[6de61fb9ed] Nobuyoshi Nakada 2019-08-02 02:19:29 UTC

rational.c の f_mod() を binop() マクロで定義していたのを展開して引数が Integer だった時の最適化を追加しています。

[ffe4a6ebf9] Nobuyoshi Nakada 2019-08-02 02:22:56 UTC

rational.c の f_integer_p() をマクロ fun1() を使って定義していたのを展開して RB_INTEGER_TYPE_P() を利用するように最適化しています。

[f9a0492b76] Nobuyoshi Nakada 2019-08-02 02:25:41 UTC

rational.c の f_ceil() も rb_funcall() を呼び出すようにマクロ定義されていたのを関数として定義して引数が Integer や Float だった時にメソッド呼び出しを経由しないように最適化しています。またここで使うために flo_ceil() から rb_float_ceil() という関数を切り出しています。

[19006b711d] Nobuyoshi Nakada 2019-08-02 02:28:24 UTC

rational.c の f_quo() も rb_funcall() を使ってメソッド呼び出しするマクロ定義による実装から関数定義にして引数が Integer, Float の時の最適化を追加しています。

[a0980f2446] Yusuke Endoh 2019-08-02 06:03:34 UTC

9faef3113fb4331524b81ba73005ba13fa0ef6c6 の nil? メソッドのための最適化命令 opt_nil_p の追加を revert しています。 RubyCI の macOS で失敗するため。 関連した VM 命令網羅のためのテストは命令がなくても一応動くのでそのままみたいですね。

[e03b3b4ae0] Koichi Sasada 2019-08-02 05:59:29 UTC

obj_free() で Hash の要素数ごとのカウントを debug counters に追加しています。1〜4 個をまとめてカウントしていたのをそれぞれ別にカウントするようにしているようです。

[ee1334189b] Nobuyoshi Nakada 2019-08-02 08:51:45 UTC

MJIT 用の assertion メソッドの assert_compile_once に uplevel キーワード引数に追加して、そこから呼ぶ assert_eval_with_jit にそれを基準に +1 した値を渡すようにしています。また assert_eval_with_jit もデフォルト値を 1 に変更して、そこから +2 した値を Kernel#warn に渡すようにしています。

[6640eeb6db] Nobuyoshi Nakada 2019-08-02 09:11:05 UTC

rational.c で FLT_RADIX による preprocessor の分岐を大きくブロックごと分けてたのを違いのある行だけピンポイントに分岐するようにリファクタリングしています。

[9921b63ac4] Nobuyoshi Nakada 2019-08-02 10:04:38 UTC

rational.c の float_decode_internal() の指数部を返すための引数の型を VALUE* から int* に変更し余計な変換を抑制しています。

ruby-trunk-changes 2019-08-01

今日は stackprof から使われる C API で SEGV する可能性があった不具合修正や nil? メソッドのための最適化命令 opt_nil_p の追加などがありました。

[c94cc6d968] Nobuyoshi Nakada 2019-07-31 11:46:01 UTC

make spec/XXX で rubyspec の特定のファイルのみテストできるようにするターゲットを追加しています。

[e352445863] Aaron Patterson 2019-07-02 10:02:11 UTC

T_IMEMO 型オブジェクトの imemo_env タイプの rb_vm_env_prev_env() の指すオブジェクトを pin して GC.compact で動かないようにしていましたが、gc_ref_update_imemo() でこれも移動できるようにしています。

[8d138e9702] git 2019-07-31 16:43:23 UTC

version.h の日付更新

[5ad2dfd8dc] Aaron Patterson 2019-07-31 17:34:23 UTC

しかし e352445863588b90f7af6cdf6c1b6dc432ee33ab の imemo_env の prev_env を移動可能にしたのは revert しています。

[a1a198d03a] Koichi Sasada 2019-07-31 09:00:33 UTC

mspec の File.realpath を利用するところで Errno::ENOTDIR が発生する可能性があるので rescue する例外クラスに追加しています。

[43d74776a1] Koichi Sasada 2019-07-31 20:21:42 UTC

Hash#rehash のテストで 72825c35b0d8b9d566663de961fddbf4f010fff7 で Hash の array hash 実装の時の hash の下位1バイトしか保持しないようにした影響を考慮して下位 1バイトが異なる hash 値になるキーを選ぶようにしています。うーむ、実装がテストに漏れてる…。

[deddc80476] Koichi Sasada 2019-07-31 20:48:22 UTC

hash.c の HASH_ASSERT() というマクロで常にチェック有効にしていたのを HASH_DEBUG というマクロを参照するようにしています。

[bd1052d55d] Koichi Sasada 2019-07-31 20:50:58 UTC

hash.c の関数マクロ RHASH_AR_TABLE_SET() がたんに hash_ar_table_set() を呼ぶだけになってたのでマクロ定義を削除して直接 hash_ar_table_set() を呼ぶようにしています。

[117241b3c7] Koichi Sasada 2019-07-31 20:59:04 UTC

hash.c の RHASH_AR_TABLE_BOUND_SET()、RHASH_AR_TABLE_SIZE_SET()、HASH_AR_TABLE_SIZE_ADD()、RHASH_AR_TABLE_CLEAR() などの関数マクロを inline 関数として定義しなおしています。

[9faef3113f] Aaron Patterson 2019-06-04 23:29:08 UTC

VM 命令に opt_nil_p という nil? メソッドを最適化する命令を追加して、再定義されてなければ Qnil かどうか直接判定するようにしています。たしかに効きそうだけど nil? どのくらい重いところで使われてるのかなぁ。

[714924fd34] git 2019-07-31 23:21:58 UTC

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

[31ec475ad8] Aaron Patterson 2019-06-07 16:11:33 UTC

object.c の rb_false() に MJIT_FUNC_EXPORTED をつけています。 9faef3113fb4331524b81ba73005ba13fa0ef6c6 の opt_nil_p 命令の実装で使うので export する必要があるためその追随ですね。

[67f7e5a224] Kazuhiro NISHIYAMA 2019-08-01 00:12:08 UTC

test/ruby/test_io.rb の IO.pipe の binmode 関係のテストのリファクタリング

[7463867106] Koichi Sasada 2019-08-01 02:20:37 UTC

ebd398ac5a4147a1e652d6943c39a29a62f12e66 の strut RHash の iter_lev を削除して flags に押し込めた変更の追加修正で、flags の領域に収まりきらなくなった時に追加する内部的インスタンス変数の ID を rb_intern() でなく rb_make_internal_id() で作ったものにしています。こうすると Marshal.dump で出力されないらしいです。そうなのか。

[f45bb760fb] Yusuke Endoh 2019-08-01 05:25:15 UTC

signal.c でシグナル名の prefix "SIG" を保持する変数を固定長配列(サイズ3)として宣言してましたが、サイズ指定しない配列として宣言するようにしています。 NUL 終端していない配列が GCC 9.1 で警告されるんだそうです。なるほどー。

[d2f8e03f34] git 2019-08-01 05:27:19 UTC

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

[5d33f78716] 卜部昌平 2019-07-31 14:00:15 UTC

gc.c の gc_event_hook_body() の中で ec->cfp->pc を一時的にインクリメントしていますが、そもそも control frame がない? 時に SEGV をおこす可能性があったので VM_FRAME_RUBYFRAME_P() でチェックしてから操作するようにしています。通常問題になることはなく、C API 経由で TracePoint を使うことで起こす可能性があったみたいです。テスト用の拡張ライブラリみるとけっこうややこしいですが stackprof ではこれが発生してたみたいです。 [ruby-core:87449] [Bug #14834]

[19d3c80e81] 卜部昌平 2019-07-31 14:15:56 UTC

vm_backtrace.c の calc_lineno() の暗黙の了解を明示的に VM_ASSERT() でチェックするようにしています。

[e18e785253] git 2019-08-01 07:04:09 UTC

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

[3a6f51ee35] Koichi Sasada 2019-08-01 07:04:40 UTC

Hash の array hash 実装時に要素の hash 値の下位1バイトだけを保持する時の変数の型を ar_hint_t という独自の型に定義するようにしています。 sizeof(VALUE) が RHASH_AR_TABLE_MAX_SIZE の 2倍あったら 16bit 使うようにしてますが、RHASH_AR_TABLE_MAX_SIZE って SIZEOF_VALUE で定義してるからこれはありえないよなぁ。将来的ななんらかの変更に備えてかもしれないです。

[fd0e3bd249] 卜部昌平 2019-08-01 07:18:45 UTC

5d33f787169bcc3594d2264726695d58c4a06899 のテスト用の拡張ライブラリが動的なサイズの配列宣言で VC2013 でビルドエラーになったそうなので、引数に渡すためのメモリを ALLOCA_N() で確保するようにしています。

[d488464106] Nobuyoshi Nakada 2019-08-01 06:17:52 UTC

parse.y の "|" 演算子の ID を rb_intern() してたところを組み込みの idOr を利用するように修正しています。

[1549fbfda5] Nobuyoshi Nakada 2019-08-01 07:40:03 UTC

同じく enumerator.c で to_proc の ID を組み込みの idTo_proc を利用するようにして rb_intern() を消しています。

[cb84824481] Takashi Kokubun 2019-08-01 10:42:48 UTC

MJIT 用のテストに 9faef3113fb4331524b81ba73005ba13fa0ef6c6 で追加された VM 命令 opt_nil_p を含む命令列を使うテストを追加しています。

[076f3fcf11] Takashi Kokubun 2019-08-01 11:19:18 UTC

Kernel#system でブロックしている時にシグナルハンドラを動かすテストで子プロセスへのシグナル送信までの待ちをちょっと伸ばしています。デッドロック? になることがあるためとのこと。ふーむ system 起動の瞬間にシグナル喪失する可能性があるのかな。

[2eec526053] Kazuhiro NISHIYAMA 2019-08-01 11:34:10 UTC

bootstraptest/test_insns.rb にも opt_nil_p のテストを追加しています。

[8b162ce9d1] Nobuyoshi Nakada 2019-08-01 11:08:22 UTC

5d33f787169bcc3594d2264726695d58c4a06899 の修正の続きで VM_CHECK_MODE が 1以上の時に pc が 0 になることがあるそうで、pc のチェックも条件部に追加しています。

ruby-trunk-changes 2019-07-31

今日は rubygems の upstream からの更新や Hash の要素数が小さい時の array hash 実装でのメモリ使用量を減らすための変更などがありました。

[f3b0ed3f26] Takashi Kokubun 2019-07-30 12:15:10 UTC

azure-pipelines.yml でも macOS でのビルド時に brew update するのはやめています。

[ceb9e276b9] Nobuyoshi Nakada 2019-07-30 12:15:49 UTC

e25088488bbf7b4bf1be19e57ee5fba41ad6f21c の make check 時に master からの差分の #include を検出するコマンドで git log に --format=oneline オプションをつけてコミットは短かく表示するようにしています。

[a50bc9f3c8] Jeremy Evans 2019-06-20 18:50:22 UTC

1a759bfe5d554c22571d2e6e4e5998cf06a7b98f の File#path が常に taint してたのをやめる変更のリトライ。テストをちょっと修正しているようです。 [ruby-core:85619] [Bug #14485]

[369c36ef15] git 2019-07-30 19:00:46 UTC

version.h の日付更新

[d8562ab2a4] Aaron Patterson 2016-11-28 22:22:12 UTC

IO.pipe に binmode: true というオプションを渡した時にその IO#external_encoding に ASCII-8BIT を設定するようにしています。 改行コードの扱いの変更のみで Encoding についての変更がなかったので IO#binmode を呼んだのとは挙動が違ってたのでそろえようとしています。 [ruby-core:78404] [Bug #12989]

[ebc99e026d] Jeremy Evans 2019-07-25 20:47:08 UTC

d8562ab2a40658db0e6a44ce07cfbe616b9b4078 の再修正。 IO.pipe には引数で明示的に external_encoding と internal_encoding を設定できるので、これが指定されている時は binmode: true があっても Encoding は ASCII-8BIT にはしないようにしています。 [ruby-core:78404] [Bug #12989]

[a4c09342a2] git 2019-07-30 20:49:04 UTC

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

[4e27319c2c] David Rodríguez 2019-04-28 23:45:18 UTC

ここからは rubygems の upstream からの cherry-pick が続きます。
rubygems の未使用のメソッド削除。

[d64cc80b66] David Rodríguez 2019-04-29 07:07:16 UTC

rubygems の外部コマンド実行を IO.pipe から Open3 を利用した実装の変更。 JRuby サポートのためみたいです。

[6f60ead756] bronzdoc 2019-05-29 04:41:54 UTC

Gem::ConfigFile#initialize からオプション処理部分を set_config_file_name という private method に切り出すリファクタリング

[7990d8dc50] bronzdoc 2019-05-29 05:07:01 UTC

6f60ead7565e02901db63f005008860b65b4a15e で切り出したメソッドで rubygems の設定ファイルを環境変数 GEMRC を参照するようにしています。

[6c5170634a] bronzdoc 2019-05-29 23:34:47 UTC

rubygems の Gem::MockGemUi というクラスで StringIO を使ってますが require をトップレベルから initialize メソッドの中に移動して、利用するまでロードしないようにしています。

[d74ea2eeb2] bronzdoc 2019-05-31 02:34:44 UTC

7990d8dc50007b04118cb36c9f200efcddb0295f の環境変数 GEMRC の参照で無駄な || 演算子があったので削っています。

[673ef894ac] bronzdoc 2019-05-31 21:37:12 UTC

7990d8dc50007b04118cb36c9f200efcddb0295f の rubygems の GEMRC 環境変数の参照で空文字列の時も未設定のように扱うようにしています。

[89bd1df895] bronzdoc 2019-06-05 01:51:08 UTC

rubygems に空行を加えるだけの修正。

[2453d16f5e] Benoit Daloze 2019-06-06 13:52:44 UTC

rubygems の定数 Gem::Specification::LOAD_CACHE_MUTEX という定数に Mutex を追加して LOAD_CACHE の操作をこの Mutex で排他するようにしています。

[05ae2c11fa] Benoit Daloze 2019-06-06 13:54:17 UTC

2453d16f5e44f67a50e1be9b08504a14960610ef の再修正、っていうか元から壊れてたみたいだけど LOAD_CACHE からの参照で既に同じファイルの spec があったらそっちを返すようにしています。

[0ca494fc80] David Rodríguez 2019-06-20 11:10:06 UTC

rubygems のテスト用クラス? TestGem の test_use_gemdeps_missing_gem メソッドで gemspec ファイルの deprecated 警告を抑制するようにしています。

[df0b41fc72] David Rodríguez 2019-06-20 10:16:58 UTC

Gem::Specification の rubyforge_project= を deprecated にしています。rubyforge なつかしいな……。

[8b91a6d0a0] bronzdoc 2019-06-22 22:39:17 UTC

rubygems の不要になった? TODO コメントを削除しています。

[a7bce01175] bronzdoc 2019-06-22 22:41:07 UTC

rubygems に found &&= false という演算子つき代入文があったのですが、これ結局常に false 代入してるやろ、っていうノリでただの代入にしています。けどこれ found が nil だった時は代入しないので厳密には同一じゃないけど、まあぱっとみたところ found には true か false しか入らないみたいなのでよさそう。

[5eacb4c52e] bronzdoc 2019-06-22 22:58:55 UTC

rubygems で 互換性のために残してた Gem::Resolver::DependencyConflict を削除しています。

[c421ef1142] bronzdoc 2019-06-23 05:42:21 UTC

Gem::GemcutterUtilities にあった OptionParser.accept の呼び出しを Gem::Command に移動しています。gemcutter! これまた懐しい名前を。

[6be927ff4a] bronzdoc 2019-06-23 13:43:23 UTC

rubygems の誤った TODO コメントを削除しています。

[8103d46a4d] Daniel Berger 2019-06-19 12:39:39 UTC

rubygems の Gem::Installer に package という attr_reader を追加しています。

[688ccc9602] bronzdoc 2019-06-24 02:03:50 UTC

rubygems の Gem::Commands::UnpackCommand#get_metadata の定義を Gem::Package.metadata に移動するリファクタリング

[38daeded66] Alexander Pakulov 2019-06-25 00:36:31 UTC

よくわからないですが rubygems でパッケージを S3 からダウンロードするところの署名検証? のあたりの方法を変更しているようです。

[6bd7772361] bronzdoc 2019-06-24 02:08:34 UTC

688ccc96020258acb4c02a2f8c5ff6e5a0bbc966 で移動した Gem::Package.metadata のメソッド名をさらに raw_spec に変更しています。

[ff214e9232] bronzdoc 2019-06-25 01:01:33 UTC

lib/rubygems/exceptions.rb の TODO コメントを削除しています。

[56801d4532] bronzdoc 2019-06-25 22:42:47 UTC

lib/rubygems.rb の TODO コメントを削除しています。

[b2a54744f2] bronzdoc 2019-06-26 23:51:22 UTC

lib/rubygems/specification.rb の TODO コメントを削除しています。

[bd78eabcf3] Alexander Pakulov 2019-06-28 17:21:12 UTC

38daeded66afb4a7beafa47d82625a4eb40c112b の追加修正。 S3 の OAuth? の署名検証の expiration を伸ばしてます。

[60d3f9ef9f] bronzdoc 2019-06-30 05:23:44 UTC

lib/rubygems/specification.rb の不要な TODO コメント削除。

[eb35124cca] bronzdoc 2019-06-30 05:38:46 UTC

lib/rubygems/test_case.rb の不要な TODO コメント削除。

[7081185664] bronzdoc 2019-06-30 05:50:40 UTC

lib/rubygems/test_case.rb の util_gem メソッドで引数とブロック両方指定された時に例外発生させてたのを削除しています。移行完了ってことかな。

[1dfe132aa5] bronzdoc 2019-06-30 05:59:31 UTC

lib/rubygems/dependency_installer.rb の TODO コメントをただのコメントに変更しています。

[4a8c2dd419] Alexander Pakulov 2019-07-03 23:35:59 UTC

38daeded66afb4a7beafa47d82625a4eb40c112b などの続き。 rubygems で S3 の署名つき URL の処理するクラスを切り出すリファクタリング

[aa9015dd84] Alexander Pakulov 2019-07-05 00:16:25 UTC

4a8c2dd4192517fa030b6585ae82bf925c80516a で切り出した S3 署名つき URL 処理のファイルで一部の require をトップレベルから実際に必要になるメソッド内に移動して遅延ロードするようにしています。

[74419711ad] Alexander Pakulov 2019-07-06 20:05:43 UTC

4a8c2dd4192517fa030b6585ae82bf925c80516a で切り出したクラスのメソッドの引数で expiration を指定できるようにしています。

[0d596c1ab2] Alexander Pakulov 2019-07-10 01:52:54 UTC

4a8c2dd4192517fa030b6585ae82bf925c80516a で切り出したクラスのメソッドを分割するリファクタリング

[5947ea31ca] Alexander Pakulov 2019-07-10 02:14:29 UTC

test/rubygems/test_gem_remote_fetcher.rb に require "json" を追加しています。テストだからここで遅延しなくてもいいんじゃないかな。まあいいけど。

[a2f0331c4e] Nobuyoshi Nakada 2019-07-11 01:24:01 UTC

Gem::Specification#to_ruby で gemspec ファイルを生成する時に add_runtime_dependency を使うかどうかを Gem::VERSION で分岐するコードを生成してたのを respond_to? を使うように変更しています。あと分岐を1つ減らしてます。

[a34168f2ac] bronzdoc 2019-07-17 00:07:07 UTC

Gem::Specification の autorequire という属性はもう動いてないので削除しています。

[41dd9f7e67] bronzdoc 2019-07-17 00:39:40 UTC

rubygems の Gem::RemoteFetcher#fetch_size というメソッドを deprecated にしています。

[1eaacb1ef5] bronzdoc 2019-07-17 00:50:36 UTC

lib/rubygems/stub_specification.rb で Kernel#open のかわりに File.open を利用するようにしています。

[a3c0ea55f8] Hiroshi SHIBATA 2019-07-21 00:58:41 UTC

Gem::TestCase#setup で環境変数 GEMRC をクリアするようにしています。

[d1806bd8da] Hiroshi SHIBATA 2019-07-21 01:17:26 UTC

lib/rubygems/test_case.rb の未使用のインスタンス変数の削除。

[a3b784b3a0] Vít Ondruch 2019-07-22 12:31:10 UTC

Gem::BasicSpecification.default_specifications_dir を deprecated にして Gem.default_specifications_dir に移動しています。

[33025d9768] bronzdoc 2019-07-26 04:11:37 UTC

lib/rubygems/gemcutter_utilities.rb の terminate_interaction の引数に 1 を渡してたのを ERROR_CODE という定数にしています。けどファイル内にもう一箇所 1 のままのところが残ってますね。

[3cc814bdf6] bronzdoc 2019-07-26 05:02:46 UTC

test/rubygems/test_gem_installer.rb の変数の shadowing の警告除去。

[0817d95714] David Rodríguez 2019-06-04 08:21:14 UTC

rubygems の空行追加。スタイルの統一のためみたいですね。

[497efa0ec9] David Rodríguez 2019-06-04 08:40:30 UTC

rubygems のインデントの修正。これもスタイルの統一のためみたいですね。

[bb6bd7e985] David Rodríguez 2019-06-04 08:40:54 UTC

もうひとつ lib/rubygems/util/licenses.rb もインデントを修正。

[61893ddf75] David Rodríguez 2019-06-04 15:32:45 UTC

rubygems のテストに rake package のテストを追加しています。

[62e2b2e66f] David Rodríguez 2019-06-27 13:32:21 UTC

61893ddf75760c35d5c676914cc50c7e4f9a64ae で追加した rake package のテストのエラー時のメッセージを強化しています。

[a51661d378] bronzdoc 2019-07-10 13:16:57 UTC

rubygems の gem env packageversion というサブコマンドを削除しています。互換性のため deprecated にした状態で残してたものみたいです。

[d97fc48e92] bronzdoc 2019-07-28 13:50:11 UTC

rubygems の Gem::Ext::Builder#build_error の第1引数 build_dir は既に利用されてなかったので引数自体を削除しています。なのですが、これ呼び元の修正っていらないのかな……。

[9dc0f39de5] bronzdoc 2019-07-28 13:58:03 UTC

と思ったら d97fc48e92dbee041a476f7dca65f3d466c8ca91 で build_error の引数削除したのに対応して呼び元でも渡す引数から削ってます。うーん grep すると lib/rubygems/installer.rb にも同じかどうかわからないけど build_error の呼び出しがあるけどこっちはいいのかな。

[b73ad4999a] bronzdoc 2019-07-28 14:03:01 UTC

rubygems の Gem::Ext::Builder#build_extension で build_for の呼び出しを extension がディレクトリ特定に使われる前に移動しています。

[5824981d98] bronzdoc 2019-07-28 14:06:01 UTC

Gem::Ext::Builder#build_extension で引数の extension が nil/false だった時に空文字列で初期化する行は不要とのことで削除しています。

[ab8d9a5325] bronzdoc 2019-07-28 14:37:02 UTC

Gem::Ext::Builder の生成時に @ran_rake を nil でなく false に初期化するようにしています。

[2a81d3a26a] Hiroshi SHIBATA 2019-07-27 07:45:45 UTC

rubygems の rake package のテストを Rakefile がみつからない時に skip するようにしています。

[77c0e23b0c] Hiroshi SHIBATA 2019-07-28 01:59:07 UTC

a51661d378c26ae5bd4b608de4948887e70bcacc で削除した lib/rubygems/compatibility.rb を互換性のため復活させています。

[3e4e8dbe20] Hiroshi SHIBATA 2019-07-30 12:40:37 UTC

.travis.yml で macOS でのテスト時に ntlm-http という gem を uninstall しておくようにしています。この gem が古すぎて RubyGems で削除した autorequire の機能に依存してしまってたみたいです。

[4afd897524] Hiroshi SHIBATA 2019-07-30 13:38:00 UTC

test/rubygems/test_rake_package.rb で File.exists? が使われてたので File.exist? に修正しています。

[ebd398ac5a] Koichi Sasada 2019-01-16 10:48:30 UTC

構造体メンバー struct RHash::iter_lev を消してそのぶんを reserved に戻し、かわりに flags のうち一部のビットを使って iter_lev の代替にするようにしています。 iter_lev は Hash が each などで iterate 中に検出するためにインクリメントしていくカウンターですが、通常この値はそんなに大きくはならないので int まるまる使わなくてもいいだろってことみたいです。しかしそれでも意図的にネストさせればあふれさせることはできてしまうので、そのような場合のために rb_ivar_set_internal() という API を追加してあふれたら内部的なインスタンス変数を使ってそっちに iter_lev を格納してしまうようにしています。うーむ、この hash_iter_lev を持ってる状態の Hash を Marshal.dump して Marshal.load するとどうなるんだろう。まあインクリメント時に flags のほうをさきに見てあふれたら内部的インスタンス変数のほうに上書きセットされるから動作がおかしくなることはないか。

[72825c35b0] Koichi Sasada 2019-01-17 16:53:10 UTC

ebd398ac5a4147a1e652d6943c39a29a62f12e66 で空けた struct RHash の VALUE 1つぶんのメンバーですが、これを Hash の array 実装をした時の hash 値の格納のために使うようにしています。といっても hash 値も VALUE 1つぶんいるのでそのままでは足りないので、なんとそれぞれの要素の下位 1byte だけを切り出してそれを格納(array hash 実装では要素数 8 までなので合計 8 bytes で sizeof(VALUE) が 8 の場合は足りると。すごいなぁ。小さい Hash の省メモリ化のためだと思います。また debug counters にこの切り詰めた hash の値による影響(一致したのに実は eql? じゃなかった、一致しなかったけど一致した)をカウントするようにしています。 [ruby-core:91530] [Feature #15602]

[e315f3a134] git 2019-07-31 01:22:47 UTC

72825c35b0d8b9d566663de961fddbf4f010fff7 のインデントのタブを空白に展開しています。

[13e84d5c0a] Nobuyoshi Nakada 2019-07-31 02:08:05 UTC

ebd398ac5a4147a1e652d6943c39a29a62f12e66 で導入した flags の一部を使って iter_lev を表現するための処理で使う RHASH_LEV_MASK をマクロとして定義するようにしています。古いコンパイラ対策? も含まれているようです。

[4979ba38fa] Yusuke Endoh 2019-07-31 02:27:59 UTC

rubygems のテストで古い gem による 41dd9f7e67c1d767a7d040cd79f26985e3996821 で deprecated にした fetch_size をテストで使っているところの警告を抑制するようにしています。

[312879693f] Koichi Sasada 2019-07-31 02:30:23 UTC

13e84d5c0a53ad013aa0093f179115bcf88417e9 でマクロにした RHASH_LEV_MASK の定義を hash.c から internal.h に移動してコメントをつけています。

[823adea954] Yusuke Endoh 2019-07-31 02:44:20 UTC

rubyspec のテストでメソッド再定義の警告抑制のため直前で remove_method するようにしています。

[1d02832bcf] Yusuke Endoh 2019-07-31 02:45:28 UTC

同じく rubygems のテストで Gem::Specification.default_specifications_dir を使っているところで deprecation の警告を抑制するため Gem::Deprecate.skip_during を利用しています。

[816e5055c9] Yusuke Endoh 2019-07-31 02:52:59 UTC

d8562ab2a40658db0e6a44ce07cfbe616b9b4078 で追加した IO.pipe の binmode オプションについてのテストで、生成した pipe の IO オブジェクトを ensure 節で close するようにしています。

[e83ec207cd] Koichi Sasada 2019-07-31 03:46:15 UTC

CI のデバッグのため MiniTest::Unit#location で backtrace が nil な例外が渡された時にデバッグメッセージ出力するようにしています。

[06574ad945] Yusuke Endoh 2019-07-31 05:35:21 UTC

Kernel#Float() のテストでオーバーフローを起こした時の警告を抑制するため一時的に $VERBOSE を nil にしておくようにしています。

[efac0a2384] Koichi Sasada 2019-07-31 05:53:14 UTC

e83ec207cd5fda973c41d6629d8504b515522b12 で追加したデバッグ出力用の変更を revert しています。

[cac44def0b] Koichi Sasada 2019-07-31 06:01:19 UTC

06574ad945dcce0bf626b3af020810230b169b56 でデバッグメッセージを入れた MiniTest::Unit#location で渡された例外の backtrace が nil の時に "<empty>" を返すようにしています。 SystamStackError の場合 nil になることがあるとのこと。

[5f95edb7af] Koichi Sasada 2019-07-31 06:10:16 UTC

おそらく cac44def0b0f0fdcd1aa8cf610e16a5506d2726b も関連して ebd398ac5a4147a1e652d6943c39a29a62f12e66 の struct RHash::iter_lev の削除の影響をテストするため深くネストした Hash のイテレータのテストで SystemStackError 例外が発生しても無視するようにしています。

[40651cf1f5] Koichi Sasada 2019-07-31 06:12:57 UTC

ebd398ac5a4147a1e652d6943c39a29a62f12e66 で追加した iter_lev があふれた時のテストで hash の衝突がある場合に成立しない assertion があったのでコメントアウトしています。

[14eede6e53] Kazuhiro NISHIYAMA 2019-07-31 08:45:43 UTC

標準添付ライブラリ rinda のテストでテスト用に立てた DRb のサーバーの停止漏れがおきないよう teardown の先頭で shutdown するようにしています。

[eab6c534ad] Benoit Daloze 2019-07-31 09:04:35 UTC

rubyspec の Hash#rehash のテストで Hash のキーに配列を使っていたのを特異メソッドとして hash を上書きした Object のインスタンスを使うように書きかえています。 array hash 実装の時の影響でキーの Array を変更してもたまたま fetch できてしまったとかかな……。

[e432f5dafd] Benoit Daloze 2019-07-31 09:06:54 UTC

rubyspec の Hash#rehash のテストの example を分割しています。

[4562c13093] Yusuke Endoh 2019-07-31 10:51:58 UTC

lib/bundler/shared_helpers.rb の require "rubygems" を削除しています。 circular require を解消するため。

[835fa9e54a] Yusuke Endoh 2019-07-31 10:55:16 UTC

5f95edb7af68ce03732da4d49eee8d6ee87ef544 で Hash の iter_lev 関係のテストで SystemStackError を rescue してるところでローカル変数に bind してましたが参照してなくて警告が出るので変数は指定しないようにしています。