[pypy-dev] Mallorca sprint days 1 - 3
Carl Friedrich Bolz
cfbolz at gmx.de
Wed Jan 25 20:13:50 CET 2006
This is the first report of the challenging Mallorca sprint. On the one
hand getting here proved to be quite an ordeal for some of the sprinters
due to bad weather at airports and uncooperative ferry companies. On the
other hand it seems that we have finally run out of even vaguely easy
tasks to do and are thus involved in serious head-scratching and the
making of strange noises as we contemplate what we have to do.
The sprint is hosted in the GNU/Linux lab of the Universitat de les
Illes Balears in Palma de Mallorca. We are very thankful to them for
letting us disturb their undergraduates in their attempts to use the
On the first day some of the strangest noises were produced by Samuele
who started together with Gerald and Stephan to work on a static version
of ctypes for rpython. On Tuesday evening, after lots of tedious work on
all levels of the translation toolchain, they managed (with some
cheating) to got an example calling atoi to run.
Michael and Arre started extending the l3interpreter to support
operations involving heap-structures in a way that could be run on top
of the llinterpreter and after translation to C. After some argument
with Samuele, who, as usual, turned out to be right, they were
successful in their goals. This means that the l3intepreter can now
perform reasonably complex operations involving pointers but not
subtract two integers.
Carl Friedrich and Richard started refactoring the gc framework to use
the new facilities Michael and Arre had written. Progress there was
extreeeemely slow, so that in the evening of the first day only marginal
progress was achieved.
Christian, Eric and later Jacob started exposing PyPy's stackless
features to application level. While doing this they found a few
problems in the interp-level code and refactored it a bit. On the second
and third day Christian and Jacob continued with this. They managed to
expose simple coroutines on Wednesday and are now continuing to create
nicer interfaces following the stackless module of stackless Python. One
of the problems there turned out to be testing turnaround time, since
the functionality can only be tested after a full translation has been
run. There might be some ways around this involving slimy hacks.
On the second day most pairs continued as before. Armin and Carl
Friedrich worked on the JIT. They started defining an interface to
generate code at runtime (see
and then using this same interface in the low level abstract
interpreter. This turned out to be quite difficult in the sense that
most of the time was spent re-redesigning the interface yet another time.
On the third day Armin swapped with Samuele and continued with Gerald
and Stephan to work on rctypes, with slow but steady progress. They are
now able to annotate simple cases that use structures.
Arre and Samuele tied themselves to the JIT treadmill and continued the
work of Armin and Carl. A lot of "wuah!"'s and "arrgh!"'s can be heared
from their direction -- we assume they are having fun.
Carl Friedrich and Michael thought about how to integrate the currently
only simulated GC framework with the backends. This looked and still
looks like it will be *a lot of* work but they were able to at least
clarify some issues and get somewhat started.
Eric and Richard tried to finally remove the dependency on pyrex (!) in
genllvm which is a relict from the old days of the first LLVM backend
(which was pre-rtyper!). They are also working on removing some
hand-written C code from genllvm.
So while we're not seeing super-rapid progress there are still
interesting changes continuously arriving. Tomorrow is a day off, but
given the bunch of obsessives we are there might still be some checkins.
There will still be three full days of sprinting afterwards.
Cheers from sunny Palma,
Michael & Carl Friedrich
More information about the Pypy-dev