Summary of Leysin Sprint (and before)
- introduced newcomers to the project to the PyPy code base
and development process. We gave introductions to the
basic functioning and the structure of the code base.
For getting everybody into PyPy, we then mainly ran tests
and fixed various bugs and added small things.
- we ran some of the CPython's regression tests against PyPy
and enhanced the testing tool to be able to directly
support running such tests.
- merged the typeunwrap-branch back into the trunk
(which allows for type specific unwraps in favour
of deprecated generic unwraps).
- We started the DFKI dialogue, documented action items
and time plan for the first two weeks of February
(mostly related to coordination and EU communication
issues). We came up with a model for physical persons
resp. sprint attendants to get 100% funding.
- Bea interviewed almost all of the sprint participants
to find out about their expectations, dissemination
and more general ideas about the PyPy project and
where it should go in the future. Evaluation forms
have been send out to various people.
- Planning for new and improved infrastructure, including
subversion ("newrepolayout") and issue tracker decisions.
- We fixed some long standing translator issues and
tried to better understand which problems are remaining.
- We started to work on old-style classes (implemented
at application level with new-style classes)
- We have a better bootstrap and a rather complete exception
hierarchy now (generated from application level to interpreter
level). This was done with a tool (to be completed) that is
basically capable of translating applevel modules to interplevel
(which are then completly unreadable).
- we reorganized and cleaned up our base python module
library which is now in dist/lib-python-2.3.4 whereas
our overrides and modifications are in dist/pypy/lib.
- The applevel file class was improved but is currently
not used by default (both for slowness and lack of speed).
- we may have an itertools implementation (Adrien?).
- Marcus Denker gave a nice talk about Squeak and Croquet
which we discussed (including technical details of
the continuation based Seaside Framework and
possible future cooperation).
Tasks for after the Leysin Sprint
- lots of management/coordination tasks are already
summarized by Bea in specific documents in svn/pypy/funding.
other than that here is a technical brainstorming about
upcoming issues and tasks:
- Be on #pypy IRC (on freenode) to continously discuss
the below issues and (re-)assign tasks (and help non-partners
to be able to contribute)
- (Samuele, Christian) finish old-style classes (and their tests)
and integrate them into PyPy (so that by default bare class
statements mean old-style classes).
- (Armin, Christian) implement slots and coerce
- (Christian, ...) prepare a nice gentinterp-tool for generating
interp-level modules out of application level ones. Also allow
to build inline interp-level classes from application ones.
- (Anders, ...) fix pow() and generally complete builtins, reload() etc.pp.
- (Holger, ...) complete the lib-python2.3.4/test runner to support more
styles of testing (doctests mainly).
- (Samuele, Christian) provide the "get-rid-of-unused-variables" algorithms
directly at the flowgraph level (without requiring the annotator)
- (Armin, Christian) refactor and make more code reusable from the
various Gen* backends.
- (Holger) find a way to run the tests (some of which need to be fixed)
from pypy/lib (which overrides ...)
- (Armin, Holger) find a way to run automated tests on many platforms
- (Armin, Christian) fix and cleanup pypy/module resp. the mixin of
interplevel/applevel code, reduce magic and only good magic ...
- install an IRC-bot that logs stuff on #pypy (for ultimate
control of whats going on)
- (Samuele, Laura) enumerate all missing or incomplete
builtin types, functions and modules. (preferably
as a web page :-)
- (Bea will call for a common day, but let's not wait for Bea)
consolidate/improve and add documentation about the current state
of PyPy affairs (especially regarding its technical implementation).
And actually remove outdated documentation.
- (Holger, pypy-dev) come up with and discuss a release scheme for PyPy
- (Bea will dispatch) Write a good tutorial.
- (Samuele, Christian) resolve platform problems (regarding longs
and ints and tests and 32/64 bits ...), including arithmetic
how to do bit-limited arithmetic at interpreter level?
- (Logilab?) we need a parser/compiler, and we especially want to
cleanly provide a hook to allow custom
compilation/code objects/frame objects/bytecode implementations.
- (Armin, Samuele) translation: finish "filling the caches", revisit
MultiMethods with respect to that and other issues.
- make GenC() use more of the annotation (currently nada)
- (Samuele) improve and further fix the annotator (never ending task)
- explore the through-java path
- (Jacob, holger, ...) generate all kinds of reports about various
aspects of developing
- (Christian) play a bit with generating app- or interplevel
- (Bea and Jacob driving) prepare and improve sprints with
respect to giving tutorials, welcoming and integrating newcomers
- be prepared to make a list of tasks suitable
for sprint attendees (and try to find out before
about the according experience levels)