Been a while since I last wrote anything up. So what happened?
My PhD was accepted in June... and I received the certificate last week.
I bought a house up at 8000 feet in Colorado. On Xmas it was foggy but today's superb albeit a bit bright with snow. Spent most of Xmas assembling a table saw, and reading a really interesting book about "The American who taught the Japanese about Quality", a Dr. Demming... I wrote a review of it, I'll either put on /. or here.
I'm much further with the binary parser I described back in early April. It's now 2000 lines of Haskell going through lexing, parsing, desugaring, finding unknown/redefined symbols, finding recursively defined symbols, finding symbol lengths, finding equalities (the grammar allows bits 3:5 of symbol A to be equal to bits 7:9 of symbol B), determining the constants in the grammar, determining types and being able to differentiate different subtypes depending on the bits that are set, and then interacting with the user/debugger. At the moment I'm rewriting the back end (interacting with the user). I'm writing a paper on it so when I'm done I'll post a link to it here.
I coded a library in C to interact with the haskell parser as a seperate process. To allow massively large structures like caches to be parsed, Binary parser is able to deal with arbitrarily large numbers. Coding that in Haskell was easy. But allowing the same flexibility in C was a real pain. realloc, realloc, realloc... I'm not surprised that buffer overflows are so common when it's so painful to code array manipulation correctly.