[pypy-dev] needed 18 month plan of what we would do in developing PyPy if we got funding.

Samuele Pedroni pedronis at bluewin.ch
Thu Sep 4 16:52:49 CEST 2003

At 15:07 04.09.2003 +0200, Laura Creighton wrote:

>you know:
>if we were writing what we did we would say:
>+ add support for builtins
>+ make translation object space
>+ produce first running code
>+ speed up code generation
>Ideally, what would come out is 18 things to do, one per month, because
>that is really easy for the non-technical reviewers to understand.  This
>is an impossible goal, since everything depends on everything else, but
>it would help if things looked a little more linear than they actually
>can be in practice.  Can people start brainstorming a list, please.

this is more a list of "milestones" and todos and research topics, that 
exactly what you asked. I hope this is at least a starting point. 
Disclaimer: my POV, some bits can be controversial etc..., I have not 
looked at Psyco recently, some of my comments can be off-base

1) manage to translate the body of some of our multimethods to C or pyrex ...
see whether the annotation space approach works and is maintainable, or  an 
AST based
approach is more suitable or some mixed approach - AST based for 
control-flow level, annotation space for basic blocks/exprs

2) how to attack/translate the whole thing: CPython hosted PyPy
- make the design of the app-level/interp-level interface converge
- parts of the produced intepreter vs. our PyPy Python codebase correspondence,
   how global piece-wise translation should work
- object layout (reuse CPython's one or roll our own)
- write needed/missing parts for runtime: especially code that implement 

Note: threading/memory management from/like CPython

3) high-performance standalone PyPy-Python:
- decide object layout/memory management strategy (ref counting/Boehm/our 
- decide stragety wrt threading (messy issue)
- what part of CPython we lose: strategy for reuse vs. rewrite directly in 
C vs. rewrite in Python plus translation vs. rewrite as app-level Python
- write runtime parts we need
- adjust translation of the rest

- integration of Psyco technology (rewrite to translated Python plus 
automatic code generation of all what can be deduced from our PyPy codebase 
or ???)
- integration of Stackless

- remove some constraints imposed by Psyco on dynamic behavior
- need to improve profiling approach to find hotspots for Psyco ?  (I don't 
how Psyco is doing about this now, Armin?)

- optimizations for lookup/globals while
supporting dynamic changes (things AFAIK Psyco does not address completely 
? is that

- extension interface ?
- what to do for legacy CPython extensions

- further  improvements ...

4) small devices PyPy-Python ? (do we need a partner in that area?)

( 5) Java/.NET-Python from PyPy

3-4(-5) can proceed in parallel 

More information about the Pypy-dev mailing list