[Vm-dev] Pypy-Squeak VM generation news
mhaupt at gmail.com
Mon Oct 22 21:00:49 UTC 2007
I'd love to be in Bern right now... :-/
On 10/22/07, Andreas Raab <andreas.raab at gmx.de> wrote:
> Sounds intriguing. But can you elaborate on what it means to "use PyPy
> to generate a Squeak VM"?
My guess is it's "use the PyPy *tool chain* to generate a Squeak VM".
But then... (Adrian, you know what comes next.)
Short version: Why Python? Why not Squeak?
Long version: we've got a wonderful language, Smalltalk, and a great
implementation of that language, Squeak. There is an implementation of
Squeak "in itself", or rather, in Slang. Close, but, alas, no cigar.
Slang is not much more than a Smalltalk-ish syntax for C. Some things
that are used most naturally in Smalltalk simply cannot be done in
Slang, which adds a great deal of complexity to VM development for
Squeak. RPython, on the other hand, is a minimally stripped-down
version of Python - it almost lays the full power of Python into the
hands of the VM developer.
So what about, instead of using an "alien" language for developing the
Squeak VM, Squeak itself? Possibly after a minimal strip down, much
like the one applied to Python?
The main benefit for Squeak VM development that can be drawn from the
PyPy project is not RPython. Or: should not be RPython. Maybe I'm
overly puristic, but hey, I still favour Squeak over Python for
whatever reasons, so I'm not being inconsistent. ;-)
The main benefit, in my opinion, is in the way the PyPy tool chain is
built. The approach of taking away abstractions step by step and
finally generating C code is elegant and well-designed. A similar tool
chain for Squeak would be a great thing to have. It would also allow
Squeak to remain a "Smalltalk implemented in itself", which is a nice
So, instead of PySquee or SqueePy, what about SqueeSquee?
(Disclaimer: this is not to bash PyPy. Not at all. It's amazing work
that takes one of the edges off of VM development in my very humble
opinion, and that should be widely adopted beyond the Python realm.
This also is not to bash VMMaker or any of its contributors or
maintainers. See above.)
More information about the Vm-dev