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

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:

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