[pypy-dev] pypy mallorca sprint report 2

Michael Hudson mwh at python.net
Sat Jan 28 19:33:36 CET 2006

We greet you once again from the Aula Linux lab of the UIB in Palma de
Mallorca.  There is one more day of sprinting, but as many people have
had to leave slightly early, it's probably safe to attempt some kind
of summary.

Thursday was the break day, which didn't stop some mad people from
doing a little work on rctypes and the JIT.  The sane ones among us
went hiking or to artists' studios instead :)

Friday was not the most productive of days, partly becase we gave a
talk to some people from the university and the local free software
user group in the afternoon.  Also contributing to the lack of results
were the general difficulty of the tasks and some amazing getting-lost
skills ("getting lost" here refers to the physical world for a change).

Armin, Arre and Samuele worked on the JIT, the idea being to write an
"abstract abstract interpreter", which would specialize an abstract
interpreter of low-level graphs for a particular set of low-level
graphs.  At lunch they told a hilarious joke that they weren't going
to do this at all and would instead re-use the annotator to extract
the needed information.  This then turned out to not be a joke at all,
and is exactly what they did for the next two days (apparently they
plan to re-use the rtyper as well, but this is just preposterous).

Christian worked on coroutines and other stackless-like functionality,
with good results: you can now build a version of pypy that can use
and freely intermingle raw coroutines, tasklets and greenlets all at
once.  Apparently this is all fairly natural in the implementation,
but must allow for the possibility of some *deeply* obscure user
code... (obfuscated pypy contests, anyone?)

Michael and Carl repeatedly bashed their heads onto the topic of gc
integration, the desk, reference counting details, walls, genc and so
on.  The basic goal was to express the logic behind placing incref and
decref operations as a nice and fairly clear transformation of the
flow graphs, as opposed to backend-specific incomprehensible hacks.
This task was made considerably harder by exceptions (who uses them,
anyway?) but hopefully by the time we've finished writing this report
we'll have built a pypy-c in the new style.  This work should allow
(finally) the integration of the GC framework Carl wrote as his Summer
of Code project, and mere mortals to understand genc.

Gerald and Stephan continued to work on "rctypes" -- a static version
of ctypes for RPython.  Reasonably complex ctypes declarations can now
be annotated.

Eric and Richard worked on a transformation to replace some of the
operation that can raise exceptions with direct_call operations --
something that will be very useful for the GC work mentioned above,
because operations that can raise an exception need special treatment
-- so the fewer the better!

And finally, some really interesting news: Armin plans to release
Bub-n-Bros 1.5, the play testing of which delayed this morning's
status meeting considerably :)

To sum up, this sprint has seen a fair amount of work on very
challenging tasks.  As usual we all need to sleep for a week, so it's
time to leave this wonderful island (also, it's raining).

mwh and Carl Friedrich

  > It might get my attention if you'd spin around in your chair,
  > spoke in tongues, and puked jets of green goblin goo.
  I can arrange for this.  ;-)            -- Barry Warsaw & Fred Drake

More information about the Pypy-dev mailing list