Gauche > Archives > 2017/10/17

2017/10/17 01:16:36 UTCshiro
#
ephemeronサポートどうしようかな。finalizerをトポロジカルソートで呼び出してるなら、両方weak pointerにしといて、datumのfinalizerが呼び出された時にkeyが生きてるかどうか調べ、生きてたらdatumをressurectする、という手が使えそうな気がするんだが
#
今のGaucheはfinalizerをno orderで呼び出してるから、それだとdatumのfinalizerが呼ばれた時点でdatumが指してる先のオブジェクトのfinalizerが既に走っちゃってる可能性がある
#
finalizeされるオブジェクトがリストに積まれてから、finalizerを走らせるまでの間にGCからコールバックがあるので、そのタイミングでfinalize予定オブジェクトのリストを調べてdatumがあったら生き返らせることはできるかもしれない。けどdatumから指してる先のオブジェクトまで全部生き返らせるにはもう一回markしてみないとわからないので、生き返るdatumがひとつでもあるならfinalize予定オブジェクトを全部生き返らせることになる。
2017/10/17 08:48:36 UTCjames
#
This is probably a known issue but I've just tried to build git head against 0.9.6_pre2 and it breaks in gen-uncode.scm: "ERROR: unbound variable: %hash-table-iter", is there an easy fix?
2017/10/17 18:29:43 UTCshiro
#
Install 0.9.5 and build HEAD. It's a bit cumbersome, but we only guarantee that HEAD builds with the latest release (though most of the times you can build HEAD by prereleases).
2017/10/17 19:37:34 UTCjames
#
no problems at all, thanks!