[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
multimethods
Note: threading/memory management from/like CPython
3) high-performance standalone PyPy-Python:
- decide object layout/memory management strategy (ref counting/Boehm/our
own...)
- 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
know
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
correct)
- 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