[pypy-dev] Winter Sprint report: first draft

Michael Foord fuzzyman at gmail.com
Mon Feb 14 01:42:46 CET 2011

Hey guys,

I finally found time to write a first draft of a blog entry reporting on the
winter sprint. Comments, corrections, insults and suggestions solicited:

PyPy Winter Sprint

A few weeks ago I had the great fortune to attend the winter sprint in
Leysin Switzerland. I've wanted to contribute to PyPy for a long time and I
thought diving into a sprint might be a good way to get familiar with some
of the code. What I wasn't expecting was to be implementing new built-in
methods in RPython on the first day. The main thing I took away from the
sprint was just how easy it is to get involved in developing PyPy (well,
some bits of it at least and being surrounded by core developers helps). I
wrote up a very short description of how to get started here (
https://bitbucket.org/pypy/pypy/wiki/How%20to%20run%20lib-python%20tests ),
but I'll do a longer blog post with examples on my own blog (
http://www.voidspace.org.uk/python/weblog/ ) soon(ish).

The sprint was kicked off by Armin merging the "fast-forward" branch of PyPy
onto trunk. "fast-forward" brings PyPy from Python 2.5 compatibility to
Python 2.7. Along with this it brought a large number of test failures, as
the sterling work done by Benjamin Peterson and Amaury Forgeot d'Arc was not
complete. This immediately set the primary sprint goal to reduce the number
of test failures.

We made a great deal of progress on this front, and you can see how close
PyPy is now from the buildbot:

Jacob Hallen and I started working through the list alphabetically. We made
short work of test_asyncore and moved onto test_bytes where I was stuck for
the rest of the sprint. I spent much of the remaining days working with
Laura Creighton on the pypy bytearray implementation to make it more
compatible with the Python 2.7 implementation. This meant adding new
methods, changing some of the Python protocol method implementations and
even changing the way that bytearray is constructed. All in all great fun
and a great introduction to working with RPython.

If you add on top of this the great people, the beautiful scenery, the Swiss
cheese fondues, managing to not kill myself with a days skiing and
traditional pypy card games, I can heartily recommend pypy sprints as a
close approximation of geek nirvana.

Working on 2.7 compatibility wasn't the only work that happened during the
sprint. Other activities included:

* Antonio Cuni worked on the "jittypes" branch. This is a reimplementation
of the core of the PyPy ctypes code to make it jittable. The goal is that
for common cases the jit should be able to turn ctypes calls into direct
jumps. This work was not completed but very close and is great for the
future of integrating C libraries with PyPy. As ctypes is also available in
CPython and IronPython, and hopefully will be available in Jython soon,
integrating C code with Python through ctypes is the most "implementation
portable" technique.

* David Schneider continued his work on the JIT backend for ARM. PyPy has
been cross-compilable to ARM for a long time, but bringing the JIT to ARM
will provide a *fast* PyPy for ARM, which includes platforms like Android.
Again David didn't complete this work but did complete the float support.

* Hakan Ardo was present for two days and continued his crazy-clever work on
JIT optimisations, some of which are described in the "Loop invariant code
motion" (
http://morepypy.blogspot.com/2011/01/loop-invariant-code-motion.html ) blog

* Holger Krekel worked on updating the PyPy test suite to the latest version
of py.test and also worked with me on the interminable bytearray changes for
part of the sprint.

* No one was sure what  Maciej Fijalkowsk worked on but he seemed to be
quite busy.

I think that was most of the work done during the actual sprint. There was
also a great deal of healthy discussion about the future of PyPy. Expect
lots more interesting and exciting developments over the coming year.

Michael Foord



May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20110214/c71cdbde/attachment.html>

More information about the Pypy-dev mailing list