ruby-trunk-changes 2019-08-10

今日は多重代入の後ろに後置 rescue が付いた時の解釈を変更する文法の変更や Array#join の結果が小さい時の省メモリ化などがありました。

[3ddbba84b5] Yusuke Endoh 2019-08-09 13:48:20 UTC

ef64ab917eec02491f6bf7233a4031a8c35385e3 で 1024 に増やした STACKFRAME_FOR_CALL_CFUNC の値をさらに 2048 を倍に増やしています。 RubyCI をみるとどうやらこれ以降直ってるみたいですね。

[c9eb8f82e9] Nobuyoshi Nakada 2019-08-09 11:20:36 UTC

enc/gb2312.c から ruby/ruby.h と ruby/encoding.h の #include を削除して enc/depend ファイルも更新しています。

[314b50d7c0] Nobuyoshi Nakada 2019-08-09 14:10:06 UTC

io.c と vm_dump.c で unix.h や ucontext.h といったシステムヘッダの #include でファイルをダブルクオートで括ってたので <> で括るように修正しています。 C のお作法ですね。

[a8ba22cd32] Yusuke Endoh 2019-08-09 15:01:36 UTC

c9eb8f82e9febeb634a23bec6aeea915eb25fe26 の #include 削除で enc/gb2312.c のコンパイルがエラーになったので revert しています。

[8d7e0159c0] git 2019-08-09 15:04:06 UTC

version.h の日付更新

[88db6fa479] Nobuyoshi Nakada 2019-08-09 16:04:39 UTC

c9eb8f82e9febeb634a23bec6aeea915eb25fe26 のリトライ。 Init_gb2312() で rb_enc_register() の呼び出しをしてたのを関数定義ごと消して ENC_REPLICATE() マクロによる登録に変更しています。

[cecae8593a] Nobuyoshi Nakada 2019-08-09 16:05:09 UTC

a8ba22cd323d481eb8bd08ebca0fab8f1dbfc2f9 で一緒に revert された enc/depend の更新も再度コミットしています。

[53b3be5d58] Jeremy Evans 2019-08-09 03:02:54 UTC

