Upcoming PyPy sprint
Armin Rigo
arigo at tunes.org
Sat Dec 25 21:24:26 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)
http://codespeak.net/moin/pypy/moin.cgi/LeysinSprint
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
sprint.
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
sports!
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 :-)
Subscription
------------
Please subscribe at
http://codespeak.net/moin/pypy/moin.cgi/LeysinSprintAttendants
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,
Psyco-style).
A bientot,
Armin Rigo
More information about the Python-announce-list
mailing list