std::vector/map の使用をやめる

継続の実装に使用した libcontC++ のデストラクタが複数回呼ばれてしまう可能性がある。(正確には 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 をやめれば安心。