(I wasn't familiar with generators before this. It turns out they're what you do when you want to write functions that operate over aggregate data without actually building up intermediate data structures -- such as when you're working in a language whose compiler doesn't do deforestation, such as almost all of them. Rather than relying on the compiler to do shortcut deforestation like you might do in Haskell, generators let you write producers and consumers without the pesky intermediate data structures in between. Or at least that's how I understand them.)
I didn't want to be a big jerk who just copied/pasted the patch I had so far into Bugzilla and left the cleanup for other people, so today I embarked upon the task of producing a patch against HEAD for IonMonkey, or at least a newer revision than March 2012. This involved remembering how to use Mercurial, resolving many merge conflicts (not surprisingly, code bit-rots when you don't pull from the repo for a few months), and finally, running make on something I knew was probably wrong (some of the existing generator code had changed out from under me -- for the better, but it still required updates) but where I hoped the compiler would tell me why. The first bit of fun I had was that the makefile wouldn't let me build with llvm-gcc, which was the only gcc installed on my Mac. I tried clang, which worked like a charm (and has way better error messages than gcc!) all the way up till linking, where I got mysterious errors about undefined symbols beginning with _cxa. So I investigated what it takes to build a non-LLVM gcc, and, well, that's still building on my other machine back in my office.
I'd hoped I could just devote a day to this and be done with it, but life isn't that easy. Hopefully, though, the non-LLVM gcc will work and I can sort out the rest by running tests.