





Breaking news on the ongoing PyPy-Squeak sprint in Bern.
cd pypy/translator/goal
./translate.py --gc=generation targetfibsmalltalk.py
(lots of output...)
(Ctrl-D to exit the debugger prompt at the end of translation)
./targetfibsmalltalk-c 25
121393
cd pypy/translator/goal
./translate.py --gc=generation targetimageloadingmalltalk.py
(lots of output...)
(Ctrl-D to exit the debugger prompt at the end of translation)
./targetimageloadingmalltalk-c ../../lang/smalltalk/mini.image
(lots of #)
cd pypy/translator/goal
./translate.py --gc=generation targettinybenchsmalltalk.py
(lots of output...)
(Ctrl-D to exit the debugger prompt at the end of translation)
W_SqueakObject
. From the VM point of view we would like to represent some objects using special classes: classes, stack frames, compiled methods, method dictionaries, method contexts, block context and so on. If those objects would not be exposed to the smalltalk view, that would not be a problem at all. However, as they are exposed to plain Smalltalk we had to find a better solution.Smalltalk.Class
, which is very Smalltalkish. The shadow of the class stores all required information about classes in a nice, easily accessible data structure (as opposed to the obscure bit format used at the Smalltalk level). The class shadow mirrors format and size of instances, a Python dictionary containing the compiled methods (mirroring the method dictionary), and the name of the class (if it has one), etc. Storing the methods in a Python dictionary instead of the Smalltalk method dictionary allows the tool chain to generate better code for method lookups, taking advantage of its highly optimized builtin dictionary implementation.
mini.image
, printing all strings in the image and trying to execute random methods using pypy.lang.smalltalk.interpreter.Interpreter
. He selects all compiled methods having no arguments and tries to execute them, some of the methods even run successfully.dist/pypy/lang/smalltalk/toolI will now join Toon to pair up, thinking about and hopefully implementing some benchmarks for the loaded image.
svn co http://codespeak.net/svn/pypy/dist pypy-dist
cd pypy/lang/smalltalk
../../../py/bin/py.test