xtalのGCは参照カウンタとマークアンドスイープの併用です。
最初の方の実装では、Rubyのように、Cスタックをスキャンする保守的GCな頃もありました。
しかし、ゲーム機などで使われることを想定して、移植性の低い実装は避けることにしました。
そのため移植性の高い参照カウンタを用いることにしました。
C++から使われることを想定しているため、スマートポインタを用意してあげれば、参照カウントの操作し忘れは絶対におきません。
ただ、スマートポインタのコピーで、コードサイズの増加と、速度の低下が結構大きいのが悩みです。