ruby-trunk-changes 2019-06-19

今日は racc の更新、IA64 のサポート削除のほか VM スタックをマシンスタック上に確保するようにする変更などがありました。

[235e72f17e] aycabta 2019-06-18 11:57:58 UTC

標準添付ライブラリ reline に Reline.auto_indent_proc というコールバック登録機能を追加して irb でこれを使って複数行編集時の auto indent 機能を追加しています。 新しい irb 使ってるとやっぱり auto indent 欲しいなって思ってたのでうれしいですね。

[af800b8ca2] Takashi Kokubun 2019-06-18 12:22:06 UTC

Azure Pipelines での macOS 上でのテストの設定に continueOnError: true を追加してエラーを無視させるようにしています。

[32e65e9e5a] aycabta 2019-06-18 12:55:40 UTC

標準添付ライブラリ reline で環境変数 RELINE_STDERR_TTY が設定されていた時のデバッグメッセージに pid を出力するように追加しています。

[84903b31c8] aycabta 2019-06-18 12:56:41 UTC

235e72f17e2c02074721150035ffc30e339c307f の reline の auto indent 対応で空行? の入力でエラーになってたので修正しています。

[85ff2d74a2] aycabta 2019-06-18 23:28:00 UTC

irb に元々あった(?) auto indent 対応のためのプロンプトの調整が reline の auto_indent が有効な時は抑制するようにしています。

[c972932986] git 2019-06-18 23:29:23 UTC

version.h の日付更新

[d009e321a0] aycabta 2019-06-19 00:19:41 UTC

irb に元々あった IRB.conf[:AUTO_INDENT] の設定を参照して reline の auto indent 機能を有効にするようにしています。

[28678997e4] Nobuyoshi Nakada 2019-06-19 00:44:26 UTC

String#initialize の実装で struct RVALUE の中に埋め込みで文字列を持ってるものをヒープのバッファに移動するケースでバッファの内容のコピーがされていなかった不具合を修正しています。どういう時にこういうケースがあるんだろ……と思ったのですが小さい文字列の String#initialize を無理矢理呼んで capacity キーワード引数で capa を大きめに指定した時のようです。あんまりなさそう。 [ruby-core:93228] [Bug #15937]

[148f50fc78] Takashi Kokubun 2019-06-19 01:09:35 UTC

.travis.yml の homebrew を使う時に brew update するようにしています。

[8797f48373] Nobuyoshi Nakada 2019-06-19 05:03:02 UTC

28678997e40869f5591eae60edd9757334426ffb の続きで String#initialize の実装で embed じゃなく shared もしくは str_new_static() で作られた static string の時には新しいメモリ領域を確保してコピーしておくようにしています。 [ruby-core:93228] [Bug #15937]

[e690df1f1e] Nobuyoshi Nakada 2018-09-27 09:17:28 UTC

