很多技术一直感兴趣,在工作中没有太多实践的机会,但可以持续关注。Jython最初是Python on JVM,所以最初的名称是JPython,后续由于基于JVM可以有更多可能性,名字改为Jython。一开始得到很多大公司如IBM的支持,推广力度挺大的,后来基于JVM的语言越来越多而且发展迅猛,这么多年下来实际使用的人并不多了吧。但不管怎样,看起来是美好的。

Jython NEWS

For more details, please see https://hg.python.org/jython

Jython 2.7.1rc3
Bugs fixed
- [ 2597 ] PySystemState.sysClosers requires cleanup to prevent memory leak
- [ 2593 ] file.write(obj) raises NullPointerException on type error
- [ 2592 ] Line breaks in exceptions are wrong (characters being backslash-escaped)

Jython 2.7.1rc2
Bugs fixed
- [ 2536 ] deadlocks in regrtests due to StackOverflowError in finally block (workaround, still open)
- [ 2356 ] java.lang.IllegalArgumentException on startup on Windows if username not ASCII
- [ 1839 ] sys.getfilesystemencoding() is None (now utf-8)
- [ 2579 ] Pyc files are not loading for too large modules if path contains pyclasspath
- [ 2570 ] Wrong shebang set for OS X installation of Jython
- [ 2585 ] test_ssl failure due to Netty exception mapping
- [ 2313 ] test_jython_initializer failure on Windows
- [ 2399 ] test_sort failure on Java 8
- [ 2309 ] test_classpathimporter fails on Windows.
- [ 2318 ] test_zipimport_jy failure on Windows
- [ 2571 ] Error handling in test_codecencodings_tw fails on Java 8
- [ 2568 ] test_threading intermittent failure
- [ 2559 ] test_marshal fails
- [ 2564 ] test_socket_jy fails on Linux
- [ 2524 ] datetime <-> time conversion incorrect in non UTC times
- [ 2504 ] datetime.date.__tojava__ returns incorrect dates in non-UTC timezones with
negative offset (Jython 2.7.0)
- [ 2500 ] Loading default cacerts on client socket when specifying a default java truststore
unnecessarily searches for more cacerts in the same dir
- [ 2561 ] win32_ver raises exception (breaks test_platform on windows)
- [ 2521 ] Windows installation (all) fails on Windows 10
- [ 2557 ] ongoing pain with platform detection via os.name and sys.platform
- [ 1996 ] Core slots array out of bounds with multiple inheritance
- [ 2101 ] Diamond-style multiple inheritance fails when using slots on the second branch

