Tonight I had some excellent thai food with stacy, we goofed off for a while and I wowed her with my feet-clapping prowess. I thought she was going to collapse she was laughing so hard. I was pretty impressed with myself. Please don't ask me to demonstrate, it involves me laying on a flat surface with no socks on. You probably don't want that at your next party.
Then I hacked out an interpreter for an OO language I came up with. It's a prototype-based dynamic language with no public fields and method update. I don't know what it'll do when it's done. Maybe it'll only be capable of crashing. Whatever, I'd be fine with that.
dnm's talking about hacking capability-semantics into my SwapVM. I think that'd be fun. Right now it's a dual-stack based VM with no fixed instruction set (that's why it's called SwapVM, you can change instruction sets at runtime). It's really just a toy, that's why I wrote it in java and use reflection; I don't care about performance. But it'd be fun to do some more work on it. Oh yeah, and put the cvs tree online. Not that people should give a shit about it. Please don't. It'll just embarass me in a few years.
Speaking of virtual machines, I finished 'Virtual Machine Design and Implementation in C/C++' tonight as well. I really wasn't all that impressed. He designed a VM exactly how you'd imagine a C/assembly programmer on x86 would design a VM. There's excessive asm in the source, too much talk of ISV's and IRQ's, and just a gaggle of x86'isms that I didn't think added to the student's understanding of how a VM does what it does. His talk on instruction set design was interesting, his explanation of how to implement a debugger in a VM was unimpressive. He did a decent job of explaining why he chose to use registers in his VM and not stacks, and why he prefers manual memory management over garbage collection in his VM. The first several chapters are really quite fun to read, it reminded me of some of van der Linden's work, but the rest of it frustrated me. I don't honestly mean to be excessively down on the book, I'm glad people are writing on the subject but I felt a lot of the book was extraneous to teaching how a VM works and clouds the issues significantly.
Tomorrow's plan: finish E paper, send it off to the combex kids for approval and revision, then hack in a few things to SwapVM, then work on my interpreter in ObjC. I need to find a regex Framework. Maybe MiscKit has one.
# — 20 April, 2002