Psyco alternative

Jacob Hallen jacob at cd.chalmers.se
Sun May 18 07:38:43 EDT 2008


In article <a03264a0-a11f-49d9-96c6-b56a82c0348c at 56g2000hsm.googlegroups.com>,
sturlamolden  <sturlamolden at yahoo.no> wrote:
>On Mar 27, 4:44 pm, Jean-Paul Calderone <exar... at divmod.com> wrote:
>
>> PyPy is self-hosted and has been for some time (a year or so?).
>
>This is technically not correct. PyPy is hosted by RPython, which is
>not Python but a different language all together.

This is pure FUD! PyPy is written in RPython, which is a pure subset of Python,
designed for writing interpreters in such a way that they can be translated into
source code for a static language and then compiled to machine code.

The translation toolchain, written in Python is used to create a binary image,
which is a full interpreter for the Python language. This binary image can
run the toolchain to generate another, identical binary image, which of course
also is a a full interpreter for the Python language.

This makes PyPy self hosting in every sense of the word.

The fact that the interpreter is written in RPython and actually runs as an interpreted
program under CPyton or a compiled PyPy is a useful implementation detail, adding
yet another aspect of self hosting that is not present in other systems that claim
to be self hosting.

PyPy btw, is alive and well. Work is progressing along 3 major fronts. One is supporting
real world applications, where we recently added support for ctypes and where we
are working on ensuring that a number of popular modules and frameworks run under PyPy.
Another major undertaking has been to improve execution speed without the JIT. We can
report that we are faster than CPython on some benchmarks, while slower on others. On the
average, I'd say that we still have some catching up to do. The third avenue that
is being pursued is the JIT. While a huge refactoring has been finished and the
results look very good, there are still many months of work to do before the
JIT can be used in production.

Jacob Hallén

-- 



More information about the Python-list mailing list