[Python-Dev] Dictionary evaluation order (original) (raw)
Gustavo Niemeyer niemeyer@conectiva.com
Tue, 26 Nov 2002 02:33:36 -0200
- Previous message: [Python-Dev] Some bugs in Python? Is this reportable?
- Next message: [Python-Dev] Dictionary evaluation order
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I was just looking at the bug
[#448679] Left to right
It mentions that code like that
{f1():f2(), f3():f4()}
Will call these functions in the order f2, f1, f4, f3. What should we do about it? Tim mentions that "When [Tim] asked Guido about that some years ago, he agreed it was a bug.". Is it too late to fix it, or is it still a desirable fix?
The fix should be as easy as that:
diff -u -r2.264 compile.c --- Python/compile.c 3 Oct 2002 09:50:47 -0000 2.264 +++ Python/compile.c 26 Nov 2002 04:02:27 -0000 @@ -1527,9 +1527,9 @@ It wants the stack to look like (value) (dict) (key) */ com_addbyte(c, DUP_TOP); com_push(c, 1);
com_node(c, CHILD(n, i+2)); /* value */
com_addbyte(c, ROT_TWO); com_node(c, CHILD(n, i)); /* key */
com_node(c, CHILD(n, i+2)); /* value */
com_addbyte(c, ROT_THREE); com_addbyte(c, STORE_SUBSCR); com_pop(c, 3); }
(compiler module should be fixed as well, as it mimicks that behavior)
So I belive it just a matter of deciding what should be done.
-- Gustavo Niemeyer
[ 2AAC 7928 0FBF 0299 5EB5 60E2 2253 B29A 6664 3A0C ]
- Previous message: [Python-Dev] Some bugs in Python? Is this reportable?
- Next message: [Python-Dev] Dictionary evaluation order
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]