ruby-trunk-changes 2019-07-02

今日は File.realpath の実装に一部プラットフォームで realpath(3) を利用するようにする変更や、テスト関連のライブラリなどのディレクトリ構成の変更などがありました。

[90c51ca391] Nobuyoshi Nakada 2019-07-01 11:45:53 UTC

標準添付ライブラリ reline の Reline::LineEditor#input_key で auto indent 用の Proc が負のインデントレベルを返した時に無視するようにしています。

[76851381cb] aycabta 2019-07-01 12:14:50 UTC

irb の auto indent 機能で負のインデントレベルになった時にプロンプトに - を表示するようにしています。

[f28450c118] Nobuyoshi Nakada 2019-07-01 12:31:18 UTC

template/Makefile.in で MAINSRC 変数を定義するのに MAINOBJ の拡張子を .c に変えたものという定義のしかたをしていますが、変数参照での置換を拡張子の "." まで含めて置換するようにしています。うーん、.o ではなく .so などを .sc としてしまわないように、ってことかなぁ。

[acee938484] Nobuyoshi Nakada 2019-07-01 12:32:02 UTC

babaad1065b1e45614d03e30f82c9007cc115b7c で configure 時の指定が効くようにした ASMEXT ですが tool/prereq.status で S に置換するようにしています。

[f2769ae2c9] Nobuyoshi Nakada 2019-07-01 14:04:26 UTC

デフォルトブランチの変更に追随して version.h のデフォルトの RUBY_BRANCH_NAME も "master" に変更しています。

[7ff2bfed92] Nobuyoshi Nakada 2019-07-01 14:16:47 UTC

tool/make-snapshot でもブランチ名として master を受け付けるようにしています。

[776759e300] aycabta 2019-07-01 18:34:08 UTC

irb の lexer でひとつ前が EXPR_FNAME (識別子っぽいもの)の時に on_kw のトークンがきたら直前のトークンをメソッド名として扱うように処理しています。 auto indent の修正のためっぽいですね。

[005dadf3c1] git 2019-07-01 18:35:08 UTC

version.h の日付更新

[81fe82be4e] Jeremy Evans 2019-07-01 18:44:12 UTC

i386-openbsd のプラットフォームで Fiber を native coroutine 実装を利用するようにしています。

[11c311e36f] Jeremy Evans 2019-04-28 03:18:55 UTC

File.realpath や File.realdirpath のために独自に実装していた rb_check_realpath_internal() を realpath(3) を使った実装に変更して、従来の実装は rb_check_realpath_emulate() と改名し configure で利用可能じゃなかった時または Windows 環境の時は従来実装に fallback するようにしています。ベンチマークも追加されているので主にパフォーマンスのための変更みたいですね。

[93328b5237] git 2019-07-01 19:14:17 UTC

11c311e36fa6f27a9144b0aefe16bdffea651251 のインデントを空白に展開。

[f53d7e4bfd] Jeremy Evans 2019-06-14 23:53:42 UTC

