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 PyPy
- Refactor 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
 PyCodeObject
- Use 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 needed
- Make 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 app
- Fix an elusive issue with stacklets on shadowstack which showed up when 
 forgetting stacklets without resuming them
- Fix 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
 calls
- Support floats as parameters to itertools.isslice() 
- Check for the existence of CODESET, ignoring it should have prevented PyPy 
 from working on FreeBSD
- Fix for corner case (likely shown by Krakatau) for consecutive guards with 
 interdependencies
- Fix applevel bare class method comparisons which should fix pretty printing 
 in IPython
- Issues 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