Stefan Behnel wrote: > Lisandro Dalcin, 05.07.2010 18:11: > >> On 5 July 2010 12:34, Stefan Behnel<[email protected]> wrote: >> >>> Lisandro Dalcin, 05.07.2010 17:15: >>> >>>> On 5 July 2010 11:32, Stefan Behnel wrote: >>>> >>>>> Py2.7 final gives me this: >>>>> >>>>> Python 2.7 (r27:82500, Jul 5 2010, 13:37:06) >>>>> [GCC 4.4.3] on linux2 >>>>> Type "help", "copyright", "credits" or "license" for more >>>>> information. >>>>> >>>>> >>> {i for i in range(10)}; i >>>>> set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>>>> Traceback (most recent call last): >>>>> File "<stdin>", line 1, in<module> >>>>> NameError: name 'i' is not defined >>>>> >>>>> >>> {i:i for i in range(10)}; i >>>>> {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} >>>>> Traceback (most recent call last): >>>>> File "<stdin>", line 1, in<module> >>>>> NameError: name 'i' is not defined >>>>> >>>>> List comprehensions have not changed: >>>>> >>>>> >>> [i for i in range(10)]; i >>>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>>>> 9 >>>>> >>>>> I know, I have asked this more than once already, but I think this is >>>>> finally enough of a reason to fix the current behaviour also in Cython. >>>>> >>>> No objections from my side. However, perhaps you would like to >>>> consider a compiler directive to enable this annoying thing? Ideally, >>>> by default, it should be enabled on *.py files and disabled on *.pyx >>>> files. >>>> >>> What purpose would that serve? I think it's one way or the other. (And my >>> preference should be clear by now.) >>> >> Just backward compatibility, in case Cython is asked to handle *.py files. >> >> >>>> PS: We have to start in making Cython target Python 3, and provide >>>> support for Python 2 features on-demand, let say by using a compiler >>>> directive #python2: enable-something=True,use-this-semantics=True >>>> >>> There are "-2" and "-3" options at the command line and a "language_level" >>> directive at the source level now. >>> >>> >> OK. Good to know we have -2/-3. Then, what are you going to do under >> -2 for list comprehensions? >> > > Oh, list comprehensions won't change (unless compiling with -3), thus > keeping the same quirky state that they have in Py2.x. Only set/dict > comprehensions will change, following Py2.7, so that list comprehensions > are the *only* remaining quirk here when compiling Py2 code. > Oh. Then I really can't imagine how anyone could ever disagree with you on this one.
Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
