This is a prototype system for development of the C∀ ("Cforall") compiler.
It is used to explore algorithmic and architectural modifications to the primary C∀ compiler.
The prototype system does not implement a full C∀ compiler, but instead does expression resolution on an input language capturing the major features of C∀ (see parser.h for a description of the input language, and tests/*.in for examples).
make rp will build the resolver prototype; available build flags:
DBG(default absent)- absent: release build
0: development build1: development build with extra safety checks2: development build with extra safety checks and debug traces
DIR(defaultbuor last used)bu: bottom-up resolutionco: bottom-up-combined expression resolutiontd: top-down resolution
ASN(defaultdcaor last used)dca: deferred-cached assertion satisfactiondef: deferred assertion satisfactionimm: immediate assertion satisfactiontop: top-level assertion satisfaction
ENV(defaultperor last used)bas: basic type environmentinc: incremental inheritance type environmentper: persistent union-find type environment Changing any build flag will cause a clean rebuild.
Regression tests are in tests and can be run with run.sh. Various benchmark suites are located in bench, cfabench, cfastdlib, and cfaother, and can also be run with the appropriate run.sh.