GCC Jargon File
An incomplete guide to jargon and concepts used in the GCC community.
- master
the primary Git branch where new work gets committed. Once a year we fork a new branch from master and that will become the next major release of GCC.
- trunk
this is another name for the master branch in Git. This term originally comes from cvs carried forward with svn and continued into git.
- git
the tool we use for storing (and working with) our source code. See https://gcc.gnu.org/git.html and https://git-scm.org
- bugzilla
our bug tracker. See https://gcc.gnu.org/bugzilla/ (and https://gcc.gnu.org/bugs/)
- ChangeLog
files in the repository, generated from commit messages nightly. See the GCC Coding Conventions.
- compile farm
a network of servers that are available for building+testing GCC (and other software). See https://portal.cfarm.net/
- IRC
a chat service. See GCConIRC for where you can talk about GCC on IRC.
- DCO
Developer's Certificate of Origin (Signed-off-by). See https://gcc.gnu.org/dco.html. Make sure you understand it before using it.
- ICE
- Internal Compiler Error, this is what happens when GCC crashes due to an internal bug.
- LTO
Link Time Optimization. See https://en.wikipedia.org/wiki/Interprocedural_optimization#WPO_and_LTO
- PGO/FDO
Profile Guided Optimization/FeedBack Driven Optimization See https://en.wikipedia.org/wiki/Profile-guided_optimization
- pedwarn
a diagnostic that is controlled by the -pedantic and -pedantic-errors options.
- permerror
a diagnostic that can be relaxed from an error to a warning using the -fpermissive option.
- PR and PRXXXX
- Problem Report. A synonym for bug or bug report. Not to be confused with Pull Request (github usage).
- DR
- Defect report; usually in reference to the C or C++ standards.
- regtest
Regression test (run the GCC testsuite and check for new failures or any unexpected changes in its results).
- regstrap
- Bootstrap and regression test (build gcc in its bootstrap configuration then run the testsuite and check for new failures).
- checking
- GCC-internal assertions.
- release checking
the default level of assertions (--enable-checking=release) on release branches. Faster than the default for development.
- debug counter
parameter to control the number of transformations an optimization pass makes, useful for Analysing_Large_Testcases
- miscompilation, wrong code
- the compiler generated incorrect (not inefficient) code
- missed optimization
- the compiler generated inefficient code
- IFNDR
- Ill-Formed, No Diagnostic Required, C++-specific
- patch or diff
Changes to the source code of GCC submitted in the proper format. See https://gcc.gnu.org/contribute.html#patches
- ubsan
UBSAN is a runtime undefined behaviour checker. https://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan
- asan
AddressSanitizer. See https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fsanitize_003daddress
- bootstrap
This is what happens by default when you invoke 'make' GCC to build from source. In short, build gcc from source, then build it again using the gcc that you just built, then built gcc again with that previous gcc and compare that the two executables are identical. More details: https://gcc.gnu.org/install/build.html
- WG14
- The committee that develops the C standard
- WG21
- the committee that develops the C++ standard
- J3
- the committee that develops the Fortran standard
- CWG
- Core Working Group; usually in reference to the language part of the C++ standards working group; if combined with a number then it is the defect report # with respect to the language (non library) part of the standard.
- LWG
- Library Working Group; usually in reference to the library part of the C++ standards working group; if combined with a number then it is the defect report # with respect to the library part of the standard.
- Cauldron
- the GNU Tools Cauldron is an annual event to discuss the GNU Toolchain in-person
- rebase
- TODO
- backport
- TODO
- vrp
- Value range propagation.
- ranger
- The engine in GCC that provides range information to various passes, including but not limited to VRP.
- irange
- Integer ranges in the ranger.
- prange
- Pointer ranges in the ranger.
- frange
- Floating-point ranges in the ranger.
TODO:
- - Sort alphabetically.
- Merge with GCC_glossary and abbreviations_and_acronyms
This page was inspired by a similar article for the postgresql mailing lists: https://www.crunchydata.com/blog/understanding-the-postgres-hackers-mailing-list Some of it is specific to postgresql, but there are some acronyms and terms there that are also used in the GCC community.