REFERENCE:

DATABASE:


At the heart of an Eon/Eiffel system lies a database that accumulates 
information abstracted from Eiffel classes. In practice the programmer
need know little about the database itself since it is self maintaining
and developing an Eiffel system needs no direct access to it.

It may, however, need to be rebuilt (if it becomes corrupted) or moved, 
and the system manager may want to specify it's location.


Since the database contains information that is in the source files, its
condition and integrity need not be a major worry. If it is lost it can
be rebuilt any time, in fact if it is missing entirly, it will be rebuilt
the next time a class is compiled.


By database standards it is unlikly to become large, the information stored
is quite small. It is basicly a set of balanced btree, and a Unix dbm styled
data store. It can maintain variable length fields and records and has
alternate indexes built on some of the fixed length fields.


Relocating the database
~~~~~~~~~~~~~~~~~~~~~~~

By default the Eon/Eiffel compiler uses the name "class.edb" for the 
database and looks for it in the following place:

/usr/eon		- on Unix systems (/usr/eon/class.edb)

\eon			- on MSDOS systems (\eon\class.edb)


This default can be overridden with the eonvironment variable "EON".
This, in fact, moves more that the database. It controls where the
compiler looks for its configuration files and default clusters.

Example:

To relocate the database to "/compilers/eon" use one of these commands:

EON=/compilers/eon ; export EON		# Unix Bourne/Korn shell

setenv EON /compilers/eon			# Unix Csh

set EON=\compilers\eon				# MSDOS



Determing if the database has become corrupt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If a compilation is failing (or the compiler crashing) for no obvious reason
the fault may lie in the information being retreived from the database. If
the same program has been successfully compiled before, database corruption
is the most likely caused.


There is no utility for rebuilding the database. Deleting the database
directory will cause it to be rebuilt when a class is next compiled.
