[Python-Dev] Dictionary evaluation order (original) (raw)

Gustavo Niemeyer niemeyer@conectiva.com
Tue, 26 Nov 2002 02:33:36 -0200


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);

(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 ]