*はじめに toy-lang にコルーチンを実装するにあたって、BoehmGC と PCL(Portable Coroutine Library) の間で色々不都合があったのでこれに対応を行ったのでその際の方法をメモとして公開します。 現在の開発中の版では問題がわかってこれらのライブラリを組み合わせた際の問題については解決していますが、その中でわかったことやプログラミング上のテクニックについて参考になればと思います。 *BoehmGCの動作について toy-langを実装するにあたっては、できる限り汎用のライブラリを使用して実装することにしています。 toy-langにおいては、GC(ガベージコレクション)はBoehmGCを、コルーチンの実装には PCL を使用しています。 2年ほど前、コルーチンを実装していてどうしてもうまく動かなくて悩んでいました。 まず、GCの動作について非常に簡単ですが説明したいと思います。(Fig.1) [gc_and_coroutine.fig1.jpg]