[pypy-svn] rev 2602 - pypy/trunk/doc
lac at codespeak.net
lac at codespeak.net
Fri Dec 19 18:58:20 CET 2003
Author: lac
Date: Fri Dec 19 18:58:19 2003
New Revision: 2602
Added:
pypy/trunk/doc/goals.txt
Log:
gleaned from the proposal
Added: pypy/trunk/doc/goals.txt
==============================================================================
--- (empty file)
+++ pypy/trunk/doc/goals.txt Fri Dec 19 18:58:19 2003
@@ -0,0 +1,177 @@
+**Infrastructure and tools**
+
+Supporting the PyPy project by producing and enhancing the tools.
+
+Support the development process with reusing existing or developing
+new debugging opensource tools.
+
+- provide access over http/https and ssh server
+
+- build extensions for automatic document extraction
+
+- implement a search facility over all content
+
+- maintain and enhance website infrastructure
+
+- setup a mirror repository which is kept up-to-date and which
+ can be used readonly in case of failure of the main repository.
+
+- Design a strict backup policy.
+
+- help with automated testing
+
+ what more do we want to do?
+
+- http-server to present runtime/introspection information aiding
+ debugging and understanding of PyPy internals
+
+- automated (unit-)testing framework with html/pdf reports
+
+**Synchronisation with Standard Python**
+
+- Keeping PyPy in sync with potential changes to Standard Python.
+
+- Support a subset of the CPython API for compatibility with extension modules.
+
+- Facilitate porting of extension modules to PyPy.
+
+**Replace PyPy Core**
+
+Building a complete Python interpreter written in Python,
+using a subset of Python that avoids dynamic features
+which would impair the objectives of RPython.
+
+- Design and implement the PyPy bytecode interpreter and
+ build an object space library in RPython.
+ The resulting interpreter must cover the complete Python
+ language specification. -- mostly done, test coverage.
+
+- Port the built-in Python library to PyPy (functions, types and
+ modules currently implemented in C) -- types needs refactoring,
+ the rest is mostly done.
+
+- Decide on a case-by-case basis which features are to
+ be implemented using RPython or just general Python. -- moving target.
+
+- Implement a Python parser and bytecode compiler in Python.
+ -- we have soemthing, but it is not well integrated.
+
+- A partial Python implementation that passses 75% of the official
+ Python test suite that don't depend on extension modules.
+ -- write this test and then pass it.
+
+**The PyPy Translation**
+
+- Analysis and translation of the PyPy core into efficient low-level code
+ (C, Pyrex, Java, others). - moving target
+
+- Provide a Runtime Library for the translated versions
+ of PyPy. - not even started
+
+- Create a code analysis tool for a subset of the Python
+ language (RPython). Coordinate the definition of RPython
+ being the implementation language of the core.
+
+ - we can analyse functions, but not classes, modules, spaces etc.
+
+- Complete implementation of Python, conforming to the language
+ definition and passing all relevant tests of the official Python
+ test suite. -- global goal, which we will think more about when
+ it is very close to being done.
+
+**Stackless Integration + More Performance Hacks**
+
+- Identification and Implementation of Optimisations through modifications
+ of the Translator.
+
+- Enable Massive Parallelism in a Single Thread.
+
+- Provide support for real-time parallelism.
+
+- Allow Pickling of a Running Program.
+
+- Enhance the translator to support continuation passing
+ style by integrating technology from the Stackless project.
+
+- Implement the necessary runtime system to support massive parallelism.
+
+- Implement a single-threaded, pre-emptive scheduler with
+ priorities, complementing the OS threads.
+
+- Study approaches concerning code size vs. speed trade-offs.
+
+- Implement and compare different object layout and memory management
+ strategy or strategies.
+
+- Enhance multimethod dispatching.
+
+- Implement schemes of pointer tagging.
+
+- Create reports and merge the results back into the optimization effort.
+
+**Psyco Integration**
+
+- Outperform the state-of-the art (Psyco, Stackless).
+
+- Enhance PyPy to dynamically adapt to its run-time environment and
+ to the characteristics of the running program. Dramatically
+ increase speed by enabling Just-In-Time compilation and
+ specialization.
+
+- Address multiple processor architectures.
+
+- Apply and enhance techniques from the Psyco project. Promote parts
+ of the static translator to be used for run-time specialization.
+
+- Design and implement a back-end component for dynamically emitting
+ machine code for multiple processor architectures. Enable dynamic
+ foreign function calls.
+
+- Research optimisation heuristics for the Just-In-Time compiler.
+
+
+- A Just-In-Time compiler for PyPy !!! Outperform the
+ state-of-the art (Psyco, Stackless).
+
+**Embed in Specialized Hardware**
+
+if we get funding.
+
+**Implement Security, Distribution and Persistence**
+
+- Research and validate the flexibility of PyPy by building key middleware
+ features into the language itself.
+
+- Analyze and implement security models at the language level.
+
+- Implement the "RExec" restricted execution model. (It was removed
+ from the official Python implementation because it is false security.)
+
+- Analyze and implement distributed execution models at the language level.
+
+- Implement network-transparent execution of Python programs. (Typical
+ libraries require programs to be aware of the remote execution model.)
+
+- Analyze and implement persistence at the language level. -- talk to
+ Patrick O'Brien who is really hot for the idea.
+
+- Implement an orthogonally persistent object space for Python programs.
+ (Persistence is never fully orthogonal without advanced language support.)
+
+**PyPy A la Carte**
+
+- Develop tools that will allow to chose from available features and runtime
+ restrictions to build a custom PyPy version.
+
+- Analyse and integrate all results from the results of other workpackages.
+ This involves identifying and resolving conflicts which could prevent
+ a combintation of desired optimization goals.
+
+- Implement user interfaces to select features and runtime restrictions.
+ Provide a way to automatically build a PyPy custom version for different
+ memory, performance and extension requirements.
+
+- Make a build- and configuration tool that allows to build custom PyPy
+ versions suitable for specialized environments such as small or very large
+ computing devices.
+
More information about the Pypy-commit
mailing list