On Friday, 8 June 2018 at 05:10:16 UTC, H. S. Teoh wrote:
All this talk of CTFE and "compile-time", along with the
confusion that arises from conflating everything done by the
compiler into the blanket term "compile-time" makes me want to
scream:
https://wiki.dlang.org/User:Quickfur/Compile-time_vs._compile-time
</shameless self-plug>
;-)
tl;dr: D's "compile-time" features consist of (at least) two
distinct phases of code transformation: template expansion and
CTFE, and having a proper understanding of exactly what they
are and what the distinction between them is, will go a long
way in clearing up a lot of the confusion commonly experienced
by newcomers to D in regard to D's so-called "compile-time"
features.
--T
May I suggest that you add a flow chart that gives a very high
level understanding of the compiler steps. Like how Rust's
introduction to MIR has:
https://blog.rust-lang.org/2016/04/19/MIR.html