The default compiler for gawk
development is GCC, the
GNU Compiler Collection.
The default version of GCC is whatever is on the
maintainer’s personal GNU/Linux system, although he does try to build
the latest released version if that is newer than what’s
on his system, and then occasionally test gawk
with it.
He also attempts to test occasionally with clang
. However, he uses whatever is the default for his
GNU/Linux system, and does not make an effort to build the current
version for testing.
Both GCC and clang
are highly optimizing compilers that produce
good code, but are very slow. There are two other compilers that
are faster, but that may not produce quite as good code. However, they
are both reasonable for doing development.
tcc
This compiler is very fast, but it produces only mediocre code.
It is capable of compiling gawk
, and it does so well enough
that ‘make check’ runs without errors.
However, in the past the quality has varied, and the maintainer has
had problems with it. He recommends using it for regular development,
where fast compiles are important, but rebuilding with GCC before doing
any commits, in case tcc
has missed something.11
See the project’s home page for
some information. More information can be found in the project’s
Git repository. The maintainer builds
from the mob
branch for his work, but after updating it you should
check that this branch still works to compile gawk
before
installing it.
This is an updated version of the venerable Unix Portable C Compiler,
PCC. It accepts ANSI C syntax and supports both older and modern
architectures. It produces better code than tcc
but is slower,
although still much faster than GCC and clang
.
See the project’s home page for more information. See http://pcc.ludd.ltu.se/supported-platforms for instructions about obtaining the code using CVS and building it.
An alternative location for the source is the gawk
maintainer’s Git mirror of the code. If you’re using Ubuntu GNU/Linux 18.04
or later, you need to use the ubuntu-18
branch from this
Git mirror.