Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge master into 1.9 branch #4849

Merged
merged 96 commits into from Jul 7, 2014
Merged

Conversation

juliantaylor
Copy link
Contributor

as we have not opened 1.10 yet we can merge it into 1.9 to preserve ancestry of the changes and simplify backports

…laboration of the problems with mixing np.ndarray and np.matrix
juliantaylor and others added 27 commits June 30, 2014 19:35
MAINT: const correctness and minor fixes to C code
FIX pickling ufuncs defined in nested modules
clongdouble type required alignment of 32 bytes which is never provided
by numpys allocation scheme so they always took unaligned paths.
As complex types are structs of two smaller types only half the
alignment is actually required for operations on them.
Copying complex types on the other hand might require a larger alignment
as copies can be done on the whole structure so one can not just remove
the doubling of the alignment.

As a compromise limit the maximum alignment to 16 bytes which is double
what the current numpy copy loops require and does not penalize amd64
with unnecessary unaligned code paths in most cases.
16 bytes might be required on sparc to load long doubles.
Complex doubles on i386 will still unnecessarly take unaligned code
paths as the system will not provide 16 byte alignment.
Closes numpygh-3768
e.g. ufunc_at wraps input arrays which without this fix causes the
iterator to choose much slower unaligned code paths.
Also pointers from malloc can be not aligned for long double types, e.g.
on debian sparc.
transposing structured arrays can lose alignment
(debian) sparc system malloc does not provide the alignment required by 16 byte
long double types this means the inout intent cannot be satisfied and several
tests fail as the alignment flag can be randomly true or fals when numpy gains
an aligned allocator the tests could be enabled again.
when orders are selected where the kth element falls into an equal range
the the last stored pivot was not the kth element, this leads to losing
the ordering of smaller orders as following selection steps can start at
index 0 again instead of the at the offset of the last selection.
Closes numpygh-4836
BUG: wrong selection for orders falling into equal ranges
the number types does not match the size of the blank array anymore, use
a larger array and add asserts to ensure the size matches.
Uses old code to be more broad then previous commit
When a cython object contains numpy arrays the pure python allocation
hook can trigger during cythons __dealloc__ method and trigger a second
deletion of the object currently being deleted.
To minimize the probabily that that happens disable the garbage
collector during the hook.
As this involves python calls it is still possible that a double delete
occurs but chances are lowered, a proper solution would be C only hook
like python 3.4 tracemalloc module.

Closes numpygh-4834
BUG: disable garbage collector during memory allocation hook
WIP: Fix matplotlib, etc. errors
BUG: retain writeable flag when indexing subclasses
Fix spelling and grammar in

numpy/core/src/multiarray/mapping.c
numpy/core/tests/test_indexing.py
numpy/core/tests/test_regression.py
BUG: fix buffer overflow in data array of ldexp and frexp
A new PEP for infix matrix multiplication
DOC: Update 1.9.0-notes to mention pairwise summation.
juliantaylor added a commit that referenced this pull request Jul 7, 2014
merge master into 1.9 branch
@juliantaylor juliantaylor merged commit 301c470 into numpy:maintenance/1.9.x Jul 7, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants