K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>たぶんですけど、直すのに影響があんまり出ないやり方があります。crowbarスタックを >>一つの配列ではなく、複数の配列をリンクするによりスタックの拡張ができます。 >>スタック拡張する場合には新たな配列をmalloc()して、それをもとにあったスタックと >>リンクして、それでrealloc()を回避できますますね。これが「chunked stack」とも >>言います。 > >全体を確認していませんが、ざっと見てみると、現状のcrowbarの実装だと >スタック操作がpush_value()とかpeek_stack()にカプセル化されているので、push_value()のところで新たにmalloc()してリンクリスト等で管理し、 >peek_stack()にて、もし配列の下端より下の領域を参照されたらひとつ前の >領域から算出して返す、ということはできそうですね…… > >実のところ同じ現象はDiksamにもあるはずで、こちらはVMの中で直接参照して >います。ただし、Diksamは関数呼び出し時にスタックの拡張があるかどうかを >判定していますし、ひとつの関数の実行中だけ連続したスタック領域が見えれば >十分でしょうから、なんとかなるように思います。 >(すみません、ちょっとすぐには直せませんが) > >ご意見ありがとうございました。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!