ruby-trunk-changes 2019-10-23

今日は C++ の拡張ライブラリでのメソッドを定義する関数の引数の厳密なチェックをリリース版では無効にするようにする変更などがありました。
また昨日 2.7.0-preview2 がリリースされました。あと2ヶ月ほどで 2.7.0 のリリースですね。
https://www.ruby-lang.org/ja/news/2019/10/22/ruby-2-7-0-preview2-released/

[501b517dfb] Yusuke Endoh 2019-10-22 11:06:07 UTC

NEWS ファイルの CGI.escapeHTML の高速化についてのエントリに pull request の URL を追記しています。

[ed3333f873] Nobuyoshi Nakada 2019-10-22 12:05:52 UTC

tool/lib/vcs.rb の ChangeLog 生成のためのコミット範囲の取得のための from が nil だった場合の考慮が漏れてたので追加しています。

[aec0a293a4] "NARUSE, Yui" 2019-10-22 12:12:50 UTC

bin/format-release というスクリプトを追加して tool/make-snapshot の出力を元に www.ruby-lang.org のパッケージのチェックサムやサイズなどの情報の YAML ファイルを変更するパッチを生成するようにしています。

[04075305d3] Nobuyoshi Nakada 2019-10-22 12:33:11 UTC

.gitignore に /ext/-test-/cxxanyargs/failure.failed を追加しています。

[d736511e42] "NARUSE, Yui" 2019-10-22 12:37:49 UTC

aec0a293a4f9d2f8f8d085f57023ec3ba4bf6525 で追加した bin/format-release は削除して tool/format-release に統合するようにしています。あれ、format-release でも既に diffy 使ってたか。

[99ca5705a2] "NARUSE, Yui" 2019-10-22 13:15:52 UTC

tool/release.sh を AWS S3 へのアップロードするスクリプトとして書き直しています。あー、release.sh ってリポジトリにあるスクリプトが元だったのか…。すっかり忘れてました。

[8390057d1e] Nobuyoshi Nakada 2019-10-22 13:49:41 UTC

c8542ab484efb6ee0009cd081789d9a68f482483 で追加した Array#intersection のベンチマークを追加しています。 [ruby-core:94855] [Feature #16155]

[51bab75f49] Nobuyoshi Nakada 2019-10-22 15:19:25 UTC

Kernel#ruby2_keywords は ruby2_keywords.gem という gem でも提供されるようになったのでその互換性? のために rb_provide() で ruby2_keywords.rb をロード済みにするようにしています。

[1a80ee4573] git 2019-10-22 15:42:44 UTC

version.h の日付更新

[801a11d0ab] Nobuyoshi Nakada 2019-10-22 16:05:14 UTC

bootstraptest/ 配下のテストで CPDEBUG を真にしてビルドした時に微妙にメッセージなどが変わってこけるテストの修正。

[afab8122c3] Nobuyoshi Nakada 2019-10-22 17:04:36 UTC

append_compile_error() にて CPDEBUG が真の時に Qnil や Qfalse になる可能性があった? みたいでその場合にかわりに rb_eSyntaxError を使うようにする fallback の分岐を追加しています。

[601f1fb456] Nobuyoshi Nakada 2019-10-22 17:05:28 UTC

test/unit の assert_syntax_error や assert_valid_syntax という assertion から使う syntax_check というメソッドで SyntaxError 以外の例外は捕捉して無視するようにしています。これも CPDEBUG モードの対策かな。

[d5d5844744] Nobuyoshi Nakada 2019-10-22 17:30:14 UTC

結果が使われないところに書かれてるリテラルについて警告を出すのをチェックするテストで専用の assert_warning という assertion を利用するようにリファクタリングしています。

[46f175ed5c] Nobuyoshi Nakada 2019-10-22 17:53:36 UTC

vm_opts.h の OPT_SUPPORT_JOKE というマクロの定義は未定義の時のみするようにして、ファイルを書きかえなくてもコンパイル時に -DOPT_SUPPORT_JOKE=1 を指定すれば joke 命令が有効になるようにしています。また .travis.yml で OPT_SUPPORT_JOKE を有効にした時のビルドを vm_opts.h を sed で書きかえてビルドしてたのをコンパイルオプションの指定だけに切り替えています。また 97a03a035695e948ce6b3a0f91bfd0302fbc30de で CPDEBUG を有効にしたビルドも追加した時に DEFS でコンパイルオプション追加させてたのを cppflags 変数による指定に変更しています。

[959ddf44b3] Kazuhiro NISHIYAMA 2019-10-23 03:00:44 UTC

NEWS ファイルと doc/ChangeLog-1.8.0 の typo 修正。

[5d7aef20dd] Kazuhiro NISHIYAMA 2019-10-23 04:18:48 UTC

NEWS ファイルの typo や文法の修正。

[cbec533677] Kazuhiro NISHIYAMA 2019-10-23 04:23:43 UTC

NEWS ファイルの削除された bundled gems の名前に gem 名も併記するようにしています。

[67f010af9b] Nobuyoshi Nakada 2019-10-23 06:09:44 UTC

common.mk の enc/unicode/ 配下に生成する name2ctype.h の依存関係に $(UNICODE_EMOJI_FILES) も追加しています。Unicode からダウンロードする絵文字関係のデータファイルですね。

[8bb716ab91] aycabta 2019-10-22 11:42:03 UTC

lib/reline/windows.rb のコメントのインデント修正のみ。

[1d91feaf13] Nobuyoshi Nakada 2019-10-23 11:13:34 UTC

include/ruby/ruby.h の RUBY_METHOD_FUNC マクロ定義に ANYARGS を使わないようにするのを RUBY_DEVEL が真の時だけに限定しています。これはリリース版じゃない時だったかな。つまり開発版でのみメソッド定義関数の引数の厳密なチェックをするようにしています。 [ruby-core:95480] [Bug #16271]