[pypy-dev] Sprint tracks

Armin Rigo arigo at tunes.org
Tue Dec 9 15:50:19 CET 2003

Hello PyPy,

we have done some more discussion on how to plan the upcoming sprint. 
Here is our idea. Holger will do an overview presentation of PyPy's 
current architecture. Armin (or someone else, please stand up :-) 
will introduce the following four possible tracks for the sprint: 

* types.py
* annotations
* interactive/doc tools
* builtins and miscanellea

In a few words:

* types.py

This is essentially moving type declarations to app-level.  The
interp-level code would only be concerned about providing
implementations for objects (either internal objects like Code or
Function, or StdObjSpace objects like W_IntObject).  This involves (a)
writing the app-level types as almost-usual class declarations; (b)
writing a mechanism to link them with interp-level classes; (c) fixing
the StdObjSpace to use this mechanism (which should be straightforward
because it already works almost like that).

* annotations

This is the part about translating PyPy into low-level code.  We have
the beginnings of a nice general annotation scheme which should be
finished and linked with the type inference and code generation.  The
goal is then to have something that can really analyze and produce code
for complex examples (up to PyPy itself).

* interactive/doc tools

Introspecting and interacting with a running PyPy process on various
levels.  This should make debugging and understanding pypy structures
easier, and provide more direct feed-back.  Depending on interest and
experience we could build various nice user interfaces to do that.
Refactoring the current interactive.py/py.pymodule is also a good
starting point. 

* builtins and miscanellea

There are still a few crucial builtins to be implemented to make typcial
python programs work.  Running the CPython test suite is an obvious
goal.  Writing some more tests especially for the interpreter-level
builtins also makes sense.  And of course there is a larger number of
less-essential built-in modules that need to be ported.

The two big introduction sessions should make it possible to get
everyone up to speed and start hacking in pairs.  Note that we can
still add/remove tracks depending on interest. Don't be scared by the
above tracks, most of them can be further subdivided into more
independent jobs. We might want to list all the "jobs" that need to be
done on the board so that if you are fed up with your current track you
can pick something :-) 

Furthermore at the end of the week we should all invest an afternoon
into documenting the various architecture bits and pieces. It probably
is more fun if we do it all at the same time.

cheers and see you all in Amsterdam (well not all, just the sprinters :-), 

    Armin & Holger

More information about the Pypy-dev mailing list