Differences between revisions 13 and 52 (spanning 39 versions)
Revision 13 as of 2008-02-11 05:58:35
Size: 3926
Comment:
Revision 52 as of 2013-02-06 23:21:20
Size: 2379
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
'''Contents''' [[TableOfContents]] = Jython Roadmap =
Line 3: Line 3:
= Alpha =
Line 5: Line 4:
 * Generator expressions
 * Function/method decorators
 * [http://www.python.org/peps/pep-0308.html PEP 308]: Conditional expressions
 * [http://www.python.org/dev/peps/pep-0343/ PEP 343]: 'with' statement
 * New generator features
 * [http://www.python.org/dev/peps/pep-0341/ PEP 341]: Unified try/except/finally
== Position Now ==
Line 12: Line 6:
== Done ==
 * yield is always a keyword.
 * [http://www.python.org/dev/peps/pep-0279/ PEP 279]: enumerate() built-in added.
 * int() will now return a long instead of raising OverflowError if a number is too large.
 * list.insert() changed to be consistent with negative slice indexing.
 * list.index() takes optional start, stop arguments.
 * Dictionaries gained a pop() method and .fromkeys() class method.
 * dict() constructor takes keyword arguments.
 * Many type objects are now callable.
 * [http://www.python.org/dev/peps/pep-0218/ PEP 218]: A Standard Set Datatype
 * [http://www.python.org/dev/peps/pep-0273 PEP 273]: Importing Modules from Zip Archives
 * [http://www.python.org/dev/peps/pep-0278 PEP 278]: Universal Newline Support
 * [http://www.python.org/dev/peps/pep-0282/ PEP 282]: logging package
 * [http://www.python.org/dev/peps/pep-0285 PEP 285]: A Boolean Type
 * [http://www.python.org/peps/pep-0293.html PEP 293]: Codec Error Handling Callbacks
 * [http://www.python.org/dev/peps/pep-0302/ PEP 302]: New Import Hooks
 * [http://www.python.org/doc/2.3/whatsnew/node18.html#SECTION0001820000000000000000 optparse module]
Line 30: Line 7:
= Beta = (Least edited 1 September 2012.)
Line 32: Line 9:
 * [http://www.python.org/dev/peps/pep-0307 PEP 307]: Pickle Enhancements
 * Unifying int/long
 * [http://www.python.org/dev/peps/pep-0263 PEP 263]: Defining Python Source Code Encodings
 * [http://www.python.org/dev/peps/pep-0328/ PEP 328]: Multi-line and absolute/relative imports
 * [http://www.python.org/dev/peps/pep-0352/ PEP 352]: Exceptions as new-style classes
 * [http://www.python.org/doc/2.5/whatsnew/pep-357.html PEP 357]: Allowing Any Object to be Used for Slicing
 * [http://www.python.org/dev/peps/pep-0309/ PEP 309]: Partial Function Application
 * [http://www.python.org/dev/peps/pep-0338/ PEP 338]: Executing modules as scripts
 * [http://www.python.org/doc/2.3/whatsnew/node14.html PEP 305]: CSV
Line 42: Line 10:
= Replace jythonc =  * v2.5.3 is current.
Line 44: Line 12:
jythonc doesn't handle generators and is difficult to debug and improve. The current thinking is to add capabilites to jython itself to generate bytecode from py files and run those statically compiled items rather than jythonc's approach of making Java classes that work like the base Python code. See http://thread.gmane.org/gmane.comp.lang.jython.devel/1429/focus=1430 for the general idea.
Line 46: Line 13:
= Solidify Import System = == Current Plan ==
Line 48: Line 15:
Jython adds to Python's import system to handle loading from Java's classpath and to load from jar files. It's not exactly clear what modifications are in place and what techniques are best for adding jar files to the path at runtime and things like that. An informational JEP explaining what's been added and how things relate to both the Python and Jython sides would be nice.
Line 50: Line 16:
Brett Cannon has been working on rewriting all of Python's import machinery in Python; see http://svn.python.org/view/sandbox/trunk/import_in_py/
for the code.
(Least edited 1 September 2012: Needs more detail.)
Line 53: Line 18:
= Complete Java to Python naming integration =
Line 55: Line 19:
Java allows a method and field of the same name to exist in the same class. Python only has a single namespace for these items. This leads to methods being hidden in a Java instance in Jython if the instance has a field of the same name. In addition, the bean convenience methods that map object.getField() in Java to object.field in Jython lead to collisions. See http://thread.gmane.org/gmane.comp.lang.jython.user/4919/ and http://jython.org/bugs/1509095. A standard system for renaming fields and methods to avoid collisions and a JEP explaining the whole thing would be most welcome.  * v2.5.x versions may appear consolidating bug-fixes
 * v2.6 is skipped
 * v2.7 is the main focus of current work. A beta is imminent (February 2013).
 * v3.x (3.3 probably) is under consideration.


== Who is doing what? ==


 * [[http://bugs.jython.org|Bug fixes]]: anyone


=== Towards v2.7 ===


 * math module: Oti
 * documentation, text_xrange.py, test_complex.py: Josh
 * grammar cleanup, test_class.py: Frank
 * itertools, collections: Jim
 * mercurial move, abcs, exceptions, posix/ntpath, io, tarfile: pjenvey
 * `bytearray`, buffer API and a partial `memoryview`: Jeff


=== Towards v3.3 ===


 * Use of Java 7 `invokedynamic`: Jim?


== Scraps of former plans ==


When the page bore a roadmap was for v2.6, this material was in it. Some of it is still accurate for v2.7, some is probably complete now, and some is no longer relevant. Those who know which is which are able to improve the roadmap!


=== 2.6.0 ===


 * Upgrade to Python 2.6 language and builtins, along with a substantial subset of the stdlib
 * Redesign [[PySystemState|PySystemState]], [[ThreadState|ThreadState]] API
 * Mark true-public APIs with a suitable annotation; deprecate and/or remove obsolete APIs
 * Remove all user-visible singletons in org.python.core, especially any static public fields (like those in `PySystemState`)
 * Performance!
 * Require minimum Java 6, rip out Java 5 compatibility:
  * Generic.newSetFromMap
  * Believe we can remove the xercesImpl jar, livetribe-jsr223-2.0.5.jar
  * can start utilizing jsr199 (the Java compiler API) for certain things (mostly for unittests I believe)
  * Other things..



=== 2.6.? (TBD) ===


 * unicodedata
 * [[http://bugs.jython.org/issue1066|cjkcodecs]]: yyamano
 * [[http://www.python.org/doc/lib/module-bz2.html|bz2 module]]
 * [[ReplaceJythonc|ReplaceJythonc]]
 * [[MigrateBugtests|MigrateBugtests]]
 * Import Python from the classpath
 * Performance improvements


=== Future? ===


 * [[http://docs.python.org/whatsnew/modules.html#SECTION0001410000000000000000|ctypes module]]
 * Translate summer of code compiler to Java *Incorporated, except for pyc support

Jython Roadmap

Position Now

(Least edited 1 September 2012.)

  • v2.5.3 is current.

Current Plan

(Least edited 1 September 2012: Needs more detail.)

  • v2.5.x versions may appear consolidating bug-fixes
  • v2.6 is skipped
  • v2.7 is the main focus of current work. A beta is imminent (February 2013).
  • v3.x (3.3 probably) is under consideration.

Who is doing what?

Towards v2.7

  • math module: Oti
  • documentation, text_xrange.py, test_complex.py: Josh
  • grammar cleanup, test_class.py: Frank
  • itertools, collections: Jim
  • mercurial move, abcs, exceptions, posix/ntpath, io, tarfile: pjenvey
  • bytearray, buffer API and a partial memoryview: Jeff

Towards v3.3

  • Use of Java 7 invokedynamic: Jim?

Scraps of former plans

When the page bore a roadmap was for v2.6, this material was in it. Some of it is still accurate for v2.7, some is probably complete now, and some is no longer relevant. Those who know which is which are able to improve the roadmap!

2.6.0

  • Upgrade to Python 2.6 language and builtins, along with a substantial subset of the stdlib
  • Redesign PySystemState, ThreadState API

  • Mark true-public APIs with a suitable annotation; deprecate and/or remove obsolete APIs
  • Remove all user-visible singletons in org.python.core, especially any static public fields (like those in PySystemState)

  • Performance!
  • Require minimum Java 6, rip out Java 5 compatibility:
    • Generic.newSetFromMap
    • Believe we can remove the xercesImpl jar, livetribe-jsr223-2.0.5.jar
    • can start utilizing jsr199 (the Java compiler API) for certain things (mostly for unittests I believe)
    • Other things..

2.6.? (TBD)

Future?

  • ctypes module

  • Translate summer of code compiler to Java *Incorporated, except for pyc support

RoadMap (last edited 2013-02-06 23:22:57 by FrankWierzbicki)