Workbook for SLD Offline Users - EXPEDITE
The EXPEDITE command is used for compiling and linking
code for the SLD Offline.
It replaces old commands such PREPMORT, COMPILE, MAKESHR,
SLDERROR and ACTION.
To use it, type:
EXPEDITE file_specification
-
If the file you specify is of the type PREPMORT, FORTRAN or C,
EXPEDITE will do a compilation and then insert your routine into
an appropriate code library (it will create a code library if none
yet exists).
-
If the file you specify is of the type VEC,
EXPEDITE will link the shareable.
-
If the file you specify is of the type ERR,
EXPEDITE will compile the error file and insert new information into
your copy of the signal database (it will create a personal version of
the signal database if none yet exists).
Users who are already familiar with the old command, ACTION, may be interested
to know that EXPEDITE is actually just a front end to this old command.
A summary of differences
between EXPEDITE and ACTION is given at the end of this discussion.
EXPEDITE Uses DUCS Sections
Every file that you EXPEDITE must be assigned to a DUCS section.
If the file does not belong in any of the standard DUCS sections,
you can assign it to a special section called USER which is reserved
for personal use.
You can specify a DUCS section for your file by using the /SECTION
qualifier in the EXPEDITE command:
EXPEDITE/SECTION=DUCS_Section file_specification
If you do not provide the /SECTION qualifier,
EXPEDITE will look to see if there is a DUCS section name specified
in the header of the file.
If you do not provide the /SECTION qualifier
and EXPEDITE cannot find one in the header section of the file,
EXPEDITE will prompt you for one. Just hit return at this point to
place the routine into the USER section.
Other Qualifiers for EXPEDITE
EXPEDITE accepts the additional qualifiers /NOOPTIMIZE and /JBOUNDS.
To turn off the optimizer during compilation,
EXPEDITE/NOOPTIMIZE file_specification
This is useful for debugging. It keeps the optimizer from "optimizing-away"
symbols that you man want to study in the debugger.
To make MORTRAN insert code to check the legality of references to JAZELLE
data elements,
EXPEDITE/JBOUNDS file-specification
This is useful when you suspect that bugs are resulting from "overwriting
code," that is, from writing more data into a given Jazelle bank element
than that element is designed to take.
In the interests of speed, the compiler does not normally insert this
kind of check.
Converting from PREPMORT, MAKESHR and ACTION to EXPEDITE
EXPEDITE behaves roughly like ACTION, but it manages to also replace MAKESHR.
Any time that EXPEDITE puts code into the USER section, it automatically
creates a file USERSHR.VEC that can later be used to create a USER shareable.
You then create the user shareable the same as you would create any other
shareable, by running EXPEDITE on the relevant .VEC file.
Thus the following set of commands:
PREPMORT MYCODE1.PREPMORT
PREPMORT MYCODE2.PREPMORT
MAKESHR MYCODE1 MYCODE2
now becomes:
EXPEDITE MYCODE1.PREPMORT
EXPEDITE MYCODE2.PREPMORT
EXPEDITE USERSHR.VEC
And the following set of commands:
COPY PRODKAL:KALSHR.VEC [ ]
ACTION KAL KALTBND.PREPMORT
ACTION KAL KALSHR.VEC
now becomes:
EXPEDITE KALTBND.PREPMORT
EXPEDITE PRODKAL:KALSHR.VEC
Summary of Differences between EXPEDITE and ACTION
The ACTION command was never really written to be user-friendly.
Instead, it was designed to be called automatically by the DUCS system
as part of the procedure for installing new code at all DUCS sites.
EXPEDITE, and the PROJECT system as a whole, were designed to form a
user-friendly wrapper around ACTION.
Some of the differences between EXPEDITE and ACTION are as follows:
- Whereas ACTION always requires that a DUCS section be specified,
EXPEDITE is able to search the file header for this information.
- Whereas ACTION attempts to extract help information from a routine's
file header and build a help library,
EXPEDITE skips these steps (they are needed for DUCS installation but not
for individual use).
- Whereas ACTION always copies source files to the test directory,
even if they are already there, EXPEDITE skips this step.
- Whereas ACTION does not accept the compiler options /NOOPTIMIZE
and /JBOUNDS, EXPEDITE does accept them.
- Whereas ACTION leaves the DCL help system in a bad state,
EXPEDITE leaves the help system untouched.
- Whereas ACTION deletes any previous code from the DUCS$WORK directory
without giving any warning, EXPEDITE gives you a listing of all code found
in the DUCS$WORK directory and will not proceed without explicit permission
to delete this code.
- Whereas ACTION sets DUCS TEST automatically, often wrongly,
and does so without informing the user,
EXPEDITE asks the user to set this important value.
Further benefits are obtained by running EXPEDITE within the overall
context of the PROJECT system.
Back to Compile, Link and Run
Joseph Perl
12 March 1996