Jython 2.7rc3 Release Notes =========================== Bugs fixed ---------- - [ 2311, 2319 ] Many compatibility fixes for launcher (bin/jython, bin/jython.exe) - [ 2332 ] jython -m test.regrtest -e now finds the tests it should - [ 1572 ] sys-package-mgr console messages silenced by default. Thanks to Emmanuel Jannetti. - [ 2327 ] Tests in org/python/tests/imp run only with proper path - [ 2105 ] Fix inconsistent conversion of PyObject to String in StdoutWrapper - [ 1795 ] Support both subclassing from Java in a Python class and a Python implementation of __tojava__ - [ 1861 ] Fix threading.Lock to support non-reentrant semantics - [ 2323 ] Fixes pickling issues in object.__reduce__ and cPickle.{load, loads} - [ 1540 ] Fix stack overflow due to how proxies for Java classes resolve super method in Java - [ 2325 ] Enable piping input into Jython without getting extraneous prompt output - [ 2324 ] Fix index computation for StringBuilder after seek back in cStringIO - [ 2171 ] Fixed direct calls to __pow__() on int, long and float with a modulo of None - [ 2326 ] Java's weakly consistent iteration of ConcurrentMap is compatible with mutation - [ 2322 ] Refreshed several networking modules from CPython 2.7.9 due to CVE-2013-1752 - [ 1670 ] Added automatic type coercion of decimal.Decimal to java.lang.{Double, Float} - Pull in hand coded AST work into code gen in asdl_antlr - [ 2307 ] Fixed normalization of paths on Windows - Module tempfile now returns temporary directory in proper case (See also CPython issue 14255) - Faster extended slice deletion in bytearray. - [ 2304 ] Fixed __module__ missing from functions in the time and operator modules Jython 2.7rc2 Release Notes =========================== Bugs fixed ---------- - [ 2301 ] time.strftime now always returns a bytestring (fixes pip on Japanese locales) - [ 2297 ] Updates Jython installer to use jython.exe - [ 2298 ] Fix setuptools wheel bundled by ensurepip so it checks for Windows on Jython - [ 2300 ] Fix bin/jython.py to not consume subcommand args New features ------------ - Installer installs pip, setuptools by default, but custom builds can de-select. Does not change standalone usage. (Runs jython -m ensurepip as last install step.) - Makes jython.py be the default launcher (as bin/jython) if CPython 2.7 is available. Removed support --------------- - Installer no longer supports using an alternative JRE when generating Jython launchers. Instead just use JAVA_HOME environment variable to select the desired JRE. (Removed because of the new native launcher, jython.exe, that is now used on Windows.) Jython 2.7rc1 Release Notes =========================== Bugs fixed ---------- - [ 1793 ] Fix relative seek in read/write mode via a non-buffered readinto() method - [ 2282 ] Speed up startup with compiled $py.class files included for standalone, full jars - [ 1371, 2283, 2296 ] More robustness wrt security managers, python.home, import of non-ascii names - [ 2068 ] Use position(long) setter to manually update file channel's position post-write. - [ 2288 ] Posix link and symlink support now uses NIO2 - [ 2120 ] Use Java instead of JNR for os.chmod, os.mkdir when running on Windows - [ 2226 ] Matches CPython's re support of what counts as a Unicode whitespace codepoint - [ 1725 ] Speed up re matching by not executing SRE_STATE#TRACE in the sre regex engine - Exceptions with non-ascii args should not cause an exception when displayed on console - [ 2274 ] Remove Jython-specific pythonpath, test_pythonpath; update pwd to support unicode - [ 2289 ] Ensure core types are Serializable, specifically PyUnicode - [ 2272 ] Generalize adding special slots (__dict__, __weakref__); adds support for Werkzeug - [ 2280 ] Avoid deadlock at shutdown with synchronization of PySystemStateCloser, FinalizeTrigger - [ 2275 ] Upgrade JLine to support keyboard layouts using AltGr (such as Finnish) on Windows - Improve robustness of socket and SSL support, especially error handling - time.sleep(0) should always attempt to yield CPU - [ 2271 ] Restore __tojava__ to datetime.{date, datetime, time} classes - [ 2084, 1729 ] Robust handling of sun.misc.Signal exceptions across various JVM implementations - [ 2189 ] Add java_user scheme to support user directory installs - Fix Popen._internal_poll so that it does not race with java.lang.Process finalization - Fix reflection-based garbage collection traversal for CPython compatible gc semantics - [ 1491 ] Windows launcher now uses jython.exe (built with PyInstaller) instead of jython.bat This means that pip, nosetests, yolk, and other installed tool scripts finally work on Windows New features ------------ - Can add a __dict__ slot descriptor to a subclass of Java classes, such as java.util.HashMap - Directly execute zip files or dirs with top level __main__.py to support wrapper scripts generated by distlib, part of pip - Reflection-based traversal is now activated by default as a fallback for ordinary traversal. This impacts third-party extenders of PyObject. A warning is emitted that suggests next steps on how to avoid this cost. - Uses classpath wildcard in jython.py/jython.exe to minimize the launcher command line, (main benefit is Jython developers on Windows using dev builds) - Adds new Jython launcher written in Python, bin/jython.py, to be run by CPython 2.7 Jython 2.7b4 Release Notes ========================== Bugs Fixed ---------- - [ 2032 ] Fixed typo in compiler/pycodegen.py - [ 2190 ] Raise ValueError when unichr() is called with isolated surrogate codepoint - [ 1057 ] Finalizer support (__del__) for new style classes - [ 2192 ] Server requests were hanging using jython, django and django-jython - [ 2204 ] Minimum (core) install will now suport Jython console - [ 2184 ] inspect.callargs, including anonymous tuples in function params - [ 2100 ] Fix deficiencies in PyUnicode beyond the BMP - Fix bug in supporting meta path importers for six - [ 2183 ] Rework function attributes support - [ 2115 ] Allow bound methods as arg for single method interface param - [ 2163 ] Refactor Py, PySystemState to init constants early - [ 2217 ] Update serial release to 3 for sys.version_info - [ 2090, 1494 ] Behaviour of long in the JSR-223 engine - [ 2196 ] Do not emit duplicate entries in building standalone jar - [ 1708 ] Ensure regrtest runs in a C locale to avoid failures - [ 2037 ] Prevent non-byte values appearing in str() - [ 2205 ] Guard via module import lock all entry points from Java into import - [ 1631 ] Fully proxy java.util.Map objects as Python dicts - [ 2215 ] Fully proxy java.util.List objects as Python lists - [ 2242 ] select.select and related socket.connect_ex fixes - [ 2241 ] Fully proxy java.util.Set objects as Python sets - [ 2239, 1825 ] os.getenv, os.listdir may return unicode instead of bytes - [ 2110 ] Update Java Native Runtime jars - [ 2236 ] Interactive parser does not accept try ... except E as e: syntax - [ 2232 ] Visit class decorators when visiting class def in scopes compilation - [ 2247 ] dict.pop should not add additional quoting in KeyError - [ 2238 ] os.system now uses a simpler wrapping of ProcessBuilder - [ 1561 ] Raises NotImplementedError if abstract method from Java is not implemented - [ 2221 ] Implement Popen.pid - [ 2150 ] Fix regrtest to support -x to exclude tests - [ 1152612 ] All dict methods for __dict__ except views - [ 1762054 ] Add webbrowser module - [ 2252 ] Args in sys.argv are now unicode if characters > 127 - [ 2092 ] Upgrade to JLine2 and add tab completion support - [ 2236 ] Interactive parser does not accept try ... except E as e: syntax - [ 2237 ] Fully conformant math and cmath support - [ 2244 ] More robust testing of math and cmath modules - [ 2224 ] id(...) now persists object resurrection and a pattern is provided to solve similar issues (i.e. attributes bound to a PyObject via a WeakHashMap) in an analogue way (See JyAttribute.java). New features ------------ - Full support of Python buffer protocol, along with Java ByteBuffer support - Add index to PyUnicode facilitating O(1) access to strings beyond the BMP. - java.util.{Map, List, Set} are now treated as subclasses of the corresponding Python abstract base classes - jythonlib module to simplify usage of Java internals from Python; weakref collections now directly use corresponding collections from Google Guava and java.util - CPython's _json.c was ported to Java to speed up JSON encoding/decoding - Upgraded third party libraries - Initial support for ensurepip module - Callbacks can be registered/unregistered to be notified when bytecode is loaded, using jythonlib.bytecodetools - Jython now features an optional, but recommended-to-implement traverseproc-mechanism like CPython. This enables some new gc-features to optionally emulate CPython-specific gc-behavior. See doc in gc.java and Traverseproc.java. Potentially backwards breaking changes, removing silent errors -------------------------------------------------------------- - remove method on proxied List objects now follows Python sematics: a ValueError is raised if the item is not found in the java.util.List. In the past, Java semantics were used, with a boolean returned indicating if the item was removed or not. Given how this interacted with Jython, such remove invocations were in the past silent, and perhaps were actually a bug. - d[key_not_present], if d implement java.util.Map, no longer returns None, but raises KeyError, which means this behavior now matches standard dict semantics. - Abstract methods of an inherited class or interface from Java now raise NotImplementedError, instead of returning None (in Java, null) or some "zero", if they are not implemented in the extending Python class. - os.getenv, os.listdir, sys.argv now return unicode instead of str values if a given value is not ascii, thus allowing such values to be passed through to Java, eg java.io.File(sys.argv[1]). Earlier such behavior was potentially silently failing in Python functions, but passing through to Java because of bug 2037. This behavior conforms with Python 3.x, which uses Unicode. Jython 2.7b3 release notes ========================== Bugs Fixed ---------- - [ 2225 ] Jython+django-jython - no module named site - [ 1497 ] ast classes do not have appropiate base classes - [ 1980 ] ast.Eq, ast.Gt, ast.GtE, ast.In, ast.Is, ast.IsNot, ast.Lt, ast.LtE, ast.NotEq and ast.NotIn should be subclasses of ast.cmpop - [ 1981 ] ast.And and ast.Or should be subclasses of ast.boolop - [ 2130 ] Fix max such that any raised ValueError uses the correct error message text - [ 2180 ] default encoding is not UTF-8 - [ 2094, 2147, 2174 ] Fix bugs in select.poll, threadpool group closing, and SSL handshaking - [ 2178 ] Update Apache Commons Compression to 1.8.1 for jar-complete builds - [ 2176 ] Fix bz2.BZ2File.read so it reads the number of requested bytes - [ 2028 ] Implement unicode._formatter_parser and unicode._formatter_parser - [ 1747 ] Synchonize runClosers upon shutdown - [ 1898 ] Support subprocess termination vs terminate/kill methods - [ 2096 ] Fix subprocess construction such that handles are inherited if not set - [ 2123 ] Preserve original name of console encoding - [ 1728 ] Make PyDictionary#equals() more robust, similar to PyTuple and PyList - [ 2040 ] Ensure that bz2 decompression has enough data to decode - [ 2146 ] Fix xrange compliance - [ 1591 ] Interactive interpreter stuck on '...' loop - [ 1982 ] Modify enumerate such that it can it work with arbitrarily long integers - [ 2155 ] Enable IP address objects to be used as tuples - [ 1991 ] Subclassed itertools classes can now chain, and be iterated by Java code - [ 2062 ] os.write accepts objects having the buffer API - [ 1949 ] Update collections.deque to 2.7 compliance, and is now threadsafe - [ 1066 ] Add CJK codecs, as well as other codecs available in Java but not in Jython directly - [ 2112 ] time.strptime now uses _strptime.py - [ 2123 ] Use Java codec throughout parser (not sometimes a Python one) - [ 2078 ] Fix tuple creation for inet6 addresses, and support for bound inet4 socket local address - [ 2088 ] Fix defaultdict so that derived classes __missing__ methods are not ignored - [ 2108 ] Cannot set attribute to instances of AST/PythonTree (blocks pyflakes) - [ 1982 ] builtin function enumerate() should support an optional 'start' argument - [ 1896215 ] findResource(s) for SyspathJavaLoader - [ 2140 ] Raise ValueError on args of invalid domain for math.sqrt, math.log - [ 2119 ] Updated *Derived.java classes as generated by src/templates/gderived.py. - [ 2087 ] Updated defaultdict to use LoadingCache idiom instead of deprecated ComputingMap - [ 2133 ] Fix memory leak by doing computed loads only with __getitem__ in defaultdict - Full bz2 support - Fix the struct module so that struct.Struct class can be derived from. Work on resource cleanup ------------------------ - RefReaperThread is now a Runnable to avoid ClassLoader resource leaks - ShutdownCloser is now a Runnable to avoid subclass audit issues under a SecurityManager - Remove shadowing of mutable statics in PySystemState, instead make them instance variables - Fix PySystemState such that it supports AutoCloseable, Closeable Potentially backwards breaking changes -------------------------------------- - Fix ThreadState so that Jython runtime can be unloaded, using Object[1] indirection - Use weakkey/weakvalue when caching ThreadState for a given thread, instead of using ThreadLocal - recursion_count is now more approximate, because not all entry/exit pairs are tracked - By default, site module is imported when using PythonInterpreter Use -Dpython.import.site=false (as of RC1) to not import site at all New Features ------------ - Added socket reboot work, using Netty 4 to fully support socket, select, and ssl API Jython 2.7b2 Release Notes ========================== Bugs Fixed ---------- - [ 1753 ] zlib doesn't call end() on compress and decompress - [ 1860 ] test failures in test_array.py - [ 1862 ] cStringIO does not support arrays as arguments - [ 1876 ] PYTHONIOENCODING unsupported, used (among others) by PyDev - [ 1926 ] Adjust MutableSet.pop test so we do not need to skip it - [ 1964 ] time.strptime() does not support %f in format - [ 2005 ] threading.Event object's wait([timeout]) function returns null instead of True/False. - [ 2013 ] %x hex formatting takes O(N^2) time. - [ 2020 ] str.translate should delete characters in the second arg when table is None - [ 2027 ] Discrepancy in bin(-num) output - [ 2033 ] test_strptime fails: test_mar1_comes_after_feb29_even_when_omitting_the_year - [ 2046 ] sys.stdin.readline() hangs when used interactively (JLine, Windows) - [ 2060 ] Thread ident missing - [ 2071 ] datetime strftime %f does not work - [ 2075 ] Incorrect padding for hex format strings - [ 2082 ] Unexpected (Pdb) prompt during regression tests - [ 2083 ] os.unlink() can delete directories - [ 2089 ] sys.stdout not flushed after sys.exit New Features ------------ - Command line option -E (ignore environment variables) - Environment variable PYTHONIOENCODING, and corresponding registry items Removed support --------------- - No longer supports Java 6; the minimum version is now Java 7 Jython 2.5.4rc1 Release Notes ============================= Bugs Fixed ---------- - [ 1936 ] JBoss 7, vfs protocol in use for jarFileName in PySystemState. - [ 1972 ] jython 2.5.3 sys.stdin.readline() hangs when jython launched as subprocess on Mac OS X. - [ 1962 ] Interactive console in Jython 2.5.3 needs CRTL-D to execute command. - [ 1676 ] NPE in defaultdict - [ 1481 ] jython throws java.lang.IllegalArgumentException instead of ValueError. - [ 1716 ] xrange slicing raises NPE. Jython 2.7b1 Release Notes ========================== New Features ------------ - bytearray complete - a buffer API - memoryview - bz2 module Bugs Fixed ---------- - [ 1716 ] xrange slicing raises NPE. - [ 1968 ] Fixes for test_csv.py. - [ 1989 ] condition.notify_all() is missing. - [ 1994 ] threading.Event doesn't have is_set method fixed. - [ 1327 ] ThreadState needs API cleanup work - [ 1309 ] Server sockets do not support client options and propagate them to 'accept'ed client sockets. - [ 1951 ] Bytecode Interpreter stack optimization for larger arguments - [ 1894 ] bytearray does not support '+' or .join() - [ 1921 ] compiler module broken in Jython 2.7 - [ 1920 ] Backport CO_FUTURE_PRINT_FUNCTION to Lib/compiler/pycodegen.py - [ 1914 ] Float formatting broken in many non-English locales in Jython 2.7 - [ 1909 ] attrgetter does not parse dotted attributes - [ 1924 ] Implement operator.methodcaller - [ 1934 ] Break itertools.compress into a separate class - [ 1933 ] Break itertools.cycle into a separate class - [ 1932 ] Make check for iterability in chain() arguments lazy - [ 1931 ] Check that there are exactly 2 filter args - [ 1913 ] Support short -W options - [ 1897 ] 2.7.0ax only has partial ssl support - array_class in jarray module returns the "Array of a type" class Jython 2.5.3rc1 Release Notes ============================= Bugs Fixed - (Summary of all since 2.5.2) ----------------------------------------- - [ 1952 ] __import__(): Handling of non-dict globals argument incompatible with CPython - [ 1754 ] modjy does not provide appropriate wsgi.input file-like object - [ 1908 ] Patch for 'Unmapped exception: java.net.NoRouteToHostException' - [ 1871 ] Relative import in module gets imported to top level (regression) - [ 1854 ] set().pop() race condition - [ 1730 ] functools.partial incorrectly makes __doc__ property readonly - [ 1537 ] expat: org.python.apache.xerces.parsers.SAXParser - [ 1268 ] SAX parsers wants to load external DTDs, causing an exception - [ 1805 ] threading.Thread always gets name "Thread" instead of a discriminating one - [ 1866 ] Parser does not have mismatch token error messages caught by BaseRecognizer - [ 1837 ] gderived.py and template Ant target fail on Windows - [ 1536 ] NPE in org.python.jsr223.PyScriptEngine:187 - [ 1640 ] cStringIO does not complain on getvalue after close - [ 1721 ] NPE when using JSR 223 (TestCase+Patch) - [ 1749 ] function descriptor doesn't work in interactive console - [ 1816 ] Jython Interactive Console makes system beep noise too much - [ 1829 ] test_socket.py failing on Ubuntu (Oneiric) - [ 1844 ] bad host returned by getsockname - [ 1727 ] Error in Jython 2.5.2 with os.stat and varargs - [ 1735 ] return type of os.read is unicode, not str - [ 1755 ] os.utime('/tmp/nonexistent-file', None) fails to raise OSError - [ 1768 ] sax.parse doesn't handle attributes with name 'id' correctly - [ 1803 ] _tcpsocket doesn't have 'family' attribute - [ 1804 ] _tcpsocket doesn't have 'type' and 'proto' attributes - [ 1809 ] socket.getaddrinfo sometimes returns an object that crashes in __str__ - [ 1811 ] Recursive import bug w/ SQLAlchemy 0.7.3 - [ 1819 ] Incorrect handling of Java object toString methods returning null - [ 1824 ] os.link() can silently fail - [ 1825 ] EnvironmentError.filename is `str` even if original name is `unicode` - [ 1828 ] Problems inheriting from long - [ 1833 ] Trouble passing Python objects through a Java class back to Python Jython 2.5.2 Release Notes ========================== The following features have been added and bugs have been repaired for 2.5.2. For a look at the complete roadmap for Jython along with links for the PEPs and other information, please look at the `roadmap`_: New Features ------------ - The socket module now includes ipv6 support - The socket module now also includes Internationalized Domain Names (RFC 3490) support on Java 6 - Performance improvements around method invocation. 2.5.2 runs the richards benchmark 3x faster and the pystone benchmark 20% faster than 2.5.1 - The posix/nt module was rewritten in Java and the performance of its often performance-critical stat function has significantly improved - Improved OSError errno messages on Windows - Slightly improved startup time (ongoing Issue #1380) - Better readline module emulation (required for IPython support) - Python functions can be directly passed to Java methods that take a single method interface (such as Callable or Runnable) - Add google indexer (by Yin Wang and Steve Yegge) Bugs Fixed ---------- 2.5.2-rc4 ~~~~~~~~~ - [ 1667 ] thread.local subclasses with constructor params fail - [ 1698 ] warnings module fails under JSR-223 - [ 1697 ] Wrong error message when http connection can not be established - [ 1210 ] Lib/socket.py doesn't allow IPv6 sockets and fails with an AssertionError - [ 1700 ] "virtualenv is not compatible" to 2.5.2rc3 - [ 1701 ] Files are not flushed properly when opened from the EDT (partial fix) 2.5.2-rc3 ~~~~~~~~~ - [ 1674 ] PDB crashes under the JSR-223 scripting engine - [ 1680 ] jython -c option is not parsed right - [ 1681 ] JSR-223, Jython 2.5.2 and implementing Java Interfaces from Python - [ 1675 ] Jython exits prematurely when executing a file, thus killing Swing windows - [ 1682 ] exit code of 0 on unhandled exception - [ 1668 ] strptime('','') works on cpython but not on jython - [ 1693 ] Unicode sys.path elements cause UnicodeErrors on import 2.5.2-rc2 ~~~~~~~~~ - [ 1665 ] cPickle calls __import__ with illegal parameters - [ 1628 ] getpass.getpass echoes input - Fix logic to detect that a console is interactive (related to #1133) 2.5.2-rc1 ~~~~~~~~~ - [ 1133 ] Support ipython and other completers with readline emulation - [ 1642 ] JSR223 PyScriptEngine#getInterface returns a NPE when called with zero args - [ 1662 ] time.strptime does not use Java date format strings properly - [ 1543 ] PyArray fails to clean up pre-allocated space - [ 1661 ] Error at on exit in TCC/LE - [ 1639 ] JBoss 5, vfszip protocol in use for jarFileName in PySystemState - [ 1660 ] threading module memory leak - [ 1452 ] pydoc help() function fails because sys.executable is None in stand-alone Jython - [ 1568 ] sys.stdout.encoding returns wrong value in Windows with Jython 2.5.1 (fixed on Java 6 only) - [ 1647 ] zxJDBC does not handle NVARCHAR - SocketServer module now supports ephemeral server ports (by using port 0); see discussion for #1660 2.5.2-b2 ~~~~~~~~ - [ 1327 ] Classloaders cannot GC, which exhausts permgen (partial bug fix) - [ 1604 ] PyBuiltinCallable.Info should be serializable - [ 1397 ] Bugs in PyList and PyJavaType.ListIndexDelegate slice setting - [ 1503 ] Java constructors should take keyword arguments - [ 1648,1495,1516 ] Incomplete implementation of pep328 for relative imports - [ 1611 ] Jython bytecode violated JLS, causing NPE on Sun's JVM when using -Xcomp option - [ 1643 ] Tools subdirectory still exists in trunk - [ 1455 ] Classes loaded dynamically from sys.path do not have their package defined - [ 1555 ] Jython does not publish MIME types via JSR 223 (ScriptEngine.getFactory().getMimeTypes() is empty). - [ 1632 ] cPickle.Unpickler does not allow assignment of find_global - [ 1395 ] PyList.indexOf() and PyTuple.indexOf() do not function properly - [ 1373 ] Jython ClassLoader getResource does not work - [ 1506 ] Jython applies PEP263 pattern for determining source-code encoding on noncomments - [ 1630 ] threading.Thread lacks __tojava__ method - [ 1558 ] PyFunction to single method interface wrapping does not andle java.lang.Object methods - [ 1622 ] array type prevents __radd__ fallback 2.5.2-b1 ~~~~~~~~ - [ 1614 ] minidom chunks the character input on multi-line values - [ 1615 ] Can't invoke Java method that takes a variable number of arguments with zero arguments - [ 1605 ] float preference over PyComplex as arg to __call__ breaks logic - [ 1586 ] weakref reference count leak when kwargs are used - [ 1601 ] Can't serialize PyCode object - [ 1551 ] Java objects cannot be copied by the copy module - [ 1375 ] XML SAX: attrs.get((None, 'attr')) gives NPE - [ 1488 ] sax JyInputSourceWrapper does not support unicode strings - [ 1510 ] minidom is not parsing comment information correctly - [ 1549 ] Wrapping an InputStream with a PyFile wrongly carries out line-ending translation. - [ 1583 ] xml.dom.Node.data returns bytestrings of decoded unicode - [ 1515 ] modjy sometimes adds None to the sys.path - [ 1507 ] modjy crashes if any query string parameters are not set with '=' - [ 1473 ] modjy servlet doesn't import site-packages by default - [ 1474 ] modjy servlet doesn't call atexit handlers - [ 1225 ] socket.getservbyname/port() not yet supported - [ 1532 ] Cannot use docstring when defining class - [ 1530 ] BoolOp in multiple assign causes VerifyError - [ 1478 ] defaultdict & weakref.WeakKeyDictionary [TypeError: first argument must be callable] - [ 1487 ] Import of module with latin-1 chars fails on utf-8 file encoding - [ 1449 ] Ellipsis comparison different from Python 2.5 to Jython 2.5 - [ 1493 ] tarfile.extractall() throws "AttributeError: 'module' object has no attribute 'chown'" when called by root - [ 1470 ] os.mkdir Errno difference from cpython - [ 1496 ] fix os.listdir errno for non-existing dirs - [ 1499 ] PostgreSQL datahandler should return Decimals instead of floats for NUMERIC/DECIMAL columns - [ 1477 ] os.setpgrp and posix.setpgrp fail with TypeError - [ 1396 ] Assigning os module funcs as class attributes incompatible with CPython - [ 1504 ] Inheriting twice from the same Java interface causes MRO problems - [ 1511 ] PySet doesn't support Java serialization - [ 1426 ] JSR 223 Bindings changes not taking effect and leaking between threads; unnecessary synchronization - [ 1548 ] Parentheses in CLASSPATH cause errors in jython.bat - [ 1576 ] files opened in 'a+' mode not readable - [ 1563 ] unicode() for Java objects working differently in 2.2 and 2.5 - [ 1566 ] os.popen(cmd).read() returns `\r\n` as newline on Windows with Jython 2.5 - [ 1517 ] TypeError: get_referrers - [ 1502 ] string-escape codec incorrect - [ 1534 ] new style object __dict__[name] ignored - [ 1479 ] xml parser file lock - [ 1582 ] com.ziclix.python.sql.PyConnection leaks memory - [ 1520 ] os.listdir doesn't return unicode when requested - [ 1483 ] optparse std module dies on non-ASCII unicode data - [ 1390 ] ihooks fails due to unimplemented methods in imp module - [ 1456 ] sys.trace/profile attributes cause: AttributeError: write-only attr: trace in PyAMF - [ 1385 ] generator.throw uncaught on new generator doesn't stop the generator - [ 1596 ] SynchronizedCallable does not report that it is callable [suggested fix] - [ 1557 ] jython.bat doesn't work in 4nt - [ 1567 ] [Windows] Wildcard Parameter * gets expanded to filename - [ 1594 ] Glob patterns like .txt processed incorrectly on startup - [ 1356 ] [Windows] test_subprocess test_communicate_pipe_buf fails - [ 1595 ] [patch] CachedJarsPackageManager cannot write cache for packages in jar over 64k - [ 1522 ] repeated execution of external python scripts causing PermGen out of memory exception - Fix runtime issues during exitfuncs triggered via SystemRestart (such as during Django or Pylons development mode reloading) - Fix pickling of collections.defaultdict objects - Fix the cmath module to accept objects implementing the __float__ method - Add google indexer (by Yin Wang and Steve Yegge) Jython 2.5.1 Release Notes ========================== The following features have been added and bugs have been repaired for 2.5.1. For a look at the complete roadmap for Jython along with links for the PEPs and other information, please look at the `roadmap`_: New Features ------------ - zxJDBC supports the with-statement: connections are committed or rollbacked; cursors are closed - Upgraded to ANTLR 3.1.3 - [ 1859477 ] Dynamically loaded ServletFilters like PyServlet - Built in JSR 223 scripting engine, with LiveTribe JSR 223 implementation for JDK 5 - Jython "-J-classpath cp_args_here" now works as expected for unix shell. Bugs Fixed ---------- - [ 1466 ] wrong handling of append only files - [ 1079 ] fixed regression on issue: twisted.python.threadable module: missing attribute '_RLock' - [ 1461 ] assert statement should lookup AssertionError using getglobal - [ 1425 ] distutils/util.py assumes too much posix - [ 1457 ] Cannot write an array in a file opened in r+b mode. - [ 1382 ] __cmp__ on certain types raises ArrayStoreException - [ 1443 ] Can't update() hashlib.sha1() with array.array('c') - [ 1444 ] Can't zlib.compress() with array.array('c') - [ 1458 ] Builtin codecs aren't available without standard lib - [ 645615 ] cannot import through symbolic links - [ 1366 ] parsing of lamda expression fails - [ 1365 ] continuation lines fail in interactive interpreter - [ 1377 ] Event names shadowed by a field name on Java types leads to a NPE - [ 1381 ] Redundant declarations of interface implementation hides overriden methods - [ 1189 ] MD5 hash is incorrectly calculated when string contains non-latin chars and using python md5 lib - [ 1802339 ] Problem printing unicode when stdout intercepted - [ 1145 ] Jython 2.5 compatibility problem with JSR 223 - [ 1400 ] Evaluating expression via JSR 223 ScriptEngine returns null instead of True/False - [ 1413 ] Array data type (PostgreSQL) is not supported (NPE) - [ 1434 ] Cannot get return code from a process started with os.popen with Jython 2.5 (worked in 2.2) - [ 1391 ] socket.getaddrinfo() breaks ftplib FTP client - [ 1409 ] JSR-233 engine version numbers backwards - [ 1408 ] JSR-223 engine doesn't implement I/O redirection - [ 1393 ] TypeError: _new_impl(): expected 1 args; got 0 - [ 1415 ] ast Node creation fails with no arg constructors - [ 1405 ] Executing __run__.py from .jar throws exception(SystemExit: 0) in main when sys.exit(0) is called - [ 1439 ] Can't write() array.array - [ 1139 ] crashes on isinstance - [ 1430 ] Oracle JDBC Connection close - [ 1406 ] Parsing a simple PEP 342 coroutine crashes Jython 2.5 - [ 1407 ] ClassCastException in plain Python coroutine - [ 1424 ] Relative imports do not work in some cases Jython 2.5.0 Release Notes ========================== The following features have been added for 2.5.0. For a look at the complete roadmap for 2.5 along with links for the PEPs and other information, please look at the `roadmap`_: - yield is always a keyword - 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. - PEP 279: enumerate() built-in added. - PEP 218: A Standard Set Datatype - PEP 273: Importing Modules from Zip Archives - PEP 278: Universal Newline Support - PEP 282: logging package - PEP 285: A Boolean Type - PEP 293: Codec Error Handling Callbacks - PEP 302: New Import Hooks - PEP 307: Pickle Enhancements - PEP 324: subprocess module - optparse module - ExposeAnnotations - Move antlr parser in /trunk/sandbox/ast to trunk - Hookup asm compiler to antlr, solidify and add 2.5 features - PEP 289: Generator expressions - PEP 263: Defining Python Source Code Encodings - PEP 318: Function/method decorators - PEP 308: Conditional expressions - PEP 343: 'with' statement - PEP 342: Coroutines via generators - PEP 341: Unified try/except/finally - PEP 352: Exceptions as new-style classes - UpgradeTo25CPythonLib - PEP 292: Simpler String Substitutions - PEP 327: decimal type - UpgradeTo25CPythonLib - Ongoing parser fixes (universal newlines, line numbering, newline handling, interactive interpreter bugs) - PEP 237: Unifying int/long - PEP 357: Allowing Any Object to be Used for Slicing - PEP 309: Partial Function Application - PEP 305: csv module - PEP 338: Executing modules as scripts - unicodedata module - PEP 328: Multi-line and absolute/relative imports - elementtree module -> jython-elementtree - New Java integration (based on new style classes) - cjkcodecs - bz2 module - ReplaceJythonc .. _roadmap: http://wiki.python.org/jython/RoadMap