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 Dir variable
and the value 4 to the WarnLevel variable
(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 WarnLevel
is found by the command:
-> warnlevel =
4
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
string ODIN . For example, the initial value for MaxBuilds
is specified in the ODINMAXBUILDS environment variable.
The current working directory can be changed by assigning a new value
to the Dir variable.
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.
The 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 BuildHosts
list that does not have a currently executing tool.
The name LOCAL refers to the local host.
The 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 odin package.
It may be necessary to customize this script for different operating
systems.
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 no
will cause Eli to terminate the build when any build step reports an error.
The 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.
The ErrLevel and 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.
The LogLevel variable specifies how detailed these messages are.
The 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 HelpLevel
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 filename
is modified,
the 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 $DATA is /french/words ,
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:
Variable = ! 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
The expressions ~ and ~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 name .
|