ruby-trunk-changes r66134 - r66167

今日は RubyVM::AbstractSyntaxTree::Node の pretty print 対応や Debian 最新版での OpenSSL 1.1.1a を使った環境の対応などがありました。

nobu: r66134 2018-12-02 21:50:19 +0900

標準添付ライブラリ optparse でオプションの説明の引数を複数与えると複数行の help の説明になることをドキュメントに追記しています。 [ruby-list:50718]

duerst: r66135 2018-12-03 06:41:50 +0900

regparse.c の node_extended_grapheme_cluster() で各ブロックで Node* の配列を作ってリストを作る create_sequence_node() などのヘルパー関数に渡してましたが、node_extended_grapheme_cluster() の全体でひとつの node_array っていう変数を定義してこれを使いまわすようにして、解放漏れを修正しているようです。 [Bug #15343]

svn: r66136 2018-12-03 06:41:51 +0900

version.h の日付更新。

ko1: r66137 2018-12-03 07:01:29 +0900

rr66135 で node_array 変数を初期化するのが変数の宣言の前になってしまっていたので後に移動しています。

duerst: r66138 2018-12-03 07:05:36 +0900

r66135 で追加した node_extended_grapheme_cluster() の変数 seq/alts の宣言をローカル変数宣言の最後に移動しています。

duerst: r66139 2018-12-03 08:28:42 +0900

r66135 の変数 node_array の初期化のループで配列サイズが magic number になってたのをマクロを使うようにするのと、不要な NULL 初期化が含まれていたのを修正しています。

nobu: r66140 2018-12-03 09:24:38 +0900

標準添付ライブラリ pp に RubyVM::AbstractSyntaxTree::Node の整形表示の対応を追加しています。

nobu: r66141 2018-12-03 09:57:06 +0900

r66140 で追加したテストで assertion にエラー時のメッセージを追加しています。

nobu: r66142 2018-12-03 10:06:34 +0900

r66140 の RubyVM::AbstractSyntaxTree::Node の pretty print 対応とも関連してだと思いますが type メソッドで返す Symbol から NODE_ という prefix を省くようにしています。

mame: r66143 2018-12-03 10:39:45 +0900

標準添付ライブラリ pp に Range の終端が nil のいわゆる endless range の表示で末尾を省略する表記にするようにしています。

mame: r66144 2018-12-03 10:59:29 +0900

sample/ ディレクトリに追加されていた TRICK 2013 のサンプルコードに含まれていた mp4 ファイルを削除しています。 tar パッケージにも含まれるので容量削減のためとのこと。

okkez: r66145 2018-12-03 11:34:23 +0900

標準添付ライブラリ time の Time.strptime の rdoc 用コメントの %N の項目から %3N/%6N/%9N といった記法についての記述を削除しています。サポートされていないためとのこと。 [ruby-core:89899] [Bug #15322]

kazu: r66146 2018-12-03 11:53:57 +0900

r66145 に続いて Time.strptime の rdoc 用コメントの %N の項目からデフォルトの桁数の項目を消した時に消し漏れてた (nanosecond) という表記も削除しています。 [ruby-core:89899] [Bug #15322]

nobu: r66147 2018-12-03 12:15:42 +0900

mspec の fileutils の wrapper みたいなヘルパーメソッドの cp で IO.copy_stream を利用するようにリファクタリングしています。

ko1: r66148 2018-12-03 12:51:55 +0900

配列のバッファへ RARRAY_PTR_USE() マクロでアクセスしていたところで参照だけで不要だったところに RARRAY_AREF() を使ってアクセスするようにしています。

nobu: r66149 2018-12-03 13:34:27 +0900

r62020 でメソッドのブロック引数に Symbol を & つきで渡して暗黙の Symbol#to_proc で変換される時のメソッド呼び出しにも Refinements が効くようにしていましたが、Ruby で定義されたメソッドの Refinements や & ではなくて明示的に Symbol#to_proc で Proc 化したものをブロックとして渡した時に効かない(後者はどこでメソッドを呼んでることになるんだろう…という疑問(つまりこれは lexical なのか?)はなくはないですが)という不具合を修正しています。 [ruby-dev:50638] [Bug #15114]

nobu: r66150 2018-12-03 13:44:33 +0900

r66149 の Refinements の変更を revert しています。

nobu: r66151 2018-12-03 13:44:34 +0900

r66149 のブロック引数に Symbol から変換した Proc を渡す時の Refinements の修正のリトライ。しかし内容はまったく同じっぽい…と思ったらコミットログにパッチ提供者を追記するためですね。 [ruby-dev:50638] [Bug #15114]

normal: r66152 2018-12-03 13:51:08 +0900

標準添付ライブラリ webrickTLS自己署名証明書のデフォルトの署名を SHA256 で作るようにしています。 Debian の最新版で鍵が短すぎるということで OpenSSL 1.1.1a でエラーになったとのことで長くしています。

normal: r66153 2018-12-03 13:51:13 +0900

r66152 に続いて drb でも Debian の最新版でのテストのため OpenSSL::PKey::RSA の鍵長を長くするようにしています。

shyouhei: r66154 2018-12-03 14:46:46 +0900

String#crypt の rdoc 用コメントに legacy で使うべきでないと理由を列挙して書いています。 [ruby-core:87959] [Feature #14915]

nobu: r66155 2018-12-03 17:51:29 +0900

r66151 のブロック引数に Symbol から作った Proc を渡した時の Refinements 対応の修正ですが、また revert されています。 VM_CHECK_MODE を 2以上にした時に VM_ASSERT にひっかかってたみたいです。

normal: r66156 2018-12-03 17:57:15 +0900

process.c の rb_f_system() で構造体 struct rb_execarg を wrap したオブジェクトからポインタを得るのに TypedData_Get_Struct() を使ってたのを専用の rb_execarg_get() 関数を使うようにリファクタリングしています。

normal: r66157 2018-12-03 18:15:16 +0900

process.c の rb_execarg_init() という関数は以前 io.c から使われてたみたいですがもう未使用になっているので static 関数に戻しています。

mrkn: r66158 2018-12-03 18:21:39 +0900

NEWS ファイルに r66124 あたりでの bigdecimal の更新について追記しています。

normal: r66159 2018-12-03 18:34:49 +0900

rubyspec にある IO オブジェクトに無理矢理 IO#initialize を呼んで fd をセットするテスト(なんでこんなことしてるんだろ…)が MJIT が有効だと通らないという問題は MJIT が背後でファイル開いてると fd の番号は特定できないのでしょうがないとして実行しないようにしています。 IO#reopen のテストも同様。

naruse: r66160 2018-12-03 18:55:05 +0900

rubyspec のホームディレクトリを得るために shell による展開を使っているところで Solaris 10 だと組込みコマンドの echo で展開できないそうで /bin/echo を使うようにしています。組み込みコマンドの時に引数の展開がされないとかあるんだ。

mame: r66161 2018-12-03 19:35:13 +0900

sample/ に収録されている TRICK 2018 の README.md ファイルの typo 修正。

k0kubun: r66162 2018-12-03 21:00:27 +0900

mjit_worker.c と mjit.c の CC_PATH というマクロ定義を削除して直接 CC_COMMON_ARGS[0] を参照するようにしています。

hsbt: r66163 2018-12-03 21:01:26 +0900

rubygems の Gem::RemoteFetcher で OpenSSL 1.1.1 を使っている時に fetch_https で OpenSSL::SSL::SSLError が発生することがあるので捕捉して FetchError などの例外を投げ直しているところの rescue 節の条件に追加いています。

k0kubun: r66164 2018-12-03 21:32:01 +0900

MJIT の JIT 時のコンパイラオプションには -save-temps を渡さないよう削るようにしています。 CI でビルド時のオプションに -save-temps=obj を渡していることがあって、それが MJIT 時にも渡ると -pipe フラグと競合してエラーになるみたいです。

ko1: r66165 2018-12-03 21:36:39 +0900

RARRAY_PTR_USE_TRANSIENT() という Transient Heap を使っている Array オブジェクトでもそのままポインタを返すマクロを追加して、従来の RARRAY_PTR_USE() の場合はまず heap にコピーしてから参照させるようにしています。

svn: r66166 2018-12-03 21:36:47 +0900

r66165 のインデントのタブを空白に展開。

k0kubun: r66167 2018-12-03 21:39:11 +0900

拡張ライブラリ bigdecimal の未使用の関数 Zero() とグローバル変数 gZero_ABCED9B1_CE73__00400511F31D を削除しています。 r66124 の更新の時に未使用になってたみたいです。