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

Previous Chapter Next Chapter Table of Contents

Cache Management

Each cache directory contains a derivation graph built from some set of packages, plus all of the artifacts created when providing products defined by that derivation graph. A user may want to have more than one cache for several reasons:

  • A cache used on a completed project can be deleted without losing artifacts associated with ongoing projects.

  • A user may collaborate with different people on different projects, each having its own cache.

  • Different derivation graphs may be appropriate for different projects.
In order to work with more than one cache, the user must be able to refer to each by a unique name; in order to have caches with different derivation graphs, the user must be able to control the set of packages from which a cache is built.

Name of the cache

When the eli command is executed, it specifies the name of a cache directory as follows:

  • If the eli command has the parameter -c `dir', then the name of the cache directory is `dir'/$ODINVIEW. `dir' must be an absolute path name.

  • If the eli command does not have the -c parameter, then the name of the cache directory is $ODIN/$ODINVIEW. The value of the environment variable $ODIN must be an absolute path name.

  • If the environment variable ODIN is not set, Then the name of the cache directory is $HOME/.ODIN/$ODINVIEW.

  • If the environment variable ODINVIEW is not set, then the result of the command uname -n is used if it is not empty (uname -n normally returns the name of the machine executing the command).

  • If the command uname -n returns an empty string, then the string local is used.
If the specified cache directory does not exist, a new cache is built and represented by a new directory with the specified name.

The environment variable ODINVIEW is commonly used in a classroom or laboratory having a number of identical computers that share a common file system. Since the computers share a common file system, every execution of the eli command will have the same value of ODINVIEW. As noted above, if ODINVIEW is not set then the default cache name will incorporate the name of the particular computer on which it was created. Therefore a user will have a different cache for each machine on which they have run the command eli without a -c parameter. This can be avoided if the user's startup script defines ODINVIEW as a constant value.

A different situation arises with a number of clusters of machines of different architectures, all sharing a common file system. Each cache is tied to a specific architecture, so there must be a distinct default cache name for each cluster if the eli command is to be used without a -c parameter. The user's startup script should therefore define ODINVIEW as the result of a command such as arch, which returns a string unique to the architecture of the machine running the command, rather than a constant value.

Packages in the cache

The set of packages from which a cache is built is determined either at the time that an eli command with the -R parameter is executed on that cache, or at the time a non-existent cache is specified. In either case, the packages making up the set are drawn from four sources, in order:

  1. Parameters of the eli command, each consisting of -p followed by the absolute path name of a directory. An eli command may have an arbitrary number of such parameters, and they are considered in order from left to right.

  2. The colon-separated list of absolute path names in the ODINPATH environment variable.

  3. The standard Eli packages.

  4. The standard Odin packages.
Each of the directories may represent a single package or a collection of packages with a `PKGLST' file (see Package Management).

The order in which the directories are considered is important, because only the first package with a given name is entered into the set from which the cache is built. Thus it is possible to override standard Eli and Odin packages by providing replacements whose names are the same as the names of the packages to be replaced (see Maintaining distributed packages).

If an eli command specifying an existing cache is executed without the -R parameter, then any -p parameters are ignored. The set of packages available is the set specified when that cache was originally created, or when it was last specified by an eli command with the -R parameter.

The odin command

Odin can be invoked directly with the odin command, although there is no need to do so except to create a cache without using any of the standard Eli packages.

Unless the -R parameter is given, the behavior of the odin and eli commands are identical when they specify an existing cache. If the specified cache does not exist, or if the -R parameter is given, then the sets of packages created by the two commands are different. When an odin command is executed in either of those cases, the packages making up the set are drawn from two sources, in order:

  1. The colon-separated list of absolute path names in the ODINPATH environment variable.

  2. The standard Odin packages.

This differs from the behavior of the eli command (see Packages in the cache). The odin command does not accept -p parameters and does not consider the standard Eli packages. The effect of -p parameters is obtained by building an appropriate colon-separated list and making it the value of the environment variable ODINPATH before executing the odin command.

Previous Chapter Next Chapter Table of Contents