[Python-Dev] pypy-0.9.0: stackless, new extension compiler

Michael Hudson mwh at python.net
Sun Jun 25 14:07:01 CEST 2006


The PyPy development team has been busy working and we've now packaged 
our latest improvements, completed work and new experiments as 
version 0.9.0, our fourth public release.

The highlights of this fourth release of PyPy are:

**implementation of "stackless" features**
    We now support the larger part of the interface of the original
    Stackless Python -- see http://www.stackless.com for more.  A
    significant part of this is the pickling and unpickling of a running
    tasklet.

    These features, especially the pickling, can be considered to be a
    "technology preview" -- they work, but for example the error handling
    is a little patchy in places.

**ext-compiler**
    The "extension compiler" is a new way of writing a C extension for
    CPython and PyPy at the same time. For more information, see its
    documentation: http://codespeak.net/pypy/dist/pypy/doc/extcompiler.html

**rctypes**
    Most useful in combination with the ext-compiler is the fact that our
    translation framework can translate code that uses the
    standard-in-Python-2.5 ctypes module.  See its documentation for more:
    http://codespeak.net/pypy/dist/pypy/doc/rctypes.html

**framework GCs** 
    PyPy's interpreter can now be compiled to use a garbage collector
    written in RPython.  This added control over PyPy's execution makes the
    implementation of new and interesting features possible, apart from
    being a significant achievement in its own right.

**__del__/weakref/__subclasses__**
    The PyPy interpreter's compatibility with CPython continues improves:
    now we support __del__ methods, the __subclasses__ method on types and
    weak references.  We now pass around 95% of CPython's core tests.

**logic space preview**
    This release contains the first version of the logic object space,
    which will add logical variables to Python.  See its docs for more:
    http://codespeak.net/pypy/dist/pypy/doc/howto-logicobjspace-0.9.html

**high level backends preview**
    This release contains the first versions of new backends targeting high
    level languages such as Squeak and .NET/CLI and updated versions of the
    JavaScript and Common Lisp backends.  They can't compile the PyPy
    interpreter yet, but they're getting there...

**bugfixes, better performance**
    As you would expect, performance continues to improve and bugs continue
    to be fixed.  The performance of the translated PyPy interpreter is
    2.5-3x times faster than 0.8 (on richards and pystone), and is now
    stable enough to be able to run CPython's test suite to the end.

**testing refinements**
    py.test, our testing tool, now has preliminary support for doctests.
    We now run all our tests every night, and you can see the summary at:
    http://snake.cs.uni-duesseldorf.de/pypytest/summary.html

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
the 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.9
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
---------------------------------

The Just-in-Time compiler and other performance improvements will be one of
the main topics of the next few months' work, along with finishing the
logic object space.

Project Details
---------------

PyPy has been developed during approximately 20 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
to follow.

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 
raise questions. 

    contact points: http://codespeak.net/pypy/dist/pypy/doc/contact.html

have fun, 
    
    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 
consortium are: 
        
    Heinrich-Heine University (Germany), AB Strakt (Sweden)
    merlinux GmbH (Germany), tismerysoft GmbH (Germany) 
    Logilab Paris (France), DFKI GmbH (Germany)
    ChangeMaker (Sweden), Impara (Germany)

-- 
  And not only in the sense that they imagine heretics where these
  do not exist, but also that inquistors repress the heretical
  putrefaction so vehemently that many are driven to share in it,
  in their hatred of the judges.  -- The Name Of The Rose, Umberto Eco


More information about the Python-Dev mailing list