ruby-trunk-changes r67332 - r67337

今日は昨日に続いてメソッド呼び出しの引数のパターンに応じて positional な引数とキーワード引数のみの時の最適化などがありました。

shirosaki: r67332 2019-03-21 22:32:03 +0900

なにが起きてたのかちょっとよくわかってないのですが Windows で Dir.glob の引数に {} ではじまるパターンが指定された時に結果からドライブレターの部分が消えてしまう? という不具合があったのを修正しています。 [ruby-core:91728] [Bug #15649]

ko1: r67333 2019-03-22 09:21:41 +0900

昨日の r67315 と同様に、メソッド呼び出しの引数準備でメソッド定義の仮引数が lead と keyword 引数だけだった時に専用の vm_call_iseq_setup_kwparm_kwarg() および vm_call_iseq_setup_kwparm_nokwarg() という関数を用意して setup_parameters_complex() の呼び出しを避けるという最適化です。2つの関数は実際に呼び出し時にキーワード引数が渡されたか省略されたかという違いです。

svn: r67334 2019-03-22 09:21:43 +0900

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

svn: r67335 2019-03-22 09:21:44 +0900

version.h の日付更新。

ko1: r67336 2019-03-22 16:57:26 +0900

debug counters にメソッド呼び出したのめの関数群(vm_call_xxx() めっちゃいっぱいある)ごとのカウンターを追加しています。どれが実際のアプリで頻繁に使われるのかというのを調べて最適化の優先度をつけようってことだと思われます。

nobu: r67337 2019-03-22 20:04:59 +0900

組み込みクラス全体的に rdoc 用コメントのモジュール名/クラス名の明示的なマークアップを消して cross reference を有効にしたり引数名はアンダースコアで囲むなどマークアップまわりの修正をしています。