[Python-Dev] Why is nb_inplace_add copied to sq_inplace_concat?
Nick Coghlan
ncoghlan at gmail.com
Fri May 17 05:41:32 CEST 2013
More information about the Python-Dev mailing list
Fri May 17 05:41:32 CEST 2013
- Previous message: [Python-Dev] Why is nb_inplace_add copied to sq_inplace_concat?
- Next message: [Python-Dev] Why is nb_inplace_add copied to sq_inplace_concat?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, May 17, 2013 at 1:38 PM, Nick Coghlan <ncoghlan at gmail.com> wrote: > On Fri, May 17, 2013 at 9:17 AM, Matt Newell <newellm at blur.com> wrote: >> I don't really understand what the fixup_slot_dispatchers function is doing, >> but it does seem like there must be a bug either in what it's doing, or in >> PyNumber_InPlaceAdd's handling of a NotImplemented return value from >> sq_inplace_concat. > > I didn't read your post in detail, but operand precedence in CPython > is known to be broken for types which only populate the sq_* slots > without also populating the corresponding nb_* slots: > http://bugs.python.org/issue11477 Oops, I meant to state that one of the consequences of the bug is that returning NotImplemented from the sq_* methods doesn't work at all - it's never checked and thus never turned into a TypeError. That's why changing to delegation from the nb_* slots is the most promising approach - all that handling is there and correct for the numeric types, but pure sequence types (which can only be created from C code) bypass that handling. I *did* read enough of the original post to know that was the symptom you were seeing, I just failed to mention that in my initial reply... Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] Why is nb_inplace_add copied to sq_inplace_concat?
- Next message: [Python-Dev] Why is nb_inplace_add copied to sq_inplace_concat?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list