[issue16791] itertools.chain.from_iterable doesn't stop

Mark Dickinson report at bugs.python.org
Fri Dec 28 17:52:10 CET 2012


Mark Dickinson added the comment:

It looks to me as though this has nothing to do with itertools  In CPython 2.7:


Python 2.7.3 |EPD 7.3-1 (32-bit)| (default, Apr 12 2012, 11:28:34) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "credits", "demo" or "enthought" for more information.
>>> b = [1]
>>> b += (x for x in b)   # runs until Ctrl-C
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <genexpr>
KeyboardInterrupt


In PyPy:

Python 2.7.2 (341e1e3821fff77db3bb5cdb7a4851626298c44e, Jun 09 2012, 14:24:15)
[PyPy 1.9.0] on darwin
Type "help", "copyright", "credits" or "license" for more information.
And now for something completely different: ``the world doesn't want us to
know''
>>>> b = [1]
>>>> b += (x for x in b)  # Returns immediately.
>>>> b
[1, 1]

So it seems that PyPy is building the RHS before appending it to b.  That looks like a bug in PyPy to me.

----------
nosy: +mark.dickinson

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue16791>
_______________________________________


More information about the Python-bugs-list mailing list