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 <rep...@bugs.python.org> <http://bugs.python.org/issue16791> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com