Michael Haupt wrote:
On 10/22/07, Andreas Raab andreas.raab@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".
And what exactly does *that* mean? Rewrite the code generator in Python to generate C code from Slang? Rewrite the VM in Python? Use PyPy translation tools to generate code from Squeak parse trees? There are so many possible ways of "using tools" ...
Cheers, - Andreas
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 property.
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.)
Best,
Michael