What’s new in PyPy 2.2.1¶
Clean up numpy types, add newbyteorder functionality
Package tk/tcl runtime with win32
JIT support for singlefloats on ARM using the hardfloat ABI
Better support for record numpy arrays
OSX: Ensure frameworks end up in Makefile when specified in External compilation info
Use subclasses of SpaceOperation instead of SpaceOperator objects. Random cleanups in flowspace and annotator.
adds support for the buffer= argument to the ndarray ctor
On OpenBSD do not pull in libcompat.a as it is about to be removed. And more generally, if you have gettimeofday(2) you will not need ftime(3).
Remove dependency upon <sys/timeb.h> on OpenBSD. This will be disappearing along with libcompat.a.
Fix 3 broken links on PyPy published papers in docs.
Remove multimethods on str/unicode/bytearray and make the implementations share code.
Speed up generators that don’t yield inside try or wait blocks by skipping unnecessary cleanup.
Remove FlowObjSpace. Improve cohesion between rpython.flowspace and rpython.annotator.
mapdicts keep track of whether or not an attribute is every assigned to multiple times. If it’s only assigned once then an elidable lookup is used when possible.
Create a Makefile using precompiled headers for MSVC platforms. The downside is a messy nmake-compatible Makefile. Since gcc shows minimal speedup, it was not implemented.
With a properly configured 256-color terminal (TERM=…-256color), the Mandelbrot set shown during translation now uses a range of 50 colours. Essential!
Simplify implementation of NonConstant.
Kill some guards and operations in JIT traces by adding integer bounds propagation for getfield_(raw|gc) and getarrayitem_(raw|gc).
Optimize away INT_AND with constant mask of 1s that fully cover the bitrange of other operand.
Propagate appropriate bounds through INT_(OR|XOR|AND) operations if the operands are positive to kill some guards
kills int/long/smalllong/bool multimethods
Cleanup micronumpy module
In a lot of places CPython allows objects with __int__ and __float__ instead of actual ints and floats, while until now pypy disallowed them. We fix it by making space.{int_w,float_w,etc.} accepting those objects by default, and disallowing conversions only when explicitly needed.
Fix for getarrayitem_gc_pure optimization
Implements SimpleRangeListStrategy for case range(n) where n is a positive number. Makes some traces nicer by getting rid of multiplication for calculating loop counter and propagates that n > 0 further to get rid of guards.
Provide an exit status for popen’ed RFiles via pclose
Update stdlib to v2.7.6
Support for virtualizing raw_store/raw_load operations
Separate the interp-level buffer API from the buffer type exposed to app-level. The Buffer class is now used by W_MemoryView and W_Buffer, which is not present in Python 3. Previously W_Buffer was an alias to Buffer, which was wrappable itself.
Improve the situation when dict lookups of the same key are performed in a chain
Add support for PyErr_SetFromErrnoWithFilenameObject to cpyext
fix more tests for win32
Fix broken links in documentation
fix ast classes __dict__ are always empty problem and fix the ast deepcopy issue when there is missing field
Fix issues with reimporting builtin modules
Implement the core of nditer, without many of the fancy flags (external_loop, buffered)
Separate iterator from its state so jit can optimize better
Implement searchsorted without sorter kwarg
add ‘lib’ prefix to link libraries on OpenBSD
Improve optimization of small allocation-heavy loops in the JIT
Properly implement old/new buffer API for objects and start work on replacing bufferstr usage
Add a lock for unsafe calls to gethostbyname and gethostbyaddr
Changes hacks surrounding W_TypeObject.name to match CPython’s tp_name
OS/X specific header path