======================
What's new in PyPy 1.9
======================

.. this is the revision just after the creation of the release-1.8.x branch
.. startrev: a4261375b359

.. branch: default
* Working hash function for numpy types.

.. branch: array_equal
.. branch: better-jit-hooks-2
Improved jit hooks
.. branch: faster-heapcache
.. branch: faster-str-decode-escape
.. branch: float-bytes
Added some primitives for dealing with floats as raw bytes.
.. branch: float-bytes-2
Added more float byte primitives.
.. branch: jit-frame-counter
Put more debug info into resops.
.. branch: kill-geninterp
Kill "geninterp", an old attempt to statically turn some fixed
app-level code to interp-level.
.. branch: kqueue
Finished select.kqueue.
.. branch: kwargsdict-strategy
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.
.. branch: matrixmath-dot
numpypy can now handle matrix multiplication.
.. branch: merge-2.7.2
The stdlib was updated to version 2.7.2
.. branch: ndmin
.. branch: newindex
.. branch: non-null-threadstate
cpyext: Better support for PyEval_SaveThread and other PyTreadState_*
functions.
.. branch: numppy-flatitter
flatitier for numpy
.. branch: numpy-back-to-applevel
reuse more of original numpy
.. branch: numpy-concatenate
concatenation support for numpy
.. branch: numpy-indexing-by-arrays-bool
indexing by bool arrays
.. branch: numpy-record-dtypes
record dtypes on numpy has been started
.. branch: numpy-single-jitdriver
.. branch: numpy-ufuncs2
.. branch: numpy-ufuncs3
various refactorings regarding numpy
.. branch: numpypy-issue1137
.. branch: numpypy-out
The "out" argument was added to most of the numypypy functions.
.. branch: numpypy-shape-bug
.. branch: numpypy-ufuncs
.. branch: pytest
.. branch: safe-getargs-freelist
CPyext improvements. For example PyOpenSSL should now work
.. branch: set-strategies
Sets now have strategies just like dictionaries. This means a set
containing only ints will be more compact (and faster)
.. branch: speedup-list-comprehension
The simplest case of list comprehension is preallocating the correct size
of the list. This speeds up select benchmarks quite significantly.
.. branch: stdlib-unification
The directory "lib-python/modified-2.7" has been removed, and its
content merged into "lib-python/2.7".
.. branch: step-one-xrange
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.
.. branch: string-NUL
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++.
.. branch: win32-cleanup
.. branch: win32-cleanup2
.. branch: win32-cleanup_2
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
.. branch: win32-kill
Add os.kill to windows even if translating python does not have os.kill
.. branch: win_ffi
Handle calling conventions for the _ffi and ctypes modules
.. branch: win64-stage1
.. branch: zlib-mem-pressure
Memory "leaks" associated with zlib are fixed.

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



.. "uninteresting" branches that we should just ignore for the whatsnew:
.. branch: exception-cannot-occur
.. branch: sanitize-finally-stack
.. branch: revive-dlltool
     (preliminary work for sepcomp)
