From: sheepman Date: 2001-11-27T16:58:54+09:00 Subject: [ruby-dev:15260] Re: gc.c (gc_mark_rest): declare work area as static On Mon, 26 Nov 2001 16:35:56 +0900 "K.Kosako" wrote: > 以下のスクリプトなんですが、 > ネストの深さとデータの参照の深さの調整に苦労したので、 > 普通のスクリプトを書いている人には全く関係のない"改良"としか > 思えなかったので。 > (ただ、私のようなプログラム鑑賞派にとっては、 > gc_mark_all()とgc_mark_rest()の処理の対称性が向上するので嬉しい。) > > パッチのほうは、sheepmanさんの修正[ruby-dev:15242]を行ったものに対する > パッチです。 > > --- gc.c.orig Mon Nov 26 16:10:15 2001 > +++ gc.c Mon Nov 26 16:14:42 2001 > @@ -427,26 +427,23 @@ > > #define MARK_STACK_EMPTY (mark_stack_ptr == mark_stack) > > -static int mark_all; snip > いいですね。int mark_all を使わなくて済むのもうれしい。 それと、動作確認用の Ruby スクリプトを書くのに苦労されている みたいですが、gc.c の MARK_STACK_MAX を小さい数、1とかに設定すると、 mark_stack[MARK_STACK_MAX] がいっぱいになった時の動作と性能を 確認できますよ。 -- sheepman / TAMURA Takashi sheepman@tcn.zaq.ne.jp http://www.tcn.zaq.ne.jp/sheepman/ Key fingerprint = 4E13 FE38 CD73 48D3 38AE 00EE 9E28 F98B D569 848E