Milestone Reimplement MiniD 2
New implementation yay.
Probably the biggest thing is that it now has its own GC (extremely minimal allocations on the D heap mostly due to things out of my control). This implies a more verbose, Lua-like stack-based API so that the MiniD GC knows what's referenced and what's not. Preliminary tests have shown the new implementation to be faster than the old one as well, especially in the realm of object allocations, and that's just with a crappy, un-optimized mark-and-sweep collector.
It's kind of interesting how one thing -- "have its own GC" -- has such far-reaching consequences for the rest of the library. Virtually every aspect of the old implementation has to be re-designed, or at the least, somewhat mechanically translated. And time and time again, I come to understand the reasoning and the sheer genius behind the implementation of Lua ;)
