Klein open-source release

Adam Spitz adam.spitz at gmail.com
Fri Sep 1 11:44:01 UTC 2006

We're pleased to announce that Sun has agreed to make the Klein
Metacircular Virtual Machine Kit available to the public under an Open
Source (BSD) license. Klein is a former Sun Labs research project
intended to learn more about the construction of "metacircular"
virtual machines (that is, VMs written in the same language that they
implement). The artifact that we've produced is very much a work in
progress, but it is intended to someday be a virtual machine for the
Self language, written almost entirely in Self, and a development
environment for that VM. You can download it from:


The project is far from complete - there is a *lot* of work left to be
done before Klein will be a usable VM. (It's very very slow, there's
no garbage collector yet, it's not capable of running its own UI
yet... see the release notes for more details.) This release isn't
intended to be used as a practical VM; we're just hoping that it might
be of interest to people who are interested in VM development. We're
open-sourcing it now because there hasn't been much work done on Klein
since late 2005, and it was looking like Sun had no further interest
in funding it. (None of us is actually working for Sun anymore.)
Still, a lot of functionality has been implemented so far, including a
compiler (capable of producing slow-but-correct machine code for most
Self code), an export system (capable of producing and
incrementally-updating a Klein image containing a given list of Self
modules), a reflection system (capable of reflecting on Klein objects,
either from inside the Klein image itself or from a remote Self
image), and a debugger (capable of source- and machine-level viewing
of Klein objects and processes, including a partial implementation of

See the release notes for more details about what Klein is, how to run
it, what works and what doesn't. You can also see our OOPSLA 2005
paper, "Constructing a Metacircular Virtual Machine in an Exploratory
Programming Environment," for a more thorough description of the
principles behind Klein.

We have no idea how much work will be done on Klein in the future. All
three of us are currently looking for work. Maybe some of us will find
some spare time to spend on Klein. If we're really lucky, maybe we'll
be able to find a way to get paid for continuing the project - though
we're not betting on it. If anyone out there is interested in working
on Klein, we'd love to hear from you.

Alex Ausch
Adam Spitz
David Ungar

More information about the Self-interest mailing list