ruby-trunk-changes 2019-10-12

今日は標準添付ライブラリ rexml, csv の更新や Thread.exclusive の deprecated 警告で表示するソース位置の修正などがありました。

[f3c4e620ac] Yusuke Endoh 2019-10-11 12:13:52 UTC

拡張ライブラリ syslog で Android 環境では Syslog::LOG_PERROR という定数は定義されるものの実際に利用しようとするとエラーになるのでテストをスキップするようにしています。

[9e4a53fe13] Yusuke Endoh 2019-10-11 12:39:21 UTC

rubyコマンドラインオプション --encoding のテストで WindowsAIX でのみ不正なバイト列がエラーにならないというのに対応して assertion を変更していたのを Android 環境でも同様の対応をするようにしています。

[c866663784] Yusuke Endoh 2019-10-11 12:43:18 UTC

io.c で定義している NUM2IOCTLREQ() というマクロで NUM2INT() のかわりに NUM2LONG() を int にキャストしたものを使うようにしています。これは ioctl(2) に渡す引数を作るためのマクロで引数は int であるにもかかわらず一部の環境では int の範囲を超えた定数が使われることがあるのでその対策とのこと。ひえー。

[412cd56766] Sutou Kouhei 2019-10-12 03:07:15 UTC

標準添付ライブラリ rexml に upstream の変更をマージしてバージョンを 3.2.3 に更新しています。変更点は REXML::XMLDecl に writethis というインスタンス変数を追加しているだけのようです。 https://github.com/ruby/ruby/pull/2548

[f6a666a1fc] git 2019-10-12 03:07:36 UTC

version.h の日付更新

[d6e68bb263] Kazuhiro NISHIYAMA 2019-10-12 04:25:52 UTC

ruby 本体に組み込まれて起動時に評価される prelude.rb で Thread.exclusive で deprecated 警告を表示する Kernel#warn に uplevel キーワード引数を追加して呼び元の位置を表示させるようにしています。

[92df7d98b6] Sutou Kouhei 2019-10-12 05:03:21 UTC

標準添付ライブラリ csv に upstream から変更をマージしてバージョンを 3.1.2 に更新しています。ドキュメントの変更やクラスメソッドの定義の記法の変更などが目立ちますが他にも修正がありそうです。 https://github.com/ruby/ruby/pull/2547

[6333020fc9] Nobuyoshi Nakada 2019-10-12 05:55:55 UTC

テストのためにファイルシステムの情報を取得するためのテスト用拡張ライブラリで、atime が利用可能かどうかの判定で macOS の最新版 Catalina では MNT_STRICTATIME というフラグが立ってないと更新されない(mount 時のオプションで決まる)らしいのでその対応を判定に追加しています。

[710bc00379] Nobuyoshi Nakada 2019-10-12 08:21:05 UTC

include/ruby/ruby.h にあった C++ でのメソッド定義系関数でのコールバック関数の引数の数のチェックを行うためのマクロ定義を include/ruby/intern.h に移動しています。 ruby.h を include する前に使われる可能性があったとのこと。

[04333da7be] Nobuyoshi Nakada 2019-10-12 09:14:15 UTC

eval.c の "clobbered by 'longjmp' or 'vfork'" 警告が gcc 9.2.0 で出るようになったそうでその除去のため volatile 宣言した変数を導入。

[f405564711] Nobuyoshi Nakada 2019-10-12 09:47:06 UTC

拡張ライブラリ md5/digest で Xcode 11.1 での警告除去のため #pragma で -Wdeprecated-declarations を無効にしています。コメント読むとどうやら MD5 はもう推奨されないということで警告が出るみたいです。

[cb14c4a535] Yusuke Endoh 2019-10-12 12:10:49 UTC

missing/setproctitle.c の setproctitle() の代替実装で引数 fmt が NULL の時の分岐を消して fmt に NULL が渡されるのは不正ということにしています。 fmt が NULL の時にバッファが未初期化のまま使われてしまうのを Coverity Scan が検出したとのこと。

