# What's new in PyPy2.7 5.8+

Add cpyext interfaces for `PyModule_New`

Correctly handle dict.pop` where the `pop` key is not the same type as the `dict`'s and `pop` is called with a default (will be part of release 5.7.1)

Fix missing tp_new on w_object called through multiple inheritance (will be part of release 5.7.1)

PyPy support to profile native frames in vmprof.

Performance tweaks in the x86 JIT-generated machine code: rarely taken blocks are moved off-line. Also, the temporary register used to contain large constants is reused across instructions.

Refactor rpython.rtyper.controllerentry.

Internal refactoring of buffers and memoryviews. Memoryviews will now be accepted in a few more places, e.g. in compile().

Redo much of the refcount semantics in PyList_{SG}etItem to closer match CPython and ensure the same PyObject stored in the list can be later retrieved

Implement Py_EnterRecursiveCall and associated functions

Remove faulty fastpath from ctypes

Passing a buffersize of 0 to socket.getsockopt

Improve the performance of struct.pack and struct.pack_into by using raw_store or gc_store_indexed whenever possible. Moreover, enable the existing struct.unpack fast path to all the existing buffer types, whereas previously it was enabled only for strings

Add profile-based optimization option `profopt`, and specify training data via `profoptpath`