On Nov 23, 2006, at 11:21 AM, Phillip J. Eby wrote:
> Why not just have the generated bytecode construct the annotation
> dictionary directly and assign it to the returned function's
> func_annotations, and the same for func_return if needed? Then
> there'd be no need to change the MAKE_FUNCTION opcode. Mightn't
> that make it easier to e.g. backport to the 2.x line, since it'd
> only be a compiler change, not an interpreter or function type change?
>
>
It's more trips around the ceval loop and more constants on
the code object with the MAKE_FUNCTION opcode.
OTOH the mask stuff is pretty ugly. As a bonus, solving this problem
is easier:
>>> def f((x,y):1): pass
...
>>> f.func_annotations
{'.0': 1}
I'm not sure how backwards compatibility is affected. MAKE_FUNCTION
has already changed in p3yk.
It's worth a try though, thanks!
-Tony
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com