-
Notifications
You must be signed in to change notification settings - Fork 782
Description
The core rules have no definitions or requirements about "compile". Instead, there are phrase of "during tranlsation", supported by rules in [lex]. However, there is one instance of "compile" in [intro.compliance.general] and many instances of phrases like "compile-time" in the normatie library clauses. So comes the problem: is it intentional to differentiate these mentioning? If so, what does "compile" exactly mean?
The problem raises, because traditionally "compile" is performed by a compiler, and now there do exist interpreters rather than compilers like Cling. And it seems clear enough that we don't want to rule out even pure interpreters (without any JIT compilation techniques, etc.) so "translation unit" is used instead of "compilation unit" (as languages like Java). Then there are inconsistencies.
Probably the instance in [intro.compliance.general] can be informative, all "at compile time" can be "during translation", and all other "compile" can be "translate"/"translation". Otherwise, we may need some addtional normative rules to clearify what "compile" is meaning in the existing clauses, and to show how necessary it is not just "translate".