ENV.freeze メソッドを呼んだら例外を発生させるように専用のメソッド定義を追加しています。これバグかなぁ、という気がしますが(少なくとも積極的に変更すべきってほどではない気がする)、まあ別に悪くもないか。 [ruby-core:93104] [Bug #15920]

[142617c8e1] Jeremy Evans 2019-07-01 22:33:13 UTC

11c311e36fa6f27a9144b0aefe16bdffea651251 で導入した realpath(3) の利用ですが Solaris でも利用せず従来の実装に fallback させるようにしています。 CI で Solaris 10 だとエラーになったらしい。

[c3c0e3f5c9] Hiroshi SHIBATA 2019-06-29 10:43:47 UTC

test/lib および test/colors 配下のファイルを tool/lib、tool/colors に移動しています。 test 以外からの利用もあったので。

[c68781e918] Hiroshi SHIBATA 2019-07-01 12:05:55 UTC

そして ruby core のテストのためのライブラリ(testunit, minitest) が test/ 配下に置いてたのを tool/test/ 配下に移動しています。おー、test 用のも tool の下に置くようにしたのか。

[897b1e0562] Hiroshi SHIBATA 2019-07-01 23:00:29 UTC

c3c0e3f5c9444c197779cb242de46dfffda79dec の移動に追随させて test/runner.rb での test-coverage.rb の require するパスを修正しています。

[f47254d216] Nobuyoshi Nakada 2019-07-02 00:19:38 UTC

同じく c3c0e3f5c9444c197779cb242de46dfffda79dec の移動に追随して basictest/test.rb および bootstraptest/runner.rb で参照してたカラースキーマのファイルパスを修正しています。

[4adfd5227f] Hiroshi SHIBATA 2019-07-02 00:20:18 UTC

make test-almost というターゲットで test ディレクトリの下で testunit や minitest を実行除外するオプションを削っています。なるほど、このへんが狙いのようですね。

[5aed62454c] Nobuyoshi Nakada 2019-07-02 00:26:11 UTC

tool/test/minitest/test_minitest_unit.rb からの別のファイルの require をロードパスに依存しないよう require_relative を利用するように書きかえています。

[b7fdeedbfd] Nobuyoshi Nakada 2019-07-02 00:31:32 UTC

f53d7e4bfd604be6f8131c5460c29f4af16da117 で追加した ENV.freeze のテストメソッド名が既にあったのと被ってたので変更しています。

[73923bf583] Kazuhiro NISHIYAMA 2019-07-02 00:26:18 UTC

doc/contributing.rdoc でビルドのための情報として OpenSSL と併記して LibreSSL について追記しています。

[934a3a926c] Kazuhiro NISHIYAMA 2019-07-02 00:34:08 UTC

同じく doc/contributing.rdoc でデフォルトブランチ名の変更に追随して trunk -> master に変更。

[83fed5a4ed] Nobuyoshi Nakada 2019-07-02 00:37:10 UTC

5aed62454cec6556d476347f13947f83f6f7de4b と同様に tool/test/minitest 配下のファイルでの require を require_relative を使って書きかえています。

[832b509472] Nobuyoshi Nakada 2019-07-02 00:43:33 UTC

test のテストスクリプトで with_different_ofs.rb の明示的な require のためのパスが変化したのに追随しています。

[580b7600c7] Nobuyoshi Nakada 2019-07-02 00:44:37 UTC

make commit でコミット後のソースツリー更新のために defs/gmake.mk および template/Makefile.in の変数置換して Makefile 生成するところで @xxx@ で囲まれたところを適当に削除してたのを tool/prereq.status を sed に与えてちゃんと置換するように? しています。また DTRACE_EXT の変数の置換ルールを tool/prereq.status に追加しています。

[6e7e0bf257] Nobuyoshi Nakada 2019-07-02 00:45:29 UTC

4adfd5227f4f62c4e571d31e8bb07c40402f73b8 で make test-almost の除外オプションが不要になった結果 test-all と同じになったそうで alias にしています。 test-almost は make check から参照させてるときに test 用ライブラリ自身のテストが重複しないように存在してたのですね。

[c6a131da64] Nobuyoshi Nakada 2019-07-02 00:49:57 UTC

で test-almost というターゲットを defs/gmake.mk の TEST_TARGETS 変数でテスト内容の重複を解決する処理からはずしているんですが、なんかよくわからないなぁと思ったら 4d6c35d33a3f8a2ab29b3aabcf74be0bd9e7bf98 で再修正されてました。

[7f3bc3529b] Hiroshi SHIBATA 2019-07-02 00:48:17 UTC

c3c0e3f5c9444c197779cb242de46dfffda79dec で移動した tool/lib/jit_support.rb に追随して require のパスを修正しています。

[0b858425e1] Takashi Kokubun 2019-07-02 01:40:17 UTC

tool/make-snapshot で git のリポジトリとして GitHub のほうを参照するように変更しています。 [ruby-core:93450] [Bug #15969]

[eb043c8888] Nobuyoshi Nakada 2019-07-02 02:46:58 UTC

common.mk で変数展開のために ${} を使っていたところを $() に変更しています。 nmake では ${} が使えないとのこと。昔もそういうコミットみた気がするな。nmake め…。

[92dcee393a] Nobuyoshi Nakada 2019-07-02 05:10:50 UTC

racc のテストで一時ディレクトリなどのファイルパスの解決をクラス定義時に作成してたりしたのを setup メソッド内でするようにしています。 てことはテストメソッド毎に一時ディレクトリができるようになるので teardown 時に @TEMP_DIR まるごと消すようにしています。

[6ffef8d459] Nobuyoshi Nakada 2019-07-02 05:41:34 UTC

rubygems のテストで一時的に生成する証明書ファイルのクリーンアップ処理を追加しています。

[4d6c35d33a] Nobuyoshi Nakada 2019-07-02 06:22:22 UTC

c6a131da64a949c3148565f0bfd7777f5a4a309c で defs/gmake.mk の TEST_TARGETS で test-almost の展開を単にそのまま test-all の置換にしてしまってておかしなことになっていたので、TEST_TARGETS の test-almost を test-all に置換するように再修正しています。