PyPy 1.0: JIT compilers for free and more

Jacob Hallen jacob at
Fri Mar 30 23:08:59 CEST 2007

In article <euenc1$fks$1 at>,
Jarek Zgoda  <jzgoda at> wrote:
>Carl Friedrich Bolz napisa³(a):
>> Welcome to the PyPy 1.0 release - a milestone integrating the results
>> of four years of research, engineering, management and sprinting
>> efforts, concluding the 28 months phase of EU co-funding!
>So it took 4 yars of work and over 2 yaers of consumption of EU funds,
>yeah, great.
>Could anybody explain, what this gives to Python and its users? Would
>we, eventually, get GIL-free VM, that is capable to consume all
>available power of multicore processors? Or, maybe, we'll get something
>special, I am unable to dream of? Or is it purely academic project to
>create Python VM in Python?

No, PyPy is not a purely academic project. It has been a practically oriented
project from the very start.

For the regular user of Python, the main benefit of PyPy is execution speed.
With the Just-in-time optimizer, we have examples of functions doing
integer math that are 63 times faster than CPython. Further work will
broaden the scope of the optimizations to other language constructs.
Bulding the framework for the JIT took a long time. Now that it is in
place, extending the range of optimizations is a much smaller task.

For the Python language developers, PyPy offers an easy environment for
testing new ideas. Changes and alternative solutions can more quickly
be implemented in Python than in C.

For people who want to broaden the scope of Python, there is the option
of using some of the models that the PyPy project has implemented,
or roll their own. Constraints satisfaction, lazy evaluation, cooperative
massive multitasking, security oriented environments, transparent
distributed computing and persistence are examples of things the project
have implemented. There are some very neat APIs so that you can easily
add your own behaviour to the Python interpreter.

For those who want to do Computer Science, PyPy offers a wonderful
research platform. For instance, you can experiment with alternate
or even multiple implementations of builtin types. You can build frontends
for your favourite programming language and backends for your favourite
platform. Since Javascript is a backend that we already handle fairly
well, you can write your FORTRAN parser and have a FORTRAN to JS compiler.
The neat thing is that once you build the parser, you should automatically
have your code working on all the different backends. (This is a goal and
not quite reality at this point in time. Bugs and shortcomings will still
be in the way.)

There is a tradeoff in computer language design between execution speed
flexibility and ease of use. I personally think that PyPy is about to
break out of the tradeoff and bring it to another level. I know that I am
biased, having been involved with the project from the start, but I
think that it is the most interesting work in CS in many years.

Jacob Hallén


More information about the Python-list mailing list