I've been debugging my little heart out today, and I feel like i am making some progress. I've traced some problems down to strange bugs in the lists code (src/list.c), and found some workarounds for some other weird problems elsewhere. There is still a lot more to do, and at the moment most of the GC is disabled for debugging, but it's a start.
I was able to get to the very end of the normal build process, (past my previous problems in compilers/pge and compilers/tge) before failing in the last build step of compilers/json. So, not understanding what the problem is at that step, I simply commented the offending lines out of the makefile and tried again. Success! I was able to complete the build process and run "make test" for the first time. Of course, it hung while running t/examples/shootout.t and I had to abort it, but it's still better then I was getting earlier.
I'm going to start introducing features, since it seems like my allocators are doing alright. First step is to re-introduce the mark code, followed by the sweep code. I need to go into the string code and fix the pool compacting operations (which have become very buggy, apparently). I have a lot more work to do today, and two more good days this week to focus on these problems. I hope that I can get the majority of them resolved long before the end of the summer (I have other projects I want to work on too!)