codehaus


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

constant folding - why not more


11.11.20 02:46, Skip Montanaro ????:
> I can think of two reasons. One, this kind of comparison will almost never
> appear in production code (maybe in unit tests?). Unlike the C family of
> languages, Python doesn't have a macro processor which would give symbolic
> names to numeric constants or string literals. Code generators might
> conceivably generate constant comparisons, but they might be able to easily
> do constant folding of comparisons themselves.
> 
> Two, given that this sort of construct will almost never be found in the
> wild, folding constant comparisons in the compiler would increase the
> maintenance burden of the compiler (just slightly, but still...) with no
> clear benefit.

I concur with Skip. Expressions like 2**32-1 or 1/3 or b'A'[0] are
pretty common, so it makes sense to evaluate them at compile time. But
comparison and boolean operators are newer used with constants in
production code.