Today is the second day I'm attending the SPLASH 2011 conference in Portland, Oregon. This is a conference about many topics related to programming languages, virtual machines, program analysis and profiling, multi-core implementations, etc. The main reason I'm attending is that I'm actually a presenter. I gave my talk about Tachyon at the Dynamic Language Symposium (DLS) 2011 earlier today. I was fairly nervous, there were probably about 80 people in the room, but I think it went pretty well. Marc Feeley, my advisor, and Bruno Dufour gave me some good advice on how to make my presentation better and avoid getting out of breath or choking while presenting, which I believe helped. The audience seemed interested, and I got good feedback.
I've been able to make some contacts with researchers and industry people (and it's not over yet, 3 more days to go). It was suggested I join the es-discuss (ECMAScript) mailing list and mention Tachyon on there, perhaps get some contributions. I also met up with my M.Sc. advisor, Prof. Laurie Hendren. Apparently, McVM, my M.Sc. project, is still being actively worked on, extended, and doing well at McGill. I'd say I'm having a pretty good time. As usual, going to conferences stimulates my creative thinking. I already have more ideas than I know what to do with...
What if...
A compiler could cache snippets of compiled code to speed up compilation
Tachyon's register allocator could precompile specialized allocators for each instruction type using run-time code generation
Tachyon's assembler could also be optimized by precompiling instruction assembling functions
On-stack replacement could be done purely using tail calls
Tachyon could be made to compile faster by generating more compact code by default (I will probably do this!)
Profiling hooks to detect hot functions and loops costed nothing, since they're removed by code patching or reoptimization
Foreign Function Interfaces (FFIs) could be auto-generated from libraries using an elfdump style tool (based on discussions with labmate Erick Lavoie)
Sometimes, getting so many ideas at once can be scary, frustrating, even depressing, because I know I won't be able to try them all out, and these are only a fractions of the ideas I have for Tachyon. I also realize that I have much more work to do before Tachyon really is feature-complete. My research work is still in its infancy. At least though, I know I have interesting things to do, I just have to pick which ones I'll be doing!
I'm making the Tachyon DLS 2011 slides available online for those who are interested.
The corresponding paper, Bootstrapping a Self-Hosted Research Virtual Machine for JavaScript, is also available online. Cite us and you'll have my eternal* gratitude.
* For up to 25 years.