Skip to content

What is "compile"? #5641

@FrankHB

Description

@FrankHB

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".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions