Eli   Documents Get Eli: Translator Construction Made Easy at SourceForge.net.
    Fast, secure and Free Open Source software downloads

General Information

 o Eli: Translator Construction Made Easy
 o Global Index
 o Frequently Asked Questions
 o Typical Eli Usage Errors


 o Quick Reference Card
 o Guide For new Eli Users
 o Release Notes of Eli
 o Tutorial on Name Analysis
 o Tutorial on Type Analysis
 o Typical Eli Usage Errors

Reference Manuals

 o User Interface
 o Eli products and parameters
 o LIDO Reference Manual
 o Typical Eli Usage Errors


 o Eli library routines
 o Specification Module Library

Translation Tasks

 o Lexical analysis specification
 o Syntactic Analysis Manual
 o Computation in Trees


 o LIGA Control Language
 o Debugging Information for LIDO
 o Graphical ORder TOol

 o FunnelWeb User's Manual

 o Pattern-based Text Generator
 o Property Definition Language
 o Operator Identification Language
 o Tree Grammar Specification Language
 o Command Line Processing
 o COLA Options Reference Manual

 o Generating Unparsing Code

 o Monitoring a Processor's Execution


 o System Administration Guide

Mail Home

Eli System Administration Guide

Next Chapter Table of Contents

Package Management

Eli is a collection of packages. Each package is represented in the computer by a directory. A package directory must contain a file whose name is the name of the directory with the suffix dg. That file specifies the derivation graph for the package. For example, the package defining the tools and work flow for constructing a scanner is represented by a directory named `gla', and contains a derivation graph specification file named gla.dg. Some packages contain no tools, and therefore their derivation graphs are specified by empty files.

Versioned packages

The packages in the Eli distribution directory are versioned. A file named `version' is included in each package directory. That file consists of a single line that is a three-part version number. It is updated whenever a change to the package affects the behavior of that package; repairing defects in a package's tools does not require a version change.

If the package's work flow is changed without altering its functionality, the third component of the version number is incremented. When the local functionality is changed, the second component of the version is incremented and the third zeroed; when the change is visible to other packages, the first component is incremented and the others zeroed.

Versioned packages allow each user to decide on a project-by-project basis when to upgrade (see Installation).

Package collections

When the understanding of a process is embodied in a collection of packages, as in the case of Eli, all of the directories representing those packages are stored as subdirectories of a single directory. In the Eli distribution there are two such directories, `Eli/pkg' and `Odin/pkg'. `Eli/pkg' embodies the understanding of text processor generation, whereas `Odin/pkg' embodies the understanding of more general processes such as linking object files, executing a command line, and formatting a document.

In addition to the package directories themselves, each collection's directory contains a file named `PKGLST'. `PKGLST' is a text file, each line of which is the name of one of the package directories. Thus `Eli/pkg/PKGLST' contains the line `gla' to indicate that the `gla' directory represents a package.

`PKGLST' allows a collection's directory to contain additional files and non-package directories. The names of these files and directories will not appear in `PKGLST', and therefore they will not be mistaken for packages in the collection. It is also possible to temporarily exclude packages from the collection simply by removing their names from `PKGLST'; the package directories themselves remain unchanged (see Maintaining distributed packages).

Next Chapter Table of Contents