## 4 Distribution Contents

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

Filename | Description
`Makefile` | Just a little wrapper for `Makefile.cil`
`Makefile.cil.in` | `configure` source for the Makefile for building CIL
`configure` | The configure script
`configure.in` | The `autoconf` source for `configure`
`config.guess`, `config.sub`, `install-sh` | stuff required by `configure`
`Makefile.ocaml` | A file that is included by `Makefile`
`Makefile.ocaml.build` | A file that is included by `Makefile`
`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/logwrites.ml` | A CIL transformation that logs every memory 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/maincil.ml` | A test application called `cilly`
`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
`src/util.ml` | Miscellaneous functions and global variables