On Mi, 2016-09-07 at 09:22 -0700, Nathaniel Smith wrote:
On Sep 7, 2016 9:03 AM, "Sebastian Berg"
wrote: Hi all,
Pauli just opened a nice pull request [1] to add overlap detection
the new iterator, this means adding a new iterator flag:
`NPY_ITER_COPY_IF_OVERLAP`
If passed to the iterator (also exposed in python), the iterator will copy the operands such that reading and writing should only occur for identical operands. For now this is implemented by always copying
output/writable operand (this could be improved though, so I would not say its fixed API). I wonder if there is any way we can avoid the flag, and just make
to the this happen automatically when appropriate? nditer has too many "unbreak-me" flags already. Are there any cases where we *don't* want the copy-if-overlap behavior? Traditionally overlap has triggered undefined behavior, so there's no backcompat issue, right?
Puh, I remember weird abuses, that sometimes stopped working. Even just adding it to ufuncs might destroy some weird cases in someones script.... Whether or not we can just make it default, might be worth thinking about it. What do downstream projects that use the API think? My guess is that would be projects such as numexpr, numba, or I think theano? Maybe another approach is to think about some other way to make good defaults to the iterator easier/saner. Heck, I wonder if we would default to things like "zero size ok" and warned about it, anyone would notice unless as in: Oh I should make it zero size ok ;). - Sebastian
-n _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion