At 01:37 PM 6/25/2006 -0700, Raymond Hettinger wrote: >>>No thanks. That is its own can of worms. The obvious solutions (like const >>>declarations, macros, or a syntax to force compile-time expression >>>evaluation) >>>are unlikely to sit well because they run afoul Python's deeply ingrained >>>dynamism. >>> >> >>I think perhaps you haven't been paying close attention to Fredrik's >>proposal. >Yes, I have been. That is one of the three options I listed above. >Each has its own issues. > >The static() keyword works like Forth's brackets for forcing compile-time >evaluation.
No, it doesn't; this is why I suggested that you haven't been paying close attention. The evaluation is at function definition time, not compile time. >The issue for us is that unlike other Python expressions, there are >inconvenient limitiations on what can be expressed inside: > > five = 5 > eight = [8] > def f(x, six=6): > seven = 7 > a = static(five + 4) # this is legal > b = static(six + 4) # this is illegal > c = static(seven + 4) # this is illegal > d = static(eight + [4]) # this is illegal The last one is perfectly legal, and the middle two make no sense. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com