the customizable gcc compiler
As a derivate of gcc, mygcc
is distributed under GPL license (the same version as GCC). It
has been submitted as a gcc
patch for the main trunk and is waiting for approval to become
(hopefully) part of the standard gcc release. Until then, we
distribute a current snapshot in full source and as an executable for
the Linux/x86 platform. Currently, the patch is maintained within the
"graphite" development branch of gcc.
Note: Several
versions of mygcc are available below for historical
reasons, but only the most recent version is maintained, and
installation instructions may not apply to older versions.
Version 1.0.1 precompiled
or source distributions (based on
gcc graphite branch r123798)
Changes:
adds experimental support for C++
Version 1.0.0 precompiled
or source distributions (based on
gcc graphite branch r123798)
Changes:
checks (or condates) are now parsed using a Bison grammar
the syntax of condates has been significantly revised and extended
a first testsuite has been integrated in gcc's testsuite
more testing, including on gcc itself during compiler's bootstrapping
documentation has been integrated in gcc's info pages
more reliable dynamic allocation using Vectors
Version 0.2.1 precompiled
or source distributions (based on
gcc 4.2 main development line as of 27/5/2006)
Changes:
adapted the pattern matching to cope with some changes in the pretty-printer
formatted the source code according to gnu & gcc rules
Version
0.2.0 (based on gcc 4.0.1)
Changes:
constrained reachability checks are now specified on 5 lines (instead of 4)
supports reachability checks and simple checks using two options, --tree-checks and --tree-check respectively
tolerates whitespace in the patterns
variables may be named by any letter (not just X, Y, Z, a, b, c)
compiles itself and passes succesfully the gcc testsuite on Linux/x86
Version 0.1.0 (based on gcc
3.0).
Note: version 0.1.0 is provided only to reproduce the
tests on an old Linux kernel, that cannot be compiled with newer
versions. See the page for
that example for further instructions.
If you download the source distribution, follow the standard gcc
installation procedure (see the gcc site for more help).
To
install the precompiled checking compiler, unpack the downloaded
(binary) archive in a directory $MYGCC of your choice. You are now
ready to run your first checking example:
cd $MYGCC
mygcc/1.0.1/bin/gcc --tree-checks=ex/ex1.chk ex/ex1.c
mygcc/1.0.1/bin/g++ --tree-checks=ex/ex2.chk ex/ex2.C