[pypy-svn] r3820 - pypy/trunk/doc/funding
hpk at codespeak.net
hpk at codespeak.net
Tue Apr 6 13:57:10 CEST 2004
Author: hpk
Date: Tue Apr 6 13:57:09 2004
New Revision: 3820
Added:
pypy/trunk/doc/funding/changelog-fulldiff-wp.txt
Log:
added the sorted fulldiff of all B6.7.wp*.txt files (diffed to the the first proposal version)
Added: pypy/trunk/doc/funding/changelog-fulldiff-wp.txt
==============================================================================
--- (empty file)
+++ pypy/trunk/doc/funding/changelog-fulldiff-wp.txt Tue Apr 6 13:57:09 2004
@@ -0,0 +1,1237 @@
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp01_management.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp01_management.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp01_management.txt (working copy)
+@@ -4,11 +4,11 @@
+ .. |wp| replace:: WP01
+ .. |start| replace:: 0
+ .. |p1| replace:: CM
+-.. |m1| replace:: 8
++.. |m1| replace:: 4
+ .. |p2| replace:: DFKI
+-.. |m2| replace:: 8
++.. |m2| replace:: 4
+ .. |p3| replace:: STRAKT
+-.. |m3| replace:: 8
++.. |m3| replace:: 4
+ .. |p4| replace:: |e|
+ .. |m4| replace:: |e|
+ .. |p5| replace:: |e|
+@@ -31,7 +31,7 @@
+
+ - collection and monitoring of monthly status reports,
+ - reporting to the EU project office
+-- organising meetings and sprints
++- organising project meetings and sprints
+ - maintaining contents and structure of the project web site.
+ The website will make heavy
+ use of collaborative tools like Wiki pages, a content management system,
+@@ -42,14 +42,19 @@
+
+ **Deliverables**
+
+-- D01.1 Collection and monitoring of reports
+-- D01.2 Report to EU
+-- D01.3 Organise meetings
+-- D01.4 Create and maintain internal web site
++- D01.1 Create QA plan for the project
++- D01.2 Collection and monitoring of reports (monthly, sprints, review workshop, evaluation)
++- D01.3 Report to EU
++- D01.4 Organise project meetings
++- D01.5 Organize sprints
++- D01.6 Create and maintain internal web site
++- D01.7 Create and maintain newsletter covering ongoing project process for external stakeholders
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
++A succesful and measurable delivery of every workpackage within the project scope.
++
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp02_maintenance.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp02_maintenance.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp02_maintenance.txt (working copy)
+@@ -1,10 +1,10 @@
+ .. include:: crossreferences.asc
+
+-.. |title| replace:: Infrastructure and tools
++.. |title| replace:: Infrastructure and Tools
+ .. |wp| replace:: WP02
+ .. |start| replace:: 0
+-.. |p1| replace:: PBF
+-.. |m1| replace:: 12
++.. |p1| replace:: Krekel
++.. |m1| replace:: 8
+ .. |p2| replace:: |e|
+ .. |m2| replace:: |e|
+ .. |p3| replace:: |e|
+@@ -22,21 +22,26 @@
+
+ **Objectives**
+
+-Supporting the PyPy project by producing and enhancing the tools.
++Supporting the PyPy project by producing and enhancing the tools for version
++control of source code, communication, dissemination and distribution of information.
++Collaborate with community to implement a powerful development environment
++for the various needs of the PyPy STREP.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Description of work**
+
+-Support the development process with reusing existing or developing
+-new debugging opensource tools.
++Support the development process with reusing and furthering
++existing or developing new debugging opensource tools.
+
+ - maintain the Subversion repository including notification
+ hooks and pre/post-commit restrictions.
+
+-- provide access over http/https and ssh server
++- provide access over http/https and ssh to the repository.
+
++- setup support for releasing different versions of PyPy
++
+ - build extensions for automatic document extraction
+
+ - maintain/setup mailing lists
+@@ -47,7 +52,7 @@
+
+ - maintain and enhance website infrastructure
+
+-- perform backups for all relevant information/code
++- perform backups for all relevant information and sourcecode
+
+ - setup a mirror repository which is kept up-to-date and which
+ can be used readonly in case of failure of the main repository.
+@@ -55,6 +60,9 @@
+ - Take care of regular repository backups. Design a strict backup
+ policy suitable for the project, and adhere to it.
+
++- setup and maintain mailing lists for development, consortium
++ and community communication.
++
+ - help with automated testing
+
+ .. include:: wp-tableend.asc
+@@ -64,12 +72,14 @@
+
+ - D02.1 configuring, installation of all development tools (subversion, apache2, mailman, backup, roundup, ...)
+
+-- D02.2 http-server to present runtime/introspection information aiding debugging and understanding of PyPy internals
++- D02.2 introduce and document a release scheme for PyPy versions
+
+-- D02.3 several website revisions
++- D02.3 http-server to present runtime/introspection information aiding debugging and understanding of PyPy internals
+
+-- D02.4 automated (unit-)testing framework with html/pdf reports
++- D02.4 several website revisions
+
++- D02.5 release automated (unit-)testing framework with html/pdf reports
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp03_synchronisation.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp03_synchronisation.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp03_synchronisation.txt (working copy)
+@@ -4,9 +4,9 @@
+ .. |wp| replace:: WP03
+ .. |start| replace:: 0
+ .. |p1| replace:: USH
+-.. |m1| replace:: 12
+-.. |p2| replace:: |e|
+-.. |m2| replace:: |e|
++.. |m1| replace:: 3
++.. |p2| replace:: Tismer
++.. |m2| replace:: 6
+ .. |p3| replace:: |e|
+ .. |m3| replace:: |e|
+ .. |p4| replace:: |e|
+@@ -48,7 +48,8 @@
+ existing C extensions.
+ Support a subset of the CPython API. Facilitate porting of
+ more involved extensions.
+-Adjust existing interface generators to target PyPy.
++Investigate adjusting existing interface generators (in particular SWIG, used e.g
++by wxPython, subversion bindings and other popular extensions) to target PyPy.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+@@ -56,11 +57,15 @@
+ **Deliverables**
+
+ - D03.1 A version of PyPy that supports a subset of the CPython API
+-- D03.2 A guide describing the porting of C extensions to PyPy
++- D03.2 A report on the feasibility of supporting full C-extensions compatibility
++- D03.3 A guide describing the porting of C extensions to PyPy
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
++PyPy is kept in sync with potential changes to Standard Python throughout
++the duration of the project.
++
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp04_core.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp04_core.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp04_core.txt (working copy)
+@@ -3,16 +3,16 @@
+ .. |title| replace:: The PyPy Core
+ .. |wp| replace:: WP04
+ .. |start| replace:: 0
+-.. |p1| replace:: PBF
+-.. |m1| replace:: 18
+-.. |p2| replace:: MPI
+-.. |m2| replace:: 9
++.. |p1| replace:: Strakt
++.. |m1| replace:: 6
++.. |p2| replace:: Tismer
++.. |m2| replace:: 4
+ .. |p3| replace:: DFKI
+-.. |m3| replace:: 2
++.. |m3| replace:: 4
+ .. |p4| replace:: Logilab
+-.. |m4| replace:: 4
+-.. |p5| replace:: |e|
+-.. |m5| replace:: |e|
++.. |m4| replace:: 5
++.. |p5| replace:: Krekel
++.. |m5| replace:: 3
+ .. |p6| replace:: |e|
+ .. |m6| replace:: |e|
+
+@@ -33,23 +33,60 @@
+
+ **Task 1**
+
+-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.
++Implement an interpreter that is able to accept the complete
++Python language specification, built according to the general
++modularity goals described in the body of the text.
++This task specifically includes research and implementation
++work leading to:
+
++- the Object Space interface.
++
++- a bytecode interpreter, accepting the standard CPython
++ bytecode format.
++
++- a "standard" object space implementing the core Python
++ objects' normal semantics.
++
++This task excludes the standard extension modules and the
++parser and bytecode compiler, which for the purpose of
++testing are borrowed from the underlying CPython interpreter
++on top of which our interpreter runs.
++
+ **Task 2**
+
+-Port the built-in Python library to PyPy
+-(functions, types and modules currently implemented in C).
+-Decide on a case-by-case basis which features are to
+-be implemented using RPython or just general Python.
++Port the standard Python "builtin" library:
+
++- types (there are some 100 of them);
++
++- built-in functions;
++
++- built-in modules;
++
++- other built-in objects, e.g. exception classes.
++
++Research and decide on a case-by-case basis how to implement
++each one within PyPy in a simple and efficient way. The common
++options are to either re-implement them inside the interpreter
++where appropriate, or to provide a pure Python replacement
++(which in some cases already exists and can be borrowed).
++
+ **Task 3**
+
+-Implement a Python parser and bytecode compiler in
+-Python.
++Complete the interpreter with a Python source parser and bytecode
++compiler.
+
++- Implement a Python parser and bytecode compiler in Python by
++ leveraging existing research and implementation work.
++
++- Design a flexible way to insert the compiler into the
++ code base, easing future experimentation with the syntax.
++
++- More generally, research and provide bridges between the interpreter
++ source and the code it interprets, allowing the interpreter to delegate
++ some of its "core" work to regular, interpreted, pure Python code.
++ Decide when it is appropriate to make this regular code visible to
++ language users (e.g. as modules, modifiable at run-time).
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+@@ -57,13 +94,25 @@
+
+ - D04.1 First partial Python Implementation running on top of CPython
+ - D04.2 Complete Python implementation running on top of CPython
++- D04.3 Report about the parser and bytecode compiler implementation
++- D04.4 Release PyPy as a research tool for experimental language
++ enhancements
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- M1 A partial Python implementation that passses 75% of the official
+- Python test suite that don't depend on extension modules.
++- A partial Python implementation that passes 90% of the official
++ Python test suite for core language features, i.e. not depending on
++ library-level C extension modules (the C part of the "standard
++ library").
+
++- Providing a substitute for the many existing C modules will be an
++ ongoing effort neccessarily involving the wider python communities.
++ By the end of Phases 2 and 3 of the project we expect to have the most
++ commonly used modules reimplemented in a flexible framework or - if
++ technically not feasible - matched with equivalent functionality in
++ PyPy.
++
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp05_translation.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp05_translation.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp05_translation.txt (working copy)
+@@ -4,15 +4,15 @@
+ .. |wp| replace:: WP05
+ .. |start| replace:: 0
+ .. |p1| replace:: STRAKT
+-.. |m1| replace:: 18
+-.. |p2| replace:: MPI
+-.. |m2| replace:: 9
++.. |m1| replace:: 15
++.. |p2| replace:: DFKI
++.. |m2| replace:: 2
+ .. |p3| replace:: USH
+-.. |m3| replace:: 9
+-.. |p4| replace:: PBF
+-.. |m4| replace:: 3
+-.. |p5| replace:: |e|
+-.. |m5| replace:: |e|
++.. |m3| replace:: 8
++.. |p4| replace:: Tismer
++.. |m4| replace:: 2
++.. |p5| replace:: Krekel
++.. |m5| replace:: 1
+ .. |p6| replace:: |e|
+ .. |m6| replace:: |e|
+
+@@ -34,43 +34,79 @@
+
+ **Task 1**
+
+-Create a code analysis tool for a subset of the Python
+-language (RPython). Coordinate the definition of RPython
+-with WP04_, being the implementation language of the core.
++At the core of this task lies the research and
++implementation of full "abstract interpretation" by reusing
++the unmodified PyPy interpreter with a special object space.
+
++- Create a code analysis tool for a subset of the Python
++ language (RPython).
++
++- Coordinate the definition of RPython with WP04_, being the
++ implementation language for most of the core.
++
++- Experiment with different ways of doing Abstract Interpretation.
++ Look for an Abstract Domain suitable for type inference.
++ Compare with published algorithms for type inference.
++ Select and implement the most appropriate solution in our
++ context.
++
+ **Task 2**
+
+ Produce a tool chain, capable of extracting the RPython
+-byte code from the core, translating it into low-level
+-code (C, ...), and compiling it.
+-Use the data gathered in Task 1 to drive the translation
+-process.
++bytecode from the core, translating it into low-level
++code (with C being the primary target) and compiling it.
+
++- Create a build process for statically generating and running
++ a low-level PyPy interpreter and object space.
++
++- Provide hooks into internals to alter translation aspects.
++
++- Research/experiment with a Java backend.
++
+ **Task 3**
+
+ In order to give a working environment to the translated RPython
+ program, build the low-level-specific runtime components of PyPy.
+ For the C PyPy runtime, important parts can be directly re-used from CPython.
++However, certain aspects such as memory management and threading models
++are to be implemented in a modular way.
+
++- Implement a minimal C-runtime for the translated PyPy
++
++- Integrate Memory Management, threadings models, and other aspects in a
++ modular way into both the C-runtime and the statically generated PyPy low
++ level code.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D05.1 Tool chain for translating and compiling arbitrary RPython programs
+-- D05.2 A compiled, self-contained version of PyPy
++- D05.1 Publish a report about translating a very-high-level description
++ of a language into low level code by building on "abstract interpretation" and
++ PyPy's separation of the interpreter and the object space in particular.
++- D05.2 Release a compiled, self-contained modular static version of PyPy.
++- D05.3 Publish solutions and open challenges regarding the implementation of
++ memory management/threading models as translation aspects.
++- D05.4 Publish an overview paper about the success of encapsulating low level
++ language aspects as well defined parts of the translation phase.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- Complete implementation of Python, conforming to the language
+- definition and passing all relevant[*]_ tests of the official Python test suite.
++- M1 Complete implementation of the Python language, conforming to the
++ language definition and passing all language compliancy [*]_ tests of
++ the official Python test suite.
+
+-.. [*] CPython contains some tests that depend on implementation
+- details. The exact line between a language feature and an implementation detail
+- might at times be hard to draw precisely, but in all cases this only concerns a
+- minorily of the tests (less than 10%).
++- Research Results on encapsulating low level language aspects as parts
++ of a translation from very-high-level into low-level code.
+
++.. [*] Some of the the many hundred CPython language tests actually test
++ implementation details like e.g. memory management. The exact line
++ between a language feature and an implementation detail is at times
++ hard to draw. In case of doubt the original CPython developers will
++ be consulted for clarification.
++
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp06_core_optimisations.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp06_core_optimisations.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp06_core_optimisations.txt (working copy)
+@@ -1,12 +1,12 @@
+ .. include:: crossreferences.asc
+
+-.. |title| replace:: Core Optimizations
++.. |title| replace:: Core Optimisations
+ .. |wp| replace:: WP06
+ .. |start| replace:: 9
+ .. |p1| replace:: USH
+-.. |m1| replace:: 15
+-.. |p2| replace:: MPI
+-.. |m2| replace:: 9
++.. |m1| replace:: 12
++.. |p2| replace:: |e|
++.. |m2| replace:: |e|
+ .. |p3| replace:: |e|
+ .. |m3| replace:: |e|
+ .. |p4| replace:: |e|
+@@ -35,8 +35,13 @@
+
+ Provide alternative implementations of the core objects,
+ such as dictionaries, strings and integers, with different
+-trade-offs (speed, size, limitations).
++trade-offs (speed, size, limitations). Collect existing
++techniques from the literature and research new ones.
+
++Identify other performance-critical parts of the PyPy source
++and provide alternative implementations (new or from the
++literature).
++
+ **Task 2**
+
+ Run performance tests on the above, comparing the different
+@@ -47,9 +52,10 @@
+
+ **Task 3**
+
+-Merge the results back into the optimization effort.
++Merge the results back into the optimisation effort.
+ Where necessary, define heuristics to select implementations
+ and to switch between them, depending on evolving runtime conditions.
++Collect existing heuristics from the literature and research new ones.
+ Report on the results and submit as publications.
+
+ .. include:: wp-tableend.asc
+@@ -57,14 +63,17 @@
+
+ **Deliverables**
+
+-- D06.1 Publication of statistics
+-- D06.2 Publication of novel heuristic techniques
++- D06.1 Integrate the first core optimisation results into the PyPy core
++ at the end of phase 2
++- D06.2 Publication and analysis of performance statistics for different
++ implementations of core objects
++- D06.3 Publication of novel heuristic techniques
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- Better performance for all non-trivial executed programs
++- Measurably better performance for non-trivial programs.
+
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp07_translator_optimisations.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp07_translator_optimisations.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp07_translator_optimisations.txt (working copy)
+@@ -1,14 +1,14 @@
+ .. include:: crossreferences.asc
+
+-.. |title| replace:: Translator Optimizations
++.. |title| replace:: Translator Optimisations
+ .. |wp| replace:: WP07
+ .. |start| replace:: 9
+-.. |p1| replace:: PBF
+-.. |m1| replace:: 22
+-.. |p2| replace:: |e|
+-.. |m2| replace:: |e|
+-.. |p3| replace:: |e|
+-.. |m3| replace:: |e|
++.. |p1| replace:: Tismer
++.. |m1| replace:: 9
++.. |p2| replace:: Krekel
++.. |m2| replace:: 4
++.. |p3| replace:: USH
++.. |m3| replace:: 3
+ .. |p4| replace:: |e|
+ .. |m4| replace:: |e|
+ .. |p5| replace:: |e|
+@@ -25,7 +25,7 @@
+ Identification and Implementation of Optimisations
+ through modifications of the Translator.
+ Enable Massive Parallelism in a Single Thread.
+-Provide support for real-time parallelism.
++Provide support for soft-real-time parallelism.
+ Allow Pickling of a Running Program.
+
+ .. include:: wp-tableend.asc
+@@ -35,37 +35,58 @@
+
+ **Task 1**
+
+-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.
++Implement memory-efficient massive parallelism complementing
++the threads based on C stack switching provided by OSes or
++semi-OS-independent libraries.
+
++- Enhance the translator to support continuation passing
++ style by integrating technology from the Stackless project.
++
++- Implement the necessary runtime system to support
++ massive parallelism Minimize the resource footprint of
++ each "microthread".
++
++- To complement explicit (application-defined) scheduling,
++ implement a pre-emptive scheduler at the bytecode level,
++ with priorities, distributing "microthreads" to one or a
++ small number of OS threads.
++
++- Implement pickling a running program or a selected microthread
++ (i.e. serializing continuations).
++
+ **Task 2**
+
+-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.
+-As of general interest, submit the reports as publication.
++Use PyPy as a research tool for general optimisations.
+
++- Study approaches concerning code size vs. speed trade-offs.
++
++- Implement and compare different object layout and memory management
++ strategies. Implement schemes of pointer tagging.
++
++- Enhance multimethod dispatching and other places where hand-crafted
++ optimisations can help the translator.
++
++- Create reports and merge the results back into the optimisation effort.
++ As of general interest, submit the reports as publication.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D07.1 A version of PyPy that supports Real-time massive parallelism
+-- D07.2 Report on optimisation results submitted as publications
++- D07.1 Release a version of PyPy that supports automatic or explicitly
++ scheduled massive parallelism
++- D07.2 Publish optimisation results
++- D07.3 Report about practical usages of massive parallelism and program pickling
++- D07.4 Report on approaches for memory management, object implementations
++ and other translator aspects for high performance PyPy
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- M3 High performance PyPy, together with WP08_. Outperform the
++- M2 High performance PyPy, together with WP08_. Outperform the
+ state-of-the art (Psyco, Stackless).
+
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp08_dynamic_optimisation.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp08_dynamic_optimisation.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp08_dynamic_optimisation.txt (working copy)
+@@ -1,14 +1,14 @@
+ .. include:: crossreferences.asc
+
+-.. |title| replace:: Dynamic Optimizations
++.. |title| replace:: Dynamic Optimisations
+ .. |wp| replace:: WP08
+ .. |start| replace:: 9
+ .. |p1| replace:: STRAKT
+-.. |m1| replace:: 18
+-.. |p2| replace:: MPI
+-.. |m2| replace:: 9
+-.. |p3| replace:: PBF
+-.. |m3| replace:: 9
++.. |m1| replace:: 17
++.. |p2| replace:: Tismer
++.. |m2| replace:: 2
++.. |p3| replace:: USH
++.. |m3| replace:: 6
+ .. |p4| replace:: |e|
+ .. |m4| replace:: |e|
+ .. |p5| replace:: |e|
+@@ -34,34 +34,63 @@
+
+ **Task 1**
+
+-Apply and enhance techniques from the Psyco project. Promote parts
+-of the static translator to be used for run-time specialization.
++Make a Just-In-Time compiler for the PyPy framework.
+
++- Apply and enhance techniques from the Psyco project.
++ Combine them with the static type inference techniques implemented
++ in WP05_.
++
++- Leverage the static translator to generate instrumenting and
++ self-specializing code for all the parts of the PyPy interpreter
++ and standard Object Space that support possibly time-critical
++ application code.
++
++- Implement the run-time management environment to support the JIT
++ compiler (in-memory machine code and supporting data structures,
++ profiling and statistics collection, etc).
++
+ **Task 2**
+
+-Design and implement a back-end component for dynamically emitting
+-machine code for multiple processor architectures. Enable dynamic
+-foreign function calls.
++Make the JIT compiler flexible and portable.
+
++- Enable dynamic foreign function calls. Allow language users to
++ use them in their applications.
++
++- Design and implement a back-end component for dynamically emitting
++ machine code for multiple processor architectures.
++
++- Investigate and research a generic low-level virtual machine and
++ target it as a cross-platform back-end.
++
+ **Task 3**
+
+ Research optimisation heuristics for the Just-In-Time compiler.
+-Coordinate with WP06_.
+
++- Research by comparing existing and novel techniques for JIT
++ compilers heuristics, management issues, etc.
++
++- Coordinate with WP06_.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D08.1 A processor back-end supporting Intel(tm) i386 and PowerPC
+-- D08.2 A Just-In-Time compiler for PyPy
++- D08.1 A processor back-end supporting Intel(tm) i386
++- D08.2 A processor back-end supporting PowerPC
++- D08.3 A portable low-level virtual machine and a corresponding processor back-end
++- D08.4 Release A Just-In-Time compiler for PyPy
++- D08.5 Publish a report about the new JIT architecture, its perfomance and how its
++ techniques can be applied to languages other than Python/PyPy
++- D08.6 Publish a research report comparing JIT techniques
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- M3 High performance PyPy, together with WP07_. Outperform the
+- state-of-the art (Psyco, Stackless).
++- M2 High performance PyPy, together with WP07_. Outperform the
++ state-of-the art (Psyco, Stackless). Verify the expectation
++ of reaching half the speed of C for purely algorithmic code.
+
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp09_search_and_logic.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp09_search_and_logic.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp09_search_and_logic.txt (working copy)
+@@ -40,19 +40,35 @@
+
+ **Task 2**
+
+-This logic programming enabled Python interpreter will then be
+-used to further develop the projects related to Semantic Web
+-applications that are on-going at Logilab and DFKI.
++We will investigate alternative implementation techniques to improve the
++efficiency of the search component. These will build on ideas from
++constraint languages such as Oz/Mozart and, where appropriate, will take
++advantage of the new avenues for implementation opened up by the object
++space architecture.
+
++**Task 3**
++
++This logic programming enabled Python interpreter will then be used to
++support frameworks for Semantic Web applications that are on-going at
++Logilab and DFKI and which are related to RDF-based approaches to
++knowledge representation.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D09.1 Implementation of constraint satisfaction engine and inference engine in PyPy
++- D09.1 Initial implementation of constraint satisfaction engine and
++ inference engine based on Logilab's library.
+
+-- D09.2 Assessment of benefits obtained from using PyPy over current tools to further develop Semantic Web projects at Logilab and DFKI
++- D09.2 Improved implementation of constraint satisfaction engine and
++ inference engine in PyPy. Benchhmarks will be provided, to measure
++ performance improvements.
+
++- D09.3 Assessment of benefits obtained from using PyPy over current tools
++ to further develop Semantic Web projects at Logilab and DFKI, accompanied
++ by appropriate code examples.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp10_aspects_and_contracts.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp10_aspects_and_contracts.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp10_aspects_and_contracts.txt (working copy)
+@@ -38,15 +38,47 @@
+ available from Logilab, to better integrate with the language
+ and greatly simplify the design and enhance the performance.
+
++Aspect-Oriented Programming is a technique that improves on
++Object-Oriented Programming by facilitating the division of
++concerns in the implementation of classes. Some behaviors
++may be made into aspects that are later weaved with the existing
++implementation of classes for which one wants to add the aspect's
++behavior. An example would be a Logger aspect weaved with a
++class to provide logging functionnality without the class
++having any knowledge of logging.
++
++Logilab already published an implementation of aspects for Python,
++but it is limited by the language in the sense that weaving code consists
++of wrapping methods instead of actually producing new code or
++modifying existing code. This adds overhead and other constraints
++that would be removed with a PyPy-based implementation. Once the
++equivalent of Logilab's aspect library will be implemented in PyPy,
++further progress will be made using articles and research tools from
++wwww.aosd.net, the aspect-oriented software development community and
++research portal.
++
+ **Task 2**
+
+-This aspect enabled interpreter will be used to offer
+-design-by-contract facilities as seen in the Eiffel programming
+-language and the current aspect-oriented library.
+-This will also allow us to implement advanced static
+-checking and code correctness checking capabilities, thus furthering
+-the work done with the pychecker and pylint tools.
++Implement design-by-contract using the aspect-enabled interpreter.
+
++Design-by-contract, as first exhibited by the Eiffel object-oriented
++programming language, can be implemented as a specific aspect as
++was done by Logilab in its aspect library. A PyPy-based implementation
++would allow for further experiments in terms of syntax improvements
++on the contract definition, but also better performance.
++
++**Task 3**
++
++Implement advanced static checking and code correctness checking capabilities,
++thus furthering the work done with the pychecker and pylint tools.
++
++Static checking tools for Python already exist, but still have difficulties
++at the moment when it comes to type checking and inference. The implementation
++of static checking in PyPy will benefit from PyPy's runtime optimisation
++mechanism based for part on type inference, but also from articles describing
++the implementation of type checking and type inference for other languages
++and from existing implementations of pychecker and Logilab's pylint tools.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+@@ -54,8 +86,10 @@
+
+ - D10.1 Implementation of aspect-oriented programming capabilities in PyPy
+
+-- D10.2 Implementation of design-by-contract and advanced static checking capabilities
++- D10.2 Implementation of design-by-contract in PyPy
+
++- D10.3 Implementation of advanced static checking capabilities
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp11_embed_in_hardware.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp11_embed_in_hardware.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp11_embed_in_hardware.txt (working copy)
+@@ -4,7 +4,7 @@
+ .. |wp| replace:: WP11
+ .. |start| replace:: 9
+ .. |p1| replace:: Logilab
+-.. |m1| replace:: 9
++.. |m1| replace:: 5
+ .. |p2| replace:: CM
+ .. |m2| replace:: 1
+ .. |p3| replace:: |e|
+@@ -22,17 +22,17 @@
+
+ **Objectives**
+
+-The capacity of this interpreter to be assembled from basic modules
+-will enable us to build a minimal custom version that suits embedded
+-systems. This embedded version will be validated on existing hardware.
+-
+-Axis Communications (http://www.axis.com/) of Lund, Sweden has
+-promised to provide suitable hardware for the validation. Axis is a
++Axis Communications (http://www.axis.com/) of Lund, Sweden have shown an interest in
++how PyPy could be implemented on their hardware and have specifically asked for information
++regarding this part of the PyPy project (WP13).Axis is a
+ world leading company in printer servers and network video products.
+ Change Maker, who have an ongoing relation with the company will be an
+-interface between Axis and the Logilab developers who will make the
+-actual implementation.
++interface between Axis.
+
++The objective is to write a specific report targeting embedded software companies with the results from WP13_
++(usage of PyPy custom version and the build- and configuration tool).This report will showcase
++usage with Axis hardware as an example.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+@@ -40,29 +40,24 @@
+
+ **Task 1**
+
+-Coordinate with WP13 to build a minimal interpreter suitable for embedding
+-on devices with restricted resources.
++Write report to Axis showcasing usage of PyPy custom version.
++Report and analyse feedback from Axis regarding content of report.
++Communicate to Axis all reports and build tools developed in WP13_.
+
+-**Task 2**
+-
+-Choose hardware from Axis Communication.
+-Validate interpreter on existing hardware.
+-
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D11.1 Minimal interpreter suitable for embedded devices
++- D11.1 Written report to Axis Communication
++- D11.2 Documented feedback from Axis Communication
+
+-- D11.2 Evaluation report to Axis Communication on testresults of performance of minimal interpreter on Axis hardware
+-
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- Prototype program running on embedded hardware.
+-- Accepted evaluation report from Axis Communication on evaluation results.
++- Dissemination and feedback on the PyPy custom version and the build- and configuration tool
++ from Axis Communication, a target stakeholder within the embedded sector.
+
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp12_validations.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp12_validations.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp12_validations.txt (working copy)
+@@ -3,10 +3,10 @@
+ .. |title| replace:: Implement Security, Distribution and Persistence
+ .. |wp| replace:: WP12
+ .. |start| replace:: 18
+-.. |p1| replace:: PBF
+-.. |m1| replace:: 12
+-.. |p2| replace:: STRAKT
+-.. |m2| replace:: 12
++.. |p1| replace:: STRAKT
++.. |m1| replace:: 10
++.. |p2| replace:: USH
++.. |m2| replace:: 3
+ .. |p3| replace:: |e|
+ .. |m3| replace:: |e|
+ .. |p4| replace:: |e|
+@@ -22,8 +22,11 @@
+
+ **Objectives**
+
+-Research and validate the flexibility of PyPy by building key middleware
+-features into the language itself.
++Research and validate the flexibility and accessibility of PyPy by building
++experimental prototypes of key middleware features into the language itself,
++namely, security, remote execution, and orthogonal persistence.
++Publish reports outlining the novel future directions opened up by the PyPy
++architecture, building on the experimental support provided.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+@@ -32,38 +35,52 @@
+
+ **Task 1**
+
+-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 was too hard to maintain.)
++Build an experimental prototype on security by controlling the individual
++operations performed by a non-trusted program.
++Coordinate with WP14_ and consult with researchers from the IBM Zurich
++Research Lab in particular as to which level of control is needed.
++Report on the novel future directions.
+
+ **Task 2**
+
+-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.)
++Build support for transparent remote proxying at the language level.
++Look up existing libraries. Typical libraries like the Zope Enterprise
++Objects (ZEO) or CORBA/Java RMI models require programs to be aware of
++the remote execution model; by contrast, experimentally build the support
++for an equivalent functionality directly into the language.
++Report on the novel future directions.
+
+ **Task 3**
+
+-Analyze and implement persistence at the language level. Implement an
+-orthogonally persistent object space for Python programs. (Persistence
+-is never fully orthogonal without advanced language support.)
++Build persistence at the language level by implementing an
++orthogonally persistent object space for Python programs.
++Look up existing libraries. Persistence is never fully orthogonal without
++advanced language support, as witnessed by libraries like the Zope Database
++(ZODB); we will build an experimental object space that can provide full
++orthogonally. Report on the novel future directions.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D12.1 A PyPy version which supports secure restricted execution of arbitrary Python programs
++- D12.1 An experimental prototype supporting security through control of
++ individual operations at the language level.
+
+-- D12.2 A PyPy version which supports distributed execution of arbitrary Python programs
++- D12.2 An experimental prototype supporting transparent remote proxying
++ at the language level.
+
+-- D12.3 A PyPy version which supports persistent execution of arbitrary Python programs
++- D12.3 An experimental prototype supporting orthogonal persistence
++ at the language level.
+
++- D12.4 Publish a report outlining the novel future directions opened up by
++ the PyPy architecture in middleware features.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- M4 Validation of the flexibility of PyPy with respect to key middleware requirements
++- M3 Validation of the flexibility of PyPy with respect to key middleware requirements
+
+ .. include:: wp-tableend.asc
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp13_integration_config.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp13_integration_config.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp13_integration_config.txt (working copy)
+@@ -3,12 +3,12 @@
+ .. |title| replace:: Integration and Configuration
+ .. |wp| replace:: WP13
+ .. |start| replace:: 18
+-.. |p1| replace:: MPI
+-.. |m1| replace:: 12
+-.. |p2| replace:: PBF
+-.. |m2| replace:: 6
+-.. |p3| replace:: |e|
+-.. |m3| replace:: |e|
++.. |p1| replace:: Krekel
++.. |m1| replace:: 4
++.. |p2| replace:: Logilab
++.. |m2| replace:: 4
++.. |p3| replace:: DFKI
++.. |m3| replace:: 4
+ .. |p4| replace:: |e|
+ .. |m4| replace:: |e|
+ .. |p5| replace:: |e|
+@@ -22,10 +22,9 @@
+
+ **Objectives**
+
+-Integrate research and the source code from wp06_, wp07_, wp08_, wp09_ and wp10_ into
+-a consistent code base. Analyse and fix remaining problems. Develop tools that will
+-allow to chose from available features and runtime restrictions to build
+-a custom PyPy version.
++Integrate research and the source code from wp06_, wp07_, wp08_, wp09_ and wp10_.
++Analyse remaining problems. Develop tools that will allow to chose from available
++features and runtime restrictions to build a custom PyPy version.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+@@ -35,30 +34,41 @@
+ **Task 1**
+
+ 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.
+
++- Provide a consistent and combined code base for translation aspects,
++ the JIT-compiler and language extensions
++
++- assert benefits and open problems regarding interaction between
++ the different translation and language extension aspects.
++
++- write a report about the combined PyPy code base.
++
+ **Task 2**
+
+ 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.
+
++- Provide a way to automatically build a PyPy custom version for different
++ memory, performance and extension requirements.
++
++- Research and select defaults for environments with large and with
++ small amounts of system resources.
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+-- D13.1 A release of PyPy with all available optimization and runtime features
++- D13.1 A release of PyPy with all available optimisation and runtime features
+ - D13.2 A build- and configuration tool that allows to build custom PyPy versions suitable for specialized environments like small or very large computing devices
++- D13.3 A publication about the combined PyPy code base and its
++ customization possibilities.
+
+-
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-- A stable release of PyPy enabling a wide range of users to
++- A stable release of PyPy enabling a wide range of language users to
+ experiment and develop using it as a flexible and highly-optimizable
+ Python implementation.
+
+
+Index: /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp14_documentation.txt
+===================================================================
+--- /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp14_documentation.txt (revision 3000)
++++ /var/autofs/net/home/hpk/projects/pypy/doc/funding/B6.7.wp14_documentation.txt (working copy)
+@@ -4,8 +4,8 @@
+ .. |wp| replace:: WP14
+ .. |start| replace:: 0
+ .. |p1| replace:: CM
+-.. |m1| replace:: 12
+-.. |p2| replace:: PBF
++.. |m1| replace:: 11
++.. |p2| replace:: Martelli
+ .. |m2| replace:: 12
+ .. |p3| replace:: |e|
+ .. |m3| replace:: |e|
+@@ -22,10 +22,10 @@
+
+ **Objectives**
+
+-Providing ongoing documentation throughout the whole project.
+-Supporting the dissemination process at all levels. Analyse and document
+-"Sprint driven development" and the agile development methods of the project.
+-Report to the Commission.
++Providing ongoing documentation throughout the whole project.
++Supporting the dissemination process at all levels. Analysis of "Sprint
++driven development" and the agile development methods of the project.
++Report to the Commission in collaboration with the PyPy consortium.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+@@ -34,41 +34,91 @@
+
+ **Task 1**
+
+-Support the dissemination process at all levels. Make sure that
+-all "sprints" are properly reported and archived for public access.
+-In cooperation with all other participants, present a detailed joint report
+-to the commission about agile methodologies employed by the project.
++Support the dissemination process at all levels.
+
++- Write, disseminate and archive reports about each development sprint and
++ produce newsletter
++
++- Gathering feedback from participants, present a detailed joint report
++ about agile methodologies employed by the project.
++
++- Ensure that all reports and publications that are being produced as part of
++ workpackages 1-14 are effectively disseminated to
++ python and non-python communities.
++
+ **Task 2**
+
+-Provide longer, detailed reports to the commision and scientific committees
+-advising the Commission on technical issues.
++Provide longer, detailed reports to the commission and scientific committees
++advising the Commission on technical and agile development issues.
+
+ **Task 3**
+
+ When the advancement of the project warrants it, publish "popularization"
+ articles and tutorial materials to help other practitioners of software
+-development to make practical use of the project's results. Diagrams and
+-schematics will be provided to illustrate fundamental concepts, as appropriate
+-to the audience and the subject matter.
++development to make practical use of the project's results.
+
++- Diagrams and schematics will be provided to illustrate fundamental
++ concepts, as appropriate to the audience and the subject matter.
++
++- Tutorials will be published on the web site and disseminated to
++ various communities
++
++- Utilizing tools from WP02_ a guide through the source code of PyPy
++ will be provided.
++
++**Task 4**
++
++Prepare and organize workshops with special interested groups at all
++levels (the PyPy interpreter, the build toolchain to create custom
++interpreters, third-party language extensions or alternate languages,
++and theoretical aspects). Take part in conferences.
++Interact with various python and non-python communities.
++
++- For example, Reseachers at the IBM Zurich Resarch lab have shown
++ interest in our work and volunteered to discuss and peer-review our
++ published results. We plan to present our security findings during a
++ joint workshop and solicit non-confidential input from the research
++ group on Identity Management and Privacy (Dr. Matthias Schunter).
++
++- Generally reach out to companies and research groups inside and
++ outside the python community by organizing workshops to disseminate
++ project results and gather feedback with respect to our novel language
++ architecture. 2 specific workshops will be arranged in this manner
++ (during phase 1 and at the end of phase 3).
++
++- organize Workshops during the course of the PyPy STREP to allow for
++ adaptation of detail planning on specific feedback issues from
++ specific target groups (industrial companies, game developing
++ companies and SME:s).
++
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Deliverables**
+
+ - D14.1 Report about Milestone/Phase 1
+-- D14.2 Report about Milestone/Phase 2
+-- D14.3 Report about Milestone/Phase 3
+-- D14.4 Documentation of the development process and "Sprint driven development" in particular
++- D14.2 Tutorials and a guide through the PyPy source code
++- D14.3 Report about Milestone/Phase 2
++- D14.4 Report about Milestone/Phase 3
++- D14.5 Documentation of the development process and "Sprint driven development" in particular
++- D14.6 Organize four domain specific Workshops during phase 3 with various business and research
++ communities. Reports about these workshops.
++- D14.7 Arrange two nondomain specific workshops disseminating development process
++ and results (during phase 1 and phase 3)
++- D14.8 Participation of PyPy researchers and developers in conferences
++ throughout the project process.
+
+ .. include:: wp-tableend.asc
+ .. include:: wp-tablebegin.asc
+
+ **Milestones and Expected Result**
+
+-Good documentation and dissemination. A better understanding how
+-research and development can be accelerated through agile methodologies
+-and "Sprint Driven Development" and how the PyPy project achieved its goals.
++Good documentation and dissemination to multiple business and research
++communities through promotion, workshops and conference.
++Useful feedback on the practical flexibility of our language research efforts.
+
++A better understanding how research and development can be accelerated
++through agile methodologies and "Sprint Driven Development" and how the
++PyPy project achieved its goals.
++
+ .. include:: wp-tableend.asc
More information about the Pypy-commit
mailing list