New Features
- Updated Netty to 4.1.11, ASM to 5.2, BouncyCastle to 1.57, Commons Compress to 1.14,
Guava to 22.0, ICU4J to 59.1, JFFI to 1.2.15, JNR-JFFI to 2.1.5, JNR-POSIX to 3.0.41,
JNR-Constants 0.9.9, JLine to 2.14.3, MySQL Connector to 5.1.42, PostgreSQL to 42.1.1
Note:
You might find it strange that Jython bundles guava-22.0-android.jar rather than guava-22.0.jar.
This is the official way to support Java 7 with Guava > 20.0, also on non-Android platforms.
See https://github.com/google/guava/wiki/Release22#guava-release-220-release-notes.
- There is now support for non-ascii paths in all (home, installation, temporary)
directories, which previously caused failures. sys.getplatformencoding() returns
'utf-8' as the nominal file-system encoding, irrespective of localization. This may
differ from what CPython reports on the same OS. In Jython a file path presented
as bytes is the UTF-8 encoding of the unicode file path as Java sees it. (See issues
#1839 and #2356.) This matter is unrelated to file.encoding or the console.

Jython 2.7.1rc1
Bugs fixed
- [ 2552 ] installing scandir via pip fails (breaks e.g. installing pathlib2 via pip)
- [ 2534 ] os.getlogin() returns a wrong user or returns an exception
- [ 2553 ] sys.getwindowsversion not implemented (breaks pathlib on Windows)
- [ PR55 ] Replace deprecated use of ASCII constant with ascii()
- [ 1777 ] Help getting SymPy working with Jython
- [ 2475 ] Backported python 3 pathlib and pathlib2 do not work b/c of meta class issues
- [ 2551 ] slots in diamond-style causes lay-out conflict (breaks pathlib and sympy)
- [ 2550 ] test_list_jy fails on Java 8
- [ 2549 ] test_posix fails on Linux
- [ 2548 ] Unicode u'\N{name}' frequently broken, because ucnhash.dat outdated
- [ 2527 ] cStringIO throws IllegalArgumentException with non-ASCII values
- [ 2511 ] Percent operator calls getattr('getitem')
- [ PR28 ] zipimporter supports multi-byte characters in pathnames
- [ 2228 ] Re-use "makeCompiledFilename" function where possible
- [ 608632 ] __doc__foo should accept java String
- [ 2523 ] defaultdict.getitem() does not propagate exceptions raised by calling
default_factory
- [ 2522 ] defaultdict.getitem(unhashable) raises KeyError instead of TypeError
- [ 2515 ] typing module doesn't import
- [ 2538 ] Test failures in test_unittest
- [ 2293 ] "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException:
Cannot create PyString with non-byte value" triggered after adding
unicode element with non-ASCII character to sys.path
- [ 2535 ] Building jython standalone manually results in local filesystem paths
showing up in Jython stacktraces
- [ 2533 ] Opcode.java is outdated -> breaks PyBytecode.interpret
- [ 2502 ] Missing OpenFlags enum entry makes Jython clash with JRuby dependency
- [ 2446 ] Support SNI for SSL/TLS client sockets
- [ PR50 ] Calling Java vararg methods with no arguments fails
- [ 2455 ] Java classes in packages with init.py not found
- [ 2481 ] Update urllib2.py from 2.7.11
- [ 2514 ] Jython Class.subclasses() does not match Python output (not in load order)
- [ 2413 ] ElementTree.write doesn't close files if used with invalid encoding
- [ 2443 ] java.util.Map derived classes lack iterkeys, itervalues methods
- [ 2516 ] _get_open_ssl_key_manager tries to validate that the private and
public keys match, and is throwing an SSLError:
"key values mismatch" when provided with multiple certs (Root/CA/Cert)
- [ 2314 ] Failures in test_shutil on Windows
- [ 2488 ] Subprocess should always join corresponding coupler threads
- [ 2461 ] SSL Handshake fails for peers connected via IPV6
- [ 2508 ] Jython non-blocking socket send() does not conform to Python's behavior.
- [ 2462 ] SSL Handshake never happens even if do_handshake_on_connect=True for serv
- [ 2487 ] PyType.fromClass deadlocks on slow systems (circleci for example)
- [ 2480 ] Repeating from import results in reload
- [ 2472 ] Importing simplejson fails with: 'NoneType' object has no
attribute 'encode_basestring_ascii'
- [ 2471 ] Jython is using netty channel future incorrectly
- [ 2470 ] Jython leaks sockets in select reactor
- [ 2469 ] Embedded BouncyCastle provider does not validate properly
- [ 2460 ] Wrong result when multiplying complex numbers involving infinity
- [ 2454 ] Security Vulnerability in Jython
- [ 2442 ] Overriding len, iter, and getitem in a tuple subclass
causes an infinite recursion
- [ 2112 ] time.strptime() has different default year in Jython and CPython
- [ 1767 ] Rich comparisons

New Features
- Recognize cpython_cmd property to automatically build CPython bytecode for oversized
functions (e.g. jython -J-Dcpython_cmd=python). This is especially convenient when
installing things like SymPy via pip; it would frequently prompt you to provide yet
another pyc-file. Now just run: pip install --global-option="-J-Dcpython_cmd=python" sympy
- SymPy is now workable. (However it runs somewhat slow; some profiling will be required.)
- Updated ucnhash to support name lookup for Unicode 9.0 (like in u'\N{name}').
- Jython doc-entries in Java-code (__doc__foo) now accept anything that implements
java.lang.CharSequence (PyString implements CharSequence now as well).
This allows Jython-friendly Java-code without PyString-induced dependency on Jython.
- Provided a painless way to deal with long-standing Issue 527524 - "Cannot compile to use
methods exceeding JVM size restrictions": If a CPython 2.7 bytecode-file (.pyc) exists,
Jython automatically uses that bytecode to represent oversized functions and methods,
while methods with proper size are still compiled to JVM bytecode.
The crucial bytecode sections from the pyc-file are embedded seamlessly into the created
class-file, so you wouldn't have to distribute the pyc-file at all.
Current implementation of this feature is provisional and might change in future versions.
Issue 527524 was still not listed as solved, because Jython cannot yet create the pyc-file
by itself.
- Support for CPython bytecode (.pyc-files) was updated to Python 2.7 bytecode (from 2.5).
- Buffer API changes allow java.nio.ByteBuffer to provide the storage when a PyBuffer
is exported. This is to support CPython extensions via JyNI, but has other uses too
(including access to direct memory buffers from Python). There is no change at the
Python level or for client code using PyBuffer via the "fully encapsulated" API. It
risks breaking code that makes direct access to a byte array via PyBuffer, implements
the PyBuffer interface, or extends implementation classes in org.python.core.buffer.
- Updated Netty to 4.1.4
- Fixed platform.mac_ver to provide actual info on Mac OS similar to CPython behavior.
- Added uname function to posix module. The mostly Java-based implementation even
works to some extend on non-posix systems (e.g. Windows).

Jython 2.7.1b3
Bugs fixed
- [ 550200 ] Jython does not work on ebcdic platforms
- [ 2457 ] Synchronization bug in PySystemStateCloser causes complete deadlock
- [ 2456 ] java.util.List.remove(index) does not dispatch to overloaded method for index remove
- [ 2453 ] org.python.modules.sre.PatternObject should be named SRE_Pattern to look like CPython
- [ 2452 ] Jython locking threads on Java proxy objects (multithreaded performance degradation)
- [ 2451 ] array.array objects should not hash
- [ 2441 ] sys.executable is None on standalone install, thus causing a setup()
install/build to fail
- [ 2439 ] 'SSLSocket' object has no attribute 'accept'
- [ 2437 ] no common ciphers SSL handshake error
- [ 2436 ] Missing socket.SOL_TCP (= socket.IPPROTO_TCP)
- [ 2435 ] Remove unsupported socket options like socket.SO_EXCLUSIVEADDRUSE
- [ 2434 ] zlib module has different flush behaviour than CPython and PyPy
- [ 2431 ] tox not working because of zero width bug in Jython sre
- [ 2428 ] socket.connect_ex does not properly report connection state sequence
- [ 2426 ] Support socket shutdown with "how" of _socket.SHUT_RDWR (2)
- [ 2423 ] jarray.array() method broken in 2.7
- [ 2421 ] UnboundLocalError: local variable 'key_store' referenced before
assignment in _sslverify.py
- [ 2417 ] os.utime fails on UNC network paths
- [ 2416 ] os.system does not use changes to os.environ in subprocesses
- [ 2401 ] SSL race produces NPE
- [ 2400 ] Installing pip as part of Jython installation fails
- [ 2393 ] Clean running regression tests on windows
- [ 2392 ] Intermittent errors from sre_compile.py -
ValueError('unsupported operand type', 'subpattern')
- [ 2391 ] read-only attr wrongly reported
- [ 2390 ] Support SSLContext
- [ 2374 ] setsockopt call from pika fails with "Protocol not available"error
- [ 2368 ] Problem with _io and BlockingIOError
- [ 2360 ] Not installing pip on Jython
- [ 2358 ] Using "read all" ops on /proc files on Linux produces empty strings
- [ 2357 ] Infinite recursion with set subclass
- [ 2338 ] readline.py startup hook
- [ 2329 ] Cannot create virtualenv with jython2.7rc2 - breaks tox
- [ 2321 ] Py.setSystemState() is a NOOP
- [ 2279 ] PyIterator#tojava should support coercion to java array
- [ 2350 ] Installer errors on ensurepip
- [ 2276 ] Ctrl-Z doesn't exit Jython console on Windows
- [ 2223 ] file not defined when running from ScriptEngine
- [ 2154 ] When running multiple engines in different threads, the last registered
writer is in use for all script executions.
- [ 2124 ] xml.dom.minidom.writexml() changes value of TEXT_NODE
- [ 1984 ] os.pipe() missing
- [ 1953 ] lib2to3 missing
- [ 1780 ] jarray not properly converted to list with java.util.Arrays.asList(T... a)
- [ 1739 ] JSR223: ScriptEngine.FILENAME not honoured
- [ 1738 ] JSR223: ScriptEngine.ARGV is not honoured

New Features
- Use latest upstream bundled wheels for ensurepip: pip (7.1.2), setuptools (18.4),
replacing wheels patched specifically for Jython
- Unified PyDictionary and PyStringMap under a common abstract base class.
- Added Py.newJ method family for easier access to Python code from Java. Now you
can coerce Python types under Java interfaces without needing to inherit from
the Java-interface in Python code. Also see PyModule.newJ.

Jython 2.7.1b2
Bugs fixed

  • [ 2396 ] test_threading and others fail under Cygwin (sys.executable).
  • [ 2397 ] test.test_os_jy fails on Windows due to non-byte PyString.
  • [ 2405 ] os.getpid() is missing (JNR JARs updated).

Jython 2.7.1b1
Bugs fixed

  • [ 1423 ] Circular imports no longer cause RuntimeError.
  • [ 2310 ] test_import runs on Windows (and passes with 4 skips).
  • [ 2347 ] failures in test_import_pep328 when run with -m
  • [ 2158, 2259 ] Fixed behaviour of relative from ... import *
  • [ 1879 ] -m command now executes scripts from inside a jar file
  • [ 2058 ] ClasspathPyImporter implements PEP 302 get_data (and others)
  • [ 2364 ] bytearray and str: isalpha(), isupper() etc. now match Python 2

jython 2.7.1 版本开发历史的更多相关文章

  1. Java SE/EE/ME概念理解(Java版本发展历史)

    继上一篇文章http://www.cnblogs.com/EasonJim/p/6181981.html中说的区别,其实分析的不够彻底,因此再次在这里做详细的分析. 零.Java与Sun.Oracle ...

  2. VisualStudio2013 如何打开之前版本开发的(.vdproj )安装项目

    当你的项目使用早于 visualstudio2013 的版本开发并且使用 Visual Studio Installer 制作安装项目时,在升级至 VS2013 后会发现新安装项目无法打开, VS20 ...

  3. RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm)

    RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm) 现在,我们使用.NET快速开发整合框架(RDIFramework.NET)来开发一个应用,此应用皆在说明如何使 ...

  4. 咏南中间件支持DELPHI低版本开发的两层程序平稳升级到三层

    提供DELPHI中间件及中间件集群,有意请联系. N年前,我们用DELPHI低版本开发的两层程序(比如工厂ERP系统),现在仍然在企业广泛地得到使用,但老系统有些跟不上企业的发展需要了.主要表现在:虽 ...

  5. Scala 的 Web 框架 Lift 开始 3.0 版本开发

    Scala 的 Web 框架 Lift 开始 3.0 版本开发 http://demo.liftweb.net/ http://liftweb.net/download Lift 框架在不断的成长和改 ...

  6. HubbleDotNet 最新绿色版,服务端免安装,基于eaglet 最后V1.2.8.9版本开发,bug修正,支持一键生成同步表

    HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件.开源协议是 Apache 2.0.HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会 ...

  7. WordPress禁止版本修订历史、自动保存和自动草稿最新方法汇总

    提醒:我这里汇总的方法有一些只支持以前老版本的WordPress,对于新版本的WordPress,有些功能是不支持的,所以操作前请做好备份.我的WordPress版本目前是4.3.1,我会在我测试有效 ...

  8. 分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录

    分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录 原文首发: http://anforen.com/wp/2017/08/extensionattribute_compilerserv ...

  9. “北航Clubs” Beta版本开发目标

    Beta版本开发目标 总体设想:修复Alpha版本中的若干bug,并在Alpha版本成果之上进行进一步开发,实现社员管理.评论.站内信等功能. 1.对Alpha版本功能的更新与加强 后端实现从SQLi ...

