==========================
NumPy 1.10.2 Release Notes
==========================

This release deals with a number of bugs that turned up in 1.10.1 and
adds various build and release improvements.

Numpy 1.10.1 supports Python 2.6 - 2.7 and 3.2 - 3.5.


Compatibility notes
===================

Relaxed stride checking is no longer the default
------------------------------------------------
There were back compatibility problems involving views changing the dtype of
multidimensional Fortran arrays that need to be dealt with over a longer
timeframe.

Fix swig bug in ``numpy.i``
---------------------------
Relaxed stride checking revealed a bug in ``array_is_fortran(a)``, that was
using PyArray_ISFORTRAN to check for Fortran contiguity instead of
PyArray_IS_F_CONTIGUOUS. You may want to regenerate swigged files using the
updated numpy.i

Deprecate views changing dimensions in fortran order
----------------------------------------------------
This deprecates assignment of a new descriptor to the dtype attribute of
a non-C-contiguous array if it result in changing the shape. This
effectively bars viewing a multidimensional Fortran array using a dtype
that changes the element size along the first axis.

The reason for the deprecation is that, when relaxed strides checking is
enabled, arrays that are both C and Fortran contiguous are always treated
as C contiguous which breaks some code that depended the two being mutually
exclusive for non-scalar arrays of ndim > 1. This deprecation prepares the
way to always enable relaxed stride checking.


Issues Fixed
============

* gh-6019 Masked array repr fails for structured array with multi-dimensional column.
* gh-6462 Median of empty array produces IndexError.
* gh-6467 Performance regression for record array access.
* gh-6468 numpy.interp uses 'left' value even when x[0]==xp[0].
* gh-6475 np.allclose returns a memmap when one of its arguments is a memmap.
* gh-6491 Error in broadcasting stride_tricks array.
* gh-6495 Unrecognized command line option '-ffpe-summary' in gfortran.
* gh-6497 Failure of reduce operation on recarrays.
* gh-6498 Mention change in default casting rule in 1.10 release notes.
* gh-6530 The partition function errors out on empty input.
* gh-6532 numpy.inner return wrong inaccurate value sometimes.
* gh-6563 Intent(out) broken in recent versions of f2py.
* gh-6569 Cannot run tests after 'python setup.py build_ext -i'
* gh-6572 Error in broadcasting stride_tricks array component.
* gh-6575 BUG: Split produces empty arrays with wrong number of dimensions
* gh-6590 Fortran Array problem in numpy 1.10.
* gh-6602 Random __all__ missing choice and dirichlet.
* gh-6611 ma.dot no longer always returns a masked array in 1.10.
* gh-6618 NPY_FORTRANORDER in make_fortran() in numpy.i
* gh-6636 Memory leak in nested dtypes in numpy.recarray
* gh-6641 Subsetting recarray by fields yields a structured array.
* gh-6667 ma.make_mask handles ma.nomask input incorrectly.
* gh-6675 Optimized blas detection broken in master and 1.10.
* gh-6678 Getting unexpected error from: X.dtype = complex (or Y = X.view(complex))
* gh-6718 f2py test fail in pip installed numpy-1.10.1 in virtualenv.
* gh-6719 Error compiling Cython file: Pythonic division not allowed without gil.
* gh-6771 Numpy.rec.fromarrays losing dtype metadata between versions 1.9.2 and 1.10.1
* gh-6781 The travis-ci script in maintenance/1.10.x needs fixing.
* gh-6807 Windows testing errors for 1.10.2


Merged PRs
==========

The following PRs have been merged into 1.10.2. When the PR is a backport,
the PR number for the original PR against master is listed.

