Walter Bright:
> All compiler behavior is based on what the observer sees. If the 
> compiler can rearrange things in a manner that the observer cannot 
> detect, then the rearrangement is allowed.

OK. But if the language turns putting impure expressions inside a function call 
into a compile time error, allowing only pure expressions inside function 
calls, then the compiler can always be free to rearrange those expressions, and 
there's both no performance penalty and the programmer can be certain there is 
no performance penalty. I guess you are not interested in this idea.

Bye,
bearophile

Reply via email to