ruby-trunk-changes 2019-05-31

今日というか昨日 2.7.0-preview1 がリリースされました。最近の reline の導入で irb の色付けやマルチラインの機能が入ってたりしていい感じなので試してみてください。
今日はそのシンタックスハイライトの再修正やリリース関連のツールの修正がありました。

[279c8e14d4] aycabta 2019-05-30 20:54:28 +0900

Reline::LineEditor#rerender で再描画用のバッファを @buffer_of_lines をそのまま使わず一度 whole_lines を呼んで現在の行を更新してから処理するように修正しています。

[b0e2b7a5ff] Nobuyoshi Nakada 2019-05-30 21:54:38 +0900

拡張ライブラリ ripper の Ripper::Lexer#scan でエラー時に @stack に残っている要素もまとめて返すようにしています。

[92ecf58b1e] Nobuyoshi Nakada 2019-05-30 22:03:33 +0900

ripper でヒアドキュメントの終端していない時のエラーの検出位置を修正しています。

[22cd402734] NARUSE, Yui 2019-05-30 22:20:28 +0900

tool/vcs.rb の VCS::GIT がビルドディレクトリが別になっている時に対応できていなかったのを修正。

[f0945176c3] Nobuyoshi Nakada 2019-05-30 22:27:11 +0900

22cd4027349f803efc7ede284376b7a7013f8dfe の再修正。 git コマンドが抜けてしまったところがあったので復旧しています。

[ab0c8cc021] Nobuyoshi Nakada 2019-05-30 23:23:11 +0900

tool/make-snapshot で Unicode 関連のファイルのダウンロードを抑制するため関連ファイルの更新時刻を更新しておくようにしています。

[f7aa80b3fe] Nobuyoshi Nakada 2019-05-31 00:00:26 +0900

lib/unicode_normalize/table.rb の更新を BASERUBY が使えない時にスキップするためターゲット名をずらす時に $(srcdir)/ だけのターゲットになってしまっていたので、サブディレクトリまで含めるようにしています。

[c55db6aa27] git 2019-05-31 00:01:41 +0900

version.h の日付更新。そして 2.7.0-preview1 がこのコミットの位置でリリースされたようです。

[e935a3227d] Benoit Daloze 2019-05-30 22:11:22 +0200

ruby/mspec に upstream からマージ。

[a4161b7649] Benoit Daloze 2019-05-30 22:11:24 +0200

rubyspec に upstream からマージ。

[8f83fe3b02] aycabta 2019-05-31 05:53:02 +0900

Reline::LineEditor の vi モードで Ctrl-D で EOF した時にマルチラインで実は他の行に文字があっても終了してしまってたのを修正しています。

[6e052817f9] Takashi Kokubun 2019-05-31 06:21:17 +0900

5b64d7ac6e7cbf759b859428f125539e58bac0bd で irb から ripper のメソッド Ripper::Lexer#scan として抽出したエラーも含めて結果を取る処理を、再び irb 側に移動しています。

[cb40a21da0] Takashi Kokubun 2019-05-31 06:54:00 +0900

irbシンタックスハイライトが入力が完了していない時に文法エラーになっている部位をハイライトするのを抑制しています。

[6a5e89e23c] Takashi Kokubun 2019-05-31 07:24:11 +0900

187ef00a41ca28a26ffa0a9399c48335578590bb で Wercker でのエラー時に MJIT用の生成したソースファイルを git リポジトリにコミットさせることで保存しようとしてましたが、うまくコミットできなかったようなので git config で user.name と user.email を設定しておくようにしています。

[856593cc49] Takashi Kokubun 2019-05-31 09:44:14 +0900

cb40a21da0687b5dd3cd251c9e66bb0edf67f2b9 のコメントの typo 修正。

[1cd93f1cdf] Jeremy Evans 2019-05-30 18:34:45 -0700

標準添付ライブラリ delegate の Kernel#DelagateClass() メソッドがブロックを受け取るようにして、そのブロックを生成した Class の Module#module_eval に渡すようにしています。Class.new や Struct.new でできるのと同様のことができるようにしたとのこと。

[e8c710b11a] Jeremy Evans 2019-05-30 18:34:45 -0700

標準添付ライブラリ delegate の Kernel::DelegateClass() メソッドが返す Class に後から追加したメソッドが public_instance/methods に含まれないという不具合を修正しています。 [ruby-core:70678] [Bug #11512]

[fd658ec821] Nobuyoshi Nakada 2019-05-31 10:55:37 +0900

tool/make-snapshot で include/revision.h に定義を生成するマクロ RUBY_FULL_REVISION は RUBY_REVISION に定義されるのが切り詰められたものだった時だけにしています。うーん、これは古い安定版ブランチで trunk の tool/make-snapshot を使った時のこと想定してるのかな? tool/make-snapshot はたぶん各ブランチのものを使ってしまうような気がするけど。

[1e9057b54a] Nobuyoshi Nakada 2019-05-31 10:55:37 +0900

tool/vcs.rb の VCS::GIT.get_revisions で現在のブランチが detached でもその名前を使うようにしています。

[d180e40570] Nobuyoshi Nakada 2019-05-31 10:55:37 +0900

tool/file2lastrev.rb に --limit というオプションを追加して RUBY_BRANCH_NAME マクロの値に定義するブランチ名の長さの上限を指定できるようにしています。デフォルトは 20。

[d2f663d6f1] Nobuyoshi Nakada 2019-05-31 10:55:38 +0900

method.h に TODO コメントされてたとおり VM_METHOD_TYPE_MINIMUM_BITS のサイズについて STATIC_ASSERT() で充分な数が指定されていることを確認するようにしています。

[83f9183a7e] Nobuyoshi Nakada 2019-05-31 14:05:01 +0900

構造体のメンバーへのアクセスに使う UNALIGNED_MEMBER_ACCESS() マクロの定義する条件に GCC 9 以降というのも追加しています。 GCC 9 で -Waddress-of-packed-member オプションがサポートされるようになったそうです。

[ea42423908] Alan Wu 2019-05-31 14:38:35 +0900

rb_vm_t::orig_progname が mark 漏れしていて Process.argv0 で SEGV することがあった不具合を修正しています。なんということでしょう。しかも結構前からみたい。 [ruby-core:92884] [Bug #15887]

[b1aecef873] Nobuyoshi Nakada 2019-05-31 16:04:16 +0900

アライメントの取れてない構造体メンバーへのアクセスの警告を抑制する UNALIGNED_MEMBER_PTR() などのマクロ定義を eval_intern.h から internal.h に移動して、利用箇所を増やしています。

[b632566d33] Nobuyoshi Nakada 2019-05-31 16:32:27 +0900

rubyspec で UNIX domain socket を用意する時にパス名が長すぎてエラーになった時は無視するようにしています。

[8b39df854d] Nobuyoshi Nakada 2019-05-31 16:32:27 +0900

rubyspec で irb のテスト時に ~/.irbrc を編集してしまう? のを避けるためダミーの irbrc ファイルを作ってそちらを環境変数 IRBRC で指定して起動するようにしています。

[1457ad1ea7] Nobuyoshi Nakada 2019-05-31 19:20:59 +0900

JIX X 0301 の新元号への対応を含んだ改訂が行なわれてたそうなので、NEWS ファイルの Date の記述を修正しています。 [ruby-dev:50790]