[7ebf9da788] Nobuyoshi Nakada 2019-10-12 13:08:50 UTC

710bc003791b90adf3970e137c69f283c88234cd の続きで RB_METHOD_DEFINITION_DECL_XXX() の移動にあわせて __has_attribute() が未定義の時の代替定義も include/ruby/internal.h に移動してします。

[ebc2198d9f] Yusuke Endoh 2019-10-12 13:43:34 UTC

re.c の match_set_string() において onig_region_resize() の戻り値のチェックをしてメモリ確保失敗時に NoMemoryError 例外を発生させるように修正しています。 Coverity Scan の検出とのこと。

ruby-trunk-changes 2019-10-11

今日は標準添付ライブラリ delegate で BasicObject への委譲にも対応する変更や String の最小バッファサイズの調整など細々とした最適化がありました。

[c144d7215b] Nobuyoshi Nakada 2019-10-10 12:02:45 UTC

0131fab749fb76800de09e49a6abf910201c5b58 で時間短縮を図った openssl のテストですが、やっぱり時間かかりすぎということで再度 skip しています。 [ruby-core:95179] [Bug #16196]

[a886d5cb79] Yusuke Endoh 2019-10-10 14:18:44 UTC

File のテストで実効ユーザーが owner ではない適当なファイルパスを返すために root かどうかのチェックのために euid を 0 と比較していたのを "/" の owner の uid と比較するようにしています。コンテナ内とかを想定しているようです。

[f845e1bc99] Yusuke Endoh 2019-10-10 14:21:24 UTC

拡張ライブラリ syslog の extconf.rb で liblog なるシステムライブラリ? をチェックして可能ならリンクするようにしています。 Android 環境では syslog の利用にこれが必要みたいです。

[4171909695] Yusuke Endoh 2019-10-10 14:22:37 UTC

MJIT 用に JIT コンパイルのためにコンパイラを起動する時のリンカオプションに、Android 環境では -lm を追加するようにしています。

[2322c94dd6] Jeremy Evans 2019-08-25 07:04:14 UTC

標準添付ライブラリ delegate で BasicObject には respond_to? メソッドすらないので Kernel#respond_to? を UnboundMethod として取り出して bind_call で対象のオブジェクトに bind して呼ぶことで BasicObject への委譲もできるようにしています。 [ruby-core:94541] [Bug #16127]

[ddb0267e76] git 2019-10-10 20:15:28 UTC

version.h の日付更新

[29c1e9a0d4] Jeremy Evans 2019-10-10 18:25:54 UTC

doc/syntax/ の下のドキュメントや doc/keywords.rdoc で expression と statement (式と文、かな)という単語の利用を若干修正して、後置の if/unless/rescue などの記法についてのドキュメントを追加しています。 [ruby-core:94221] [Bug #16092]

[87958520f3] takkanm 2018-06-19 11:49:09 UTC

Binding#irbirb のセッションを起動した時に __FILE__ や __dir__ が起動されたファイルを指すように binding_irb.context.irb_path をセットするようにしています。 https://github.com/ruby/ruby/pull/1896

[0ca4f74967] Lourens Naudé 2019-09-10 23:18:41 UTC

起動時に VM 命令の ID と通し番号を登録する st_table の初期化時にサイズを指定する st_init_numtable_with_size() を使うようにしてちょっとした最適化。

[9c24ce551d] Lourens Naudé 2019-04-25 21:35:43 UTC

String オブジェクトのバッファを heap から取得する場合の capa の最小値を 127 から 63 に減らしています。

[7cc1cd3d1e] ksss 2016-10-24 02:42:31 UTC

Module#define_method に渡された引数が誤っていた時の例外メッセージに Proc/Method を渡すべしと書かれてましたが UnboundMethod でも OK なのでそれも追記しています。

[ddfb306e8e] Gabriel Nagy 2019-10-11 04:48:02 UTC

r60856 (e33b1690d06f867e45750bd8e3e8b06d78b5bc26) で win32.c の socket 管理の変更の時に NtSocketsInitialized という変数をマクロにしてほぼ未使用に近い状態だったのを削除して冗長な分岐を削除しています。 https://github.com/ruby/ruby/pull/2312

[d6c80876b7] Kazuhiro NISHIYAMA 2019-10-11 04:50:27 UTC

標準添付ライブラリ uri で UnboundMethod#bind と Method#call を組み合わせてたところを UnboundMethod#bind_call を使うようにリファクタリング。古い ruby で…と思ったけど uri はまだ default gem 化されてなかったですね。

ruby-trunk-changes 2019-10-10

今日は昨日の整数オーバーフロー考慮したメモリ確保関数から安全に例外発生できるようにする修正や numbered parameter のスコープチェックの不具合修正、openssl の内部オブジェクトの GC 関連の潜在的不具合修正などがありました。

[b9cf58d2b2] Yusuke Endoh 2019-10-09 13:57:19 UTC

signal.c の ruby_abort() 関数の定義を sigill() 関数の後ろに移動しています。 sigbus() と sigill() の間に割り込むように置かれてたので類似の関数をまとめるために移動したとのこと。

[dd477df411] Yusuke Endoh 2019-10-09 14:02:22 UTC

error.c の rb_bug_context() を rb_bug_for_fatal_signal() に改名しています。

[891cbd66a4] Yusuke Endoh 2019-10-09 14:13:59 UTC

dd477df411691803fc5a83c7daa64faac112a0e4 の続きで改名した rb_bug_for_fatal_signal() の引数にシグナルハンドラの関数ポインタを渡せるようにして SIGSEGV, SIGBUS, SIGILL などのシグナル受信時の処理でデフォルトでセットされているシグナルハンドラも呼ぶようにしています。環境によっては(Android では?)元々これらのシグナルに対してハンドラがセットされていることがあるようです。

[29e6782f5d] Nobuyoshi Nakada 2019-10-09 14:39:58 UTC

891cbd66a411725d7300a28b1a95619c2902f0eb のさらに続きで rb_bug_for_fatal_signal() の第1引数の型を vm_core.h で ruby_sighandler_t と定義しておいてこれを使うようにしています。

[bb71a128eb] Ben Woosley 2017-05-18 22:59:38 UTC

st_table のテーブルにあるキーが存在しているかどうか判定するために st_lookup() で結果を格納するポインタに 0 を渡して呼んでいたところを st_is_member() という同じ内容のマクロがあったのでこれを使うようにリファクタリングしています。

[9b919885a0] 卜部昌平 2019-10-09 15:10:14 UTC

7e0ae1698d4db0baec858a46de8d1ae875360cf5 の rb_xmalloc_mul_add_mul() という関数導入時に変数代入の間違いがあったのを修正しています。

[ecf6c0402e] git 2019-10-09 15:14:36 UTC

version.h の日付更新

[8dc5fe6e89] Alan Wu 2019-10-09 15:34:03 UTC

class.c の rb_define_module_id() という関数で不要なローカル変数を使うのをやめるリファクタリング

[42edb05626] Nobuyoshi Nakada 2019-10-09 16:08:42 UTC

vm_insnhelper.c の vm_declare_class() と vm_declare_module() からクラス名設定のため名前の文字列を生成して定数に設定する処理を declare_under() という関数に切り出すリファクタリング

[25100c4697] Nobuyoshi Nakada 2019-10-09 23:53:46 UTC

後置 in 記法によるパターンマッチで in の左辺(って言うのかな)の式について value_expr() を呼んで値を返す式になってるかチェック(return とか break とかの処理フローを制御するのはダメとか)するようにしています。

[9c3153e0da] 卜部昌平 2019-10-10 02:55:43 UTC

rb_raise() を GVL を外したスレッドからも呼べるように、持ってなかったら GVL を確保してから処理するようにしています。メモリ確保の関数内から呼ぶためらしい。

[a23b639050] Nobuyoshi Nakada 2019-10-10 05:07:27 UTC

negative_size_allocation_error() の宣言に NORETURN() をつけています。

[c2065c64cb] Nobuyoshi Nakada 2019-10-10 04:50:13 UTC

numbered parameter のスコープの情報を保持するのを struct parser_params に直接保存していたのを struct local_vars に移動してローカル変数のスコープ毎に管理するようにしています。ブロック内でメソッド定義したりした時にその中のブロックにローカル変数のスコープが分かれている外側のブロックでの numbered parameter の利用が影響してしまっていたのを修正しています。 [ruby-core:95294] [Bug #16248]

[495ebd6e95] Nobuyoshi Nakada 2019-10-10 05:21:29 UTC

common.mk の error.o の依存関係に thread.h を追加しています。 9c3153e0da991e1a7df9b4cf91d6830effc79b22 の変更で必要になったのが漏れてたようです。

[717b72a8af] Jean Boussier 2019-10-01 11:16:32 UTC

rubygems の Gem::Package::TarReader で IO に seek を呼ぶ前に respond_to? でチェックするようにしています。毎回呼んでみて例外を rescue してたのが遅いのでそれを回避するようにしています。

[dc2b301994] Nobuyoshi Nakada 2019-10-06 15:08:32 UTC

6dfe0c9dcd8327dfce5f689d6a184c0f3a146a24 で rubygems のテストで日付のチェックを緩めてたのをもう少し厳密なチェックをするようにしています。

[6f522455bf] Nobuyoshi Nakada 2019-10-06 15:12:18 UTC

rubygems のテストで日付をチェックするテストで専用の assertion メソッドを追加して厳密なチェックでなく範囲をもたせたチェックにするようにしています。

[203b7fa1ae] Nobuyoshi Nakada 2019-10-10 07:08:39 UTC

拡張ライブラリ openssl で ASN1 のタグ名? を管理する Hash オブジェクトを rb_global_variable() で GC の root にするのを、実際にオブジェクトを代入する前にやっておくようにしています。すぐに呼んでたから大丈夫かなと思ったけど rb_global_variable() 自体が中で ALLOC() を呼んでるのでそこで GC が走る可能性があるんですね。 [ruby-core:95179] [Bug #16196]

[0b26f56a77] Kazuhiro NISHIYAMA 2019-10-10 07:48:26 UTC

6f11c3b3354bef107f894f112ff7698414c7bae5 で GitHub Actions の job level if で [ci skip] がコミットログに含まれてたらテストをスキップするようになったので、各ステップ毎に書いてた if は削除しています。

[d96f04d73a] 卜部昌平 2019-10-10 07:10:58 UTC

9c3153e0da991e1a7df9b4cf91d6830effc79b22 で Ruby の Thread じゃないところで rb_raise() が呼ばれてた時の abort(3) での異常終了時に "[FATAL] " というメッセージを標準エラー出力に表示するようにしています。 rb_fatal() した時と極力同じにするためかな。

[f1ce4897f2] 卜部昌平 2019-10-10 08:04:59 UTC

9c3153e0da991e1a7df9b4cf91d6830effc79b22 の rb_raise() を GVL 解放した状態で呼べるようにする変更は一部 revert して、かわりに gc_raise() という関数を導入してこちらは GVL なしで呼ぶと中で GVL 確保するようにしています。ささださんからのリクエストとのこと。

[2d393bf125] 卜部昌平 2019-10-10 08:49:31 UTC

rb_fatal() に GVL を保持しているかをチェックして確保してなかったら fprintf(3) と abort(3) を使った簡易的な実装にきりかえるようにしています。

[3f413896c3] 卜部昌平 2019-10-10 09:15:33 UTC

f1ce4897f2eaf9a99c250e4707e3ab6f6bdacb74 で一部 revert したために不要になった "ruby/thread.h" の include を error.c から削除しています。

[0131fab749] Nobuyoshi Nakada 2019-10-10 10:56:51 UTC

203b7fa1ae8cc40d41c38d684f70b3fea7fae813 で追加した GC.stress = true するテストは時間がかかりすぎるからということで skip 状態でしたが起動後に GC.stress = true を実行するようにするのと、require に "openssl.so" を直接指定することで時間を削減して実行するようにしています。 [ruby-core:95179] [Bug #16196]

[9c0cd5c569] Nobuyoshi Nakada 2019-10-10 10:38:37 UTC

203b7fa1ae8cc40d41c38d684f70b3fea7fae813 の再修正。 openssl が内部的に使っている変数を GC の mark 対象にするのに rb_global_variable() を使っていたのを rb_gc_register_mark_object() を使うようにしてオブジェクト確保後に呼ぶようにしています。変数のアドレスを直接 root にするんじゃなくてオブジェクトを mark 用配列に入れるのでこちらのほうがちょっとスマート。 [ruby-core:95179] [Bug #16196]

ruby-trunk-changes 2019-10-09

今日は標準添付ライブラリ uriURI#query= のチェックの強化や Array#sum で要素が Float だった時の細かな最適化などがありました。

[7909f06212] Jeremy Evans 2019-07-05 21:45:19 UTC

標準添付ライブラリ uriURI#query= で引数に %xx でエンコードされた文字列があったら例外発生させるようにしています。 [ruby-core:69637] [Bug #11275]

[98131f148f] Nobuyoshi Nakada 2019-10-09 00:01:11 UTC

misc/lldb_cruby.py で String オブジェクトの文字列を取り出すのに struct RVALUE に embedding されてる時の取り出しかたが間違ってたのを修正。

[e078352a78] Nobuyoshi Nakada 2019-10-09 00:04:37 UTC

同じく misc/lldb_cruby.py の lldb_inspect 関数で 98131f148f057b1364ae080f99b1efb2dc72002a で修正した string2cstr を使って文字列の内容をサイズも指定して表示するようにしています。

[59cfa2d187] git 2019-10-09 00:08:53 UTC

version.h の日付更新

[2f3b4029da] 卜部昌平 2019-10-07 04:46:24 UTC

internal.h の ruby_sized_xrealloc2() の定義に ruby_xrealloc() を使っていて引数の数が間違ってたのを ruby_xrealloc2() に展開するように修正しています。

[a220410be7] 卜部昌平 2019-10-07 04:16:42 UTC

2f3b4029da1b64ffb989916a8b74e17c366e45b0 の続きかと思いますが ruby_xmalloc()、ruby_xmalloc2()、ruby_xcalloc() などの定義に __attribute__((__malloc__)) をつけて宣言するようにしています。

[7e0ae1698d] 卜部昌平 2019-10-07 07:56:08 UTC

サイズと要素数を掛けてメモリ領域のサイズを計算してメモリ確保するような時にオーバーフローする可能性を考慮するため rb_xmalloc_mul_add_mul() という関数を導入して使うようにしています。いやー徹底しているな。

[a14cc07f2f] 卜部昌平 2019-10-08 07:07:31 UTC

objspace_xrealloc() で再確保後のサイズが 0 の時に 0 (NULL) を返していましたが、実際に objspace_xmalloc0() にサイズ 0 で確保させてみてアドレスがかえってきたらそれを返すようにしています。それも NULL だったらとりあえずサイズを 1 にして確保することにして、なにかしら有効なアドレスを返すようにしています。

[2d001003e4] Watson 2019-10-09 03:25:08 UTC

Array#sum の要素が Float だった時の最適化パスで変数の宣言をループのブロックの外に出すようにしています。こうしたほうが早いとのこと。 C でもこんなの関係あるんだなぁ。 https://github.com/ruby/ruby/pull/1555

[12d05537d7] aycabta 2019-09-18 09:51:02 UTC

標準添付ライブラリ rdoc の gemspec でサポートする ruby のバージョンの記述を 2.4.0 以降に変更しています。

[b439ee1b8f] Pavel Valena 2019-09-25 13:35:56 UTC

lib/net/http/status.rb になぜかあった shebang の行を削除しています。

[d0e30fc955] Yusuke Endoh 2019-10-09 05:03:04 UTC

メソッドの引数の keyword splat の変換や警告出力をまとめている関数 rb_adjust_argv_kw_splat() で引数を一時バッファにコピーする時にサイズ 0 だったら memcpy(3) を呼ばないように修正しています。 Coverity Scan が警告を出すのでそれを回避するためみたいです。

[6f11c3b335] Kazuhiro NISHIYAMA 2019-10-09 08:46:05 UTC

.github/workflow の GitHub Actions の設定ファイルでコミットログに '[ci skip]' が含まれてたらジョブ全体をスキップするという条件を追加しています。ジョブ全体に効く if の機能が GitHub Actions に追加された模様。

ruby-trunk-changes 2019-10-08

今日は GC.compact の回収処理の変更や Kernel#ruby2_keywords をブロックから作られたメソッドにも対応するようにする変更などがありました。

[468184a996] Jeremy Evans 2019-10-07 04:18:20 UTC

キーワード引数の移行のために用意されている Kernel#ruby2_keywords メソッドの引数に Module#define_method で block から作られたメソッドにも対応するようにしています。

[7abb02771a] Kazuhiro NISHIYAMA 2019-10-07 15:00:24 UTC

3374e1450c18c33420f616f41ad7f884fdb4df21 の tool/make-snapshot の JSONYAML の出力のヘッダが逆になっていたのを修正。

[d8b6f58502] git 2019-10-07 15:00:54 UTC

version.h の日付更新

[0a2f04e156] Aaron Patterson 2019-10-07 17:14:13 UTC

GC.compact で最後に T_MOVED に変更されたオブジェクトを解放するのに最後に garbage_collect() を呼んでたのを moved_list を辿りつつ直接 free list に追加していくように変更しています。

[058db33c5e] Aaron Patterson 2019-10-07 19:10:24 UTC

0a2f04e156cb717dcf78f2ea9bfe26f864a24616 の続きで T_MOVED の解放中に解放したオブジェクトが所属している page が完全に空になったら tomb heap に移動して解放できるようにしています。

[6abcd35762] Aaron Patterson 2019-10-07 19:28:21 UTC

0a2f04e156cb717dcf78f2ea9bfe26f864a24616 と 058db33c5ec881271d028b7490d88b3baed74acb の続きで空になった page を tomb heap に移動する条件に heap_pages_freeable_pages のチェックも追加しています。なんだっけこれ。

[055a85d3d9] Jeremy Evans 2019-10-07 19:55:22 UTC

NEWS ファイルに ruby2_keywords について追記しています。また File.realpath の追加、Pathname() の仕様変更、keyword argument 関係の C API 追加などについても追記しています。

[c0eae130b1] Jeremy Evans 2019-10-07 20:16:33 UTC

keyword splat の処理にまつわる C API の定数 RB_SCAN_ARGS_EMPTY_KEYWORDS と RB_PASS_EMPTY_KEYWORDS のコメントに 3.0 で削除する旨追記しています。

[59c3b1c9c8] Jeremy Evans 2019-10-07 20:45:40 UTC

doc/extension.rdoc に 2.6 以前の ruby 向けに 2.7 で追加された keyword argument 関係の C API の代替実装するのにこう書けばいいよっていうサンプルを追記しています。

[dd0c75fdc2] Kenta Murata 2019-10-08 00:06:28 UTC

拡張ライブラリ bigdecimal の upstream の変更を取り込んでいます。Kernel#BigDecimal での変換で文字列の解釈を緩める変更とか https://github.com/ruby/ruby/pull/2531

[11b6ff12af] 卜部昌平 2019-10-08 02:21:20 UTC

テストで long の最大値を計算するのに RbConfig::SIZEOF から計算していたところを RbConfig::LIMITS を利用するようにしています。

[8feb8c9bb7] Nobuyoshi Nakada 2019-10-08 00:13:58 UTC

parse.y の struct parser_params のメンバー delayed、delayed_line、delayed_col をまとめて構造体にしてネストさせるように宣言を変更しています。

ruby-trunk-changes 2019-10-07

今日は Array#intersection というメソッドの新規追加と reline の更新などがありました。

[309f6a7726] aycabta 2019-10-02 10:56:55 UTC

標準添付ライブラリ reline のテストで assert_equal の引数の expected と actual が反対になってたのを修正しています。

[136116819e] aycabta 2019-10-05 14:46:16 UTC

標準添付ライブラリ reline の Windows 版で JRuby で使っている時に Win32API を標準添付のものを使うようにしています。これなんで CRuby では使ってないんだろう。

[a9e9cd2036] aycabta 2019-10-05 15:52:20 UTC

標準添付ライブラリ reline の Reline::LineEditor で出力の flush を数カ所追加しています。

[d4ec37f69e] git 2019-10-07 05:16:12 UTC

version.h の日付更新

[c8542ab484] Prajjwal Singh 2019-10-07 05:12:29 UTC

Array#intersection という複数の配列の重複した要素のみからなる Array を返すメソッドを新規追加しています。配列内で複数個重複している場合は 1つにまとめられるようです。なるほどなー。内部的には Array#& メソッド相当の関数を繰り返し適用するようになっています。 [ruby-core:94855] [Feature #16155]

[f4252f6496] aycabta 2019-10-07 05:21:38 UTC

標準添付ライブラリ reline のバージョンを 0.0.3 に更新しています。

[bb86611c9b] Kazuhiro NISHIYAMA 2019-10-07 10:03:06 UTC

tool/make-snapshot の -s3 オプションを削除しています。 S3 へのアップロードは別途 ruby/actions の GitHub Actions でやるようにしているので不要になったため。

[96753e8475] Kazuhiro NISHIYAMA 2019-10-07 10:05:42 UTC

tool/make-snapshot でパッケージ作成中に info.yaml と info.json というファイルを生成するようにしています。これは www.ruby-lang.org のリリース時の releases.yml に追記するための情報を出力するためのものです。

[3374e1450c] Kazuhiro NISHIYAMA 2019-10-07 10:33:33 UTC

96753e8475ee69537134ab3d966c3d25cb5c467c の続きでファイルに書き出すのと同時に標準出力にも info.yaml と info.json の内容を出力するようにしています。出力時のヘッダ部分の YAML: <->JSON: が反転しているようですね。

ruby-trunk-changes 2019-10-06

今日は末尾再帰の最適化を on にした時の不具合の修正とその revert などがありました。

[2409667aa2] Yusuke Endoh 2019-10-06 02:39:01 UTC

time.c には WIDEVALUE という若干アレな型があって、環境によっては VALUE とは幅(メモリ上のサイズ)が異なるのですが、これらが同一であることを前提にしてしまっている箇所があったので明示的な w2v() や WIDEVAL_WRAP() での変換を追加しています。

[2ca353c2e0] git 2019-10-06 02:49:27 UTC

version.h の日付更新

[6525d3bcc7] Yusuke Endoh 2019-10-06 06:22:12 UTC

DTrace のテストの helper で Linux で stap が使えるかのチェックのために実行ユーザーが stapusr stapdev のいずれかの group に入ってるかのチェックで Etc.getgrnam が nil を返した時の例外処理を追加しています。

[f62f90367f] wanabe 2019-10-06 07:52:09 UTC

r67315 で rest 引数のないメソッドの呼び出しのための最適化パスを追加した際に末尾再帰最適化のオプションつきで ISeq を compile した時の考慮が漏れてたので、VM_CALL_TAILCALL をチェックして有効だった時のためまた別の実装を使うようにして対応を復活させています。 https://github.com/ruby/ruby/pull/2528 [ruby-core:94881] [Bug #16161]

[ddf5020e4f] Koichi Sasada 2019-10-06 08:01:00 UTC

f62f90367fc3bce6714e7c34cbd040e14e43fe07 を revert しています。ふーむなんでだろ。 https://github.com/ruby/ruby/pull/2528 [ruby-core:94881] [Bug #16161]