[pypy-dev] Upcoming PyPy sprint

Armin Rigo arigo at tunes.org
Sat Dec 25 21:23:03 CET 2004

Hi Python people,

The next sprint for PyPy, the Python-in-Python interpreter, will take 
place in Leysin, in the lower mountains of Switzerland,

    22nd - 29th January 2005 (travel days: 22nd and 29-30th)

The technical goals will be two-fold: we want to continue the hard work 
started at the previous Vilnius sprint (a first generated C version of our 
interpreter); but the upcoming sprint will also be a "learning PyPy" 
sprint, covering all aspects of PyPy that are easier to start with.  
Some examples are described below.  For more information about PyPy, see 
http://codespeak.net/pypy/index.cgi?doc .

The "learning PyPy" focus comes from the fact that it will be our first 
sprint as a European Union sponsored group, and not all members of this 
EU/PyPy project are already familiar with PyPy.  This is a good occasion 
for newcomers that want to look at PyPy more closely too, in a "fun and 
somewhat mind-altering" sprint event.  Note that as part of our funding we 
want to be able to support some of the travel and lodging costs for a 
number of outside people as well, but although the corresponding money is 
in the budgets, not all administrative issues have been solved yet.  We 
don't know yet if we will be able to do so for the January sprint.

However, if you would like to come to the sprint but can't afford 
travel and accomodation costs then please contact us.  Even if the
administrative issues have not been sorted out, we may be able to 
help with private money.  Just contact us or me personally for this

About Leysin

The place where the sprint will take place is located in the pre-Alps of 
the french-speaking (west) region of Switzerland.  Leysin is a village at 
an altitude of 1200 to 1400m.  It is a skiing station, and also the place 
where I (Armin) lived for 20 years.  There are 2000 people in summer and 
10000 in winter :-) but the sprint will be just before the most crowded 
periods of February.  Of course one full day will be dedicated to winter 

Both the sprint venue and the logding will be in a very spacious pair of 
chalets built specifically for bed&breakfast: http://www.ermina.ch/.  The 
place has a baseline ADSL Internet connexion (600Kb); we need to arrange 
between ourselves to bring a wireless hub.  You can of course arrange your 
own lodging anywhere (you cannot be more than a 15 minutes walk away from 
the sprint venue), but I definitely recommend to lodge there too -- you 
won't find better sights anywhere else (though you probably won't get much 
worse ones easily, either :-)


Please subscribe at


and mention if you would like to participate in the group reservation, and
which size of room you would prefer (2 to 6 beds available).  If you wish, you
can extend your stay for some days after the 29th of January -- please mention
it if you want to book with the group (but you cannot arrive there earier
than the 22nd: fully booked).

If you have any question don't hesitate to contact 
pypy-sprint at codespeak.net or one of us personally.

Learning PyPy

Here are some goals that are quite reachable without in-depth prior 
knowledge of PyPy:

 * systematic testing: the interpreter and type implementations work 
   generally well, but there are quite some areas that need refactoring 
   and refinement.  A good approach is to run as many of CPython's tests 
   as possible and fix stuff accordingly.  This is a good way to learn 
   random parts of PyPy until you know them all!

 * extension modules and extension types: some can be just rewritten as a 
   plain Python equivalent, but others need to be more integrated into
   PyPy's internals.

 * the bytecode compiler: we don't have any compiler integrated with PyPy 
   so far, but there exists a complete set of Python code out there 
   (tokenizer, parser, st->ast, ast->bytecode) that could be used.  We
   could also discuss ideas like syntax extensions generating new
   bytecodes, etc.

 * tracing and other wrappers: e.g. how to write a fully debugging Object 
   Space that records the history of all changes to objects, etc.

 * more bits and pieces: small things missing from our interpreter to be fully 
   compliant.  Tracing/profiling hooks come to mind; more small things 
   are listed in http://codespeak.net/svn/pypy/trunk/src/pypy/TODO .

In addition to the above examples, there are a number of more involved tasks
that nevertheless don't require a complete grasp of PyPy -- whose parts are
relatively independent from each other.  The "hard" work currently going on in
PyPy is on the translation part, which is needed to make PyPy run faster
and/or in other environments.  This work is however mostly independent.  For
people that prefer to focus on cross-language stuff rather than Python
internals we can discuss about tasks like writing the basics of an interpreter
for another language -- for example, it would be great to have a decent
error-checking Javascript interpreter, but we can discuss any other language,
Python-like or not.  In parallel, there is always pending work to allow the
code generator to target other languages and platforms (currently there is C,
Lisp, Pyrex and Java) or generate code differently (Stackless-style,

A bientot,

Armin Rigo

More information about the Pypy-dev mailing list