ruby-trunk-changes 2019-12-05

今日は Solaris 上でのビルドやテストの安定化のための対応や TracePoint.stat メソッドがなくなってしまってた不具合の修正、reline の config ファイルによる設定の機能の強化/修正などがありました。

[a0bc0e1ba1] Kazuhiro NISHIYAMA 2019-12-04 09:43:19 UTC

標準添付ライブラリ drb のテストで Thread が残ったままテストメソッドが終了してしまうのを対策するため DRb::DRbConn.stop_pool メソッドを追加して Thread を終了させるようにしています。

[dbfd4b780e] Yusuke Endoh 2019-12-04 11:59:39 UTC

coroutine/ucontext/Context.c に #include "ruby/config.h" を追加しています。 Solaris 上でのビルドのために必要だそうです。

[fb11e6089d] Nobuyoshi Nakada 2019-12-04 12:52:29 UTC

File.fnmatch の rdoc 用コメントにフラグ用定数 File::FNM_SYSCASE を渡した時の挙動についてのコメントを追加しています。 [ruby-core:96062] [Bug #16391]

[ad8fbf444a] aycabta 2019-12-04 13:26:40 UTC

標準添付ライブラリ reline の config ファイルを読み込む処理で case 文に VARIABLE_NAMES を渡すのに * を忘れててマッチしなくなってたのを修正しています。

[e3587ed849] aycabta 2019-12-04 13:32:12 UTC

標準添付ライブラリ reline の設定で disable-completion が効いてなかったのを修正、というかサポート追加しているようです。

[fbf10ed5b3] git 2019-12-05 00:03:49 UTC

version.h の日付更新

[88ee375dd6] Kazuhiro NISHIYAMA 2019-12-05 00:43:45 UTC

f289e3994bbc6560e2e4e5905b52c35c829c972d で drb のテストで Solaris 上でのみ rubyコマンドラインオプションに -dv を追加していたのを revert しています。

[18d3b5a93a] Yuki Nishijima 2019-12-05 00:55:01 UTC

did_you_mean で receiver が BasicObject の時に除外するメソッド名リストを作るのをやめています。たぶんこのリスト取り出すために BasicObject にないメソッドに依存していてそれを呼ぶためまた NoMethodError が発生して……と再帰してしまうのを避けるためかと。

[e4db0443bc] Jeremy Evans 2019-07-23 02:56:02 UTC

rb_eval_string_wrap() という C API は文字列を ruby スクリプトとして実行して、その時モジュールのコンテキストは(cref)はすりかえるとドキュメントにはあるけど実際には変更してなかったので、rb_vm_cref_new_toplevel() で新しい cref を作ってそこで実行するようにしています。この新しい cref はその後どうなるんだろう……。ずっと残るのかな。 [ruby-core:66049] [Bug #10466]

[df76f2c577] Alan Wu 2019-12-05 02:02:21 UTC

e2a45cb984ba75083a577b38ee9643800579a280 で TracePoint の実装を ruby 実装にした時に TracePoint.stat メソッドがうっかりインスタンスメソッドに変更されてしまっていたのでクラスメソッドに戻しています。 https://github.com/ruby/ruby/pull/2726 [ruby-core:96103] [Bug #16399]

[20031f8b74] aycabta 2019-12-05 04:06:08 UTC

標準添付ライブラリ reline の completion のテストで候補のリストの文字列の Encoding をテスト用に指定された Encoding または default_external に変換しておくようにしています。

[ed5d032ea3] Antonio Terceiro 2019-11-26 00:25:53 UTC

標準添付ライブラリ debug のブレイクポイント追加のコマンドでファイルパスの指定をフルパスに展開しておくようにしています。

[c0d118f41a] Jun Aruga 2019-12-05 05:17:16 UTC

arm32 の環境で strcpy(3) がみつからないというエラーでビルドできないらしいので Travis-CI の arm32 環境で apt-get で libc6:armhf というパッケージをインストールしておくようにしています。 https://github.com/ruby/ruby/pull/2686

[0d7d8b2989] Yusuke Endoh 2019-12-05 05:41:38 UTC

拡張ライブラリ openssl の extconf.rb でコンパイラオプションに -Werror=deprecated-declarations をつけるようにしていたのを revert しています。 Solaris でビルドエラーになってしまう場合があったようです。

[c88afd5328] Koichi Sasada 2019-12-05 05:38:46 UTC

これなんだったか憶えてないのですが vm.c の sdr() と nsdr() という関数の引数を void から VALUE に変更しています。 デバッグ用のメソッドの実装関数なのでメソッドが無引数でも VALUE self が必要ということのようですね。

[edb80dfe3e] Koichi Sasada 2019-12-05 05:39:03 UTC

コマンドラインオプション --debug に ci というのを追加して CI 上で実行された時用に rb_bug() でより詳しいデバッグ情報を表示するようにしています。

[199bd851e4] Yusuke Endoh 2019-12-05 05:51:07 UTC

parse.y の warn_unused_var() という関数で変数を先頭で宣言してたのを、使ってる部分で宣言するようにして ripper では使われてない変数が宣言されて警告が出るのを抑制しています。

[5fbb4555b4] Takashi Kokubun 2019-12-05 06:16:07 UTC

MJIT のテストで利用できるコンパイラをチェックするのに RbConfig::CONFIG の "CC" のかわりに "MJIT_CC" のほうをチェックするようにしています。フルパスでチェックしたいからみたいです。

[72cff5f3af] Takashi Kokubun 2019-12-05 06:18:42 UTC

5fbb4555b427909aed4fe2376c4c583849c1d51c の変更の前からですが tool/mkconfig.rb で config.status の変数の MJIT_SUPPORT および MJIT_CC を取り出すための正規表現に $ を追加して後に余計な文字があった時にマッチしてしまわないようにしています。

[fa1db8f938] Takashi Kokubun 2019-12-05 06:25:11 UTC

common.mk の依存関係更新。 vm_dump.o に gc.h への依存関係を追加しています。 edb80dfe3e6086fb9d5d905a40cdd6ec61a2e1ee の追随かな。

[b40bb27e35] Yusuke Endoh 2019-12-05 06:38:29 UTC

拡張ライブラリ io/console のテストで bcd984f02fdfd74436df2cff8f2d9fe27f005566 で FreeBSD 用に SIGTTOU を無視させるようにしていたのが Solaris でも必要だったようなので同じ措置を Solaris でも行うようにしています。

[ee57920008] Koichi Sasada 2019-12-05 06:01:37 UTC

5c2c3966851ed074eb468ad36d8d75e53b8eab6c で Thread.new した時にブロックを起動する前に割り込みポイントを追加しましたが、その位置を args のポインタを取り出す前に移動しています。うーん内部的な配列かと思ったけど args_ptr だめだったか。

[264d5aff5a] aycabta 2019-12-05 07:28:54 UTC

20031f8b74a224bed88bfd149d59d6176c4f58e2 と同様に標準添付ライブラリ reline の completion のテストで候補の文字列リストの Encoding 変換するテストの対応を増やしています。

[0bca34ddaa] Yusuke Endoh 2019-12-05 07:55:31 UTC

b40bb27e3594bbc2e9c9ac00dfa5612ebae3151b で FreeBSD に追加して Solaris でも SIGTTOU を無視するようにした setup/teardown の対応にコメントをつけて事情を書き残しています。なぜか CI でしか起きずに、CI してるマシンに ssh ログインして実行しても再現しないとのこと。いかにも制御端末の有無とか種類とかに依存してそうだけど謎。

[75b644350a] Nobuyoshi Nakada 2019-12-05 08:57:05 UTC

拡張ライブラリ psych の extconf.rb で 98006cea4fd517671dae508fade13203bc18301a や a593186a02714cb92ae2748c2b7c46a6c50b0977 で Windows 版で同梱版の libyaml とリンクする時の対応を追加しましたが nmake のための VPATH の記法はnmake を使う時のみ行なうようにしています。

[4c88107c54] Kazuhiro NISHIYAMA 2019-12-05 09:14:31 UTC

did_you_mean の gemspec ファイルで did_you_mean/version.rb の require で重複した定数代入の警告を抑制するため require_relative を使うようにして、ruby 本体の同梱版と gem 版のパスの差異を吸収するため LoadError 発生時の fallback を追加しています。しかし require_relative でも重複 load のチェックはフルパス(realpath?)ですると思うから定数再代入警告の抑制に効くのかな?

[c3abbc1b2f] Nobuyoshi Nakada 2019-12-05 07:18:22 UTC

0d7d8b2989e1738dd902d354cc41186899e6b71e の拡張ライブラリ openssl での -Werror=deprecated-declarations オプション追加の削除を revert して、ただし create_makefile の直前に $warnflags を元に戻すようにしています。うーんこれはつまりヘッダやライブラリ関数の利用可能かのチェックの時はエラーにするけど、実際のビルド時にはオプションをつけないようにするってことかな。