[Python-bugs-list] [ python-Bugs-448679 ] Left to right

noreply@sourceforge.net noreply@sourceforge.net
Mon, 16 Dec 2002 06:05:21 -0800


Bugs item #448679, was opened at 2001-08-07 06:55
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=448679&group_id=5470

Category: Documentation
>Group: Python 2.3
>Status: Closed
Resolution: Accepted
Priority: 5
Submitted By: Tim Peters (tim_one)
Assigned to: Gustavo Niemeyer (niemeyer)
Summary: Left to right

Initial Comment:
The Ref Man doesn't explicitly say anything about 
Python's left-to-right evaluation order.  Strict left-
to-right was Guido's intent, though, and it comes up a 
few times per year on c.l.py (indeed, I was just 
replying to a msg asking about it).

The docs should get fleshed out.

There's also a bug:

>>> counter = 0
>>> def i():
...     global counter
...     counter += 1
...     return counter
...
>>> {i(): i()}
{2: 1}
>>> {i(): i(), i(): i()}
{4: 3, 6: 5}
>>>

That is, key:value *pairs* are evaluated left to 
right, but within a single key:value pair, the value 
gets evaluated first.  When I asked Guido about that 
some years ago, he agreed it was a bug.


----------------------------------------------------------------------

>Comment By: Gustavo Niemeyer (niemeyer)
Date: 2002-12-16 14:05

Message:
Logged In: YES 
user_id=7887

Martin, I've checked with Jython and the examples are ok as
well.

I have applied as:

Doc/ref/ref5.tex: 1.71
Python/compile.c: 2.267
Lib/compiler/pycodegen.py: 1.62
Misc/NEWS: 1.561

Thank you!


----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2002-12-02 10:58

Message:
Logged In: YES 
user_id=21627

The patch looks fine, please apply it.

It would be good to check that Jython meets all your 
expectations in this respect, and that it, in particular, 
executes all the examples in the documentation in the right 
order.

This change should *not* be backported to 2.2 IMO.

----------------------------------------------------------------------

Comment By: Gustavo Niemeyer (niemeyer)
Date: 2002-12-01 02:05

Message:
Logged In: YES 
user_id=7887

Martin, could you please review the proposed solution?

----------------------------------------------------------------------

Comment By: Gustavo Niemeyer (niemeyer)
Date: 2002-11-26 22:56

Message:
Logged In: YES 
user_id=7887

I'm attaching a suggested solution for the problem,
including documentation and reordering of dict evaluation.


----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2002-08-04 09:58

Message:
Logged In: YES 
user_id=21627

With the patch attached, this behaviour is cast into stone
(or, atleast into a SF tracker :)

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=448679&group_id=5470