gawkworkflow: Compilers
8.3.2 Compilers
---------------
The default compiler for 'gawk' development is GCC, the GNU Compiler
Collection (https://gcc.gnu.org). 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'
(https://clang.llvm.org/). 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.
_The Tiny C Compiler, '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.(1)
See the project's home page (http://www.tinycc.org) for some
information. More information can be found in the project's Git
repository (http://repo.or.cz/tinycc.git). 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.
_The (Revived) Portable C Compiler_
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 (http://pcc.ludd.ltu.se) 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 (https://github.com/arnoldrobbins/pcc-revived) of the
code.
---------- Footnotes ----------
(1) This bit the maintainer once.