# What's new in PyPy 1.9

Working hash function for numpy types.

Improved jit hooks

Added some primitives for dealing with floats as raw bytes.

Added more float byte primitives.

Put more debug info into resops.

Kill "geninterp", an old attempt to statically turn some fixed app-level code to interp-level.

Finished select.kqueue.

Special dictionary strategy for dealing with **kwds. Now having a simple proxy `def f(*args, **kwds): return x(*args, **kwds)` should not make any allocations at all.

numpypy can now handle matrix multiplication.

The stdlib was updated to version 2.7.2

cpyext: Better support for PyEval_SaveThread and other PyTreadState_* functions.

flatitier for numpy

reuse more of original numpy

concatenation support for numpy

indexing by bool arrays

record dtypes on numpy has been started

various refactorings regarding numpy

The "out" argument was added to most of the numypypy functions.

CPyext improvements. For example PyOpenSSL should now work

Sets now have strategies just like dictionaries. This means a set containing only ints will be more compact (and faster)

The simplest case of list comprehension is preallocating the correct size of the list. This speeds up select benchmarks quite significantly.

The directory "lib-python/modified-2.7" has been removed, and its content merged into "lib-python/2.7".

The common case of a xrange iterator with no step argument specifed was somewhat optimized. The tightest loop involving it, sum(xrange(n)), is now 18% faster on average.

PyPy refuses filenames with chr(0) characters. This is implemented in RPython which can enforce no-NUL correctness and propagation, similar to const-correctness in C++.

Many bugs were corrected for windows 32 bit. New functionality was added to test validity of file descriptors, leading to the removal of the global _invalid_parameter_handler

Add os.kill to windows even if translating python does not have os.kill

Handle calling conventions for the _ffi and ctypes modules

Memory "leaks" associated with zlib are fixed.

The `ffistruct` branch adds a very low level way to express C structures with _ffi in a very JIT-friendly way

(preliminary work for sepcomp)