https://github.com/supersoftcafe/yafl/tree/indev/yaflr
After a lot of experimentation I am satisfied with this. Fibers to spread work over a fixed pool of threads and to cheaply suspend the caller on IO. Language support will make use of the automatically.
Garbage collection is integrated with the fiber library. Each fiber has its own mini pool that is swept and merged into the callers pool as the fiber exits. This is a single threaded model, working in parallel, the best of both worlds.
I am currently working on migrating the compiler to C++. KDevelop is my IDE of choice now. It’s robust and fully featured.