D's treatment of values versus side-effect free nullary functions
Walter Bright
newshound2 at digitalmars.com
Wed Jul 21 01:20:31 PDT 2010
Don wrote:
> While running the semantic on each function body, the compiler could
> fairly easily check to see if the function is CTFEable. (The main
> complication is that it has to guess about how many iterations are
> performed in loops). Then, when a CTFEable function is called with
> compile-time constants as arguments, it could run CTFE on it, even if it
> is not mandatory.
I think this is the halting problem, and is insoluble.
This is why the language does CTFE in well-defined circumstances and the CTFE
must succeed else a compilation time error.
I'm not seeing CTFE as a credible optimization tool, either, as none of my
programs would benefit at all from it. For example, what's a text editor going
to precompute?
More information about the Digitalmars-d
mailing list