cplusplus / cplusplus/draft

What is "compile"?

Open
#5,641 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

P3-Other
Dominant language
TeX
Stars
221
Forks
813
Avg merge
16h 4m
Merged PRs (30d)
36

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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the core rules in [lex] with the occurrence in [intro.compliance.general] and the normative library clauses that use “compile” or “compile-time.” Determine whether the terms are intentionally distinct from “translation,” then update the affected standard wording or add the necessary normative definition. Done means the terminology is consistent and its intended meaning is clear across the cited clauses.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, tex
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.