代入文に後置 rescue が付いていた場合、通常は代入文の右辺に後置 rescue が付く(例外発生時に後置 rescue に書かれた式の値が代入される)のですが、左辺値が配列を splat して代入する多値っぽい代入になっていた場合は代入文全体に対して後置 rescue が付くという文法になっていたので、通常の代入の時と合わせて右辺値に後置 rescue が所属するように文法を修正しています。なるほどー、確かに一貫性としても使い勝手としてもこちらのほうが良さそう。非互換だけど…。 [ruby-core:54120] [Feature #8239] [ruby-core:54338] [Bug #8279]

[162cf2879a] Nobuyoshi Nakada 2019-08-09 16:39:36 UTC

88db6fa4793da3724c0128e53cfe1abead1774f8 で enc/gb2312.c の Init_gb2312() 関数ごと消してましたが、やっぱりこのエントリ関数を消すのはまずかった(static link する時にこまるらしい)ので、空っぽの関数を復活させています。

[b1678338e5] ohbarye 2019-08-09 16:56:40 UTC

cgi および net/http のコメントや rubyspec の it のタイトルの英文法修正。

[9d298b9dab] John Hawthorn 2019-06-26 16:52:30 UTC

Array#join の結果を格納するための文字列オブジェクトを生成するのに rb_str_buf_new() を使ってましたが、これは指定のサイズが小さくても最低でも 127 bytes はヒープからメモリを確保してしまうので、rb_str_new() で capa を必要なサイズを指定して生成してから rb_str_set_len() で len をセットするようにして、不要なメモリ確保を抑制するようにしています。

[789776be08] iain barnett 2019-08-04 04:37:54 UTC

String#unpack1 の rdoc 用コメントに unpack との違いを強調するサンプルを追加しています。

[49f88eb2f1] Takashi Kokubun 2019-08-10 00:34:13 UTC

.github/workflows/workflow.yml の on に push を追加して pull request 以外でもビルドが走るようにしているようです。

[6902824729] Masato Ohba 2019-08-10 00:28:37 UTC

benchmark/vm_thread_pass.rb のコメントの typo 修正。

[07e42e88d9] Nobuyoshi Nakada 2019-08-10 02:26:23 UTC

require 関係の benchmark スクリプトでファイルを作成するのに File.open + puts を使ってたのを File.write メソッドを利用するようにリファクタリングしています。

[ab31693af1] Nobuyoshi Nakada 2019-08-10 02:38:49 UTC

marshal.c で Encoding の dump の時に :E という symbol のために毎回 rb_intern() していたのを Init_marshal() で static 変数に格納しておいてそれを使うように修正しています。

[3c3783ac88] git 2019-08-10 02:43:07 UTC

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

[ffdef3674a] Nobuyoshi Nakada 2019-08-10 04:18:41 UTC

ab31693af109022ecc0a01107067d5c84675807a の続きで Marshal.dump でオブジェクトの "E" という名前のインスタンス変数(@ で始まってないので内部的に作られるものなので気をつけてればないと思いますが)は Encoding のために利用されているため dump しないようにしていたのですが、もしあったら警告するようにしています。

[98c22c78e4] Nobuyoshi Nakada 2019-08-10 04:56:18 UTC

complex.c で f_real_p() は fun1() マクロでメソッド呼び出しする関数定義に展開されてたのを、引数が Integer, Float, Rational, Complex の時の最適化を含む関数定義に変更しています。

[d69ffa4d93] Nobuyoshi Nakada 2019-08-10 05:30:34 UTC

同じく complex.c の f_quo() も fun2() マクロによる定義を、第1引数が Integer, Float, Rational の時の最適化を含む関数定義に変更しています。このため numeric.c の static 関数だった flo_div() は static を消して rb_float_div() に改名しています。

[c5fbe2a19f] Nobuyoshi Nakada 2019-08-10 06:48:39 UTC

.travis.yml で 330e3f19c32dc6b0c287b7845c796e7e4a3ed575 で切り出した tool/travis_retry.sh に渡すオプションを env の変数としてまとめています。

[5e3fb0b357] Nobuyoshi Nakada 2019-08-10 07:33:32 UTC

.travis.yml の macOS でのたまにあるビルドの問題のために 676df311d90990a4666adb5b1db4c7aa6b080e57 で追加した全ファイルの mtime を touch で揃える処理を macOS のみでなく全ての環境で行うようにしています。

[9b203959d5] Takashi Kokubun 2019-08-10 10:19:22 UTC

GitHub Actions の設定ファイル .github/workflows/workflow.yml を .github/workflows/macos.yml と移動して name という設定を追加しています。

[e43b3bb442] Takashi Kokubun 2019-08-10 10:28:07 UTC

GitHub Actions の macos.yml の設定で push は master のみテスト対象にするようにしています。

[6205f95539] Takashi Kokubun 2019-08-10 10:29:39 UTC

e43b3bb442836c8064637a7d46c05ad16a4e0115 で pull request のほうは全ブランチを対象にするためワイルドカードとして * を書いてましたが、クオートしておくようにしています。

[59a8003ac5] Takashi Kokubun 2019-08-10 10:33:11 UTC

.github/workflows/macos.yml の jobs.macos.name の設定は削除しています。

[b3903ef2a1] Takashi Kokubun 2019-08-10 10:38:27 UTC

.github/workflows/macos.yml の jobs の下のラベルは macos から latest に変更して、環境変数の表示などのデバッグ用? コマンドは削っています。また make test や make test-all の実行には name 属性で表示名を設定しています。

[a6c5ce7a9b] Takashi Kokubun 2019-08-10 10:39:00 UTC

.github/workflows/macos.yml の repository checkout のオプションの fetch-depth を 5 から 20 に増やしています。

[00e7ef7e8d] Nobuyoshi Nakada 2019-08-10 10:49:21 UTC

.travis.yml の make test や make leaked-globals の実行時に -o オプションをつけて showflags の実行を抑制しています。

[c1c8577088] Takashi Kokubun 2019-08-10 11:25:58 UTC

e43b3bb442836c8064637a7d46c05ad16a4e0115 で .github/workflows/macos.yml の pull requests に対する設定で branches のかわりに誤って paths が指定されてしまっていたので修正しています。