GoLightly's a library for implementing virtual machines that exploit the intinsically concurrent design Google (or more to the point Rob Pike and playmates) have adopted in Go. Having CSP-style concurrency available in a language that's aimed at a similar niche to C addresses a number of problems with modern software design - especially when targetting machines with multiple cores. There's other magic in Go that's also very well suited to what I'm trying to achieve: garbage collection; a flexible type system; and dev tools that are simple to use. Overall it feels a lot like using a dynamic language, only with the additional runtime efficiency that comes from static compilation.
Anyway at Strange Loop I'll be talking about various design techniques when implementing virtual machines (mostly to do with immitating tricks used in the design of hardware processors), how Go offers some interesting new approaches to realising them, and the longterm goal of GoLightly - namely providing a platform that's friendly to modern hardware on which to implement runtimes for Ruby and a variety of other languages which use the virtual machine metaphor.
I'm long overdue mentioning this here, in large part because it's been a busy year and my desire to blog has been at an all-time low: every waking hour is either focused on (the to date unpaid) work on GoLightly or with helping goth_twiglet keep a handle on our increasingly active and inquisitive Tom.
I could do with a bit of a concurrency upgrade myself :)