だめだ……。こんなんマージしたうえに解説書いてたら締切に間にあわねえ。今回はあきらめよう……。あ、でもそうすると出版した瞬間に GC の章が通用しなくなるってことか? それもなんか腹立つな。
あー、どうしよどうしよ。オロオロオロ。
キレた。もうあとのことなんて知りません。徹夜で速攻マージ GO!
五時間経過。なんとか miniruby は動いてるようだ。
ぐぁ、だめだ、落ちた。嫌だなあ、ファイル名が化けてる。この落ちかたはどう見ても GC で失敗してるよー。(続く)
あ、パッチどもです。あてときます。
ReFeと言えば、Marshal使わないバージョンを書きたいなーとずっと思ってるんですよね。その方法はと言うと、まずRDをリファレンス部分だけにしておきます。各エントリにはクラスも含めた完全名を付けておきます。次に、コマンドライン引数を正規表現に変換します。たとえば s g! に対しては \As.*?#g.*?! (opt=i) を生成します。検索します。おしまい。きっととても速いと思うんですよー。
括弧を省略したメソッド呼び出しがネストすると警告が出るようになったようだ。手元のパッケージをチェックしてみると、ポロポロと出てくる。が、あまりたくさんはない。これだけのためにリリースしなおすほどでもないな。
そういや最近の1.7.2ではrefeでwarningが出ます。
diff -ru2p refe-0.5.0/bin/refe refe-0.5.0+/bin/refe
--- refe-0.5.0/bin/refe Fri Mar 22 20:21:23 2002
+++ refe-0.5.0+/bin/refe Fri Jul 5 05:39:14 2002
@@ -261,5 +261,5 @@ end
class OutputFunctionFromMethod < OutputMethod
def describe_method( name )
- print @table.function_definition @table.method_to_function(name)
+ print @table.function_definition(@table.method_to_function(name))
end
end
調査する時間がないのと,すでにGCを忘れかかっているので
正確なことは言えませんが,実行時間に占めるGC処理時間の割合が
少ないので,GCを速くしても全体に与える効果は少ないと思います.