General ======= * not all of CPython's exceptions use the same __init__! * refactor the cmdline-entrypoints to PyPy aka py.py main.py interactive.py and traceinteractive.py towards a unified cmdline tool (py.py) possibly including translator-related things too. * cleanup the contents of the tool directory * an oldie: move interpreter/unittest_w.py somewhere more appropriate and give it a better name. * (documentation) remove/retire all web-pages referencing e.g. AnnSpace or other deprecated stuff * Review, enhance the new mixed-level module mechanism (e.g. the module/builtin*.py files comprise the builtin module) and try to apply the same technique for the application level type definitions (types.py). Think about a way to split up especially app-level definitions of __builtin__ into multiple files. (like allowing __builtin__ to be a directory with files comprising the complete definition of the builtin module etc.pp) * review whatever you like StdObjSpace =========== * find a way via hacking or elegance to run CPython's unit tests against the StdObjSpace. * String formatting is agonizingly slow. * Provide an importer that can import packages. (we have a limited __import__ builtin defined) <---- done now? Consider PEP 302, new import hooks. Try to write as much as possible in app-level. How would PyPy import CPython extensions? * (documentation) generate a nice dot-graph from the structure of PyPy * port pypy's testing framework to std.utest (probably a sprint topic, as some discussion how to do it is required) * clear out and do a clean implementation of multimethod delegation. The idea is to give 'kinds' to arguments according to their use, e.g. 'numeric argument' or 'object whose identity is preserved'. A 'kind' encapsulates a set of delegation functions. Armin has already written documentation for the envisioned new multimethod implementation: http://codespeak.net/pypy/index.cgi?doc/objspace/multimethod (now irrelevant? not sure... (nowadays, we have the descriptor mechanism implemented right before EuroPython 2004 for both the trivial and the stdobjspace)) Translator ========== * enhance the translator components to accept more of PyPy ... Tools ===== * add web server thread (!) that allows inspection of e.g. interpreter-level tracebacks (and stop clogging the user's terminal with them). --> there is some preliminary working code in tool/tb_server * Interpreter level tracebacks are spectacular in their uselessness, especially since the advent of descroperation. It should be possible to construct something like an app-level traceback even when there's no OperationError. * improve traceobjectspace! currently it only catches calls from outside the space into the space but not the ones where space operations involve calling more space operations (the latter are not traced)! (fixed?)