- Document number:
-
ISO/IEC/JTC1/SC22/WG21/D2716R0
- Date:
-
2022-11-11
- Audience:
-
SG15
- Reply-to:
-
René Ferdinand Rivera Morell - grafikrobot at gmail dot com - B2 Maintainer
1. Abstract
This proposes an initial collection of definitions used in the C++ tooling ecosystem. The definitions herein should provide minimal coverage for well understood tools, processes, and concepts currently used in the ecosystem.
3. Motivation
We need a common language to refer to the many components and aspects of the ecosystem. With a shared understanding of components like: compilers, linkers, analyzers, debuggers, package managers, preprocessors, source files, object files, library files, shared library files, executables, and more, we can subsequently formulate specifications for them.
4. Wording
Wording is new and meant for a prospective C++ Ecosystem Internal Standard as proposed in P2656R0. [1]
Add a "Terms and definitions" chapter with the following content.
4.1. Terms and definitions [intro.defs]
For the purposes of this document, the terms and definitions given in:
— ISO/IEC 2382, [2]
— ISO/IEC/IEEE 24765, [3]
— and the following apply.
ISO and IEC maintain terminology databases for use in standardization at the following addresses:
— ISO Online browsing platform: available at https://www.iso.org/obp
— IEC Electropedia: available at https://www.electropedia.org/
Terms that are used only in a small portion of this document are defined where they are used and italicized where they are defined.
4.1.1. build executor [defns.bldexec]
build tool that executes a set of commands in order to complete a build
[ Note 1:
Examples: ninja
, make
, bazel
.
— end note ]
4.1.2. build tool [defns.bldtool]
tool used primarily for building software
[ Note 1: Examples: compiler, build executor, build system. — end note ]
4.1.3. build system [defns.bldsys]
tool which models a build of a set of sources into a set of artifacts
[ Note 1:
Such a tool may be a build executor itself or write out a plan for another
build executor to perform.
Examples: cmake
, meson
, bazel
, gn
, build2
, B2
.
— end note ]
4.1.5. analyzer [defns.anlzr]
tool that diagnoses coding flaws in software programs
[ Note 1: Analyzers may include static analysis tools, tools within a compiler suite, or tools in other contexts. — end note ]
[ Note 2: This definition is compatible with the matching one in ISO/IEC TS 17961:2013. [4] — end note ]
4.1.6. static analyzer [defns.stan]
analyzer that operates on software source code without executing it
[ Note 1: This definition is compatible with the matching one in ISO/IEC TS 17961:2013. [5] — end note ]