ruby-trunk-changes r60746 - r60755

今日は String#crypt のメモリリーク修正と NODE の位置情報を開始位置と終了位置の範囲で持つようにする変更などがありました。

k0kubun: r60746 2017-11-13 00:25:56 +0900

.gitignore に MinGW でのテストで生成される /ext/-test-/win32/dln/dlntest.dll を追加しています。

svn: r60747 2017-11-13 00:25:57 +0900

version.h の日付更新。

rhe: r60748 2017-11-13 00:55:04 +0900

String#crypt のメモリリークの修正。 String#crypt のメモリリークって以前もあったような……と調べてみたら r58876 でも修正として #define LARGE_CRYPT_DATA の追加をしてましたが、その元になってた r58866 を revert して ALLOCV() を使うようにしています。 r58866 の時の自分のコメントに ALLOCV() とかサイズによって自動でスタックかヒープか選べるのありませんでしたっけ、って書いてるけど、これ結局なんでこうなってたんでしたっけ?

rhe: r60749 2017-11-13 02:10:29 +0900

r60748 の追加修正。 String#crypt の ALLOCV_END() のメモリ解放処理を #ifdef HAVE_CRYPT_R で括って crypt_r() がない環境でのビルドエラー修正をしています。

yui-knk: r60750 2017-11-13 09:14:33 +0900

NODE のメンバー rb_code_location_t nd_first_loc を rb_code_range_t nd_loc に変更して、範囲(開始ー終了)で保持するようにしています。 r60655 で rb_code_range_t を定義してたけど、一度そういえば revert されてたので再度定義が追加されています。

yui-knk: r60751 2017-11-13 10:24:15 +0900

parse.y の node_newnode() で nd_set_last_lineno() と nd_set_last_column() の呼び出しを追加しています。 r60750 の追加漏れ?

yui-knk: r60752 2017-11-13 10:24:16 +0900

コマンドラインオプション --dump=parsetree などで AST をダンプする時にも各ノードに対応するトークンを範囲で表示するように拡張しています。

nobu: r60753 2017-11-13 10:58:18 +0900

test/lib/envutil.rb の invoke_ruby で子プロセスに渡す環境変数の指定に RUBYLIB があった時に、自分自身も RUBYLIB の指定があったら、それに追加する形で渡すように修正しています。

nobu: r60754 2017-11-13 14:46:30 +0900

正規表現の abcent operator という (?~ ...) の記法のグループ演算子についてのテストを追加しています。2.4 以降で Onigmo 6.1.1 のマージによって追加された記法です。

nobu: r60755 2017-11-13 14:50:54 +0900

正規表現の absent operator を使った時にマッチ範囲の設定が壊れることがあった不具合を修正しています。 [ruby-core:83743] [Bug #14101]