msg275879 - (view) |
Author: Robert Collins (rbcollins) *  |
Date: 2016-09-11 22:43 |
The test.test_getargs2.TupleSubclass test is failing in master. I suspect its a fastcall fallout. |
|
|
msg275882 - (view) |
Author: Steve Kowalik (stevenk) |
Date: 2016-09-11 22:59 |
I've bisected this via the git mirror, and converting it to the hg changeset gives changeset 103659:51b635e81958 as what introduced this failure. |
|
|
msg275936 - (view) |
Author: Steve Dower (steve.dower) *  |
Date: 2016-09-12 03:18 |
I added a fix in 7793d34609cb assuming that the intent is to allow subclasses of tuple to be passed directly as *args rather than creating a new tuple. The original changeset seems to suggest this is the intent. |
|
|
msg275956 - (view) |
Author: Ned Deily (ned.deily) *  |
Date: 2016-09-12 04:42 |
Serhiy, what do you think? |
|
|
msg275961 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-09-12 05:00 |
Thank you for making buildbots green Steve. The intent of 51b635e81958 was avoiding needless copying. But this caused to leaking tuple subtype in case of single var-positional argument without other positional arguments. The intent of tests was checking that tuple subtype is not leaked to called function. There is a bug, but I need to find the place where tuple subtype should be converted to tuple without needless hitting performance. |
|
|
msg276066 - (view) |
Author: Gregory P. Smith (gregory.p.smith) *  |
Date: 2016-09-12 16:31 |
I'm marking this as a deferred blocker as i believe we want this resolved before we exit the betas. |
|
|
msg276071 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-09-12 17:09 |
This bug is not so critical. This bug exists in 3.5 and 2.7. Tests was added in , but at that moment the bug already was fixed in 3.6 (maybe accidentally). |
|
|
msg277213 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-09-22 09:52 |
The simplest way is just change PyTuple_Check to PyTuple_CheckExact in ceval.c. Maybe this is suboptimal for tuple subclasses (namedtuple?), but I think this is very rare case. |
|
|
msg277227 - (view) |
Author: Raymond Hettinger (rhettinger) *  |
Date: 2016-09-22 14:56 |
> The simplest way is just change PyTuple_Check to > PyTuple_CheckExact in ceval.c. +1 |
|
|
msg277232 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2016-09-22 16:44 |
New changeset 5324906ae307 by Serhiy Storchaka in branch '3.6': Issue #28086: Single var-positional argument of tuple subtype was passed https://hg.python.org/cpython/rev/5324906ae307 New changeset 858afd17e3ee by Serhiy Storchaka in branch 'default': Issue #28086: Single var-positional argument of tuple subtype was passed https://hg.python.org/cpython/rev/858afd17e3ee |
|
|