Hmmm... I know it's complicated, and all these questions can make your head explode. I'll tell you what I understand about Pypy and, at the same time, I'll leave the door open for further explanations or corrections.
As you know, python is a dynamic language. It means, amongst other things, that the programmer doesn't provide type information when declaring variables, like in statically typed languages. Its code doesn't get translated to machine code through a compiler, like in C. Instead, it is "interpreted" by the interprter, which finds out each variable type at run-time. This interpretation makes scripting languages like python much slower than traditional static languages. Recently, Python got a speed boost via Psyco, which is something like a proof of concept for a just-in-time compiler. It is a cpython extension and it can improve python's speed by analyzing run-time information and generating machine code on the fly. However, psyco can only analize python code and as you know, python relies on many extensions coded in c, for performance. So its author decided that having a python implementation written in python would laid a much better basis for implementing psyco-like techniques. This implementation requires a minimal core, writen in a restricted subset of python called "rpython". This subset avoids many of the most dynamic aspects of python, making it easier to authomatically translate it to C through a tool that uses top-notch type inference techniques. This translated version of the rpython interpreter (which got already auto-translated to c), is the basis of Pypy. On top of it, New Psyco-like and just-in-time techniques will be implemented for achieving maximum performance. However, I still doubt that I really understood it... I'm still not sure if the type inference techniques will be used to improve the performance of programs running on pypy, or if these techniques were only intended for getting the rpython interpreter translated to c. As far as I know, pypy is currently about 10/20 times slower than cpython, although many optimizations remain to be done. And I 'm not sure, but I think that its developers rely on the psyco-like techniques to achieve the big speed boost their looking for. Luis -- http://mail.python.org/mailman/listinfo/python-list