随机推荐

  1. PNG怎么转换成32位的BMP保持透明

    32位BMP位图的格式是XRGB,就是X8位 R8位 G8位 B8位,当中的X8可以作为Alpha值用于透明, 只需要搜索一下PNG转32位BMP位图的软件就可以了,另外用PhotoShop下载插件打 ...

  2. Fiddler高级用法-设置断点

    我们知道Fiddler是位于客户端和服务器之间的代理,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的数据,甚至可以修改 ...

  3. stm32调试过程中如何判断是程序问题还是硬件问题?

    可以用软件仿真,如果软件仿真时寄存器什么的都正确,而硬件在线仿真时不对,则说明是板子硬件的问题

  4. webservice复杂类型实例

    1.准备工作: 概念:SOAP(简单对象访问协议).WSDL(web服务描述语言).XML(可扩展标记语言).axis(阿帕奇可扩展交互系统) (1)     下载axis1.4,将axis1.4中的 ...

  5. MySQL中NULL与空字符串

    一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串’  ’是相同的.这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的.NULL是指没有值,而”则表示值是存在的,只不过是个 ...

  6. windows下php的各个版本下载地址

    windows下php的各个版本 https://windows.php.net/downloads/releases/archives/

  7. photoshop,钢笔工具锚点类型

    以下是钢笔工具绘制出的三种类型的锚点,分别是:无切线的硬锚点.左右切线平行的锚点.左右切线不平行的锚点. 使用转换点工具点击锚点,可以实现 无切线锚点 和 左右切线平行的锚点 之间的转化: 对 左右切 ...

  8. Java操作XML的JAXB工具

    在java中操作XML的工作中中,比较方便的工具是JAXB(Java Architecture for XML Binding). 利用这个工具很方便生成XML的tag和Java类的对应关系.参照网上 ...

  9. Linux 索引节点(inode)详解

    参考文章:http://www.ruanyifeng.com/blog/2011/12/inode.html

  10. 行为类模式(二):命令(Command)

    定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. UML 优点 能比较容易的设计一个命令队列 可以较容易的将命令加入日志 ...