## 3 Distribution Contents

The file `distrib/cil-1.6.0.tar.gz` contains the complete source CIL distribution, consisting of the following files:

> Filename | Description
> `Makefile.in` | `configure` source for the Makefile that builds CIL/
> `configure` | The configure script.
> `configure.in` | The `autoconf` source for `configure`.
> `config.guess` | Stuff required by `configure`.
> `config.sub` | idem
> `install-sh` | idem
> `doc/` | HTML documentation of the CIL API.
> `obj/` | Directory that will contain the compiled CIL modules and executables.
> `bin/cilly.in` | The `configure` source for a Perl script that can be invoked with the same arguments as either `gcc` or Microsoft Visual C and will convert the program to CIL, perform some simple transformations, emit it and compile it as usual.
> `lib/CompilerStub.pm` | A Perl class that can be used to write code that impersonates a compiler. `cilly` uses it.
> `lib/Merger.pm` | A subclass of `CompilerStub.pm` that can be used to merge source files into a single source file.`cilly` uses it.
> `bin/patcher.in` | A Perl script that applies specified patches to standard include files.
> `src/check.ml,mli` | Checks the well-formedness of a CIL file.
> `src/cil.ml,mli` | Definition of CIL abstract syntax and utilities for manipulating it.
> `src/clist.ml,mli` | Utilities for efficiently managing lists that need to be concatenated often.
> `src/errormsg.ml,mli` | Utilities for error reporting.
> `src/ext/heapify.ml` | A CIL transformation that moves array local variables from the stack to the heap.
> `src/ext/logcalls.ml,mli` | A CIL transformation that logs every function call.
> `src/ext/sfi.ml` | A CIL transformation that can log every memory read and write.
> `src/frontc/clexer.mll` | The lexer.
> `src/frontc/cparser.mly` | The parser.
> `src/frontc/cabs.ml` | The abstract syntax.
> `src/frontc/cprint.ml` | The pretty printer for CABS.
> `src/frontc/cabs2cil.ml` | The elaborator to CIL.
> `src/main.ml` | The `cilly` application.
> `src/pretty.ml,mli` | Utilities for pretty printing.
> `src/rmtmps.ml,mli` | A CIL tranformation that removes unused types, variables and inlined functions.
> `src/stats.ml,mli` | Utilities for maintaining timing statistics.
> `src/testcil.ml` | A random test of CIL (against the resident C compiler).
> `src/trace.ml,mli` | Utilities useful for printing debugging information.
> `ocamlutil/` | Miscellaneous libraries that are not specific to CIL.
> `ocamlutil/Makefile.ocaml` | A file that is included by `Makefile`.
> `ocamlutil/perfcount.c` | C code that links with src/stats.ml and reads Intel performance counters.
> `obj/@ARCHOS@/feature_config.ml` | File generated by the Makefile describing which extra “features” to compile. See Section 5.
> `obj/@ARCHOS@/machdep.ml` | File generated by the Makefile containing information about your architecture, such as the size of a pointer.
> `src/machdep-ml.c` | C program that generates `machdep.ml` files.