Eli User Interface Reference Manual
The behavior of Eli can be modified by changing the value
of an Odin variable.
The functions affected by Odin variables are
the current working directory,
the distributed parallel build facility,
the help facility, the error and log facility,
the file change notification facility, and
the maximum total file system space used by derived objects.
A variable assignment odin-command consists of the name of an Odin variable
followed by an = operator and an odin-expression.
For example, the following odin-commands
assign the value
../src to the
and the value
4 to the
(Odin variable names are case-insensitive).
-> dir = ../src
-> warnlevel = 4
If the value is omitted from a variable assignment odin-command,
Eli displays the current value of the specified variable.
After the preceding odin-commands, the current value of
is found by the command:
-> warnlevel =
The Odin variables and their default values are:
Dir = eli_invocation_directory
MaxBuilds = 2
BuildHosts = LOCAL : LOCAL
Size = 0
KeepGoing = yes
History = yes
LogLevel = 2
ErrLevel = 3
WarnLevel = 2
HelpLevel = 1
VerifyLevel = 2
An initial value for an Odin variable can be
specified in an environment variable whose name is the
the Odin variable name in capital letters preceded by the
ODIN. For example, the initial value for
is specified in the
ODINMAXBUILDS environment variable.
The current working directory can be changed by assigning a new value
The value of the current working directory is especially significant for Eli,
since it identifies source objects by their absolute pathname,
and the current working directory provides the absolute pathname
for all relative names.
BuildHosts variable specifies the list of hosts that are used to
execute the tools that generate the derived objects.
A tool is executed on the first entry in the
list that does not have a currently executing tool.
LOCAL refers to the local host.
MaxBuilds variable specifies the maximum number of tools
to execute in parallel.
The hosts in
BuildHosts must have
the same machine architecture and file namespace as the local host.
A remote build host is activated by executing the shell script
rbs.sh from the
It may be necessary to customize this script for different operating
When a build step reports errors, Eli will continue with build
steps that do not depend on the failed build step.
Setting the value of the
KeepGoing variable to
will cause Eli to terminate the build when any build step reports an error.
History variable specifies whether the command line editing
is supported by Eli when it is used as an interactive command interpreter
(see The Command Editing Mechanism).
When an odin-command is executed, Eli indicates any errors or
warnings associated with the odin-expressions specified in that odin-command.
WarnLevel variables specify
how detailed this report is.
In particular, the user can choose whether
to see final status information,
to see messages incrementally as they are produced by tools steps,
or to see a summary of all relevant messages (including those from
previously cached tool steps).
Eli can also produce a variety of information about the activities
it is performing, such as a brief description of each tool that is
invoked to satisfy a given request.
LogLevel variable specifies how detailed these messages are.
HelpLevel variable specifies what degree of detail
is provided when the user asks for a list of possible file or parameter types
(see The Help Facility).
Normally, only commonly used types are described, but the
can be increased to have all possible types described.
By default, Eli checks the modification dates of all relevant source files
at the beginning of a session and before each interactive odin-command.
If all file modifications during the session are performed through
copy odin-commands or through an editor that has been upgraded
to send a
filename!:test odin-command to Eli whenever
VerifyLevel variable can be set to
1 and only the check
at the beginning of the session is performed.
If all file modifications since the last session have been performed
in the above manner,
VerifyLevel can be set to
0 and the initial check
is avoided as well.
The value of the
Size variable indicates how much disk space
(in kilobytes) is currently being used by derived files.
Environment variables can be used in odin-commands given during interactive
sessions, but are not allowed in an Odinfile
(see The Odinfile).
For example, if the environment variable
$HOME has the value
`/u/geoff', then the following two odin-commands are equivalent.
-> $HOME/sets.specs :exe
-> /u/geoff/sets.specs :exe
The value of an environment variable can be quoted by immediately
preceding it with a quoted identifier.
For example, if the value of
then the following two odin-commands are equivalent.
-> sets.specs +monitor +arg='/u/geoff'$DATA :mon
-> sets.specs +monitor +arg='/u/geoff/french/words' :mon
An environment variable is given a new value
with a variable assignment odin-command of the form:
= ! Value.
(Note the use of !, in contrast to an odin-variable assignment.
It suspends Eli's lexical conventions -- see Execute Commands.)
Thus the following odin-command sets the value of the environment variable
$HOME to the value `/u/clemm':
-> HOME = !/u/clemm
~name are treated as if they were
environment variables, bound respectively to the login directory of the current
user and the login directory of the user with login