std::vector/map の使用をやめる
継続の実装に使用した libcont は C++ のデストラクタが複数回呼ばれてしまう可能性がある。(正確には auto 変数のデストラクタ)
そのため std::vector/map の使用をやめて自作の Vector/HashMap と入れかえた。
この自作の Vector/HashMap はデストラクタが何度 call されても安全なような作りにしなければならない。
GC前提のコレクションクラスですね。
ちなみにテストが通らず、不可解なバグに悩まされたのだけど hash 値が衝突しているのが原因だった。
key=cadar value=1c key=eval value=1c
ちょw。 eval と cadar が同じ値になっているよ。
Gauche の STRING_HASH を参考に、hash 値の計算をまともにしました。
あとは std::string をやめれば安心。