[pypy-svn] r49873 - pypy/extradoc/planning/roadmap
antocuni at codespeak.net
antocuni at codespeak.net
Mon Dec 17 16:16:25 CET 2007
Author: antocuni
Date: Mon Dec 17 16:16:24 2007
New Revision: 49873
Added:
pypy/extradoc/planning/roadmap/goal_jython_ironpython_replacement.txt (contents, props changed)
pypy/extradoc/planning/roadmap/task_bytecode_compiler.txt (contents, props changed)
pypy/extradoc/planning/roadmap/task_external_objects.txt (contents, props changed)
pypy/extradoc/planning/roadmap/task_integration_vm.txt (contents, props changed)
pypy/extradoc/planning/roadmap/task_jit_ootype.txt (contents, props changed)
pypy/extradoc/planning/roadmap/task_oothreading.txt (contents, props changed)
pypy/extradoc/planning/roadmap/task_stdlib_modules.txt (contents, props changed)
Modified:
pypy/extradoc/planning/roadmap/task_catch_up_with_2_x.txt
pypy/extradoc/planning/roadmap/task_documentation.txt
pypy/extradoc/planning/roadmap/task_pervasive_benchmarking.txt
pypy/extradoc/planning/roadmap/task_pervasive_testing.txt
pypy/extradoc/planning/roadmap/task_separate_compilation.txt
pypy/extradoc/planning/roadmap/task_wrapper_generator.txt
Log:
- add a goal a the relative tasks about being a competitor to jython
and ironpython
- use a consistent character to underline task titles
Added: pypy/extradoc/planning/roadmap/goal_jython_ironpython_replacement.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/goal_jython_ironpython_replacement.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,27 @@
+This is a roadmap for the specific target of
+
+"Making PyPy a viable replacement for Jython and/or IronPython"
+
+Currently, the biggest advantage of pypy-jvm and pypy-cli over Jython
+and IronPython is compliance to CPython, which is already better than
+their counterparts. However, a lot of work has still to be done before
+they can be used in a production environment.
+
+Speed-wise, pypy-jvm is already slightly faster than Jython; however,
+pypy-cli is about 6x-10x slower than IronPython.
+
+.. include:: task_external_objects.txt
+
+.. include:: task_integration_vm.txt
+
+.. include:: task_manual_optimizations.txt
+
+.. include:: task_jit_ootype.txt
+
+.. include:: task_bytecode_compiler.txt
+
+.. include:: task_oothreading.txt
+
+.. include:: task_separate_compilation.txt
+
+.. include:: task_stdlib_modules.txt
Added: pypy/extradoc/planning/roadmap/task_bytecode_compiler.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/task_bytecode_compiler.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,25 @@
+Compile Python sources into JVM/.NET bytecode
+=============================================
+
+Status:
+
+ - pypy-jvm and pypy-cli interprets python bytecode
+
+Todo:
+
+ - make pypy-jvm and pypy-cli emitting native bytecode instead of
+ interpreting python bytecode;
+
+ - the plan is to reuse part of the JIT machinery to automatically
+ convert the Python interpreter into a compiler
+
+Expected outcome:
+
+ - compilation to native bytecode should give a speedup around 2/2.5x;
+
+ - emitting native bytecode is needed for doing some tasks that are
+ possible with Jython/IronPython (i.e., writing applets)
+
+Dependencies:
+
+ - `Port the JIT to ootype`_
Modified: pypy/extradoc/planning/roadmap/task_catch_up_with_2_x.txt
==============================================================================
--- pypy/extradoc/planning/roadmap/task_catch_up_with_2_x.txt (original)
+++ pypy/extradoc/planning/roadmap/task_catch_up_with_2_x.txt Mon Dec 17 16:16:24 2007
@@ -1,5 +1,5 @@
Catch up with CPython 2.5/2.6
------------------------------
+=============================
status:
- PyPy already implements a few features of 2.5 (PEP 309, PEP 338, PEP 341, PEP 357,
Modified: pypy/extradoc/planning/roadmap/task_documentation.txt
==============================================================================
--- pypy/extradoc/planning/roadmap/task_documentation.txt (original)
+++ pypy/extradoc/planning/roadmap/task_documentation.txt Mon Dec 17 16:16:24 2007
@@ -1,5 +1,5 @@
PyPy Documentation
------------------------
+==================
status:
Added: pypy/extradoc/planning/roadmap/task_external_objects.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/task_external_objects.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,24 @@
+Refactor RPython external objects interface
+===========================================
+
+Status:
+
+ - RPython programs compiled with gencli can make limited use of .NET
+ classes; it is possible to test them without translation by using
+ Python for .NET.
+
+ - genjvm does not support external objects at all
+
+Todo:
+
+ - refactor the code in gencli and make it shareable with genjvm
+
+ - add support for external objects to genjvm; the idea is to make
+ programs testable by using JPype_ or something similar
+
+Expected outcome:
+
+ - ability to use JVM classes from RPython programs
+
+.. _JPype: http://jpype.sourceforge.net/
+
Added: pypy/extradoc/planning/roadmap/task_integration_vm.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/task_integration_vm.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,30 @@
+Integration with the hosting virtual machine
+============================================
+
+Status:
+
+ - pypy-cli can access and use .NET classes, through the clr module,
+ but in a limited way. Advanced features such as delegates and
+ inheritance from .NET classes are not supported yet.
+
+ - pypy-jvm cannot access JVM classes.
+
+Todo:
+
+ - improve the clr module
+
+ - refactor it so that most of the code can be shared between pypy-cli
+ and pypy-jvm
+
+ - create the equivalent for the JVM
+
+
+Expected outcome:
+
+ - ability to access to JVM and .NET classes as Jython and IronPython
+ users expect
+
+
+Dependencies:
+
+ - `Refactor RPython external objects interface`_
Added: pypy/extradoc/planning/roadmap/task_jit_ootype.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/task_jit_ootype.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,16 @@
+Port the JIT to ootype
+======================
+
+Status:
+
+ - The JIT works only for low level backends
+
+Todo:
+
+ - port the hintannotator/timeshifter to ootype
+
+ - add new JIT backends for the JVM and/or the CLI
+
+Expected outcome:
+
+ - pypy-jvm-jit and pypy-cli-jit
Added: pypy/extradoc/planning/roadmap/task_oothreading.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/task_oothreading.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,19 @@
+Make pypy-jvm and pypy-cli multithreaded
+========================================
+
+Status:
+
+ - pypy-jvm and pypy-cli don't support multiple threads
+
+Todo:
+
+ - add the relevant locks to the Python interpreter in order to make
+ pypy-jvm and pypy-cli thread-safe;
+
+ - this task would be probably also useful for implementing a GIL-free
+ threading model for low level backends;
+
+Expected outcome:
+
+ - ability to use use free threading in pypy-jvm and pypy-cli
+
Modified: pypy/extradoc/planning/roadmap/task_pervasive_benchmarking.txt
==============================================================================
--- pypy/extradoc/planning/roadmap/task_pervasive_benchmarking.txt (original)
+++ pypy/extradoc/planning/roadmap/task_pervasive_benchmarking.txt Mon Dec 17 16:16:24 2007
@@ -1,6 +1,6 @@
Pervasive Benchmarking
-------------------------
+======================
status:
Modified: pypy/extradoc/planning/roadmap/task_pervasive_testing.txt
==============================================================================
--- pypy/extradoc/planning/roadmap/task_pervasive_testing.txt (original)
+++ pypy/extradoc/planning/roadmap/task_pervasive_testing.txt Mon Dec 17 16:16:24 2007
@@ -1,5 +1,5 @@
Pervasive Testing
-------------------------
+=================
status:
- automated nightly test runs of pypy tests on 32bit linux machine (wyvern)
Modified: pypy/extradoc/planning/roadmap/task_separate_compilation.txt
==============================================================================
--- pypy/extradoc/planning/roadmap/task_separate_compilation.txt (original)
+++ pypy/extradoc/planning/roadmap/task_separate_compilation.txt Mon Dec 17 16:16:24 2007
@@ -1,4 +1,3 @@
-
Separate compilation
====================
Added: pypy/extradoc/planning/roadmap/task_stdlib_modules.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/planning/roadmap/task_stdlib_modules.txt Mon Dec 17 16:16:24 2007
@@ -0,0 +1,34 @@
+Implementing missing standard modules
+=====================================
+
+Status:
+
+ - A lot of standard modules such as ``socket`` don't work on top of
+ pypy-jvm and pypy-cli
+
+Todo:
+
+ - Implement relevant modules using the API offered by the hosting
+ virtual machine (either at app-level or interp-level). E.g.,
+ implement ``socket`` on top of JVM/.NET sockets.
+
+ - Maybe it would be possible to reuse existing modules from Jython_
+ and FePy_.
+
+Expected outcome:
+
+ - Having a better coverage of the Python standard library
+
+Dependencies:
+
+ - `Separate compilation`_
+
+ - `Refactor RPython external objects interface`_
+
+ - `Integration with the hosting virtual machine`_
+
+
+.. _Jython: http://www.jython.org/
+
+.. _FePy: http://fepy.sourceforge.net/
+
Modified: pypy/extradoc/planning/roadmap/task_wrapper_generator.txt
==============================================================================
--- pypy/extradoc/planning/roadmap/task_wrapper_generator.txt (original)
+++ pypy/extradoc/planning/roadmap/task_wrapper_generator.txt Mon Dec 17 16:16:24 2007
@@ -4,9 +4,3 @@
To make it simpler to integrate C libraries with PyPy, we should support
at least one of the wrapper generators that are already in use in the
Python community.
-
-Google uses Swig heavily, so in a scenario where Google pays for some
-development, it would be natural to do Swig. Once PyPy gets traction
-we expect proponents of other tools to make their own ports.
-
-
More information about the Pypy-commit
mailing list