Compile-time vs. compile-time

ag0aep6g anonymous at example.com
Wed Jan 3 13:44:21 UTC 2018


On 01/03/2018 02:51 AM, H. S. Teoh wrote:
> 	https://wiki.dlang.org/User:Quickfur/Compile-time_vs._compile-time#But_what_of_runtime_performance.3F
> 
> object.destroy! :-P

In the CTFE section, you explain that it came from constant folding, but 
you don't point out how the two are different. After reading the 
section, a newbie might think that the term "CTFE" is for when constant 
folding evaluates function calls. But that's not what we mean by "CTFE".

What's missing is that CTFE is forced/guaranteed. It's not an 
optimization. When we say "CTFE", we mean the cases where compilation 
fails if the expression cannot be evaluated.

I doesn't help that the `i` variables in the examples are (seemingly) 
globals, but you also talk about putting them in a "busy inner loop". If 
I just copy the code as it is, `i` is a global and I get actual CTFE. If 
I put `i` in a loop, it's a local and it's up to the compiler if it does 
non-CTFE constant folding.

Also, you mistyped Stefan Koch's name.


More information about the Digitalmars-d mailing list