Marshal.dump/Marshal.load で Time オブジェクトの year が極端に大きいものや 1900 以前のを扱うとチェックでエラーになってしまうのを修正しています。わざとのような気もしますが、はみだしたぶんは year_extend というフィールドを追加してここに格納するようにしています。うーん新しいので dump して古いのでは load できないですよね、これは。 [ruby-core:89164] [Feature #15160]

[a6a4e86029] Samuel Williams 2019-06-05 04:32:06 UTC

.gitignore に build* を追加しています。

[3fd83cb6fc] Samuel Williams 2019-06-05 04:32:27 UTC

benchmark/ 配下の Thread 関係のベンチマークを .rb から .yaml フォーマットに書き変えたり、追加したり、繰り返し回数を変更したりしています。あと bootstraptest に Thread#backtrace についてのテストを追加しています。

[69195fd9b2] Samuel Williams 2019-06-19 05:53:52 UTC

bootstraptest に Thread と Fiber を大量につくって何個でエラーになったかをチェックして出力するようにしています。重くなりそうだな……。

[b24603adff] Samuel Williams 2019-06-04 23:18:50 UTC

VM スタックの初期化処理を main thread 以外の時は vm.c の th_init() から thread_start_func_2() で実際に thread が起動される時に移動しています。これ同じ処理が 2箇所に分かれてしまうんだけどなぜだろう。と思ったのですが後のほうのを読んでここで VM スタックの確保を alloca() にしている、つまり VM スタックをマシンスタック上に確保するようにしている、というのが本質だとわかりました。

[7c7a1c2212] Samuel Williams 2019-06-05 01:53:19 UTC

リファクタリングと混じっててどこが本命なのかよくわからないのですが、Thread の終了/解放時に rb_fiber_close() や rb_threadptr_root_fiber_release() の呼び出しをコメントアウトしているのと、rb_execution_context_t の VM スタックの設定を th_init() の時点で NULL クリアしておくようにしているのが本質的な変更のようです。コメントを読むと vm_stack_size の設定を修正しているそうだけど…。

[38791145eb] Samuel Williams 2019-06-05 06:23:04 UTC

7c7a1c221281cdba1f48d5e42ee2f9af306d27f8 の変更のうち thread_free() での rb_threadptr_root_fiber_release() 呼び出しをコメントアウトするのは revert しています。また rb_threadptr_root_fiber_setup() で th->root_fiber をセットするようにしています。これは b24603adff8ec1e93e71358b93b3e30c99ba29d5 の変更の追加修正かなぁ。明示的に root_fiber のセットが消されてるところはないけど…。

[4b3b781c66] Samuel Williams 2019-06-05 08:52:07 UTC

7c7a1c221281cdba1f48d5e42ee2f9af306d27f8 のうち thread_start_func_2() での rb_fiber_close() の呼び出しのコメントアウトを rever...t かと思いきや消してかわりに rb_ec_set_vm_stack() を呼ぶようにしています。 そして th_init() での呼び出しはかわりに消しています。

[b8e4bea780] Samuel Williams 2019-06-05 11:39:17 UTC

で 4b3b781c66c48604a013557172540effd929f96a で thread_start_func_2() の終了時に rb_ec_set_vm_stack() を呼ぶようにしたのはやっぱり(元コメントアウトしてた) rb_fiber_close() に戻して、構造体 rb_context_t に free_vm_stack というメンバを追加して Fiber の解放時に VM スタックを解放するかどうか指定できるようにして、roob fiber の VM スタックは使いまわすようにしています。なるほどこれがやりたかったことですね、たぶん。

[8121a523c3] Samuel Williams 2019-06-05 21:53:25 UTC

thread_win32.c でマシンスタックサイズの最小値をハードコードしていたのを th->vm->default_params を参照するようにして、マシンスタックサイズとVMスタックサイズを合わせたサイズを指定するように変更しています。

[5855af73b8] Samuel Williams 2019-06-05 21:54:07 UTC

th_init() でメインスレッド以外だった時に rb_execution_context_t の内容がクリアされてることを VM_ASSERT() でチェックするようにしています。

[9cb4e7725f] Samuel Williams 2019-06-05 21:54:29 UTC

ここまでの変更の影響でか vm_backtrace.c で ruby のバックトレースを得る時に rb_execution_context_t にまだ cfp が詰まれてない可能性ができたのでその場合スキップして空っぽのバックトレースを返すようにしています。

[7cc7269b3d] Samuel Williams 2019-06-05 22:25:08 UTC

8121a523c3ea68898016ab3984b6c0240ff66995 の pthread_win.c のマシンスタックサイズのハードコードをやめる変更のうち rb_thread_create_mjit_thread() のほうは revert しています。この関数内では th が参照できなかったので。

[561c9bcf3a] Samuel Williams 2019-06-05 23:04:24 UTC

thread.c で Linux の時に #include を追加するようにしています。インライン化されることを期待してとのこと。

[dee0cfbb47] Samuel Williams 2019-06-06 03:02:35 UTC

thread_win.c で CreateThread() などの native thread の作成に渡すフラグに STACK_SIZE_PARAM_IS_A_RESERVATION というのを追加しています。

[7147038053] Samuel Williams 2019-06-19 05:07:15 UTC

thread_start_func_2() で th->ec のマシンスタックのアドレスとサイズをセットするところで STACK_GROW_DIR_DETECTION および STACK_DIR_UPPER を使ってマシンスタックの伸びる向きを意識してセットするようにしています。またサイズから VM スタックサイズを減らしている…ということはマシンスタックと VM スタックを一度に確保するようにしているんですねこれは。

[cb5da39f20] Samuel Williams 2019-06-19 06:47:15 UTC

thread_start_func_2() と fiber_init() に分散してた VM スタックの初期化処理を rb_ec_initialize_vm_stack() という関数に切り出しています。

[3e5b885cd2] Samuel Williams 2019-06-19 07:09:48 UTC

rb_memerror() のデバッグ出力をコメントアウトした状態にしてたのを if(0) の分岐内に入れる方法で残すようにしています。 b24603adff8ec1e93e71358b93b3e30c99ba29d5 でコメントアウトした状態で入れてたものですね。けどこれで一連のコミットが終わってるので消していいのでは…。

[cbe06cd350] git 2019-06-19 08:39:58 UTC

3fd83cb6fcc483d2eac0795bc139c521a3a59bd2 以降の一連のコミットの行末の空白除去、インデントのタブを空白に展開など。

[1a2546c2be] Hiroshi SHIBATA 2019-05-13 12:25:22 UTC

racc-1.4.15 を upstream のリポジトリからマージしています。

[c110b59af5] Hiroshi SHIBATA 2019-05-14 12:18:57 UTC

1a2546c2be839baa7d0a50dc056d4d6987d26852 の racc 更新のテストでディレクトリ構成の違いを吸収するように修正しています。

[4e218282d2] Hiroshi SHIBATA 2019-05-14 12:36:59 UTC

tool/sync_default_gems.rb に racc の upstream との同期用の処理を追加しています。

[9ea1fc27a9] Hiroshi SHIBATA 2019-06-02 10:17:38 UTC

c110b59af5d1b1065c9e247260579e6212cb7fab の追加修正。 racc のテストでテスト用ディレクトリを固定のパスでなくて Dir.mktmpdir を使って一時ディレクトリを確保するようにしています。

[2272d6ae24] Hiroshi SHIBATA 2019-06-02 10:56:57 UTC

9ea1fc27a93c9a7a8f9aa2f8f61bc2529e93abb2 のさらに追加で TEST_DIR という定数を一時ディレクトリに変更したのはやっぱりやめておいて TEMP_DIR という新しい定数を追加して、assets, regress などのサブディレクトリはこれまでと同じ固定ディレクトリに生成するようにしています。

[4cca8c4d20] Hiroshi SHIBATA 2019-06-02 11:11:24 UTC

racc のテストで minitest のかわりに test/unit を利用するように書きかえています。

[8a3bd06d27] Hiroshi SHIBATA 2019-06-02 11:18:24 UTC

racc のテストでログの出力用や作業ディレクトリとして TEST_DIR のほうを使っていたものを一時ディレクトリのほうを使うように変更しています。

[d710321800] Hiroshi SHIBATA 2019-06-02 11:50:42 UTC

racc のテスト で src.intp というファイルは TEST_DIR のほうに作るようですが TEMP_DIR にもコピーするようにしています。なんだろこれ。

[e892c2f924] Hiroshi SHIBATA 2019-06-19 03:06:41 UTC

ext/racc/extconf.rb に Subversion の自動展開の結果が残ってたのを削り frozen_string_literal: false の magic comment を追加しています。

[2b4024da32] Hiroshi SHIBATA 2019-06-19 03:34:34 UTC

racc のテストで racc によるコード生成結果が fixture と完全一致するというテストがありましたが、一部の環境で結果が異なるそうなので一旦コメントアウトしています。だいぶ厳しいテストですね(とはいえどこが変化するんだろう)。

[754df26210] Hiroshi SHIBATA 2019-06-19 07:08:55 UTC

bin/racc, bin/racc2y, bin/y2racc を追加しています。

[b93508b32c] git 2019-06-19 09:19:20 UTC

1a2546c2be839baa7d0a50dc056d4d6987d26852 からの一連の変更の行末の空白除去、ファイル末尾の改行追加など。

[40f8c82b96] Hiroshi SHIBATA 2019-06-19 09:35:09 UTC

1a2546c2be839baa7d0a50dc056d4d6987d26852 での拡張ライブラリ racc のディレクトリ構成の変更のうち cparse のものを revert しています。

[d17344cfc5] Samuel Williams 2019-06-19 09:06:57 UTC

IA64 のための preprocessor 分岐などを全体的に削除しています。 IA64 は積極的にはサポートしてない状態だったと思いますが、これをもってビルドできないようになったと思います。

[659eda7f83] git 2019-06-19 11:33:24 UTC

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

[ab6d8d0b65] Nobuyoshi Nakada 2019-06-19 11:40:49 UTC

インデントとスタイルの修正のみ。

ruby-trunk-changes 2019-06-18

今日は文字列操作のメモリリークの修正や共有文字列の操作で一部異常終了になる可能性があるケースがあった不具合修正などがありました。

[01b3a38043] Nobuyoshi Nakada 2019-06-17 12:36:41 UTC

if/unless 文を代入の右辺としていて、if または else (elsif) の節のひとつに next や break などのループやブロックから抜ける制御文があると "void value expression" という SyntaxError になってしまい他の条件の時には値があっても parse 時点でエラーになる不具合を修正しています。最近入ったのかな、と思いきや 1.8.7 でもおきるらしいのでだいぶ昔からですね。 [ruby-core:93199] [Bug #15932]

[c8e9e0b74b] Nobuyoshi Nakada 2019-06-17 13:30:52 UTC

01b3a3804334be19d013526d3edde2b84399ae43 の追加修正で、代入の右辺が後置 if/unless つきの break の時も SyntaxError にしないようにしています。 [ruby-core:93199] [Bug #15932]

[801d0d9dd7] Nobuyoshi Nakada 2019-06-17 14:25:47 UTC

a064e46762ec0bfd40e6a04242d9e62fdd21e1f0 の Bison 3 対応を古い bison でも動くようにするための tool/pure_parser.rb 実行を ripper 向けの ripper.y 生成時にも行うようにしています。

[c8edf70cd2] Jeremy Evans 2019-06-11 19:05:04 UTC

File.executable? と File.executable_real? の rdoc 用コメントに Windows での executable の概念は拡張子で判定される? というのを追記しています。 [ruby-core:91822] [Bug #15664]

[39a8c71424] git 2019-06-17 21:05:43 UTC

version.h の日付更新

[9dec4e8fc3] Alan Wu 2019-05-13 00:22:37 UTC

3f9562015e651735bfc2fdd14e8f6963b673e22a および c06ddfee878524168e4af07443217ed2f8d0954b の String オブジェクトの共有の参照関係を修正したものと同様に str_replace_shared_without_enc() でも shared string からの共有文字列作成時に大元のオブジェクトを参照元として登録するようにしています。 [ruby-core:93207] [Bug #15934]

[c770c98ac4] git 2019-06-18 03:21:38 UTC

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

[8b3774be3d] Nobuyoshi Nakada 2019-06-18 04:27:05 UTC

str_make_independent_expand() で文字列のバッファを拡張してすりかえた後に古いバッファを解放し忘れていた典型的なメモリリークを修正しています。 [ruby-core:93208] [Bug #15935]

[e6aa0a61fa] Kazuhiro NISHIYAMA 2019-06-18 08:30:01 UTC

doc/globals.rdoc に $, と $; への nil 以外の代入は deprecated になったことを追記しています。

ruby-trunk-changes 2019-06-17

今日は bison 3 の対応や共有文字列操作の一部でのメモリリーク修正などがありました。

[44caca11cf] Yuki Yugui Sonoda 2019-06-16 13:28:34 UTC

compile.c で定数への代入で名前空間の途中の式によって VM スタックの調整を入れるようにしています。テストをみるとこれは評価順序を確認するためのテストみたいなので、先に左辺値の評価をしてから右辺値を評価するようにするための修正で JIS X の規格にあわせるためとのことですが、CI がこけてて後に revert されています。

[11f8c89171] git 2019-06-16 13:48:23 UTC

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

[1ff26dc4c7] Yusuke Endoh 2019-06-16 14:00:05 UTC

44caca11cfa6bea01a1ef738846183f1a56d5658 で CI がエラーになったそうで revert しています。

[d4929f5185] git 2019-06-16 14:01:46 UTC

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

[53e9908d8a] Nobuyoshi Nakada 2019-06-16 14:41:06 UTC

string.c の str_replace_shared_without_enc() で str2 のほうの文字列が GC で管理されてないものだった時に解放処理を忘れてたのを修正しています。また parse.y の gettable() で __FILE__ が返す文字列を rb_fstring() を通したものにしておくようにして struct parser_params のほうの内容が変更されないようにしています。けどこの 2つの変更は関係あるのかな。 [ruby-core:93071] [Bug #15916]

[a064e46762] Nobuyoshi Nakada 2019-06-16 18:09:52 UTC

Bison 3 対応とのことで parse.y の %pure-parser を %define api.pure と変更しています。ひえー、こんな非互換が入るとは。 で古い Bison だと逆に動かなくなるみたいなので tool/pure_parser.rb というツールを追加して bison --version の出力をみて古いやつだったらこの directive を %pure-parser に書き換えるようにしています。

[09a846085c] git 2019-06-17 10:56:35 UTC

version.h の日付更新

ruby-trunk-changes 2019-06-16

今日はメンテナンス用ツールの修正や reline と irb のプロンプトの行数処理の修正などがありました。

[ee7999bb84] nagachika 2019-06-16 02:39:12 UTC

tool/redmine-backporter.rb の done サブコマンドで svn のログを取得できたかの判定で演算子の有効順位のせいでうまく判定できてなかったので明示的なかっこを追加しています。

[72cc5cf019] git 2019-06-16 02:46:37 UTC

version.h の日付更新

[17e6536fe0] nagachika 2019-06-16 02:59:52 UTC

tool/redmine-backporter.rb で redmine の git の revision の URL path を修正しています。

[2fb1564c02] aycabta 2019-06-16 05:46:22 UTC

irb から Reline.prompt_proc に渡す Proc の引数の数を1つに変更して行数を irb の RubyLex の @line_no で正しくカウントするようにしています。

ruby-trunk-changes 2019-06-15

今日は結果的にはリファクタリングとテストの修正だけでした。

[5dd8fdd3f3] Yusuke Endoh 2019-06-15 02:06:39 UTC

net/imap のテストで Thread を起動するやつで、Thread 起動後先頭で変数へ代入するのを観測するまで待つというのを常に行うようにしています。遅いシステムでの CI の安定化のため。

[e6aefe2a13] git 2019-06-15 02:09:33 UTC

version.h の日付更新

[5af5dd4639] Josh Cheek 2019-02-06 04:11:30 UTC

改行込みのメソッドチェインの途中に # による行コメントを書けるようにしています。(しかしコミットログはもうちょっとちゃんと書いてもらいたいな。あとで squash するつもりだったみたいだけど)

[cc180e9371] Josh Cheek 2019-02-06 06:43:16 UTC

5af5dd463929837f7684d1e0865ac2d9394e19a5 で導入した定数名の改名。

[162bfa1c7c] Josh Cheek 2019-02-06 06:43:27 UTC

5af5dd463929837f7684d1e0865ac2d9394e19a5 のテスト追加。

[2240de98c0] Josh Cheek 2019-02-06 06:58:50 UTC

5af5dd463929837f7684d1e0865ac2d9394e19a5 の空行除去。

[b8730f1251] Josh Cheek 2019-02-06 07:10:23 UTC

5af5dd463929837f7684d1e0865ac2d9394e19a5 に加えて複数行のメソッドチェーンで途中に空行がはさまっても許すようにしています。え、これはできるんだ。そうかなんとなくこれができないのって衝突するからだと思ってたけど、よく考えてみるとこれを許しても衝突はしないのか…。

[46527e1bf4] Josh Cheek 2019-06-15 02:13:27 UTC

コミットログによると b8730f1251d94c0992db663f119df0a2bb31dca1 についてのテストの追加のように読めるんですが、直接は関係ないような…。副作用がないかという意味でのテストかな。

[6fa4c90448] Nobuyoshi Nakada 2019-06-15 02:58:02 UTC

parse.y および拡張ライブラリ ripper の関数の引数でトークンを表すのに int を使っていたところを enum yytokentype に変更しています。

[5d79054906] Nobuyoshi Nakada 2019-06-15 03:04:16 UTC

メソッドチェインの途中のコメント行と空行の対応の 5af5dd463929837f7684d1e0865ac2d9394e19a5, cc180e937100c72b7ce849602c9d93d8e8a3d2aa, 162bfa1c7cf325f6efce6f6e080d29db91fbcf78, 2240de98c0b174c2d0e61dd647776f5d5c404639, b8730f1251d94c0992db663f119df0a2bb31dca1, 46527e1bf4a66a42ac4729e23f12bdfec8ae953e を revert しています。ミスで入っちゃったとのこと。なんと。

ruby-trunk-changes 2019-06-14

今日は pipeline operator の文法の細かい変更、reline/irb のプロンプトの複数行対応の機能追加などがありました。

[043f010c28] Nobuyoshi Nakada 2019-06-13 13:03:10 UTC

f169043d81524b5b529f2c1e9c35437ba5bc3a7a で追加した pipeline operator を文法規則の expr_value から expr に格上げ(?)しています。 最後の右辺のメソッドにかっこなしで引数を渡せるようにするためらしい。

[aa7211836b] Nobuyoshi Nakada 2019-06-13 13:19:47 UTC

文の途中で改行して行頭に pipeline operator を置いたものを書けるようにしています。

[e75c278183] Yusuke Endoh 2019-06-13 13:44:01 UTC

test/unit の assert_cpu_usage_low の追加されたキーワード引数のデフォルト値を 1.0 に伸ばしています。 CI でのランダムな失敗の回避のため。

[56d595198b] Yusuke Endoh 2019-06-13 14:04:41 UTC

webrick のテストでタイムアウト処理に EnvUtil.timeout を利用して環境変数によるスケーリングを効かせるようにしています。

[64310b2573] aycabta 2019-06-13 22:42:53 UTC

標準添付ライブラリ reline に Reline.prompt_proc という属性に Proc オブジェクトを設定できるようにしています。 multi line の時のプロンプトを制御するために使えるようにということみたいです。

[3757e492fb] git 2019-06-13 22:46:01 UTC

version.h の日付更新

[f80771f0a9] aycabta 2019-06-13 23:26:06 UTC

64310b2573a9e1e83cd405aed4a5c3351793e09d で reline に追加した Reline.prompt_proc を irb で利用して、各行の状態に応じたプロンプトを表示させるようにしています。

[d0e5564140] aycabta 2019-06-13 23:45:35 UTC

Reline::LineEditor でプロンプトの文字列に escape sequence を許可するようにしています。

[9402d019a5] aycabta 2019-06-13 23:45:52 UTC

64310b2573a9e1e83cd405aed4a5c3351793e09d でデバッグ用の標準エラー出力への出力が残ってたのを削っています。

[50bb8b6052] Nobuyoshi Nakada 2019-06-13 23:15:39 UTC

test/unit の assert_join_threads で例外のメッセージやバックトレースを結合して文字列化しているところを Exception#full_message を利用するようにリファクタリングしています。

[aa32465ab3] Nobuyoshi Nakada 2019-06-14 06:31:03 UTC

irbIRB.conf[:PROMPT_MODE] の設定についての rdoc 用コメントに :PROMPT_N というキーについて追記しています。

[d780c36624] Kazuhiro NISHIYAMA 2019-06-14 08:29:51 UTC

f169043d81524b5b529f2c1e9c35437ba5bc3a7a で追加した pipeline operator の NEWS ファイルのエントリに experimental だと追記されています。

[d365fd5a02] Nobuyoshi Nakada 2019-06-14 09:09:45 UTC

f169043d81524b5b529f2c1e9c35437ba5bc3a7a で追加した pipeline operator は同じ機能のメソッド呼び出しの "." とは違って演算子っぽいメソッドを呼び出すのには使えないようにしています。つまり "a.+(b)" みたいに書けるのと同様に "a |>+ b" と書けてしまってたけど、禁止するようにしています。

ruby-trunk-changes 2019-06-13

今日は pipeline 演算子 "|>" の追加や IO#set_encoding_by_bom メソッドの追加などがありました。

[1808029061] Takashi Kokubun 2019-06-12 15:29:45 UTC

make ync-default-gems を実行して標準添付されている irb を upstream と同期しています。

[8d84e119da] git 2019-06-12 15:32:59 UTC

version.h の日付更新

[2a26c1ea24] Takashi Kokubun 2019-06-12 15:40:27 UTC

irb は gem でインストールして古い ruby でも動く場合があるので completion の機能追加を 2.7 以降でのみ動くようにチェックするようにしてましたが、そのメソッド名を改名し、また色付けも 2.5 以降で動くように判定していたのをメソッドに切り出しています。

[7f79a86d8b] Martin Dürst 2019-06-13 06:30:03 UTC

Array#sort と Enumerable#sort_by の rdoc 用コメントに sort 後に reverse! をつけて逆順にする方法について追記しています。

[69509df2f4] Kazuhiro NISHIYAMA 2019-06-13 07:42:31 UTC

7f79a86d8b4d250ea0e82eb06cd3336edb840a01 の連続した空白を1つになるよう削っています。

[02b1a85385] Luke Gruber 2019-06-10 20:46:57 UTC

Module#to_s の実装 rb_mod_to_s() および Exception#inspect の実装 exc_inspect() で不要な rb_str_dup() してたのを削っています。 https://github.com/ruby/ruby/pull/2232

[bdc8b3789a] git 2019-06-13 09:07:19 UTC

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

[e717d6faa8] Nobuyoshi Nakada 2019-06-08 12:35:33 UTC

open の mode の "bom" と同様に、open 済みの IO に対して IO#set_encoding_by_bom というメソッドを呼ぶことで BOM があれば読み飛ばしてそれを元に Encoding を指定できるようにメソッド追加しています。 IO の位置は先頭にある状態で呼ばないといけないようです。 [ruby-core:89298] [Bug #15210]

[f169043d81] Nobuyoshi Nakada 2019-04-23 04:14:27 UTC

新しいメソッド呼び出しの文法 pipeline operator "|>" が追加されました。 RubyKaigi 2019 で Matz が提案していた通りの obj.m のようなメソッド呼び出しの優先順位が低い版として導入されたようです。そうかーもう入ったかー。 [ruby-core:92432] [Feature #15799]