The Ada Library Information Files (GNAT User’s Guide for Native Platforms)

### 3.7 The Ada Library Information Files ¶

Each compilation actually generates two output files. The first of these is the actual object file that has a `.o` extension. The second is a text file containing full dependency information. It has the same name as the source file, but an `.ali` extension. This file is known as the Ada Library Information (`ALI`) file. The following information is contained in that file:

- Version information (indicates which version of GNAT was used to compile the unit(s) in question)
- Main program information (including priority and time slice settings, as well as the wide character encoding used during compilation).
- List of arguments used in the compilation command
- Attributes of the unit, including the configuration pragmas used, an indication of whether the compilation was successful, and the exception model used.
- A list of relevant restrictions applying to the unit (used for consistency checking).
- Categorization information (e.g., use of pragma `Pure`).
- Information on all ‘with’ed units, including presence of `Elaborate` or `Elaborate_All` pragmas.
- Information from any `Linker_Options` pragmas used in the unit
- Information on the use of `Body_Version` or `Version` attributes in the unit.
- Dependency information. This is a list of files, together with time stamp and checksum information. These are files on which the unit depends in the sense that the modification of any of these units requires the recompilation of the unit in question.
- Cross-reference data. Contains information on all entities referenced in the unit. Used by some tools to provide cross-reference information.

For a full detailed description of the format of the `ALI` file, see the source of the spec of unit `Lib.Writ`, contained in file `lib-writ.ads` in the GNAT compiler sources.