* gh-5773 MAINT: Hide testing helper tracebacks when using them with pytest.
* gh-6094 BUG: Fixed a bug with string representation of masked structured arrays.
* gh-6208 MAINT: Speedup field access by removing unneeded safety checks.
* gh-6460 BUG: Replacing the os.environ.clear by less invasive procedure.
* gh-6470 BUG: Fix AttributeError in numpy distutils.
* gh-6472 MAINT: Use Python 3.5 instead of 3.5-dev for travis 3.5 testing.
* gh-6474 REL: Update Paver script for sdist and auto-switch test warnings.
* gh-6478 BUG: Fix Intel compiler flags for OS X build.
* gh-6481 MAINT: LIBPATH with spaces is now supported Python 2.7+ and Win32.
* gh-6487 BUG: Allow nested use of parameters in definition of arrays in f2py.
* gh-6488 BUG: Extend common blocks rather than overwriting in f2py.
* gh-6499 DOC: Mention that default casting for inplace operations has changed.
* gh-6500 BUG: Recarrays viewed as subarrays don't convert to np.record type.
* gh-6501 REL: Add "make upload" command for built docs, update "make dist".
* gh-6526 BUG: Fix use of __doc__ in setup.py for -OO mode.
* gh-6527 BUG: Fix the IndexError when taking the median of an empty array.
* gh-6537 BUG: Make ma.atleast_* with scalar argument return arrays.
* gh-6538 BUG: Fix ma.masked_values does not shrink mask if requested.
* gh-6546 BUG: Fix inner product regression for non-contiguous arrays.
* gh-6553 BUG: Fix partition and argpartition error for empty input.
* gh-6556 BUG: Error in broadcast_arrays with as_strided array.
* gh-6558 MAINT: Minor update to "make upload" doc build command.
* gh-6562 BUG: Disable view safety checks in recarray.
* gh-6567 BUG: Revert some import * fixes in f2py.
* gh-6574 DOC: Release notes for Numpy 1.10.2.
* gh-6577 BUG: Fix for #6569, allowing build_ext --inplace
* gh-6579 MAINT: Fix mistake in doc upload rule.
* gh-6596 BUG: Fix swig for relaxed stride checking.
* gh-6606 DOC: Update 1.10.2 release notes.
* gh-6614 BUG: Add choice and dirichlet to numpy.random.__all__.
* gh-6621 BUG: Fix swig make_fortran function.
* gh-6628 BUG: Make allclose return python bool.
* gh-6642 BUG: Fix memleak in _convert_from_dict.
* gh-6643 ENH: make recarray.getitem return a recarray.
* gh-6653 BUG: Fix ma dot to always return masked array.
* gh-6668 BUG: ma.make_mask should always return nomask for nomask argument.
* gh-6686 BUG: Fix a bug in assert_string_equal.
* gh-6695 BUG: Fix removing tempdirs created during build.
* gh-6697 MAINT: Fix spurious semicolon in macro definition of PyArray_FROM_OT.
* gh-6698 TST: test np.rint bug for large integers.
* gh-6717 BUG: Readd fallback CBLAS detection on linux.
* gh-6721 BUG: Fix for #6719.
* gh-6726 BUG: Fix bugs exposed by relaxed stride rollback.
* gh-6757 BUG: link cblas library if cblas is detected.
* gh-6756 TST: only test f2py, not f2py2.7 etc, fixes #6718.
* gh-6747 DEP: Deprecate changing shape of non-C-contiguous array via descr.
* gh-6775 MAINT: Include from __future__ boilerplate in some files missing it.
* gh-6780 BUG: metadata is not copied to base_dtype.
* gh-6783 BUG: Fix travis ci testing for new google infrastructure.
* gh-6785 BUG: Quick and dirty fix for interp.
* gh-6813 TST,BUG: Make test_mvoid_multidim_print work for 32 bit systems.
* gh-6817 BUG: Disable 32-bit msvc9 compiler optimizations for npy_rint.
* gh-6819 TST: Fix test_mvoid_multidim_print failures on Python 2.x for Windows.

Initial support for mingwpy was reverted as it was causing problems for
non-windows builds.

* gh-6536 BUG: Revert gh-5614 to fix non-windows build problems

A fix for np.lib.split was reverted because it resulted in "fixing"
behavior that will be present in the Numpy 1.11 and that was already
present in Numpy 1.9. See the discussion of the issue at gh-6575 for
clarification.

* gh-6576 BUG: Revert gh-6376 to fix split behavior for empty arrays.

Relaxed stride checking was reverted. There were back compatibility
problems involving views changing the dtype of multidimensional Fortran
arrays that need to be dealt with over a longer timeframe.

* gh-6735 MAINT: Make no relaxed stride checking the default for 1.10.


Notes
=====
A bug in the Numpy 1.10.1 release resulted in exceptions being raised for
``RuntimeWarning`` and ``DeprecationWarning`` in projects depending on Numpy.
That has been fixed.
