ruby-trunk-changes r59184 - r59198

今日はトップレベルの ensure 節での return での異常終了の修正(続き)や、parse error のメッセージ修正、VM 内部の構造体のレイアウト変更などがありました。

nobu: r59184 2017-06-27 23:09:08 +0900

r59183 の続きでトップレベルの ensure 節での return での異常終了を修正しています。 [ruby-core:81777] [Bug #13682]

nobu: r59185 2017-06-28 02:10:56 +0900

tool/downloader.rb にオプション --cache-dir を追加して…あれ、この設定は options には元からあってオプションで指定できるようにしただけみたいですね。そして options[:cache_save] という設定を環境変数 CACHE_SAVE で制御できるようにして(でもこれはコマンドラインオプションとしては存在しない)、これで gem ファイルのキャッシュを抑制できるようにしています。そして tool/make-snapshot からの実行でこれを使ってキャッシュを作らないようにしています。 [ruby-core:81780] [Bug #13684]

svn: r59186 2017-06-28 02:10:57 +0900

version.h の日付更新。

nobu: r59187 2017-06-28 10:49:44 +0900

parse.y で yylex(), parser_parse_string() と parser_parse_string() の戻り値の型を int から enum yytokentype に変更しています。

nobu: r59188 2017-06-28 11:02:38 +0900

テストのような不正なスクリプトを parse させると異常終了する不具合を修正しています。テストみてもらうとわかりますが、こんな意外に簡単なので異常終了するんですね…。 [ruby-core:81790] [Bug #13687]

duerst: r59189 2017-06-28 11:28:00 +0900

String#encode に不正な文字というかバイト列の変換時のテストケースを2つ追加しています。

ko1: r59190 2017-06-28 11:50:56 +0900

thread local storage を格納している rb_thread_t::local_storage を構造体 rb_execution_context_t の下に移動しています。

nobu: r59191 2017-06-28 13:08:51 +0900

数字のあとに不正な文字列が続くような不正なスクリプトで不正な部分として末尾でなくて後続の文字列部分全体をマークするように修正しています。

ko1: r59192 2017-06-28 13:49:30 +0900

VALUE 型から rb_thread_t のポインタを返す rb_thread_ptr() という関数を導入して各所で GetThreadPtr() にかわって使うようにしています。また current thread 以外の thread を指している場合にみわけやすいように変数名を th -> target_th に何箇所か変更しています。これはバックポート時に衝突しやすそうだから憶えておかないとなぁ。

ko1: r59193 2017-06-28 13:57:02 +0900

r59192 で導入した rb_thread_ptr() でオブジェクトの型のチェックに rb_check_typeddata() を利用するようにしています。

nobu: r59194 2017-06-28 14:38:27 +0900

非常に長い識別子で SyntaxError になった時に "..." で省略表示が出なくなる場合があったようなのを修正しています。

ko1: r59195 2017-06-28 15:09:06 +0900

rb_thread_t から root_lep, root_svar, ensure_list を構造体 rb_execution_context_t に移動しています。

nobu: r59196 2017-06-28 15:13:00 +0900

閉じ忘れている正規表現リテラルでの SyntaxError のメッセージで余計なメッセージが出ていたので、終端を nd_term ではなくて nd_func のビットフラグで表現するようにして(この変更は必須なのかな?)、種別に応じて tSTRING_END か tREXGEXP_END が正しく返されるようにしています。 [ruby-core:80318] [Bug #13363]

hsbt: r59197 2017-06-28 19:18:03 +0900

default gem が増えてきたので tool/sync_default_gems.rb というツールを追加して GitHub から同期させるようにしています。

svn: r59198 2017-06-28 19:18:04 +0900

r59197 で追加した tool/sync_default_gems.rb の svn property 設定。