PyPy 5.0 发布,Python 解释器
PyPy 5.0 发布了,PyPy 是用Python实现的Python解释器。
PyPy是,Python开发者为了更好的Hack Python创建的项目。此外,PyPy比CPython是更加灵活,易于使用和试验,以制定具体的功能在不同情况的实现方法,可以很容易实施。 该项目的目标是,让PyPy比C实现的Python更为容易的适应各个项目和方便裁剪。
改进记录:
新特性
Support embedding PyPy in a C-program via cffi and static callbacks in cffi.
This deprecates the old method of embedding PyPyRefactor vmprof to work cross-operating-system, deprecate using buggy
libunwind on Linux platforms. Vmprof even works on Windows now.Support more of the C-API type slots, like tp_getattro, and fix C-API
macros, functions, and structs such as _PyLong_FromByteArray(),
PyString_GET_SIZE, f_locals in PyFrameObject, Py_NAN, co_filename in
PyCodeObjectUse a more stable approach for allocating PyObjects in cpyext. (see
blog post). Once the PyObject corresponding to a PyPy object is created,
it stays around at the same location until the death of the PyPy object.
Done with a little bit of custom GC support. It allows us to kill the
notion of “borrowing” inside cpyext, reduces 4 dictionaries down to 1, and
significantly simplifies the whole approach (which is why it is a new
feature while technically a refactoring) and allows PyPy to support the
populart lxml module (as of the next release) with no PyPy specific
patches neededMake the default filesystem encoding ASCII, like CPython
Use hypothesis in test creation, which is great for randomizing tests
Bug 修复
Backport always using os.urandom for uuid4 from cpython and fix the JIT as well
(issue #2202)More completely support datetime, optimize timedelta creation
Fix for issue #2185 which caused an inconsistent list of operations to be
generated by the unroller, appeared in a complicated DJango appFix an elusive issue with stacklets on shadowstack which showed up when
forgetting stacklets without resuming themFix entrypoint() which now acquires the GIL
Fix direct_ffi_call() so failure does not bail out before setting CALL_MAY_FORCE
Fix (de)pickling long values by simplifying the implementation
Fix RPython rthread so that objects stored as threadlocal do not force minor
GC collection and are kept alive automatically. This improves perfomance of
short-running Python callbacks and prevents resetting such object between
callsSupport floats as parameters to itertools.isslice()
Check for the existence of CODESET, ignoring it should have prevented PyPy
from working on FreeBSDFix for corner case (likely shown by Krakatau) for consecutive guards with
interdependenciesFix applevel bare class method comparisons which should fix pretty printing
in IPythonIssues reported with our previous release were resolved after reports from users on our issue tracker at https://bitbucket.org/pypy/pypy/issues or on IRC at #pypy
详细请看:http://morepypy.blogspot.com/2016/03/pypy-50-released.html