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?

Reply via email to