pypy-0.8.0: Translatable compiler/parser and some more speed
The PyPy development team has been busy working and we've now packaged
our latest improvements, completed work and new experiments as
version 0.8.0, our third public release.
The highlights of this third release of PyPy are:
- Translatable parser and AST compiler. PyPy now integrates its own
compiler based on Python own 'compiler' package but with a number
of fixes and code simplifications in order to get it translated
with the rest of PyPy. This makes using the translated pypy
interactively much more pleasant, as compilation is considerably
faster than in 0.7.0.
- Some Speed enhancements. Translated PyPy is now about 10 times
faster than 0.7 but still 10-20 times slower than
CPython on pystones and other benchmarks. At the same time,
language compliance has been slightly increased compared to 0.7
which had already reached major CPython compliance goals.
- Some experimental features are now translatable. Since 0.6.0, PyPy
shipped with an experimental Object Space (the part of PyPy
implementing Python object operations and manipulation) implementing
lazily computed objects, the "Thunk" object space. With 0.8.0 this
object space can also be translated preserving its feature
What is PyPy (about)?
PyPy is a MIT-licensed research-oriented reimplementation of
Python written in Python itself, flexible and easy to
experiment with. It translates itself to lower level
languages. Our goals are to target a large variety of
platforms, small and large, by providing a compilation toolsuite
that can produce custom Python versions. Platform, Memory and
Threading models are to become aspects of the translation
process - as opposed to encoding low level details into a
language implementation itself. Eventually, dynamic
optimization techniques - implemented as another translation
aspect - should become robust against language changes.
Note that PyPy is mainly a research and development project
and does not by itself focus on getting a production-ready
Python implementation although we do hope and expect it to
become a viable contender in that area sometime next year.
PyPy is partially funded as a research project under the
European Union's IST programme.
Where to start?
Getting started: http://codespeak.net/pypy/dist/pypy/doc/getting-started.html
PyPy Documentation: http://codespeak.net/pypy/dist/pypy/doc/
PyPy Homepage: http://codespeak.net/pypy/
The interpreter and object model implementations shipped with
the 0.8 version can run on their own and implement the core
language features of Python as of CPython 2.4. However, we still
do not recommend using PyPy for anything else than for education,
playing or research purposes.
Ongoing work and near term goals
At the last sprint in Paris we started exploring the new directions of
our work, in terms of extending and optimizing PyPy further. We
started to scratch the surface of Just-In-Time compiler related work,
which we still expect will be the major source of our future speed
improvements and some successful amount of work has been done on the
support needed for stackless-like features.
This release also includes the snapshots in preliminary or embryonic
form of the following interesting but yet not completed sub projects:
- The OOtyper, a RTyper variation for higher-level backends
- A limited (PPC) assembler backend (this related to the JIT)
- some bits for a socket module
PyPy has been developed during approximately 16 coding sprints across
Europe and the US. It continues to be a very dynamically and
incrementally evolving project with many of these one-week workshops
PyPy has been a community effort from the start and it would
not have got that far without the coding and feedback support
from numerous people. Please feel free to give feedback and
contact points: http://codespeak.net/pypy/dist/pypy/doc/contact.html
the pypy team, (Armin Rigo, Samuele Pedroni,
Holger Krekel, Christian Tismer,
Carl Friedrich Bolz, Michael Hudson,
and many others: http://codespeak.net/pypy/dist/pypy/doc/contributor.html)
PyPy development and activities happen as an open source project
and with the support of a consortium partially funded by a two
year European Union IST research grant. The full partners of that
Heinrich-Heine University (Germany), AB Strakt (Sweden)
merlinux GmbH (Germany), tismerysoft GmbH (Germany)
Logilab Paris (France), DFKI GmbH (Germany)
ChangeMaker (Sweden), Impara (Germany)