February 14, 2006

Auntie Em, Auntie Em!

And yeah, I understand the multiple layers of humor in the title.

The VM stuff I've been thinking about's now started to coalesce, and as such I've started doing serious design work and coding. (Yes, I know, design then code, but boilerplate and general infrastructure's pretty straightforward) The engine's reasonably special-purpose, but that's fine, I knew that going in.

It's now got a name too -- the engine'll be called Tornado, since we're taking large chunks of data, whirling them around in mostly similar ways, and later flinging them out. Causing a potentially large amount of havok in the process, of course. I do have a direct application for the engine right now, so there's reason to bang this out, and when it's ready it'll be available both as a standalone embeddable library and as a perl module. If I'm feeling enthusiastic I may make a ruby library too, but we'll see how that goes.

This engine will share a few features with Parrot, though honestly not that many. Some of the techniques in the parrot build are really useful (like the separate files with a specialized mini-language for opcode functions) and I'll use those. Architecturally there are some significant differences in the problem space, and since Tornado's space is much smaller and only partially overlapping with parrot, some of the compromises that went into parrot I just don't have to make. That's kinda cool, actually. Tornado programs will also be smaller on the whole (Dunno about you, but I sure don't want to be writing whole apps in an environment geared very much towards massively threaded processing of mostly vector data) which means we can make some cheating tradeoffs for speed and safety too.

More details'll go up soon as I hash out some of the still-fuzzy bits, and the subversion repository'll likely get opened up for anonymous checkout if I can't get a timely CPAN module release.

Posted by Dan at February 14, 2006 04:49 PM | TrackBack (0)

Dan, based on your previous postings, its sounds like the language you are building shares some similarities to Erlang in concurrency and message passing?

If not, you should really check it out, I'm completely convinced it's concurrency primitives and message passing put it miles beyond traditional threading. Learning it makes me want to create new language incorporating its key concepts, but with a less hideous syntax.

Posted by: Damien Katz at February 14, 2006 06:18 PM

Yep, I know about Erlang -- been looking into it, as well as APL, for this. Should be an interesting combination...

Posted by: Dan at February 14, 2006 07:19 PM