msg59391 - (view) |
Author: Robin Stocker (robin.stocker) |
Date: 2008-01-06 16:03 |
The attached patch ports the implementation of keyword-only arguments
from revision 52491 back to trunk.
This is the first time I've worked on the C internals, so here are some
notes:
- test_collections is the only test which fails, because it tries to
call a function with more than 255 arguments, which results in a
SyntaxError because of the following added code in Python/ast.c. What
should be done about it?
if (nposargs + nkwonlyargs > 255) {
ast_error(n, "more than 255 arguments");
return NULL;
}
- The patch only adds what's in revision 52491. There is at least one
more change involving keyword-only arguments, for example issue1573. Are
there others? Should they be included in this patch or in a separate one?
- There are some changes which were generated, like Python/Python-ast.c
(which needs to be checked in separately).
- Is there documentation which needs to be updated?
|
msg59406 - (view) |
Author: Robin Stocker (robin.stocker) |
Date: 2008-01-06 21:24 |
Another note: Because the marshalling of code objects is changed, is
there a version number of the format which has to be incremented?
|
msg59430 - (view) |
Author: Guido van Rossum (gvanrossum) * |
Date: 2008-01-07 04:22 |
Thanks for tackling this!
What line in test_collections.py is calling a function with >255 args?
I'm a bit surprised since this has always been disallowed AFAICT.
I'd like to see everything related to keyword-only args included in one
patch. Hopefully the unittests and/or svn history will give you an idea
of what to do.
There should be docs in the reference manual. Maybe Georg knows where.
Don't worry about the generated Python-ast.c patch.
The version number you're looking for is MAGIC in Python/import.c.
|
msg59469 - (view) |
Author: Georg Brandl (georg.brandl) * |
Date: 2008-01-07 17:28 |
Keyword-only-args are not yet documented.
|
msg59515 - (view) |
Author: Robin Stocker (robin.stocker) |
Date: 2008-01-08 01:31 |
Thanks for the feedback!
It's on line 111 in test_collections.py::
n = 10000
import string, random
names = [''.join([random.choice(string.letters) for j in
range(10)]) for i in range(n)]
Big = namedtuple('Big', names)
b = Big(*range(n))
I think the condition is triggered because Big's __new__ (which seems to
be dynamically generated by namedtuple using exec) has an argument list
with 10000 arguments.
Ok, I'm now looking through SVN logs and have already added some more
changes to my patchset.
Thanks, I had changed MAGIC but didn't know that marshal.c uses it.
So I won't handle documentation in this issue then.
|
msg59521 - (view) |
Author: Christian Heimes (christian.heimes) * |
Date: 2008-01-08 03:55 |
I vaguely remember that I had to modify the tests to use 254 args in
Python 3.0.
|
msg59523 - (view) |
Author: Guido van Rossum (gvanrossum) * |
Date: 2008-01-08 05:01 |
There's something I misunderstand then. I thought 2.x also didn't
accept >255 args, but that test would seem to prove I'm wrong.
|
msg59561 - (view) |
Author: Robin Stocker (robin.stocker) |
Date: 2008-01-08 21:25 |
Guido: The check was only done for call nodes, not for function definitions.
|
msg59562 - (view) |
Author: Robin Stocker (robin.stocker) |
Date: 2008-01-08 21:27 |
Ok, I checked all the logs and updated the patch. test_collections uses
n = 254 now and all tests pass.
I left revision 54043 out on purpose, because it fixes Lib/inspect.py
and Lib/pydoc.py for both PEP 3102 and 3107, so it should be included in
the patch for PEP 3107.
|
msg64366 - (view) |
Author: Robin Stocker (robin.stocker) |
Date: 2008-03-23 14:52 |
I've updated the patch to apply cleanly again.
|
msg64665 - (view) |
Author: Georg Brandl (georg.brandl) * |
Date: 2008-03-29 01:25 |
Bumping priority.
|
msg65249 - (view) |
Author: Eric V. Smith (eric.smith) * |
Date: 2008-04-09 18:07 |
The patch doesn't apply cleanly for me. I can fix the non-clean patch,
but another error is that obj2ast_arguments doesn't call arguments()
with the correct parameters. If I pass in NULL's for the new params,
all tests pass, but that just tells me it's not being tested thoroughly.
I'll spend some time looking at it, but if anyone else wants to look at
it, go ahead.
|
msg70360 - (view) |
Author: Benjamin Peterson (benjamin.peterson) * |
Date: 2008-07-28 17:03 |
This will probably have to be deferred to 2.7.
|
msg70687 - (view) |
Author: tav (tav) |
Date: 2008-08-04 07:35 |
What's holding back the backport to 2.6?
|
msg70739 - (view) |
Author: Benjamin Peterson (benjamin.peterson) * |
Date: 2008-08-05 14:18 |
On Mon, Aug 4, 2008 at 1:35 AM, tav <report@bugs.python.org> wrote:
>
> tav <tav@espians.com> added the comment:
>
> What's holding back the backport to 2.6?
The fact that we are working towards the 3rd and final beta.
>
> ----------
> nosy: +tav
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue1745>
> _______________________________________
>
--
Cheers,
Benjamin Peterson
"There's no place like 127.0.0.1."
|
msg71654 - (view) |
Author: Guido van Rossum (gvanrossum) * |
Date: 2008-08-21 16:11 |
This will definitely not be in 2.6.
|
msg85345 - (view) |
Author: Michael Foord (michael.foord) * |
Date: 2009-04-03 23:55 |
Running out of time for 2.7 as well...
|
msg85348 - (view) |
Author: Benjamin Peterson (benjamin.peterson) * |
Date: 2009-04-03 23:58 |
2009/4/3 Michael Foord <report@bugs.python.org>:
>
> Michael Foord <michael@voidspace.org.uk> added the comment:
>
> Running out of time for 2.7 as well...
How so? The first 2.7 alpha probably won't be until the end of summer.
|
msg101435 - (view) |
Author: George Sakkis (gsakkis) |
Date: 2010-03-21 17:36 |
Is there any update on this for 2.7 ?
|
msg101475 - (view) |
Author: George Sakkis (gsakkis) |
Date: 2010-03-22 01:21 |
FWIW I updated the patch to r79264; it applies cleanly and passes the tests but other than that I can't tell if it's ready. It would be nice to have it in 2.7 though.
|
msg109435 - (view) |
Author: Alexandre Vassalotti (alexandre.vassalotti) * |
Date: 2010-07-06 22:23 |
Now, that 2.7 is out we won't able to commit this anymore. It is sad to abandon a good patch like this.
|
|
Date |
User |
Action |
Args |
2022-04-11 14:56:29 | admin | set | github: 46086 |
2010-07-06 22:23:31 | alexandre.vassalotti | set | status: open -> closed resolution: wont fix messages:
+ msg109435
stage: patch review -> resolved |
2010-03-22 01:21:57 | gsakkis | set | files:
+ backport-keyword-only-arguments-full-3.patch
messages:
+ msg101475 |
2010-03-21 17:36:01 | gsakkis | set | nosy:
+ gsakkis messages:
+ msg101435
|
2010-02-13 17:25:36 | alexandre.vassalotti | set | messages:
- msg99320 |
2010-02-13 15:57:39 | alexandre.vassalotti | set | messages:
+ msg99320 |
2009-09-27 15:09:51 | eric.araujo | set | nosy:
+ eric.araujo
|
2009-08-06 02:33:30 | alexandre.vassalotti | set | nosy:
+ alexandre.vassalotti
stage: patch review |
2009-04-03 23:58:17 | benjamin.peterson | set | messages:
+ msg85348 |
2009-04-03 23:55:32 | michael.foord | set | nosy:
+ michael.foord messages:
+ msg85345
|
2009-01-17 16:28:46 | benjamin.peterson | set | priority: critical -> normal |
2008-08-21 16:11:45 | gvanrossum | set | keywords:
- 26backport messages:
+ msg71654 |
2008-08-21 14:26:03 | benjamin.peterson | set | versions:
+ Python 2.7, - Python 2.6 |
2008-08-05 14:18:38 | benjamin.peterson | set | messages:
+ msg70739 |
2008-08-04 07:35:36 | tav | set | nosy:
+ tav messages:
+ msg70687 |
2008-07-28 17:03:20 | benjamin.peterson | set | nosy:
+ benjamin.peterson messages:
+ msg70360 |
2008-04-09 18:07:40 | eric.smith | set | messages:
+ msg65249 |
2008-03-29 01:26:00 | georg.brandl | link | issue2327 superseder |
2008-03-29 01:25:49 | georg.brandl | set | priority: normal -> critical keywords:
+ 26backport messages:
+ msg64665 |
2008-03-23 14:52:20 | robin.stocker | set | files:
+ backport-keyword-only-arguments-full-2.patch messages:
+ msg64366 |
2008-03-18 17:23:47 | eric.smith | set | nosy:
+ eric.smith |
2008-01-08 21:27:59 | robin.stocker | set | files:
+ backport-keyword-only-arguments-full.patch messages:
+ msg59562 |
2008-01-08 21:25:35 | robin.stocker | set | messages:
+ msg59561 |
2008-01-08 05:01:32 | gvanrossum | set | messages:
+ msg59523 |
2008-01-08 03:55:17 | christian.heimes | set | priority: normal nosy:
+ christian.heimes messages:
+ msg59521 |
2008-01-08 01:31:09 | robin.stocker | set | messages:
+ msg59515 |
2008-01-07 17:28:04 | georg.brandl | set | messages:
+ msg59469 |
2008-01-07 04:22:59 | gvanrossum | set | keywords:
+ patch |
2008-01-07 04:22:52 | gvanrossum | set | nosy:
+ gvanrossum, georg.brandl messages:
+ msg59430 |
2008-01-06 21:24:52 | robin.stocker | set | messages:
+ msg59406 |
2008-01-06 16:04:01 | robin.stocker | create | |