jython 2.7.1 版本开发历史
很多技术一直感兴趣,在工作中没有太多实践的机会,但可以持续关注。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 版本开发历史的更多相关文章
- Java SE/EE/ME概念理解(Java版本发展历史)
继上一篇文章http://www.cnblogs.com/EasonJim/p/6181981.html中说的区别,其实分析的不够彻底,因此再次在这里做详细的分析. 零.Java与Sun.Oracle ...
- VisualStudio2013 如何打开之前版本开发的(.vdproj )安装项目
当你的项目使用早于 visualstudio2013 的版本开发并且使用 Visual Studio Installer 制作安装项目时,在升级至 VS2013 后会发现新安装项目无法打开, VS20 ...
- RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm)
RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm) 现在,我们使用.NET快速开发整合框架(RDIFramework.NET)来开发一个应用,此应用皆在说明如何使 ...
- 咏南中间件支持DELPHI低版本开发的两层程序平稳升级到三层
提供DELPHI中间件及中间件集群,有意请联系. N年前,我们用DELPHI低版本开发的两层程序(比如工厂ERP系统),现在仍然在企业广泛地得到使用,但老系统有些跟不上企业的发展需要了.主要表现在:虽 ...
- Scala 的 Web 框架 Lift 开始 3.0 版本开发
Scala 的 Web 框架 Lift 开始 3.0 版本开发 http://demo.liftweb.net/ http://liftweb.net/download Lift 框架在不断的成长和改 ...
- HubbleDotNet 最新绿色版,服务端免安装,基于eaglet 最后V1.2.8.9版本开发,bug修正,支持一键生成同步表
HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件.开源协议是 Apache 2.0.HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会 ...
- WordPress禁止版本修订历史、自动保存和自动草稿最新方法汇总
提醒:我这里汇总的方法有一些只支持以前老版本的WordPress,对于新版本的WordPress,有些功能是不支持的,所以操作前请做好备份.我的WordPress版本目前是4.3.1,我会在我测试有效 ...
- 分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录
分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录 原文首发: http://anforen.com/wp/2017/08/extensionattribute_compilerserv ...
- “北航Clubs” Beta版本开发目标
Beta版本开发目标 总体设想:修复Alpha版本中的若干bug,并在Alpha版本成果之上进行进一步开发,实现社员管理.评论.站内信等功能. 1.对Alpha版本功能的更新与加强 后端实现从SQLi ...
随机推荐
- mongodb3.4 安装及用户名密码设置
下载: https://www.mongodb.com/download-center?jmp=nav#community 1.解压 修改文件名为mongo3.2.5,执行命令如下: mv mong ...
- 第1章 Python基础-Python介绍&循环语句 练习题&作业
1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型? 高级语言分为编译型与解释型两种,分别从执行速度.开发效率.跨平台性三个方面说它们的区别. 编译型语言因为执行的 ...
- wget for windows
那么,来尝试下wget for windows 吧. 什么是wget? wget是一个强力方便的命令行下的下载工具,可以通过HTTP和FTP协议(两种最广泛的互联网协议)从因特网中检索并获取文件. 此 ...
- Python selenium 滚动条 详解
在我们使用Python + selenium 爬虫的时候,会遇到如下报错,原因是 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. selenium.common ...
- javaweb下载文件
//读取文件->写出文件 public static void main(String[] args) { InputStream in =null; OutputStream out = nu ...
- 【Unity】8.2 GUI Style和GUISkin
分类:Unity.C#.VS2015 创建日期:2016-04-27 一.自定义GUI Control 功能控件 (Functional Control) 是游戏必要的,而这些控件的外观对游戏的美感非 ...
- nginx 404 403等错误信息页面重定向到网站首页或其它事先指定的页面
server { listen 80; server_name www.espressos.cn; location / { root html/www; index index.html index ...
- drools规则引擎初探
https://www.cnblogs.com/yuebintse/p/5767996.html 1.drools是什么 Drools是为Java量身定制的基于Charles Forgy的RETE算 ...
- 移动WEB开发基础入门
什么是移动WEB开发,我个人理解就是,将网页更好的显示在移动端的一些设置,简单来说就两点如下: 1.流式布局,即百分比自适应布局 将body下的div容器的样式设置如下: div{ width:100 ...
- python将列表元素按指定数目分组
比如,有时候,我们需要将列表中的元素,按照每5个分组,分成好几个组时,可以采用下面的代码 a = [1,2,3,4,5,6,7,8,9,10,11] step = 5 b = [a[i:i+step] ...