/sys$common/syshlp/helplib.hlb
ACS

 *Conan The Librarian

    ACS is the Ada program library manager for Compaq Ada. The program
    library manager performs library management functions and
    provides an interface to the Compaq Ada compiler and OpenVMS Linker.

  1 - Closure

    The term closure is used in the description of a number of ACS
    commands; for example, ACS CHECK, COMPILE, COPY UNIT/CLOSURE,
    LINK, and RECOMPILE. In simple terms, closure is the complete
    set of units that a given unit depends on, plus any other units
    needed for its execution. In other words, closure refers to the
    execution closure of the given unit.

  2 - Getting Started

    You compile and link Compaq Ada programs in the context of an Ada
    program library, which is managed by the Compaq Ada program library
    manager (ACS). To start using Compaq Ada, enter the following
    ACS commands to create, initialize, and define your current
    program library. This series of commands assumes that your
    program library is a subdirectory of your current OpenVMS working
    directory.

    $ ACS CREATE LIBRARY [.ADALIB]
    $ ACS SET LIBRARY [.ADALIB]

    Then, compile, link, and execute your program using the following
    commands (assuming that the name of your program is MYPROG, and
    that it depends on the package MYPACK):

    $ ADA/LIST MYPACK_.ADA, MYPACK.ADA, MYPROG.ADA
    $ ACS LINK MYPROG
    $ RUN MYPROG

    You can also use the following equivalent set of commands:

    $ ACS LOAD MY*
    $ ACS COMPILE/LIST MYPROG
    $ ACS LINK MYPROG
    $ RUN MYPROG

    Note that when you successfully compile an Ada program, the
    program library manager stores the object files associated with
    the program in your current program library, not in your current
    default directory.

    Once you compile an Ada compilation unit into a program library,
    the program library manager recognizes the unit by its unit name,
    not by its source file name. To prevent confusion and promote
    efficient compilation, use one source file for each compilation
    unit, and follow these conventions for naming Compaq Ada source
    files:

    o  The name of the source file for a library specification should
       be the name of the unit, followed by a trailing underscore
       (_). For example, MYPACK_.ADA is the name of the source file
       containing the specification of the package MYPACK.

    o  The name of the source file for a library body or main
       subprogram should be the name of the unit. For example,
       MYPACK.ADA is the name of the source file containing the body
       of package MYPACK. MYPROG.ADA is the name of the source file
       containing the main subprogram MYPROG.

    o  The name of the source file for a library generic
       instantiation should be the name of the instantiation. For
       example, MYGEN_.ADA and MYGEN.ADA are names of source files
       containing a library generic package specification and its
       body. MYINST.ADA is the name of a source file containing a
       library generic instantiation of the generic package MYGEN.

    o  The name of the source file for a subunit should be the
       name of the ancestor unit, followed by two underscore
       characters, followed by the name of the subunit. For example,
       MYPACK__MYSUBUNIT.ADA is the name of the source file
       containing a subunit of package MYPACK.

  3 - Interrupting

    After you have entered an ACS command, you may want to interrupt
    that command before it completes. You should press Ctrl/C
    to interrupt an ACS command in an orderly fashion. It is
    particularly important to use Ctrl/C (rather than Ctrl/Y) if the
    command is one that alters the contents of the program library,
    for example ACS DELETE UNIT.

    If you use Ctrl/Y to interrupt an ACS command, and then invoke
    another image in DCL, your program library may be left in
    an inconsistent state. You can use the ACS VERIFY command to
    determine inconsistencies in a program library; you can use ACS
    VERIFY/REPAIR to correct those inconsistencies.

  4 - Invoking

    You invoke the Compaq Ada program library manager interactively
    or with a one-line DCL command. To invoke the program library
    manager interactively, enter the following DCL command:

    $ ACS

    The program library manager responds with the following prompt:

    ACS>

    You can now enter any ACS command. To return to the DCL command
    line, type EXIT or press Ctrl/Z.

    To enter an ACS command as a DCL command, append the command to
    the ACS prefix. For example:

    $ ACS SET LIBRARY [ADA.AUGUSTA.ADALIB]

    If your ACS command is too long to fit on a single line, you can
    continue the command by typing a hyphen (-) as the last character
    of a line. For example:

    ACS> LINK/DEBUG/MAP/FULL/CROSS_REFERENCE -
    _ACS> MY_MAIN_PROGRAM -
    _ACS> [MATRIX.LIB]MATHPACK.OLB/LIB

    An ACS command can have a maximum of 1024 characters; individual
    command lines can have a maximum of 256 characters.

  5 - Libraries

    All Ada compilations (and ACS LINK operations) are performed in
    the context of the current program library, which can be either
    a program library or a sublibrary (see HELP Ada Sublibraries).
    The files that result from a successful compilation are stored in
    the library. The ACS LINK command retrieves object files from the
    library. Use the ACS SET LIBRARY command to specify the current
    program library.

    A Compaq Ada program library is a dedicated OpenVMS directory
    that is recognized by the Compaq Ada compiler and program library
    manager.

    Before any compilation has occurred, a program library contains
    only two files, which were created when the program library was
    created:

    o  The library index file (ADALIB.ALB)

    o  A file used for program library version control (ADA$LIB.DAT)

    Each time a unit is successfully compiled into the current
    program library, the following files are created or accounted
    for:

    o  An object file (.OBJ)

    o  A compilation unit file (.ACU)

    o  Unless suppressed by the /NOCOPY_SOURCE compilation qualifier,
       a copied source file (.ADC); this file is used by the ACS
       RECOMPILE command and by the debugger

    You should not store any other files in a library directory. You
    also should not apply any of the DCL file manipulation commands
    (for example, DELETE and RENAME) to files in a library directory.

  6 - Sublibraries

    A sublibrary is a Compaq Ada program library that has a parent
    library. Units in a sublibrary are compiled in the context of
    both the sublibrary and the parent library.

    When your current program library is a sublibrary, the units
    in the sublibrary and parent libraries are visible in a fashion
    analogous to multiple panes of glass. The units in the sublibrary
    appear on the top pane, units in the immediate parent library
    appear on the next pane, units in the parent of the immediate
    parent appear on the following pane, and so on. Then, units
    by the same name hide each other such that a unit in a parent
    library is hidden by a unit of the same name in a closer
    sublibrary. The search for a unit begins with the closest pane
    of glass (the sublibrary) and follows through the parent panes
    until the unit is found.

    You can use a sublibrary to modify and test a new version of a
    unit. Any necessary units not in the sublibrary will be obtained
    from a parent library. When you have completed and tested the
    modified unit, you can use the ACS MERGE command to copy the new
    version to the parent library.

    There is no specific limit on the depth of sublibrary nesting,
    but the cost of the lookup operation indicates a practical limit
    of three or four levels.

    Most ACS commands operate on both program libraries and
    sublibraries. There are three specific ACS commands for
    sublibraries: CREATE SUBLIBRARY, DELETE SUBLIBRARY, and MERGE.
    Many of the ACS library management commands (for example, DELETE
    UNIT and DIRECTORY) operate only on the current library or
    sublibrary; a DELETE UNIT command will never delete a unit in
    some ancestor of the current library.

                                   NOTE

       Sublibraries contain references to their immediate parents,
       but the parent library contains no references to its
       sublibraries. You should be careful not to delete a library
       if it still has sublibraries.

  7 - Library Search Paths

    In many ways, you can view sublibrary relationships as defining
    a list of libraries to be searched. Compaq Ada library search paths
    provide another way to define a list of libraries to be searched.
    Like a sublibrary, a library search path simply defines a list
    of Compaq Ada libraries which are searched by the compiler and
    program library manager to locate units. You can use library
    search paths to achieve the same effects as sublibraries but with
    more flexibility.

    A library search path, also called the current library search
    path, or current path, defines the particular library search path
    that is used during compilation or an ACS operation. The compiler
    and program library manager search for a unit starting with the
    first library of the current path. If the unit is not found in
    that library, the search for the unit continues in subsequent
    libraries in the current path until the unit is either found or
    until the end of the current path is reached.

    Typically, the current path is a path that is associated with the
    current program library. This path, called the default library
    search path, or default path, is defined when you create a
    Compaq Ada program library or sublibrary. When you enter the ACS
    SET LIBRARY command, the specified library becomes the current
    program library, and the default path associated with that
    library becomes the current path.

    You can define the current path using one of two methods:

    1. Enter the ACS SET LIBRARY command. For example:

       $ ACS SET LIBRARY [SMITH.SUBLIB]

       When you enter this command, the specified library becomes
       the current program library, and the default path associated
       with that library becomes the current path. In this example,
       the ACS SET LIBRARY command establishes the current program
       library to be [SMITH.SUBLIB], and the current path to be
       the default path for [SMITH.SUBLIB]. When the program
       library manager and compiler search for a unit, the library
       [SMITH.SUBLIB] is searched first. If the unit is not found,
       then any libraries in the default path of [SMITH.SUBLIB] are
       also searched.

    2. Enter the/PATH qualifier with the ACS SET LIBRARY command. For
       example:

       $ ACS SET LIBRARY/PATH [SMITH.ADALIB],[JONES.ADALIB], -
       _ACS>[HOTEL.ADALIB]

       The /PATH qualifier allows you to establish a current path
       that is different than the default path associated with a
       program library. In this example, the /PATH qualifier defines
       the current path to be the list of libraries specified in the
       command line. It also establishes the current program library
       to be the first library in the path ([SMITH.ADALIB]).

    In some situations, you may want to identify the default path
    associated with a library or sublibrary in your current path
    along with other libraries. To specify a default path, you
    precede the library with an at sign (@). For example:

    $ ACS SET LIBRARY/PATH [JONES.ADALIB],@[HOTEL.ADALIB]

    In this example, any libraries in the default path of
    [HOTEL.ADALIB] are included in the current path.

    You can store library search paths in text files, and then
    include them in other library search paths. For example:

    $ ACS SET LIBRARY [JONES.ADALIB],@MYPATH.TXT

    To modify the default path of a program library, see the HELP ACS
    MODIFY LIBRARY.

    For more information on library search paths, see Developing Ada
    Programs on OpenVMS Systems.

  8 - ATTACH

    Enables you to switch control of your terminal from your current
    process running the program library manager to another process
    in your job. See also the ACS SPAWN command and the OpenVMS DCL
    Dictionary.

    Format

      ATTACH  process-name

 8.1 - Parameters

 process-name

    Specifies the name of the process to which the connection is
    to be made. Process names can contain from 1 to 15 alphanumeric
    characters. If a connection to the specified process cannot be
    made, an error message is displayed. You cannot connect to the
    process if any of the following conditions apply:

    o  The process is your current process.

    o  The process is not part of your current job.

    o  The process does not exist.

 8.2 - Description

    The ACS ATTACH command allows you to connect your input stream
    to another process. You can use the ATTACH command to change
    control from one subprocess to another subprocess or to the
    parent process.

    When you enter the ATTACH command, the parent or "source"
    process is put into a hibernation state, and your input stream
    is connected to the specified destination process. You can use
    the ATTACH command to connect to a subprocess that is part of a
    current job left hibernating as a result of an ACS SPAWN or DCL
    SPAWN/WAIT command, or of another ACS or DCL ATTACH command, as
    long as the connection is valid. (No connection can be made to
    the current process, to a process that is not part of the current
    job, or to a process that does not exist.)

    You can also use the ATTACH command in conjunction with the ACS
    SPAWN or DCL SPAWN/WAIT command to return to a parent process
    without terminating the created subprocess. See the description
    of the ACS SPAWN command for more details.

 8.3 - Example

  ACS> ATTACH JONES_1

  $

      Switches control of the terminal to the process JONES_1.

  9 - CHECK

    Forms the execution closure of one or more specified units and
    checks whether the set of units in the closure is complete and
    current. The ACS CHECK command searches the current program
    library (and all parent libraries, in the case of a sublibrary)
    for all units in the closure.

    Format

      CHECK  unit-name[,...]

 9.1 - Parameters

 unit-name[,...]

    Specifies one or more units in the current program library whose
    closure is to be checked. You must express subunit names using
    selected component notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 9.2 - Description

    The ACS CHECK command goes through the following steps:

    1. Forms the execution closure of the specified units.

    2. Determines whether each unit in the closure is in the program
       library and is current. Units entered from other program
       libraries, as well as those compiled or copied into the
       current program library, are checked.

    3. Identifies any unit in the closure that is not in the program
       library.

    4. Identifies any unit in the closure that is obsolete and must
       be recompiled.

    5. If there are obsolete units in the closure, identifies
       units that may become obsolete when the obsolete units are
       recompiled.

    6. If all of the units in the closure are in the program library
       and are current, issues an informational message.

 9.3 - Command Qualifiers

 9. 3.1 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether a list of all the units in the closure is
    displayed in addition to a message indicating the result of the
    CHECK command.

    By default, only a message indicating the result of the CHECK
    command is displayed.

 9. 3.2 - /OBSOLETE

    /OBSOLETE=(option=[,...])
    /NOOBSOLETE (D)

    Allows you to ask what the effect on a program or a set of units
    would be if some specific units were obsolete.

    When the execution closure of the units in the parameter list
    of the command is performed, the units named with the UNIT,
    SPECIFICATION, and BODY keywords are assumed to be obsolete as
    described below. If one of those units is not in the execution
    closure of the units named in the command's parameter list, it is
    not added to the closure.

    Unit names are specified with the UNIT, SPECIFICATION and BODY
    keywords as follows:

    UNIT:(unit_           The specifications and bodies of units
    name[,...])           specified with the UNIT keyword are assumed
                          to be obsolete.
    SPECIFICATION:(unit_  Only the specifications of units specified
    name[,...])           with the SPECIFICATION keyword are assumed
                          to be obsolete.
    BODY:(unit_           Only the bodies of units specified with the
    name[,...])           BODY keyword are assumed to be obsolete.

    You must specify at least one of these keywords with the
    /OBSOLETE qualifier. Unit names can contain wildcard characters.

    By default, units are identified as obsolete based on the current
    state of the program library.

 9. 3.3 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the CHECK command output be written to the file
    specified rather than to SYS$OUTPUT. Any diagnostic messages are
    written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the CHECK command output is written to SYS$OUTPUT.

 9. 3.4 - /PROCESSING_LEVEL

    /PROCESSING_LEVEL[=option]

    Determines the kind of obsolete units identified. Obsolete units
    are identified based on the level of processing applied to the
    unit: syntax-checking, design-checking, or full compilation. You
    can request the following options:

    SYNTAX         Determines whether a unit is obsolete because it
                   has been syntax-checked only. Because all units
                   in a program library are at least syntax-checked,
                   and because syntax-checking does not require any
                   particular order of compilation, generally accepts
                   all units as being current.
    DESIGN         Determines whether a unit is obsolete because
                   it has been design-checked only. Accepts design-
                   checked units and fully compiled units as being
                   current, unless they are otherwise obsolete (for
                   example, they depend on units that have been
                   syntax-checked only, or they depend on other
                   obsolete units).
    FULL           Determines three kinds of obsolete units: units
                   that are obsolete because they have been syntax
                   checked only, units that have been design checked,
                   and units that are obsolete as a result of the
                   compilation of the units they depend on. Units
                   that depend on obsolete units are also considered
                   to be obsolete.

    By default, all units are fully checked (/PROCESSING_LEVEL=FULL),
    and all obsolete units are identified.

 9. 3.5 - /SMART_RECOMPILATION

    /SMART_RECOMPILATION (D)
    /NOSMART_RECOMPILATION

    Controls whether smart recompilation information, which is stored
    in the program library, is used to identify obsolete units.

    If smart recompilation is not in effect, units are identified
    as obsolete and in need of recompilation based on their time of
    compilation only. (See Developing Ada Programs on OpenVMS Systems
    for more information.)

 9. 3.6 - /STATISTICS

    /STATISTICS (D)
    /NOSTATISTICS

    Controls whether statistical information is displayed.
    Statistical information includes the number of obsolete and
    possibly obsolete units, and the total elasped time for the last
    compilation of all identified units.

 9.4 - Examples

    1.ACS> CHECK SCREEN_IO
      %I, All units current, no recompilations required

      Shows that all the units in the closure of SCREEN_IO are
      defined in the current program library and are current.

    2.ACS> CHECK/OBSOLETE=SPECIFICATION:RESERVATIONS RESERVATIONS
      %E, Obsolete library units are detected

      %I, The following units need to be recompiled:
      RESERVATIONS
          package specification            4-NOV-1992 14:48:39.75 (00:00:03.82)

      %I, The following units may also need to be recompiled:
      RESERVATIONS
          package body                     4-NOV-1992 14:51:20.11 (00:00:14.02)
      RESERVATIONS.RESERVE
          procedure body                   4-NOV-1992 14:49:55.78 (00:00:04.27)
      RESERVATIONS.RESERVE.BILL
          procedure body                   4-NOV-1992 14:50:01.55 (00:00:05.12)
      RESERVATIONS.CANCEL
          procedure body                   4-NOV-1992 14:51:36.25 (00:00:04.24)

      1 obsolete unit, 4 possibly obsolete units (total 5)
      Total elapsed time for last compilation of all 5 units was 0:00:31.47

      This command allows you to ask what the effect would be if you
      modified the unit RESERVATIONS. In the previous example, the
      ACS CHECK command lists the units that need to be recompiled,
      any units that are missing, and the total elasped time for the
      last compilation of the unit RESERVATIONS.

    3.$ ACS CHECK A, B, C /OBSOLETE=(UNIT:(E, F), BODY:(G, H))

      Checks the closure of the set of units A, B and C assuming that
      E and F's specifications and bodies are obsolete, and that G
      and H's bodies are obsolete.

  10 - COMPILE

    Forms the closure of one or more specified units. Compiles, from
    external source files, any unit in the closure (except entered
    units) that was revised since that unit was last compiled into
    the current program library. Recompiles, from external or copied
    source files, any unit in the closure that needs to be made
    current. Completes any incomplete generic instantiations.

    Format

      COMPILE  unit-name[,...]

 10.1 - Parameters

 unit-name[,...]

    Specifies one or more units in the current program library whose
    closure is to be processed with the ACS COMPILE command. You
    must express subunit names using selected component notation as
    follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 10.2 - Description

    The ACS COMPILE command is useful for compiling and recompiling
    units as you revise the source files of an existing Ada program.

    The COMPILE command goes through the following steps:

    1. Forms the execution closure of the specified units.

    2. Looks up the source file for each unit in the closure that
       has been compiled or copied (not entered) into the current
       program library. Unless otherwise specified with the SET
       SOURCE command, the source-file-directory search order is
       as follows:

       a. SYS$DISK:[] (the current default directory)

       b. ;0 (the directory that contained the file when it was last
          compiled), or node::;0 (if the file specification of the
          source file being compiled contains a node name)

       The search order takes precedence over the version number
       or creation date-time if different versions of a source file
       exist in two or more directories. Within any one directory,
       the version of a particular file that has the highest number
       is considered for compilation.

    3. Compares the creation date-time of each source file with that
       of the version last noted in the program library by the /NOTE_
       SOURCE compiler qualifier (the qualifier is used with the DCL
       ADA and ACS COMPILE and RECOMPILE commands).

    4. Processes revised external source files to account for
       new compilation units or unit dependences if the /PRELOAD
       qualifier (the default) is in effect.

    5. Notes for compilation any source file whose creation date-time
       is later than that noted in the program library.

    6. Identifies any obsolete or incomplete units in the closure.

       Note that if the program library manager cannot find external
       source files for recompilation, recompilation is done from
       copied source files. If a needed copied source file is
       missing, the file is identified and no recompilations or
       completions are done. Copied source files are created when the
       /COPY_SOURCE qualifier is in effect during compilation (the
       default for the DCL ADA and ACS LOAD and COMPILE commands).

       If the closure you are recompiling includes an obsolete
       entered unit, that unit is not affected by the COMPILE
       command; an error diagnostic is issued and the COMPILE command
       is not executed. You should recompile an obsolete entered
       unit in its own program library and then reenter it into
       the current program library before you try to recompile its
       dependent units in the current library.

    7. Creates a DCL command file. The file contains commands to
       compile the appropriate units from external source files and
       to recompile any obsolete units from external or copied source
       files, in the proper order. Entered units are not considered
       for compilation or recompilation. If you did not specify the
       /COMMAND qualifier, the command file is deleted after the
       COMPILE command is terminated, or the batch job finishes. If
       you did specify the /COMMAND qualifier, the command file is
       retained for future use, and the compiler is not invoked.

    8. If you did not specify the /COMMAND qualifier, the Compaq Ada
       compiler is invoked as follows:

       a. By default (COMPILE/WAIT), the command file is executed
          in a subprocess. You must wait for the compilation
          to terminate before entering another command. When
          this qualifier is in effect, process logical names are
          propagated to the subprocess generated to execute the
          command file.

       b. If you specify the /SUBMIT qualifier, the command file
          generated in step 7 is submitted as a batch job.

    Program library manager output originating before the compiler
    is invoked is reported to your terminal by default, or to a file
    specified with the /OUTPUT qualifier. Compiler diagnostics are
    reported to the terminal by default, or to the a log file if the
    command file is executed in a batch job (by way of the COMPILE
    /SUBMIT command).

    See of the Developing Ada Programs on OpenVMS Systems for more
    information on the COMPILE command.

 10.3 - Command Qualifiers

 10. 3.1 - /AFTER

    /AFTER=time

    Requests that the batch job be held until after a specific
    time when the command file is executed in batch mode. If the
    specified time has already passed, or if the /AFTER qualifier is
    not specified, the job is queued for immediate processing.

    You can specify either an absolute time or a combination of
    absolute and delta time. See the OpenVMS User's Manual (or
    type HELP Specify Date_Time at the DCL prompt) for complete
    information on specifying time values.

 10. 3.2 - /ANALYSIS_DATA

    /ANALYSIS_DATA[=file-spec]
    /NOANALYSIS_DATA (D)

    Controls whether a data analysis file containing source code
    cross-reference and static analysis information is created. The
    data analysis file is supported only for use with Digital layered
    products, such as the DEC Source Code Analyzer.

    One data analysis file is created for each source file that
    is compiled and for each unit that is recompiled. The default
    directory for data analysis files is the current default
    directory. The default file name is the name of the source
    file being compiled. The default file type is .ANA. No wildcard
    characters are allowed in the file specification.

    By default, no data analysis file is created.

 10. 3.3 - /ARCHITECTURE

    Controls the use of new Alpha instructions.
    The syntax for this switch is as follows:

    /ARCHITECTURE = { GENERIC | HOST | EV4 | EV5 | EV56 }

    Setting the /ARCH switch causes a corresponding setting in the /TUNE
    switch.  (See the Release Notes for more information.)

 10. 3.4 - /BATCH_LOG

    /BATCH_LOG=file-spec

    Provides a file specification for the batch log file when the
    command file is executed in batch mode.

    If you do not give a directory specification with the file-spec
    option, the batch log file is created by default in the current
    default directory. If you do not give a file specification with
    the file-spec option, the default file name is the job name
    specified with the /NAME=job-name qualifier. If no job name
    has been specified, the program library manager creates a file
    name comprising up to the first 39 characters of the first unit
    name specified. If no job name has been specified and there is
    a wildcard character in the first unit specified, the program
    library manager uses the default file name ACS_COMPILE. The
    default file type is .LOG. No wildcard characters are allowed
    in the file specification.

 10. 3.5 - /CHECK

    /CHECK
    /NOCHECK

    Controls whether all run-time checks are suppressed. The /NOCHECK
    qualifier is equivalent to having all possible SUPPRESS pragmas
    in the source code.

    Explicit use of the /CHECK qualifier overrides any occurrences of
    the pragmas SUPPRESS and SUPPRESS_ALL in the source code, without
    the need to edit the source code.

    By default, run-time checks are only suppressed in cases where a
    pragma SUPPRESS or SUPPRESS_ALL appears in the source code.

    See the DEC Ada Language Reference Manual for more information on
    the pragmas SUPPRESS and SUPPRESS_ALL.

 10. 3.6 - /CLOSURE

    /CLOSURE

    Causes the /SPECIFICATION_ONLY qualifier to apply to all units
    in the closure of units named in the COMPILE command. (Without
    the /CLOSURE qualifier, the /SPECIFICATION_ONLY qualifier applies
    only to the units named in the command.)

    See the description of the /SPECIFICATION_ONLY qualifier in the
    list of command qualifiers.

 10. 3.7 - /COMMAND

    /COMMAND[=file-spec]

    Controls whether the compiler is invoked as a result of the
    COMPILE command, and determines whether the command file
    generated to invoke the compiler is saved. If you specify the
    /COMMAND qualifier, the program library manager does not invoke
    the compiler, and the generated command file is saved for you to
    invoke or submit as a batch job.

    The file-spec option allows you to enter a file specification for
    the generated command file. The default directory for the command
    file is the current default directory. By default, the program
    library manager provides a file name comprising up to the first
    39 characters of the first unit name specified. If you use a
    wildcard character in the first unit name specified, the compiler
    uses the default name ACS_COMPILE. The default file type is .COM.
    No wildcard characters are allowed in the file specification.

    By default, if you do not specify the file-spec option, the
    program library manager deletes the generated command file when
    the COMPILE command completes normally or is terminated.

    Note that if you want to get the old behaviour (pre-version 3.0
    behavior) for this command, you must also specify the /NOSMART_
    RECOMPILATION qualifier.

 10. 3.8 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the COMPILE command asks you for confirmation
    before performing a possibly lengthy operation. If you specify
    the /CONFIRM qualifier, the possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 10. 3.9 - /COPY_SOURCE

    /COPY_SOURCE (D)
    /NOCOPY_SOURCE

    Controls whether a copied source file is created in the current
    program library when a compilation unit is compiled without
    error. The ACS RECOMPILE command requires that a copied source
    file exist in the current program library; the ACS COMPILE
    command uses the copied source file if it cannot find an external
    source file when it is recompiling an obsolete unit or completing
    an incomplete generic instantiation (see Developing Ada Programs
    on OpenVMS Systems). Copied source files may also be used by the
    OpenVMS Debugger (see OpenVMS Debugger Manual).

    By default, a copied source file is created in the current
    program library when a unit is compiled without error.

 10. 3.10 - /DEBUG

    /DEBUG[=(option[,...])] (D)
    /NODEBUG

    Controls which debugger compiler options are provided. You
    can debug Compaq Ada programs with the OpenVMS Debugger (see the
    Developing Ada Programs on OpenVMS Systems for more information
    on debugging tasks; see and OpenVMS Debugger Manual for more
    information on the OpenVMS debugger).

    You can request the following options:

    ALL            Provides both SYMBOLS and TRACEBACK
    NONE           Provides neither SYMBOLS nor TRACEBACK
    [NO]SYMBOLS    Controls whether debugger symbol records are
                   included in the object file
    [NO]TRACEBACK  Controls whether traceback information (a subset
                   of the debugger symbol information) is included in
                   the object file

    By default, both debugger symbol records and traceback
    information are included in the object files (/DEBUG=ALL, or
    equivalently: /DEBUG)

 10. 3.11 - /DESIGN

       /DESIGN[=option]

    /DESIGN[=option]
    /NODESIGN (D)

    Controls whether a design-level check is performed when
    identifying obsolete units. A unit is not considered obsolete
    just because it is design-checked only.

    Also directs the compiler to process Ada source files as a
    detailed program design. For each unit that is design checked
    without error, the program library is updated with information
    about that unit. Design-checked units are considered to be
    obsolete in operations that require full compilation and must
    be recompiled.

    You can request the following options:

    [NO]COMMENTS       Determines whether comments are processed for
                       program design information. For the COMMENTS
                       option to have effect, you must specify the
                       /ANALYSIS_DATA qualifier with the ADA command.
                       See Guide to Source Code Analyzer for VMS
                       Systems for more information on using the
                       Source Code Analyzer (SCA).

                       If you specify NOCOMMENTS, comments are
                       ignored.

    [NO]PLACEHOLDERS   Determines whether design checking is
                       performed. If you specify PLACEHOLDERS,
                       compilation units are design checked-LSE
                       placeholders are allowed and some of the
                       Ada language rules are relaxed so that you
                       can omit some implementation details. If you
                       specify NOPLACEHOLDERS, full compilation is
                       done-the compiler is invoked, LSE placeholders
                       are not allowed, and Ada language rules are
                       not relaxed.

                       Note that when you specify this option with
                       the /SYNTAX_ONLY qualifier, it determines only
                       whether LSE placeholders are allowed. If you
                       specify NOPLACEHOLDERS, then only valid Ada
                       syntax is allowed.

    If you specify the /DESIGN qualifier without supplying any
    options, the effect is the same as the following default:

    /DESIGN=(COMMENTS,PLACEHOLDERS)

    If you specify only one of the options with the /DESIGN
    qualifier, the default value for the other option is
    used. For example, /DESIGN=NOCOMMENTS is equivalent to
    /DESIGN=(NOCOMMENTS,PLACEHOLDERS). In this case, both qualifiers
    specify that the unit is design-checked, but comment information
    is not collected. Similarly, /DESIGN=NOPLACEHOLDERS is equivalent
    to /DESIGN=(COMMENTS,NOPLACEHOLDERS). In this case, both
    qualifiers specify that comment information is collected, but
    the unit is not design-checked (that is, in the absence of the
    /SYNTAX_ONLY qualifier, units are fully compiled).

 10. 3.12 - /DIAGNOSTICS

    /DIAGNOSTICS[=file-spec]
    /NODIAGNOSTICS (D)

    Controls whether a diagnostics file containing compiler messages
    and diagnostic information is created. The diagnostics file is
    supported only for use with Digital layered products, such as the
    DEC Language-Sensitive Editor.

    One diagnostics file is created for each source file that is
    compiled and for each unit that is recompiled. The default
    directory for diagnostics files is the current default directory.
    The default file name is the name of the source file being
    compiled. The default file type of a diagnostics file is .DIA.
    No wildcard characters are allowed in the file specification.

    By default, no diagnostics file is created.

 10. 3.13 - /ERROR_LIMIT

    /ERROR_LIMIT[=n] (D)
    /NOERROR_LIMIT

    Controls whether execution of the COMPILE command for a given
    compilation unit is terminated upon the occurrence of the nth
    E-level error within that unit.

    Error counts are not accumulated across a sequence of compilation
    units. If the /ERROR_LIMIT=n option is specified, each
    compilation unit may have up to n - 1 errors without terminating
    the compilation. When the error limit is reached within a
    compilation unit, compilation of that unit is terminated, but
    compilation of subsequent units continues.

    The /ERROR_LIMIT=0 option is equivalent to ERROR_LIMIT=1.

    By default, execution of the COMPILE command is terminated for
    a given compilation unit upon the occurrence of the 30th E-level
    error within that unit (equivalent to /ERROR_LIMIT=30).

 10. 3.14 - /EXPORT_INTERFACE

    /EXPORT_INTERFACE=ADA  (D)
    /EXPORT_INTERFACE=FORTRAN
    /EXPORT_INTERFACE=DEFAULT

    This qualifier sets the passing mechanism chosen for string parameters
    for exported subprograms unless an export pragma specifically specifies
    the passing mechanism.

    The default is ADA, which uses dope vectors for the passing mechanism.

    FORTRAN or DEFAULT will use VAX descriptors for the passing mechanism.

    For more information, please see the Compaq Ada release notes.

 10. 3.15 - /KEEP

    /KEEP (D)
    /NOKEEP

    Controls whether the batch log file generated is deleted after it
    is printed when the command file is executed in batch mode.

    By default, the log file is not deleted.

 10. 3.16 - /LIST

    /LIST[=file-spec]
    /NOLIST (D)

    Controls whether a listing file is created. One listing file
    is created for each compilation unit (not file) compiled or
    recompiled by the COMPILE command.

    The default directory for listing files is the current default
    directory. The default file name of a listing file corresponds
    to the name of its compilation unit and uses the Compaq Ada file-
    name conventions described in Developing Ada Programs on OpenVMS
    Systems. The default file type of a listing file is .LIS. No
    wildcard characters are allowed in the file specification.

    By default, the COMPILE command does not create a listing file.

 10. 3.17 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether a list of all the units that must be compiled or
    recompiled is displayed.

    By default, a list of the units that must be compiled or
    recompiled is not displayed.

 10. 3.18 - /MACHINE_CODE

    /MACHINE_CODE
    /NOMACHINE_CODE (D)

    Controls whether generated machine code (approximating assembler
    notation) is included in the listing file.

    By default, generated machine code is not included in the listing
    file.

 10. 3.19 - /NAME

    /NAME=job-name

    Specifies a string to be used as the job name and as the file
    name for the batch log file when the command file is executed in
    batch mode. The job name can have from 1 to 39 characters.

    By default, if you do not specify the /NAME qualifier, the
    program library manager creates a job name comprising up to the
    first 39 characters of the first unit name specified. If you do
    not specify the /NAME qualifier, but use a wildcard character in
    the first unit name specified, the compiler uses the default name
    ACS_COMPILE. In these cases, the job name is also the file name
    of the batch log file.

 10. 3.20 - /NOTE_SOURCE

    /NOTE_SOURCE (D)
    /NONOTE_SOURCE

    Controls whether the file specification of the source file is
    noted in the program library when a unit is compiled without
    error. The COMPILE command uses this information to locate
    revised source files.

    By default, the file specification of the source file is noted
    in the current program library when a unit is compiled without
    error.

 10. 3.21 - /NOTIFY

    /NOTIFY (D)
    /NONOTIFY

    Controls whether a message is broadcast when the command file is
    executed in batch mode. The message is broadcast to any terminal
    at which you are logged in, notifying you that your job has been
    completed or terminated.

    By default, a message is broadcast.

 10. 3.22 - /OBSOLETE

    /OBSOLETE=(option[,...])
    /NOOBSOLETE (D)

    Affects the overall set of units that is identified as obsolete.

    When the execution closure of the units in the parameter list
    of the command is performed, the units named with the UNIT,
    SPECIFICATION and BODY keywords are assumed to be obsolete as
    described below. If one of those units is not in the execution
    closure of the units named in the command's parameter list, it is
    not added to the closure.

    Unit names are specified with the UNIT, SPECIFICATION, and BODY
    keywords as follows:

    UNIT:(unit_           The specifications and bodies of units
    name[,...])           specified with the UNIT keyword are assumed
                          to be obsolete.
    SPECIFICATION:(unit_  Only the specificiations of units specified
    name[,...])           with the SPECIFICATION keyword are assumed
                          to be obsolete.
    BODY:(unit_           Only the bodies of units specified with the
    name[,...])           BODY keyword are assumed to be obsolete.

    You must specify at least one of these keywords with the
    /OBSOLETE qualifier. Unit names can contain wildcard characters.

    When the /SMART_RECOMPILATION qualifier is in effect, dependent
    units of the specified units are possibly obsolete and may be
    recompiled. To force recompilation of dependent units when smart
    recompilation is in effect, use the /OBSOLETE=UNIT:* qualifier.
    (See Developing Ada Programs on OpenVMS Systems for more information.)

    By default, units are identified as obsolete based on the current
    state of the program library.

 10. 3.23 - /OPTIMIZE

    /OPTIMIZE[=(option[,...])]
    /NOOPTIMIZE

    Controls the level of optimization that is applied in producing
    the compiled code. You can specify one of the following primary
    options:

    TIME          Provides full optimization with time as the primary
                  optimization criterion. Overrides any occurrences
                  of the pragma OPTIMIZE(SPACE) in the source code.
    SPACE         Provides full optimization with space as the
                  primary optimization criterion. Overrides any
                  occurrences of the pragma OPTIMIZE(TIME) in the
                  source code.
    DEVELOPMENT   Suggested when active development of a program
                  is in progress. Provides some optimization, but
                  development considerations and ease of debugging
                  take preference over optimization. This option
                  overrides pragmas that establish a dependence on
                  a subprogram or generic body (the pragmas INLINE
                  and INLINE_GENERIC), and therefore reduces the need for
                  recompilations when such bodies are modified. This
                  option also disables generic code sharing.
    NONE          Provides no optimization. Suppresses inline
                  expansions of subprograms and generics, including
                  those specified by the pragmas INLINE and INLINE_
                  GENERIC. Suppresses occurrences of the pragma
                  SHARE_GENERIC and disables generic code sharing.

    The /NOOPTIMIZE qualifier is equivalent to /OPTIMIZE=NONE.

    By default, the COMPILE command applies full optimization with
    time as the primary optimization criterion (like /OPTIMIZE=TIME,
    but observing uses of the pragma OPTIMIZE).

    The /OPTIMIZE qualifier also has a set of secondary options that
    you can use separately or together with the primary options to
    override the default behavior for inline expansion (generic and
    subprogram) and generic code sharing.

    The INLINE secondary option can have the following values (see
    the DEC Ada Run-Time Reference Manual for OpenVMS Systems for
    more information about inline expansion):

    NONE             Disables subprogram and generic inline
                     expansion. This option overrides any occurrences
                     of the pragmas INLINE or INLINE_GENERIC in the
                     source code, without your having to edit the
                     source file. It also disables implicit inline
                     expansion of subprograms. (Implicit inline
                     expansion means that the compiler assumes a
                     pragma INLINE for certain subprograms as an
                     optimization.) A call to a subprogram or an
                     instance of a generic in another unit is not
                     expanded inline, regardless of the /OPTIMIZE
                     options in effect when that unit was compiled.
    NORMAL           Provides normal subprogram and generic inline
                     expansion.

                     Subprograms to which an explicit pragma INLINE
                     applies are expanded inline under certain
                     conditions. In addition, some subprograms are
                     implicitly expanded inline. The compiler assumes
                     a pragma INLINE for calls to some small local
                     subprograms (subprograms that are declared in
                     the same unit as the unit in which the call
                     occurs).

                     Instances are compiled separately from the unit
                     in which the instantiation occurred unless a
                     pragma INLINE_GENERIC applies to the instance.
                     If a pragma INLINE_GENERIC applies and the
                     generic body has been compiled, the generic is
                     expanded inline at the point of instantiation.
    SUBPROGRAMS      Provides maximal subprogram inline expansion and
                     normal generic inline expansion.

                     In addition to the normal subprogram inline
                     expansion that occurs when INLINE:NORMAL is
                     specified, this option results in implicit
                     inline expansion of some small subprograms
                     declared in other units. The compiler assumes a
                     pragma INLINE for any subprogram if it improves
                     execution speed and reduces code size. This
                     option may establish a dependence on the body of
                     another unit, as would be the case if a pragma
                     INLINE were specified explicitly in the source
                     code.

                     With this option, generic inline expansion
                     occurs in the same manner as for INLINE:NORMAL.
    GENERICS         Provides normal subprogram inline expansion and
                     maximal generic inline expansion.

                     With this option, subprogram inline expansion
                     occurs in the same manner as for INLINE:NORMAL.

                     The compiler assumes a pragma INLINE_GENERIC for
                     every instantiation in the unit being compiled
                     unless an explicit pragma SHARE_GENERIC applies.
                     This option may establish a dependence on the
                     body of another unit, as would be the case if a
                     pragma INLINE_GENERIC were specified explicitly
                     in the source code.
    MAXIMAL          Provides maximal subprogram and generic inline
                     expansion.

                     Maximal subprogram inline expansion occurs as
                     for INLINE:SUBPROGRAMS, and maximal generic
                     inline expansion occurs as for INLINE:GENERICS.

    The SHARE secondary option can have the following values:

    NONE          Disables generic sharing. This option overrides
                  the effect of any occurrences of the pragma SHARE_
                  GENERIC in the source code, without your having to
                  edit the source file. In addition, instances do not
                  share code from previous instantiations.
    NORMAL        Provides normal generic sharing. Normally, the
                  compiler will not attempt to generate shareable
                  code for an instance (code that can shared by
                  subsequent instantiations) unless an explicit
                  pragma SHARE_GENERIC applies to that instance.
                  However, an instance will attempt to share code
                  that resulted from a previous instantiation to
                  which the pragma SHARE_GENERIC applied.
    MAXIMAL       Provides maximal generic sharing. The compiler
                  assumes that a pragma SHARE_GENERIC applies to
                  every instance in the unit being compiled unless
                  an explicit pragma INLINE_GENERIC applies. Therefore, an
                  instance will attempt to share code that resulted
                  from a previous instantiation or to generate code
                  that can be shared by subsequent instantiations.

                  SHARE:MAXIMAL cannot be used in combination with
                  INLINE:GENERICS or INLINE:MAXIMAL.

    By default, if you specify one of the /OPTIMIZE
    qualifier primary options on the left (for example,
    /OPTIMIZE=TIME), it has the same effect as specifying
    the secondary-option values to the right (in this case,
    /OPTIMIZE=(TIME,INLINE:NORMAL,SHARE:NORMAL)):

    TIME        /OPTIMIZE=(TIME,INLINE:NORMAL,SHARE:NORMAL)
    SPACE       /OPTIMIZE=(SPACE,INLINE:NORMAL,SHARE:NORMAL)
    DEVELOPMENT /OPTIMIZE=(DEVELOPMENT,INLINE:NONE,SHARE:NONE)
    NONE        /OPTIMIZE=(NONE,INLINE:NONE,SHARE:NONE)

    See Developing Ada Programs on OpenVMS Systems for more
    information about the /OPTIMIZE qualifier and its options.

 10. 3.24 - /OUTPUT

    /OUTPUT=file-spec

    Requests that any program library manager output generated before
    the compiler is invoked be written to the file specified rather
    than to SYS$OUTPUT. Any diagnostic messages are written to both
    SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the COMPILE command output is written to SYS$OUTPUT.

 10. 3.25 - /PRELOAD

    /PRELOAD (D)
    /NOPRELOAD

    Controls whether the COMPILE command processes revised external
    source files so that new compilation units or unit dependences
    introduced in those files-or any new source files previously
    processed by the ACS LOAD or DCL ADA command-are accounted for.
    Preload processing involves the partial compilation and syntax
    checking of the following files:

    o  Any external source file whose creation date-time is later
       than that noted in the program library

    o  Any new units introduced into the closure of units specified
       by way of modifications to the known external source files
       (preload processing does not include new external source files
       that are not already accounted for in the program library)

    Preload processing is done immediately, after the creation date-
    time of each external source file is checked, and before the
    usual COMPILE compilations and recompilations are performed. If
    you have also specified the /CONFIRM qualifier, you are prompted
    for confirmation for each external file to be preloaded.

    By default, the COMPILE command processes revised external source
    files to account for new compilation units or unit dependences.

 10. 3.26 - /PRINTER

    /PRINTER[=queue-name]
    /NOPRINTER (D)

    Controls whether the batch job log file is queued for printing
    when the command file is executed in batch mode.

    The /PRINTER qualifier allows you to specify a particular print
    queue. The default print queue for the log file is SYS$PRINT.

    By default, the log file is not queued for printing. If you
    specify the /NOPRINTER qualifier, the /KEEP qualifier is assumed.

 10. 3.27 - /QUEUE

    /QUEUE=queue-name

    Specifies the batch job queue in which the job is entered when
    the command file is executed in batch mode.

    By default, if the /QUEUE qualifier is not specified, the program
    library manager first checks whether the logical name ADA$BATCH
    is defined. If it is, the program library manager enters the
    job in the queue specified. Otherwise the job is placed in the
    default system batch job queue, SYS$BATCH.

 10. 3.28 - /SHOW

    /SHOW[=option] (D)
    /NOSHOW

    Controls the listing file options included when a listing file is
    provided. You can specify one of the following options:

    ALL            Provides all listing file options.
    [NO]PORTABILITYControls whether a program portability summary is
                   included in the listing file (see Developing Ada
                   Programs on OpenVMS Systems).
    NONE           Provides none of the listing file options (same as
                   /NOSHOW).

    By default, the COMPILE command provides a portability summary
    (/SHOW=PORTABILITY).

 10. 3.29 - /SMART_RECOMPILATION

    /SMART_RECOMPILATION (D)
    /NOSMART_RECOMPILATION

    Controls whether smart recompilation information is stored and
    used to minimize unnecessary recompilations.

    When the /SMART_RECOMPILATION qualifier is in effect, detailed
    information about dependences is stored in the program
    library for each unit compiled. This information describes the
    dependences of a unit at a finer level than the compilation unit
    level.

    The ACS COMPILE command uses this information to detect when an
    unmodified unit in the closure is not affected by changes (if
    any) in its referenced units that are compiled or recompiled. The
    ACS COMPILE command does not recompile such dependent units and,
    therefore, minimizes unnecessary recompilations.

    Note that the ACS COMPILE command always compiles modified units.

    If smart recompilation is not in effect, detailed information
    about dependences is not stored in the program library, and units
    are considered obsolete and recompiled based on their time of
    compilation. (See Developing Ada Programs on OpenVMS Systems for
    more information.)

 10. 3.30 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Causes only the specifications of the units specified to be
    considered for compilation. You can use the /CLOSURE qualifier
    with the /SPECIFICATION_ONLY qualifier to force only the
    specifications in the execution closure of the specified units
    to be considered for compilation.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted,
    all of the specifications, bodies, and subunits in the execution
    closure of the units specified are considered for compilation.

 10. 3.31 - /STATISTICS

    /STATISTICS (D)
    /NOSTATISTICS

    Controls whether statistical information is displayed.
    Statistical information includes the number of obsolete and
    possibly obsolete units, the total elasped time for the last
    compilation of all identified units, and the estimated elasped
    time savings due to smart recompilation.

 10. 3.32 - /SUBMIT

    /SUBMIT

    Directs the program library manager to submit the command file
    generated for the compiler to a batch queue. You can continue to
    enter commands in your current process without waiting for the
    batch job to complete. The compiler output is written to a log
    file.

    By default, the program library manager submits the command file
    generated for the compiler in a subprocess (by way of the COMPILE
    /WAIT command).

 10. 3.33 - /SYNTAX_ONLY

    /SYNTAX_ONLY
    /NOSYNTAX_ONLY (D)

    Controls whether a syntax-level check is performed when
    identifying obsolete units. A unit is not considered obsolete
    just because it is syntax-checked only. Because all units in a
    program library are at least syntax-checked, in effect, this
    qualifier selects only units with revised source files for
    compilation.

    This qualifier also directs the compiler to process source files
    for syntax only. Other compiler checks are not performed (for
    example, semantic analysis, type checking, and so on).

    By default, the COMPILE command performs full checking when
    identifying obsolete units and the compiler fully compiles
    units.)

 10. 3.34 - /TUNE

    Selects processor-specific instruction tuning for implementations of
    the Alpha architecture.  Tuning for a specific implementation can
    provide improvements in runtime performance.  The syntax for this switch
    is as follows:

    /TUNE = { GENERIC | HOST | EV4 | EV5 | EV56 }

    For more information, see the Release Notes.

 10. 3.35 - /WAIT

    /WAIT

    Directs the program library manager to execute the command file
    generated in a subprocess. Execution of your current process is
    suspended until the subprocess completes. The compiler output
    is written directly to your terminal. Note that process logical
    names are propagated to the subprocess generated to execute the
    command file.

    By default, the program library manager executes the command file
    generated in a subprocess. You must wait for the subprocess to
    terminate before you can enter another command.

 10. 3.36 - /WARNINGS

    /WARNINGS[=(option[,...])]
    /NOWARNINGS

    Controls which categories of informational (I-level) and warning
    (W-level) messages are displayed and where those messages are
    displayed. You can specify any combination of the following
    message options:

       WARNINGS: (destination[,...])
       NOWARNINGS

       WEAK_WARNINGS: (destination[,...])
       NOWEAK_WARNINGS

       SUPPLEMENTAL: (destination[,...])
       NOSUPPLEMENTAL

       COMPILATION_NOTES: (destination[,...])
       NOCOMPILATION_NOTES

       STATUS: (destination[,...])
       NOSTATUS

    The possible values of destination are ALL, NONE, or any
    combination of TERMINAL (terminal device), LISTING (listing
    file), and DIAGNOSTICS (diagnostics file). The message categories
    are summarized as follows (see Developing Ada Programs on OpenVMS
    Systems for more information):

    WARNINGS         W-level: Indicates a definite problem in a legal
                     program-for example, an unknown pragma.
    WEAK_WARNINGS    I-level: Indicates a potential problem in
                     a legal program-for example, a possible
                     CONSTRAINT_ERROR at run time. These are the only
                     kind of I-level messages that are counted in the
                     summary statistics at the end of a compilation.
    SUPPLEMENTAL     I-level: Additional information associated with
                     preceding E-level or W-level diagnostics.
    COMPILATION_     I-level: Information about how the compiler
    NOTES            translated a program, such as record layout,
                     parameter-passing mechanisms, or decisions
                     made for the pragmas INLINE, INTERFACE, or the
                     import-subprogram pragmas.
    STATUS           I-level: End of compilation statistics and other
                     messages.

    The defaults are as follows:

    /WARNINGS=(WARN:ALL,WEAK:ALL,SUPP:ALL,COMP:NONE,STAT:LIST)

    If you specify only some of the message categories with the
    /WARNINGS qualifier, the default values for the other categories
    are used.

 10.4 - Examples

    1.ACS> COMPILE/SUBMIT/LOG RESERVATIONS
      %I, Invoking the DEC Ada compiler

      %I, The following syntax-checked units are obsolete:
      RESERVATIONS
          package body                     4-NOV-1992 16:25:34.68 (00:00:14.02)

      %I, The following units may also be recompiled:
      RESERVATIONS.RESERVE
          procedure body                   4-NOV-1992 14:49:55.78 (00:00:04.27)
      RESERVATIONS.RESERVE.BILL
          procedure body                   4-NOV-1992 14:50:01.55 (00:00:05.12)
      RESERVATIONS.CANCEL
          procedure body                   4-NOV-1992 14:51:36.25 (00:00:04.24)

      1 obsolete unit, 3 possibly obsolete units (total 4)
      Total elapsed time for last compilation of all 4 units was 0:00:27.65

      %I, Job RESERVATIONS (queue CLU_BATCH, entry 388) started on WIDTH_BATCH

      Lists all units in the closure of unit RESERVATIONS that
      need to be compiled and recompiled, then submits the compiler
      command file generated by ACS as a batch job.

    2.$ ACS COMPILE MAIN /OBSOLETE=UNIT:*

      This combination can be used to force the compilation of the
      unit MAIN and of all the units in its closure.

  11 - COPY

 11.1 - FOREIGN

    Copies a foreign (non-Ada) object file into the current program
    library. The file is used as a library body (body of a package,
    procedure, or function).

    Format

      COPY FOREIGN  file-spec unit-name

 11. 1.1 - Parameters

 file-spec

    Specifies the object file containing the foreign body to be
    copied into the current program library. The default directory
    is the current default directory. The default file type is .OBJ.
    No wildcard characters are allowed in the file specification.

 unit-name

    Specifies the unit whose body is to be copied into the current
    program library with the ACS COPY FOREIGN command.

 11. 1.2 - Description

    The ACS COPY FOREIGN command copies a foreign (non-Ada) object
    file into the current program library. Because the file is used
    as a library body, the program library must contain a library
    specification for the unit, and the specification must contain
    the pragma INTERFACE and (if appropriate) a pragma IMPORT_
    FUNCTION, IMPORT_PROCEDURE, or IMPORT_VALUED_PROCEDURE for any
    procedure or function that the specification requires.

    Once you supply a foreign body for a unit, the program library
    manager assumes that the body is current until you supply a
    new (Ada or foreign) definition of the body. Compiling the
    specification of the unit does not cause the body to become
    obsolete.

 11. 1.3 - Command Qualifiers

 11. 1. 3.1 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the unit name and object-file name are displayed
    after the object file is copied.

    By default, the unit name or object-file name is not displayed.

 11. 1. 3.2 - /REPLACE

    /REPLACE
    /NOREPLACE (D)

    Controls whether the specified file replaces a body that is
    already defined in the current program library for the unit name
    specified.

    By default, the specified file does not replace a body that is
    already defined in the current program library for the unit name
    specified.

 11. 1.4 - Example

  ACS> COPY FOREIGN USER:[JONES.WORK]SQUARE SQR

      Copies the object file SQUARE.OBJ from the directory
      USER:[JONES.WORK] into the current program library as the body
      of unit SQR. The specification of SQR must already be defined
      in the current program library.

 11.2 - UNIT

    Copies one or more units from another program library into the
    current program library.

    Format

      COPY UNIT  from-directory-spec unit-name[,...]

 11. 2.1 - Parameters

 from-directory-spec

    Specifies the program library or program sublibrary that contains
    the units to be copied into the current program library.

 unit-name

    Specifies one or more units to be copied into the current program
    library. You must express subunit names using selected component
    notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%) and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 11. 2.2 - Description

    The ACS COPY UNIT command copies, into the current program
    library, each specified unit's specification and body (if any).
    If the specified unit is a subunit, the COPY UNIT command copies
    the subunit and any nested subunits. If you specify the /CLOSURE
    qualifier, the COPY UNIT command copies the closure of the set of
    units specified.

    For each unit copied, the COPY UNIT command updates the current
    program library as follows:

    1. Creates local copies of all associated files

    2. Updates the library index file of the current program library
       to account for the new files, and notes the date and time the
       unit was last compiled into its original program library

    Copying a unit that was entered into a program library produces a
    local copy of that unit.

    The COPY UNIT command does not affect the program library from
    which a unit is copied. Modifying the unit in the original
    program library does not affect the copied unit.

    Once a unit is copied to a given program library, it can be used
    as if it had been compiled locally.

 11. 2.3 - Command Qualifiers

 11. 2. 3.1 - /CLOSURE

    /CLOSURE
    /NOCLOSURE (D)

    Controls whether the COPY UNIT command copies the closure of the
    set of units specified into the current program library.

    By default, only the specification and body of the units
    specified are copied.

 11. 2. 3.2 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the COPY UNIT command displays the name of each
    unit before copying, and requests you to confirm whether or not
    the unit should be copied. If you specify the /CONFIRM qualifier,
    the possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the confirmation prompt is
    reissued.

    By default, no confirmation is requested.

 11. 2. 3.3 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether entered units are copied. You can use the
    library option to copy units that were entered from a particular
    library. When you specify the /NOENTERED qualifier, only units
    that have been compiled or copied into the current program
    library are copied. Note that when you specify the /ENTERED
    qualifier, local units are copied unless the /NOLOCAL qualifier
    is also in effect (the defaults for these qualifiers are /LOCAL
    and /ENTERED).

    By default, all units specified, including entered units, are
    copied.

 11. 2. 3.4 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are copied. Note
    that when you specify the /LOCAL qualifier, entered units are
    copied unless the /NOENTERED qualifier is also in effect (the
    defaults for these qualifiers are /LOCAL and /ENTERED).

    By default, all units specified, including local units, are
    copied.

 11. 2. 3.5 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the name of a unit is displayed after it has
    been copied.

    By default, the names of copied units are not displayed.

 11. 2. 3.6 - /REPLACE

    /REPLACE
    /NOREPLACE (D)

    Controls whether the unit to be copied replaces a unit of the
    same name that is already defined in the current program library.

    By default, the unit to be copied does not replace a unit of the
    same name that is already defined in the current program library.

 11. 2.4 - Positional Qualifiers

 11. 2. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Copies only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the COPY UNIT command
    string, any /SPECIFICATION_ONLY qualifiers that are appended to
    parameters in the command line override the /SPECIFICATION_ONLY
    qualifier for those particular parameters. You cannot append both
    the /BODY_ONLY qualifier and the /SPECIFICATION_ONLY qualifier to
    the COPY UNIT command string or to the same unit name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specification, as well as the body, is copied.

 11. 2. 4.2 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Copies only the specification of the specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the COPY
    UNIT command string, any /BODY_ONLY qualifiers that are appended
    to parameters in the command line override the /BODY_ONLY
    qualifier for those particular parameters. You cannot append both
    the /SPECIFICATION_ONLY qualifier and the /BODY_ONLY qualifier to
    the COPY UNIT command string or to the same unit name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    body, as well as the specification, is copied.

 11. 2.5 - Examples

    1.ACS> COPY UNIT [SMITH.WORK.ADALIB] STACKS,SUM

      Copies the units STACKS and SUM, located in the program library
      [SMITH.WORK.ADALIB], into the current program library.

    2.ACS> COPY UNIT/CLOSURE DISK:[SMITH.SHARE.ADALIB] QUEUE_MANAGER

      Copies the closure of unit QUEUE_MANAGER from
      DISK:[SMITH.SHARE.ADALIB] into the current program library.

    3.ACS> COPY UNIT DISK:[PROJ.ADALIB] STACKS*

      Copies the specification, body, and all of the subunits of the
      unit STACKS from the program library DISK:[PROJ.ADALIB] to the
      current program library.

  12 - CREATE

 12.1 - LIBRARY

    Creates a new Compaq Ada program library. To create a program
    sublibrary, use the ACS CREATE SUBLIBRARY command.

    Note that you cannot create a program library across DECnet if a
    corresponding OpenVMS directory does not already exist.

    Format

      CREATE LIBRARY  directory-spec

 12. 1.1 - Parameters

 directory-spec

    Specifies the program library to be created. The directory
    specification must contain a OpenVMS directory name and,
    optionally, a device name (see the OpenVMS User's Manual for
    OpenVMS directory naming conventions). The directory may be
    a subdirectory or a main (top-level) directory. No wildcard
    characters are allowed in the directory specification.

    The program libraries you create will typically be subdirectories
    of your main (top-level) directory. To create a program library
    as a top-level directory, you must have the necessary privileges.
    To create a subdirectory, you must have write access to the
    lowest level directory that currently exists.

    The directory specified to be a program library may be an
    existing empty directory, to allow you to use special ACL (access
    control list) options for that directory. See the OpenVMS User's
    Manual and the VMS Access Control List Editor Manual for more
    information on directory protection and ACL options.

 12. 1.2 - Description

    The ACS CREATE LIBRARY command creates and initializes a new
    program library by performing the following steps:

    1. Creates the specified OpenVMS directory, unless it already
       exists. If the directory already exists before the CREATE
       LIBRARY command is entered, the original directory protection
       attributes are maintained. If the directory does not exist
       when the command is entered, the command creates the specified
       directory with default protection attributes (see the
       description of the /PROTECTION qualifier).

    2. Creates a library index file (ADALIB.ALB) and a library
       version control file (ADA$LIB.DAT) in the program library.

    3. Initializes the program library to the following system
       characteristics:

          FLOAT_REPRESENTATION=VAX_FLOAT
          LONG_FLOAT = G_FLOAT
          MEMORY_SIZE = 2147483647
          SYSTEM_NAME = VAX_VMS or OpenVMS_AXP

       You change these characteristics with the ACS SET PRAGMA
       command or with the /SYSTEM_NAME qualifier that applies to
       the ACS CREATE LIBRARY, CREATE SUBLIBRARY, EXPORT, and LINK
       commands.

    4. If the /PREDEFINED qualifier is specified (the default),
       enters into the newly created program library the Compaq Ada
       predefined units (such as SYSTEM and TEXT_IO) that are located
       in the ADA$PREDEFINED program library on your system. This
       is equivalent to entering an ACS ENTER UNIT command for those
       predefined units. You can use the /NOPREDEFINED qualifier to
       change this default.

    The CREATE LIBRARY command does not define a new program library
    to be the current program library. You must use the ACS SET
    LIBRARY command to define the current program library.

 12. 1.3 - Command Qualifiers

 12. 1. 3.1 - /FLOAT_REPRESENTATION

    /FLOAT_REPRESENTATION=VAX_FLOAT (D)

    Initializes the program library to a particular value of FLOAT_
    REPRESENTATION. The possible values are either VAX_FLOAT or IEEE_
    FLOAT (for Alpha systems only). The effect of this qualifier is
    similar to compiling a pragma FLOAT_REPRESENTATION.

    By default, if the /FLOAT_REPRESENTATION qualifier is not
    specified, the program library is initialized to VAX_FLOAT.

 12. 1. 3.2 - /LARGE

    /LARGE
    /NOLARGE (D)

    Controls whether the program library manager creates
    subdirectories within the library directory to store library
    files for units compiled into the library. When the /NOLARGE
    qualifier is in effect (the default), the program library manager
    does not create subdirectories and stores unit library files in
    the library directory.

    When this qualifier is in effect, creating sublibrary directories
    to store library files can improve the compilation performance
    of large program libraries. (See the Developing Ada Programs on
    OpenVMS Systems and the release notes for more information.)

 12. 1. 3.3 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether the program library directory specification is
    displayed after the library has been created.

    By default, the program library directory specification is
    displayed.

 12. 1. 3.4 - /LONG_FLOAT

    /LONG_FLOAT=option

    Initializes the program library to a particular value of LONG_
    FLOAT. The possible values are D_FLOAT and G_FLOAT. The effect of
    this qualifier is equivalent to compiling a pragma LONG_FLOAT.

    By default, if the /LONG_FLOAT qualifier is not specified, the
    program sublibrary is initialized to the value G_FLOAT.

 12. 1. 3.5 - /MEMORY_SIZE

    /MEMORY_SIZE=n

    Initializes the memory size of the program library to the
    value n. The effect of this qualifier is equivalent to compiling
    a pragma MEMORY_SIZE.

    By default, if the /MEMORY_SIZE qualifier is not specified,
    the initial memory size of the program library is 2,147,483,647
    bytes.

 12. 1. 3.6 - /PREDEFINED

    /PREDEFINED (D)
    /NOPREDEFINED

    Controls whether the Compaq Ada predefined units located in the
    program library denoted by the logical name ADA$PREDEFINED are
    entered into the specified program library.

    By default, the Compaq Ada predefined units are entered into the
    specified program library.

 12. 1. 3.7 - /PROTECTION

    /PROTECTION=(code)

    Defines the file protection to be applied to the program library.
    File protection is specified as follows:

    /PROTECTION=(SYSTEM:rwed,OWNER:rwed,GROUP:rwed,WORLD:rwed)

    Refer to the OpenVMS User's Manual for complete information on
    the form and meaning of file protection codes.

    If you want to deny all access to a category, you must specify
    the category name without a colon. For example:

    /PROTECTION=(OWNER:RWE,GROUP,WORLD)

    If you do not specify a value for each access category, or if
    you omit the /PROTECTION qualifier when you create the program
    library, standard VMS directory and file protection defaults are
    applied as follows:

    o  The directory protection defaults from the next-higher-level
       directory, less any delete access.

    o  Protection for the library index file (ADALIB.ALB) and
       library version control file (ADA$LIB.DAT) defaults from the
       process default protection (see the DCL SET PROTECTION/DEFAULT
       command).

    See Developing Ada Programs on OpenVMS Systems for more
    information on program library protection.

 12. 1. 3.8 - /SYSTEM_NAME

    /SYSTEM_NAME=system

    Determines the target operating system for the program library.
    On VAX systems, the possible system values are VAX_VMS and
    VAXELN. On Alpha systems, the system value is OpenVMS_AXP.

    By default, if the /SYSTEM_NAME qualifier is not specified, the
    initial target operating system is VAX_VMS on VAX systems and
    OpenVMS_AXP on Alpha systems.

 12. 1.4 - Examples

    1.ACS> CREATE LIBRARY [JONES.HOTEL.ADALIB]
      %I, Library USER:[JONES.HOTEL.ADALIB] created

      Creates the program library [JONES.HOTEL.ADALIB] on the default
      device, USER:.

    2.ACS> CREATE LIBRARY/PROTECTION=(S:RWE,O:RWED,G:RW,W) -
      _ACS> [PROJ.ADALIB]
      %I, Program library USER:[PROJ.ADALIB] created

      Creates the program library [PROJ.ADALIB] on the default
      device, USER. The /PROTECTION qualifier assigns the specified
      program library protection. This protection is applied to the
      library index file, the library version control file, and the
      directory file for the newly created program library.

 12.2 - SUBLIBRARY

    Creates a new Compaq Ada program sublibrary and establishes its
    parent program library.

    Note that you cannot create a program sublibrary across DECnet if
    the corresponding OpenVMS directory does not already exist.

    Format

      CREATE SUBLIBRARY  directory-spec

 12. 2.1 - Parameters

 directory-spec

    Specifies the program sublibrary to be created. The directory
    specification must contain a OpenVMS directory name and,
    optionally, a device name (see the OpenVMS User's Manual for VMS
    directory naming conventions). No wildcard characters are allowed
    in the directory specification.

    You may use any valid OpenVMS directory specification when
    creating a program sublibrary; however, the program sublibraries
    you create will typically be subdirectories of your main (top-
    level) directory.

    The specified program sublibrary directory may be, but need not
    be, a subdirectory of the parent library directory.

    The directory specified to be a program sublibrary may be an
    existing empty directory. This allows you to use special ACL
    (access control list) options for that directory. In that case,
    the CREATE SUBLIBRARY command makes the directory a program
    library. See the OpenVMS User's Manual and the VMS Access Control
    List Editor Manual for more information on directory protection
    and ACL options.

 12. 2.2 - Description

    The ACS CREATE SUBLIBRARY command creates and initializes a new
    program sublibrary by performing the following steps:

    1. Checks that the parent library exists and is write accessible.

    2. Creates the specified OpenVMS directory, unless it already
       exists. If the directory already existed before the CREATE
       SUBLIBRARY command was entered, the original directory
       protection attributes are maintained. If the directory did
       not exist before the command was entered, the command creates
       the specified directory with default protection attributes
       (see the description of the /PROTECTION qualifier).

    3. Creates a library index file (ADALIB.ALB) and a library
       version control file (ADA$LIB.DAT) in the program sublibrary.

    4. Initializes the library index file to reference the parent
       program library as specified with the /PARENT qualifier. If
       the /PARENT qualifier is not used, the parent program library
       is the current program library.

    5. Initializes the program sublibrary to the parent library's
       current values for FLOAT_REPRESENTATION, LONG_FLOAT, MEMORY_
       SIZE, and SYSTEM_NAME.

    Program sublibraries may be nested several levels deep. However,
    you should limit nesting to three or four levels for best
    performance. Note that the OpenVMS operating system imposes
    limits on how deeply directories and subdirectories can be
    nested. This limit has an effect only if you use increasingly
    subordinate subdirectories for each sublibrary in your sublibrary
    tree.

    The CREATE SUBLIBRARY command does not affect the definition of
    your current program library. If you want to define the newly
    created program sublibrary to be the current program library, you
    must use the ACS SET LIBRARY command.

 12. 2.3 - Command Qualifiers

 12. 2. 3.1 - /FLOAT_REPRESENTATION

    /FLOAT_REPRESENTATION=VAX_FLOAT (D)

    Initializes the program library to a particular value of FLOAT_
    REPRESENTATION. The possible values are either VAX_FLOAT or IEEE_
    FLOAT (for Alpha systems only). The effect of this qualifier is
    similar to compiling a pragma FLOAT_REPRESENTATION.

    By default, if the /FLOAT_REPRESENTATION qualifier is not
    specified, the program library is initialized to VAX_FLOAT.

 12. 2. 3.2 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether the program sublibrary directory specification
    is displayed after the sublibrary has been created.

    By default, the program sublibrary directory specification is
    displayed.

 12. 2. 3.3 - /LONG_FLOAT

    /LONG_FLOAT=option

    Initializes the program library to a particular value of LONG_
    FLOAT. The possible values are D_FLOAT and G_FLOAT.

    By default, if the /LONG_FLOAT qualifier is not specified, the
    program sublibrary is initialized to the parent library's current
    value of LONG_FLOAT.

 12. 2. 3.4 - /MEMORY_SIZE

    /MEMORY_SIZE=n

    Initializes the memory size of the created program sublibrary.

    By default, if the /MEMORY_SIZE qualifier is not specified,
    the initial memory size of the program sublibrary is the parent
    library's current value of MEMORY_SIZE.

 12. 2. 3.5 - /PARENT

    /PARENT=directory-spec

    Specifies the program library or program sublibrary that is the
    immediate parent of the program sublibrary to be created.

    By default, if the /PARENT qualifier is not specified, the parent
    is the current program library as established by the last ACS SET
    LIBRARY command.

 12. 2. 3.6 - /PROTECTION

    /PROTECTION=(code)

    Defines the file protection to be applied to the program
    sublibrary. File protection is specified as follows:

    /PROTECTION=(SYSTEM:rwed,OWNER:rwed,GROUP:rwed,WORLD:rwed)

    Refer to the OpenVMS User's Manual for complete information on
    the form and meaning of file protection codes.

    If you want to deny all access to a category, you must specify
    the category name without a colon. For example:

    /PROTECTION=(OWNER:RWE,GROUP,WORLD)

    If you do not specify a value for each access category, or if
    you omit the /PROTECTION qualifier when you create the program
    library, standard VMS directory and file protection defaults are
    applied as follows:

    o  The directory protection defaults from the next-higher-level
       directory, less any delete access.

    o  Protection for the library index file (ADALIB.ALB) and library
       version control file (ADA$LIB.DAT) defaults from the process
       default protection (see the DCL SET PROTECTION/DEFAULT command
       in the OpenVMS DCL Dictionary).

    See Developing Ada Programs on OpenVMS Systems for more
    information on program library protection.

 12. 2. 3.7 - /SYSTEM_NAME

    /SYSTEM_NAME=system

    Initializes the target operating system of the program
    sublibrary. On VAX systems, the possible system values are VAX_
    VMS and VAXELN. On Alpha systems, the system value is OpenVMS_AXP.

    By default, if the /SYSTEM_NAME qualifier is not specified, the
    initial target operating system is the parent library's current
    value of SYSTEM_NAME.

 12. 2.4 - Examples

    1.ACS> CREATE SUBLIBRARY [JONES.TEMP.SUBLIB]
      %I, Sublibrary USER:[JONES.TEMP.SUBLIB] created

      Creates the program sublibrary [JONES.TEMP.SUBLIB] on the
      current default device. The parent library is the current
      program library.

    2.ACS> CREATE SUBLIBRARY/PARENT=[HOTEL.ADALIB] [JONES.LISTS.SUBLIB]
      %I, Sublibrary USER:[JONES.LISTS.SUBLIB] created

      Creates the program sublibrary [JONES.LISTS.SUBLIB] on the
      current default device. The command defines [HOTEL.ADALIB] to
      be the parent library.

  13 - DELETE

 13.1 - LIBRARY

    Deletes a Compaq Ada program library and all its units. To delete
    a program sublibrary, you must use the ACS DELETE SUBLIBRARY
    command.

                                   NOTE

       A program library does not contain any references to program
       sublibraries. When you enter the ACS DELETE LIBRARY command,
       you are not warned of the possible existence of any program
       sublibraries.

    Format

      DELETE LIBRARY  directory-spec

 13. 1.1 - Parameters

 directory-spec

    Specifies the program library directory to be deleted. The
    directory must be a Compaq Ada program library; that is, it must
    have been created with the ACS CREATE LIBRARY command.

 13. 1.2 - Description

    The ACS DELETE LIBRARY command performs the following steps:

    1. Checks whether the directory specified to be deleted is a
       Compaq Ada program library (has a valid library index file,
       ADALIB.ALB). If not, a message is issued and there is no
       further action.

    2. If the specified directory is a Compaq Ada program library,
       deletes the files needed for program library operations. For
       example, the library index file (ADALIB.ALB), library version
       control file (ADA$LIB.DAT), and all object (.OBJ), compilation
       unit (.ACU), and copied source (.ADC) files are deleted.

    3. If the program library is empty after step 2 and has the
       appropriate protection, deletes the directory. If the
       directory is not empty, it is preserved and a message is
       issued. To delete the files and directory in that case, you
       must exit from the program library manager and use the DCL
       DELETE command.

       Note that, when a program library is created, the directory
       inherits the protection of its parent directory less any
       delete access by default. Before attempting to delete a
       program library that is delete protected against the owner,
       you must change the directory protection of the library with
       the DCL SET PROTECTION command. See Developing Ada Programs
       on OpenVMS Systems for more information on program library
       protection.

    The DELETE LIBRARY command does not delete any program
    sublibraries of the specified program library.

    You cannot use the DELETE LIBRARY command to delete a sublibrary.

 13. 1.3 - Command Qualifiers

 13. 1. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the DELETE LIBRARY command displays the name
    of the program library before deleting it and requests you to
    confirm whether or not the program library should be deleted. If
    you specify the /CONFIRM qualifier, the possible responses are as
    follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 13. 1. 3.2 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether the program library directory specification is
    displayed after the library has been deleted.

    By default, the program library directory specification is
    displayed.

 13. 1.4 - Example

  ACS> DELETE LIBRARY/CONFIRM [JONES.TEMP.ADALIB]
  USER:[JONES.TEMP.ADALIB], delete library? [N]: Y
  %I, Library USER:[JONES.SCRATCH.ADALIB] deleted

      Requests confirmation to delete the program library
      [JONES.TEMP.ADALIB]. After confirmation, the command deletes
      the library index file, library version control file, and all
      object, compilation unit, and copied source files. Because
      no other files remain in the program library directory, and
      the directory protection allows delete access, the directory
      is deleted and the name of the deleted program library is
      displayed.

 13.2 - SUBLIBRARY

    Deletes a Compaq Ada program sublibrary and all its units. To delete
    a program library, you must use the ACS DELETE LIBRARY command.

                                   NOTE

       A program sublibrary does not contain any references to
       nested program sublibraries. When you enter the ACS DELETE
       SUBLIBRARY command, you are not warned of the possible
       existence of any nested program sublibraries.

    Format

      DELETE SUBLIBRARY  directory-spec

 13. 2.1 - Parameters

 directory-spec

    Specifies the program sublibrary directory to be deleted. The
    directory must be a Compaq Ada program sublibrary; that is, it must
    have been created with the ACS CREATE SUBLIBRARY command.

 13. 2.2 - Description

    The ACS DELETE SUBLIBRARY command performs the following steps:

    1. Checks whether the directory specified to be deleted is a DEC
       Ada program sublibrary. If not, a message is issued and there
       is no further action.

    2. If the specified directory is a Compaq Ada program sublibrary,
       deletes the files needed for sublibrary operations. For
       example, the library index file (ADALIB.ALB), library version
       control file (ADA$LIB.DAT), and all object (.OBJ), compilation
       unit (.ACU), and copied source (.ADC) files are deleted.

    3. If the program sublibrary is empty after step 2 and has
       the appropriate protection, deletes the directory. If the
       directory is not empty, it is preserved and a message is
       issued. To delete the files and directory in that case, you
       must exit from the program library manager and use the DCL
       DELETE command.

       Note that, when a program sublibrary is created, the directory
       inherits the protection of its parent directory less any
       delete access by default (note that the parent directory may
       not necessarily be the sublibrary's parent library). Before
       attempting to delete a program sublibrary that is delete
       protected against the owner, you must change the directory
       protection of the sublibrary with the DCL SET PROTECTION
       command. See Developing Ada Programs on OpenVMS Systems for
       more information on sublibrary protection.

    The DELETE SUBLIBRARY command does not delete any nested program
    sublibraries of the specified program sublibrary.

    The DELETE SUBLIBRARY command does not delete a program library.

 13. 2.3 - Command Qualifiers

 13. 2. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the DELETE SUBLIBRARY command displays the name
    of the program sublibrary before deleting it and requests you to
    confirm whether or not the program sublibrary should be deleted.
    If you specify the /CONFIRM qualifier, the possible responses are
    as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 13. 2. 3.2 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether the program sublibrary directory specification
    is displayed after the sublibrary has been deleted.

    By default, the program sublibrary directory specification is
    displayed.

 13. 2.4 - Example

  ACS> DELETE SUBLIBRARY/CONFIRM [JONES.LISTS.SUBLIB]
  USER:[JONES.LISTS.SUBLIB], delete sublibrary? [N]: Y
  %I, Sublibrary USER:[JONES.LISTS.SUBLIB] deleted

      Requests confirmation to delete the sublibrary
      [JONES.LISTS.SUBLIB]. After confirmation, the command deletes
      the library index file and all object, compilation unit, and
      copied source files in [JONES.LISTS.SUBLIB]; it then deletes
      the program sublibrary.

 13.3 - UNIT

    Deletes one or more units from the current program library,
    including references to units entered from another program
    library.

    Format

      DELETE UNIT  unit-name[,...]

 13. 3.1 - Parameters

 unit-name[,...]

    Specifies one or more units to be deleted from the current
    program library. You must express subunit names using selected
    component notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 13. 3.2 - Description

    The ACS DELETE UNIT command deletes, from the current program
    library, the specified unit's specification and body (if any).
    If you specify a subunit name, the DELETE UNIT command deletes
    the subunit and any nested subunits. The DELETE UNIT command
    deletes units that have been compiled, copied, or entered into
    the current program library.

                                   NOTE

       An ACS DELETE UNIT SYSTEM command deletes any unit called
       SYSTEM, be it predefined or user defined. Deleting the
       predefined unit SYSTEM can have major effects, such as
       not allowing you to use the predefined package TEXT_IO.
       If you accidentally delete the predefined package SYSTEM,
       you can restore it by entering the ACS ENTER UNIT command,
       and specifying the library denoted by the logical name
       ADA$PREDEFINED (see the ACS ENTER UNIT command for more
       information on entering units).

    For each unit specified, the DELETE UNIT command updates the
    current program library as follows:

    o  Deletes the associated index entries in the library index file

    o  Deletes any associated files from the current program library

    The DELETE UNIT command does not affect any files or index
    entries in program libraries other than the current program
    library.

 13. 3.3 - Command Qualifiers

 13. 3. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the DELETE UNIT command displays the unit name
    of each unit before deleting it, and requests you to confirm
    whether or not the unit should be deleted. If you specify the
    /CONFIRM qualifier, the possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 13. 3. 3.2 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether entered units are deleted. You can use the
    library option to delete units that were entered from a
    particular library. When you specify the /NOENTERED qualifier,
    only units that have been compiled or copied into the current
    program library are deleted. Note that when you specify the
    /ENTERED qualifier, local units are deleted unless the /NOLOCAL
    qualifier is also in effect (the defaults for these qualifiers
    are /LOCAL and /ENTERED).

    By default, all units specified, including entered units, are
    deleted.

 13. 3. 3.3 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are deleted.
    Note that when you specify the /LOCAL qualifier, entered units
    are deleted unless the /NOENTERED qualifier is also in effect
    (the defaults for these qualifiers are /LOCAL and ENTERED).

    By default, all units specified, including local units, are
    deleted.

 13. 3. 3.4 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the name of a unit is displayed after it has
    been deleted.

    By default, the names of deleted units are not displayed.

 13. 3.4 - Positional Qualifiers

 13. 3. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Deletes only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the DELETE UNIT
    command string, any /SPECIFICATION_ONLY qualifiers that are
    appended to parameters in the command line override the /BODY_
    ONLY qualifier for those particular parameters. You cannot
    append both the /BODY_ONLY qualifier and the /SPECIFICATION_ONLY
    qualifier to the DELETE UNIT command string or to the same unit
    name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specification, as well as the body, is deleted.

 13. 3. 4.2 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Deletes only the specification of the specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the DELETE
    UNIT command string, any /BODY_ONLY qualifiers that are appended
    to parameters in the command line override the /SPECIFICATION_
    ONLY qualifier for those particular parameters. You cannot
    append both the /SPECIFICATION_ONLY qualifier and the /BODY_ONLY
    qualifier to the DELETE UNIT command string or to the same unit
    name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    body, as well as the specification, is deleted.

 13. 3.5 - Examples

    1.ACS> DELETE UNIT/LOG SCREEN_IO
      %I, Package specification SCREEN_IO deleted
      %I, Package body SCREEN_IO deleted

      Deletes from the current program library the specification and
      body of SCREEN_IO, and displays the names of the components
      deleted.

    2.ACS> DELETE UNIT/BODY_ONLY/CONFIRM RESERVATIONS
      RESERVATIONS, delete? [N]:Y

      Deletes the body of RESERVATIONS from the current program
      library.

    3.ACS> DELETE UNIT STACKS*

      Deletes the specification, body, and all of the subunits of the
      unit STACKS.

  14 - DIRECTORY

    Displays information about one or more units in the current
    program library.

    Format

      DIRECTORY  [unit-name[,...]]

 14.1 - Parameters

 [unit-name[,...]]

    Specifies one or more units in the current program library for
    which information is to be shown. You must express subunit names
    using selected component notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 14.2 - Description

    If you specify a unit name, the ACS DIRECTORY command displays
    information about the unit's specification and body, if the
    latter exists. If you specify a subunit name, the DIRECTORY
    command displays information about the subunit.

    If you do not specify a unit name, the DIRECTORY command displays
    information about all of the units in the current program
    library, including entered units.

    Units are listed by name in alphabetical order. Subunit names are
    shown using selected component notation.

    The output of the DIRECTORY command depends on whether you
    specify the /BRIEF, /FULL, or no formatting qualifier. If you do
    not specify a qualifier, the DIRECTORY command displays (for each
    unit specified) the unit name, the kind of unit (for example,
    procedure body, generic package declaration, and so on), and the
    compilation date and time.

 14.3 - Command Qualifiers

 14. 3.1 - /BRIEF

    /BRIEF

    Lists only the names of the units specified.

 14. 3.2 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether entered units are displayed. You can use
    the library option to display units that were entered from a
    particular library. When you specify the /NOENTERED qualifier,
    only units that have been compiled or copied into the current
    program library are displayed. Note that when you specify the
    /ENTERED qualifier, local units are displayed unless the /NOLOCAL
    qualifier is also in effect (the defaults for these qualifiers
    are /LOCAL and /ENTERED).

    By default, all units, including entered units, are displayed.

 14. 3.3 - /FULL

    /FULL

    Lists (for each unit specified) the unit name, kind, compilation
    date and time, and the file specifications of the associated
    files. The file specifications of entered units are shown
    preceded with an at character (@).

 14. 3.4 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are displayed.
    Note that when you specify the /LOCAL qualifier, entered units
    are displayed unless the /NOENTERED qualifier is also in effect
    (the defaults for these qualifiers are /LOCAL and /ENTERED).

    By default, all units specified, including local units, are
    displayed.

 14. 3.5 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the DIRECTORY command output be written to the file
    specified rather than to SYS$OUTPUT. Any diagnostic messages are
    written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the DIRECTORY command output is written to
    SYS$OUTPUT.

 14.4 - Positional Qualifiers

 14. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Displays only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the DIRECTORY command
    string, any /SPECIFICATION_ONLY qualifiers that are appended to
    parameters in the command line override the /BODY_ONLY qualifier
    for those particular parameters. You cannot append both the
    /BODY_ONLY qualifier and the /SPECIFICATION_ONLY qualifier to the
    DIRECTORY command string or to the same unit name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specification, as well as the body, is displayed.

 14. 4.2 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Displays only the specification of the specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the
    DIRECTORY command string, any /BODY_ONLY qualifiers that
    are appended to parameters in the command line override the
    /SPECIFICATION_ONLY qualifier for those particular parameters.
    You cannot append both the /SPECIFICATION_ONLY qualifier and the
    /BODY_ONLY qualifier to the DIRECTORY command string or to the
    same unit name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    body, as well as the specification, is displayed.

 14.5 - Examples

    1.ACS> DIRECTORY/NOENTERED/BRIEF *
       .
       .
       .
      HOTEL
      RESERVATIONS
      RESERVATIONS.CANCEL
      RESERVATIONS.RESERVE
      RESERVATIONS.RESERVE.BILL
       .
       .
       .

      Total of 13 units.

      Lists the names of all units and subunits that have been
      compiled or copied into the current program library.

    2.ACS> DIRECTORY SCREEN_IO*
      SCREEN_IO
          package specification           4-NOV-1992 18:11:47.55
          package body                    4-NOV-1992 18:12:05.46

      SCREEN_IO.INPUT
          procedure body                  4-NOV-1992 18:12:20.80

      SCREEN_IO.INPUT.BUFFER
          function body                   4-NOV-1992 18:12:56.64

      SCREEN_IO.OUTPUT
          procedure body                  4-NOV-1992 18:13:09.14

      Total of 5 units.

      Displays the unit name, unit kind, and date-time of the last
      compilation for all units in the current program library whose
      names start with SCREEN_IO.

    3.ACS> DIRECTORY/FULL SCREEN_IO.INPUT*
      SCREEN_IO.INPUT
          procedure body                  4-NOV-1992 18:12:20.80
              SCREEN_IO__INPUT.ACU;3
              SCREEN_IO__INPUT.OBJ;3
              SCREEN_IO__INPUT.ADC;3
            @ ADA25$:[RYAN.PROJECT.VAXADA_V30FT3]SCREEN_IO__INPUT.ADA;3

      SCREEN_IO.INPUT.BUFFER
          function body                   4-NOV-1992 18:12:56.64
              SCREEN_IO__BUFFER.ACU;3
              SCREEN_IO__BUFFER.OBJ;3
              SCREEN_IO__BUFFER.ADC;3
            @ ADA25$:[RYAN.PROJECT.VAXADA_V30FT3]SCREEN_IO__BUFFER.ADA;3

      Displays the unit name, unit kind, associated file
      specifications, and date-time of the last compilation for all
      of the units in the current program library whose names start
      with SCREEN_IO.INPUT. The file specifications listed are those
      for the compilation unit (.ACU), object (.OBJ), copied source
      (.ADC), and source (.ADA) files.

    4.$ ACS DIRECTORY ASSERT,HOTEL,RESERVATIONS.SEND,SQR
      ASSERT
          package instantiation          27-OCT-1992 10:07:54.09    <entered>

      HOTEL
          procedure body                  4-NOV-1992 16:07:05.22    <main>

      RESERVATIONS.SEND
          procedure body                  4-NOV-1992 14:10:23.47    <syntax-checked>

      SQR
          function specification          4-NOV-1992 17:10:39.42
          function body                   4-NOV-1992 16:47:02.18    <foreign>

      ADA_CALLER
          procedure body                  4-NOV-1992 18:31:40.87    <design-checked>
                                                                    <main>

      Total of 6 units.

      Displays the unit name, unit-kind, date-time of last
      compilation, and unit type and status for each unit specified.
      Note that the unit ADA_CALLER is a main program that has been
      design-checked.

  15 - ENTER

 15.1 - FOREIGN

    Enters a reference to an external file into the current program
    library. The file is entered as a foreign (non-Ada) library
    body (the body of a package, procedure, or function). The file
    may be an object file, object library, shareable image library,
    shareable image, or linker options file.

    Format

      ENTER FOREIGN  file-spec unit-name

 15. 1.1 - Parameters

 file-spec

    Specifies the file containing the foreign body to be entered into
    the current program library. The file may be a OpenVMS object
    file, object library, shareable image library, shareable image,
    or linker options file.

    The default
    directory is the current default directory. The default file type
    is .OBJ, unless the /LIBRARY, /OPTIONS, or /SHAREABLE qualifier
    is used. No wildcard characters are allowed in the file
    specification.

    If the file is an object file, you can optionally use the /OBJECT
    qualifier. The default file type is .OBJ.

    If the file is an object library or shareable image library, you
    must use the /LIBRARY qualifier. The default file type is .OLB.

    If the file is a linker options file, you must use the /OPTIONS
    qualifier. The default file type is .OPT.

    If the file is a shareable image, you must use the /SHAREABLE
    qualifier. The default file type is .EXE.

 unit-name

    Specifies the unit whose body is to be referenced with the ENTER
    FOREIGN command.

 15. 1.2 - Description

    The ACS ENTER FOREIGN command enters a reference to an external
    file, which then serves as a foreign (non-Ada) library body for
    an Ada compilation unit.

    The program library must contain a library specification for the
    unit, and the specification must contain the pragma INTERFACE and
    (if appropriate) a pragma IMPORT_FUNCTION, IMPORT_PROCEDURE, or
    IMPORT_VALUED_PROCEDURE.

    Once you supply a foreign body for a unit, the program library
    manager assumes that the body is current until you supply a
    new (Ada or foreign) definition of the body. Compiling the
    specification of the unit does not cause the body to become
    obsolete.

 15. 1.3 - Command Qualifiers

 15. 1. 3.1 - /LIBRARY

    /LIBRARY

    Indicates that the associated input file is a OpenVMS object
    library or shareable image library. The default file type is
    .OLB.

    By default, if you do not specify the /LIBRARY qualifier, the
    file is assumed to be an object file with a default file type of
    .OBJ.

 15. 1. 3.2 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the unit name and associated file name are
    displayed after a foreign body has been entered.

    By default, the unit name and associated file name are not
    displayed.

 15. 1. 3.3 - /OBJECT

    /OBJECT

    Indicates that the associated input file is an object file. The
    default file type is .OBJ.

    The /OBJECT qualifier is the default, if you do not specify a
    /LIBRARY, /OPTIONS, or /SHAREABLE qualifier.

 15. 1. 3.4 - /OPTIONS

    /OPTIONS

    Indicates that the associated input file is a OpenVMS linker
    options file. The default file type is .OPT.

    By default, if you do not specify the /OPTIONS qualifier, the
    file is assumed to be an object file with a default file type of
    .OBJ.

 15. 1. 3.5 - /REPLACE

    /REPLACE
    /NOREPLACE (D)

    Controls whether the foreign body to be entered replaces a body
    that is already defined in the current program library for the
    unit name specified.

    By default, the foreign body to be entered does not replace a
    body that is already defined in the current program library for
    the unit name specified.

 15. 1. 3.6 - /SHAREABLE

    /SHAREABLE

    Indicates that the associated input file is a OpenVMS shareable
    image. The default file type is .EXE.

    By default, if you do not specify the /SHAREABLE qualifier, the
    file is assumed to be an object file with a default file type of
    .OBJ.

 15. 1.4 - Example

  ACS> ENTER FOREIGN DISK:[SMITH.MATH]SQUARE SQR

      Enters the object file SQUARE.OBJ from DISK:[SMITH.MATH] into
      the current program library, as the body of unit SQR. The
      specification of SQR is (as required) already defined in the
      program library.

 15.2 - UNIT

    Enters references in the current program library to one or more
    units located in another program library.

    Format

      ENTER UNIT  from-directory-spec unit-name [,...]

 15. 2.1 - Parameters

 from-directory-spec

    Specifies the program library that contains the units to be
    referenced.

 unit-name[,...]

    Specifies one or more units to be entered into the current
    program library. You must express subunit names using selected
    component notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    detailed information on wildcard characters.)

 15. 2.2 - Description

    The ACS ENTER UNIT command enters into the current progam library
    each specified unit's specification and body (if any). If the
    specified unit is a subunit, the ENTER UNIT command enters the
    subunit and any nested subunits. If the /CLOSURE qualifier is
    specified, the ENTER UNIT command enters the closure of the set
    of units specified.

    For each unit entered, the ENTER UNIT command updates the library
    index file of the current program library to refer to the unit
    and its associated files, and to include the date and time the
    unit was last compiled into its original program library.

    An entered unit can be used as if had been compiled locally. In
    other words, a unit entered into a program library can be named
    in a clause by a unit that has been compiled into that program
    library.

    The ENTER UNIT command does not affect the program library
    from which a unit is entered. However, if an entered unit
    is subsequently compiled in its original program library,
    all references to that unit from other program libraries are
    invalidated. You must enter the ACS REENTER command to make the
    references current. (You may also need to then recompile any
    units that depend on the entered unit.)

    The ACS COMPILE and RECOMPILE commands have no effect on entered
    units.

 15. 2.3 - Command Qualifiers

 15. 2. 3.1 - /CLOSURE

    /CLOSURE
    /NOCLOSURE (D)

    Controls whether the ENTER UNIT command enters the closure of the
    set of units specified into the current program library.

    By default, only the specification and body of the units
    specified are entered.

 15. 2. 3.2 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the ENTER UNIT command displays the name of each
    unit before entering that unit into the current program library,
    and requests that you confirm whether or not that unit should
    be entered. If you specify the /CONFIRM qualifier, the possible
    responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 15. 2. 3.3 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether entered units are entered. You can use the
    library option to enter units that were entered from a particular
    library. When you specify the /NOENTERED qualifier, only units
    that have been compiled or copied into the other program library
    are entered. Note that when you specify the /ENTERED qualifier,
    local units are entered unless the /NOLOCAL qualifier is also
    in effect (the defaults for these qualifiers are /LOCAL and
    /ENTERED).

    By default, all units, including entered units, are entered.

 15. 2. 3.4 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are entered.
    Note that when you specify the /LOCAL qualifier, entered units
    are entered unless the /NOENTERED qualifier is also in effect
    (the defaults for these qualifiers are /LOCAL and /ENTERED).

    By default, all units specified, including local units, are
    entered.

 15. 2. 3.5 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the name of a unit is displayed after it has
    been entered.

    By default, the names of entered units are not displayed.

 15. 2. 3.6 - /REPLACE

    /REPLACE
    /NOREPLACE (D)

    Controls whether the unit to be entered replaces a unit of the
    same name that is already defined in the current program library.

    By default, the unit to be entered does not replace a unit of the
    same name that is already defined in the current program library.

 15. 2.4 - Positional Qualifiers

 15. 2. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Enters only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the ENTER UNIT
    command string, any /SPECIFICATION_ONLY qualifiers that are
    appended to parameters in the command line override the /BODY_
    ONLY qualifier for those particular parameters. You cannot
    append both the /BODY_ONLY qualifier and the /SPECIFICATION_ONLY
    qualifier to the ENTER UNIT command string or to the same unit
    name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specification, as well as the body, is entered.

 15. 2. 4.2 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Enters only the specification of the specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the ENTER
    UNIT command string, any /BODY_ONLY qualifiers that are appended
    to parameters in the command line override the /SPECIFICATION_
    ONLY qualifier for those particular parameters. You cannot
    append both the /SPECIFICATION_ONLY qualifier and the /BODY_ONLY
    qualifier to the ENTER UNIT command string or to the same unit
    name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    body, as well as the specification, is entered.

 15. 2.5 - Examples

    1.ACS> ENTER UNIT [PROJ.MAIN_LIB] *

      Enters all of the units from the project library into the
      current program library.

    2.ACS> ENTER UNIT/REPLACE DISK:[SMITH.SHARE.ADALIB] QUEUE_MANAGER

      Enters the unit QUEUE_MANAGER into the current program
      library from the library DISK:[SMITH.SHARE.ADALIB], replacing
      any previous index reference to that unit. If the /REPLACE
      qualifier had not been used, a previously existing reference to
      QUEUE_MANAGER would not have been replaced.

  16 - EXIT

    Exits from the program library manager and returns control to
    DCL.

    Format

      EXIT

 16.1 - Description

    The EXIT command allows you to exit from the program library
    manager when you are using it interactively. You can also use
    Ctrl/Z for the same purpose.

 16.2 - Example

  ACS> EXIT
  $

      Exits from the program library manager and returns control to
      DCL.

  17 - EXPORT

    Creates an object file that contains the object code for all
    units in the closure of the list of units specified.

    Format

      EXPORT  unit-name[,...]

 17.1 - Parameters

 unit-name[,...]

    Specifies one or more units in the current program library whose
    closure will be used to create an object file.

    If you specify the /MAIN qualifier:

    o  You can specify only one unit name.

    o  The generated object file contains the image transfer address,
       and therefore can be used as a main program.

    o  The transfer address of the unit specified is used.

    By default (or if you specify the /NOMAIN qualifier):

    o  You can specify more than one unit name. The unit names may
       include percent signs (%)  and asterisks (*) as wildcard
       characters. (See the VMS DCL Concepts Manual for more
       information on wildcard characters.)

    o  The generated object file does not contain the image transfer
       address, and therefore cannot be used as a main program. The
       exported units can be invoked by a non-Ada program.

 17.2 - Description

    The ACS EXPORT command creates a concatenated object file for
    all the units in the closure of the list of units specified.
    The object file always contains code to elaborate any library
    packages that are exported.

    Note that any exported units that will be called from a foreign
    module must contain the appropriate export pragma in the source
    code: EXPORT_FUNCTION, EXPORT_PROCEDURE, EXPORT_VALUED_PROCEDURE,
    EXPORT_OBJECT, PSECT_OBJECT, or EXPORT_EXCEPTION (see the DEC Ada
    Language Reference Manual and DEC Ada Run-Time Reference Manual
    for OpenVMS Systems for exact details).

    Object files created by different invocations of the EXPORT
    command may include some code that is common-for example, if
    each closure includes the predefined unit TEXT_IO. In such cases,
    you will not be able to link those files into the same image.
    Whenever you think that closures may include units in common, you
    should specify all the units in a single EXPORT command line.

 17.3 - Command Qualifiers

 17. 3.1 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether a list of all the units included in the exported
    object file is displayed. The display shows the units according
    to the order of elaboration for the program.

    By default, a list of the units included in the exported object
    file is not displayed.

 17. 3.2 - /MAIN

    /MAIN
    /NOMAIN (D)

    Controls whether the generated object file is to contain the
    image transfer address (of the first unit specified), and therefore is
    to be a main program.

    By default, the generated object file does not contain the image
    transfer address, and therefore is not to be a main program.

 17. 3.3 - /OBJECT

    /OBJECT=file-spec

    Provides a file specification for the generated object file that
    is to be exported. The default directory is the current default
    directory. The default file type is .OBJ. No wildcard characters
    are allowed in the file specification.

    By default, if you do not use the /OBJECT qualifier, a file name
    comprising up to the first 39 characters of the first unit name
    is provided.

 17. 3.4 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the EXPORT command output be written to the file
    specified rather than to SYS$OUTPUT. Any diagnostic messages are
    written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the file name is ACS.
    The default file type is .LIS. No wildcard characters are allowed
    in the file specification.

    By default, the EXPORT command output is written to SYS$OUTPUT.

 17. 3.5 - /SYSTEM_NAME

    /SYSTEM_NAME=system

    Directs the program library manager to produce elaboration
    code for execution on a particular operating system; the
    possible system values are VAX_VMS and VAXELN on VAX systems
    and OpenVMS_AXP on Alpha systems. Note that when the value is
    VAXELN, the execution of elaboration code by non-Ada callers is
    not automatic; your program must take special action at run time
    to elaborate library packages. See the VAXELN Ada Programming
    Guide for more information.

    By default, if the /SYSTEM_NAME qualifier is not specified in
    the EXPORT command, the setting of the pragma SYSTEM_NAME for the
    current program library determines the target operating system
    environment.

 17.4 - Examples

    1.ACS> EXPORT/MAIN HOTEL/OBJECT=EXP_HOTEL

      Creates the object file EXP_HOTEL.OBJ, which contains the code
      for all of the units in the execution closure of unit HOTEL,
      including any package elaboration code. Because the /MAIN
      qualifier is specified, the file created also contains the
      image transfer address.

    2.ACS> EXPORT/SYSTEM_NAME=VAXELN HOTEL/OBJECT=VAXELN_HOTEL

      Creates the object file VAXELN_HOTEL, which contains the code
      for all of the units in the execution closure of unit HOTEL,
      including any package elaboration code. The elaboration code
      created is for a VAXELN target. See the VAXELN Ada Programming
      Guide for information on how to prepare and run VAXELN Ada
      programs.

  18 - EXTRACT

 18.1 - SOURCE

    Creates a copy of the copied source files associated with the
    specified units. The specified units must be defined in the
    current program library.

    Format

      EXTRACT SOURCE  unit-name[,...]

 18. 1.1 - Parameters

 unit-name[,...]

    Specifies one or more units in the current program library whose
    copied source files are to be copied. You must express subunit
    names using selected component notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks
    (*)  as wildcard characters. (See the OpenVMS User's Manual for
    detailed information on wildcard characters.)

 18. 1.2 - Description

    For each unit specified, the ACS EXTRACT SOURCE command creates
    a copy of the copied source files associated with the unit's
    specification and body. If a subunit name is specified, the
    EXTRACT SOURCE command creates a copy of the subunit's copied
    source file. The unit or subunit must be defined in the current
    program library.

    The files are created in the current default directory. If they
    have less than or equal to 39 characters, the file names are
    the same as those of the corresponding copied source files in
    the current program library-that is, file names follow the file-
    name conventions defined in Developing Ada Programs on OpenVMS
    Systems. If they have more than 39 characters, the program
    library manager generates a name. The file type of the created
    files is .ADA.

 18. 1.3 - Command Qualifiers

 18. 1. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the EXTRACT SOURCE command displays the name
    of each unit before creating a copy of the copied source files
    and requests that you confirm whether or not the unit should
    be copied. If you specify the /CONFIRM qualifier, the possible
    responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 18. 1. 3.2 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether the source files for entered units are
    extracted. You can use the library option to extract units that
    were entered from a particular library. When you specify the
    /NOENTERED qualifier, only the source files for units that have
    been compiled or copied into the current program library are
    extracted. Note that when you specify the /ENTERED qualifier,
    local units are extracted unless the /NOLOCAL qualifier is also
    in effect (the defaults for these qualifiers are /LOCAL and
    /ENTERED).

    By default, the source file for all units, including entered
    units, are
    extracted.

 18. 1. 3.3 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are extracted.
    Note that when you specify the /LOCAL qualifier, the source files
    for entered units are extracted unless the /NOENTERED qualifier
    is also in effect (the defaults for these qualifiers are /LOCAL
    and /ENTERED).

    By default, the source files for all units specified, including
    local units, are extracted.

 18. 1. 3.4 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether the names of units and extracted files are
    displayed after each unit's files are created.

    By default, the names of units and files are displayed.

 18. 1.4 - Positional Qualifiers

 18. 1. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Extracts the source file for only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the EXTRACT SOURCE
    command string, any /SPECIFICATION_ONLY qualifiers that are
    appended to parameters in the command line override the /BODY_
    ONLY qualifier for those particular parameters. You cannot
    append both the /BODY_ONLY qualifier and the /SPECIFICATION_ONLY
    qualifier to the EXTRACT SOURCE command string or to the same
    unit name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the source
    file for the specification, as well as the body, is extracted.

 18. 1. 4.2 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Extracts the source file for only the specification of the
    specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the
    EXTRACT SOURCE command string, any /BODY_ONLY qualifiers that
    are appended to parameters in the command line override the
    /SPECIFICATION_ONLY qualifier for those particular parameters.
    You cannot append both the /SPECIFICATION_ONLY qualifier and the
    /BODY_ONLY qualifier to the EXTRACT SOURCE command string or to
    the same unit name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted,
    the source file for the body, as well as the specification, is
    extracted.

 18. 1.5 - Example

  ACS> EXTRACT SOURCE TEXT_IO, STARLET

      Creates in the current default directory the files TEXT_IO_
      .ADA, TEXT_IO.ADA, and STARLET_. These files are copies of
      the copied source files for, respectively, the specification
      and body of the predefined unit TEXT_IO and the specification
      of the predefined unit STARLET (TEXT_IO and STARLET were
      previously entered into the current program library).

  19 - HELP

    Displays information on ACS commands and qualifiers.

    Format

      HELP  [keyword...]

 19.1 - Parameters

 [keyword...]

    Specifies zero or more keywords that indicate what information
    you want. Information is located in a hierarchical manner,
    depending on the level of information required. The levels are
    as follows:

    1. None-Lists the ACS commands and selected topics.

    2. Topic-Provides information about the topic.

    3. Command-Describes the command, its format, and parameters, and
       lists its qualifiers.

    4. Command followed by a qualifier-Describes the use of the
       qualifier. For example, CHECK/LOG describes the use of the
       /LOG qualifier.

    If you specify an asterisk (*)  in place of any keyword, the HELP
    command displays all information available at that level.

    You can specify percent signs (%)  and asterisks (*) in the
    keywords as wildcard characters.

 19.2 - Example

  ACS> HELP ENTER UNIT/CLOSURE

      Displays information about the /CLOSURE qualifier to the ACS
      ENTER UNIT command.

  20 - LINK

    Creates an executable image file for the specified units.

    Format

      LINK  unit-name [file-spec[,...]]

      LINK/NOMAIN  unit-name[,...] file-spec[,...]

 20.1 - Parameters

 unit-name[,...]

    By default (or if you specify the /MAIN qualifier):

    o  You can specify only one unit, whose source code is written in
       Ada.

    o  The Ada main program, which must be a procedure or function
       with no parameters. If the main program is a function, it must
       return a value of a discrete type; the function value is used
       as the OpenVMS image exit value.

    If you specify the /NOMAIN qualifier:

    o  You can specify one or more units that are to be included
       in the executable image. The unit names may include percent
       signs (%)  and asterisks (*) as wildcard characters. (See
       the OpenVMS User's Manual for more information on wildcard
       characters.)

    o  The image transfer address comes from one of the non-Ada files
       specified.

 file-spec[,...]

    Specifies a list of OpenVMS object files, object libraries,
    shareable image libraries, shareable images, and linker option
    files that are to be used in linking the program. The default
    directory is the current default directory. The default file
    type is .OBJ, unless the /LIBRARY, /OPTIONS, or /SHAREABLE
    qualifier is used. No wildcard characters are allowed in a file
    specification.

    If the file is an object library or shareable image library, you
    must use the /LIBRARY qualifier. The default file type is .OLB.

    If the file is a linker options file, you must use the /OPTIONS
    qualifier. The default file type is .OPT.

    If the file is a shareable image, you must use the /SHAREABLE
    qualifier. The default file type is .EXE.

    If you specify the /NOMAIN qualifier, the image transfer address
    will come from one of the files (not units) specified.

 20.2 - Description

    The ACS LINK command goes through the following steps:

    1. If LINK/NOMAIN is not specified, checks that only one unit is
       specified and that it is an Ada main program.

    2. Forms the execution closure of the main program (LINK/MAIN)
       or of the specified units (LINK/NOMAIN) and verifies that all
       units in the closure are present, current, and complete. If
       the program library manager detects an error, the operation is
       terminated before the OpenVMS Linker is invoked.

    3. Creates a DCL command file for the OpenVMS Linker. The command
       file is deleted after the ACS LINK operation is completed or
       terminated, unless LINK/COMMAND is specified. If LINK/COMMAND
       is specified, the command file is retained for future use, and
       the linker is not invoked.

    4. Creates an object file (to be linked with the program) that
       elaborates the library units in proper order at run time.
       If the /NOMAIN qualifier is not specified, the object file
       also contains the image transfer address. This object file
       is deleted after the ACS LINK operation is completed or
       terminated, unless the /COMMAND qualifier is specified. If the
       /COMMAND qualifier is specified, the object file is retained
       and the linker is not invoked.

    5. Unless the /COMMAND qualifier is specified, invokes the
       OpenVMS Linker as follows:

       a. By default (LINK/WAIT), the linker command file generated
          in step 3 is executed in a subprocess. You must wait for
          the link operation to terminate before entering another
          command. Note that when you specify the /WAIT qualifier
          (the default), process logical names are propagated to the
          subprocess generated to execute the command file.

       b. If you specify the /SUBMIT qualifier, the linker command
          file is submitted as a batch job.

    ACS output originating before the OpenVMS Linker is invoked is
    reported to your terminal by default, or to a file specified with
    the /OUTPUT qualifier. Linker diagnostics are reported to your
    terminal, by default, or to a log file if the ACS LINK command is
    executed in batch mode (ACS LINK/SUBMIT).

    Note that some new qualifiers are available with the OpenVMS
    Linker that are not supported by the ACS LINK command. You can
    pass such qualifiers to the linker by defining a symbol like the
    following before invoking the ACS LINK command:

    $ LINK :== LINK/NATIVE_ONLY/SYSEXE

    This symbol is then used by the ACS LINK command procedure that
    invokes the OpenVMS Linker.

    See Developing Ada Programs on OpenVMS Systems for more
    information on the ACS LINK command. The OpenVMS Linker is
    described in detail in the OpenVMS Linker Utility Manual.

 20.3 - Command Qualifiers

 20. 3.1 - /AFTER

    /AFTER=time

    Requests that the batch job be held until after a specific
    time, when the ACS LINK command is executed in batch mode (LINK
    /SUBMIT). If the specified time has already passed, the job is
    queued for immediate processing.

    You can specify either an absolute time or a combination of
    absolute and delta time. See the OpenVMS User's Manual (or
    access the DCL HELP SPECIFY topic) for complete information on
    specifying time values.

 20. 3.2 - /BATCH_LOG

    /BATCH_LOG=file-spec

    Provides a file specification for the batch log file when the ACS
    LINK command is executed in batch mode (LINK/SUBMIT).

    If you do not give a directory specification with the file-spec
    option, the batch log file is created by default in the current
    default directory. If you do not give a file specification with
    the file-spec option, the default file name is the job name
    specified with the /NAME=job-name qualifier. If no job name has
    been specified, the program library manager creates a file name
    comprising up to the first 39 characters of the first unit name
    specified. If you specified LINK/NOMAIN and no job name and there
    is a wildcard character in the first unit specified, the program
    library manager uses the default file name ACS_LINK. The default
    file type is .LOG.

 20. 3.3 - /BRIEF

    /BRIEF

    Directs the linker to produce a brief image map file. The /BRIEF
    qualifier is valid only if you also specify the /MAP qualifier
    with the ACS LINK command. The /BRIEF qualifier is incompatible
    with the /FULL and /CROSS_REFERENCE qualifiers.

    A brief image map file contains only the following sections:

    o  Object module synopsis

    o  Image synopsis

    o  Link run statistics

    In contrast, the default image map file contains the previous
    sections, as well as the program section synopsis and symbol
    definition section. See also the description of the /FULL
    qualifier.

 20. 3.4 - /COMMAND

    /COMMAND[=file-spec]

    Controls whether the linker is invoked as a result of the ACS
    LINK command, and determines whether the command file generated
    to invoke the linker is saved. If you specify the /COMMAND
    qualifier, the program library manager does not invoke the
    linker, and the generated command file is saved for you to invoke
    or submit as a batch job.

    The file-spec option allows you to enter a file specification for
    the generated command file. The default directory for the command
    file is the current default directory. By default, the program
    library manager provides a file name comprising up to the first
    39 characters of the first unit name specified. If you specified
    LINK/NOMAIN and you used a wildcard character in the first unit
    name specified, the compiler uses the default name ACS_LINK. The
    default file type is .COM. No wildcard characters are allowed in
    the file specification.

    By default, if the /COMMAND qualifier is not specified, the
    program library manager deletes the generated command file when
    the ACS LINK command completes normally or is terminated.

 20. 3.5 - /CROSS_REFERENCE

    /CROSS_REFERENCE
    /NOCROSS_REFERENCE (D)

    Controls whether the image map file contains a symbol cross-
    reference. The /CROSS_REFERENCE qualifier is valid only if
    you also specify the /MAP qualifier in the ACS LINK command.
    The /CROSS_REFERENCE qualifier is incompatible with the /BRIEF
    qualifier.

    When you specify the /CROSS_REFERENCE qualifier, the linker
    replaces the symbol definition section of the image map file with
    the symbol cross-reference section. The cross-reference section
    lists, in alphabetical order, the name of each global symbol,
    together with the following information about each:

    o  Its value

    o  The name of the first module in which it is defined

    o  The name of each module in which it is referenced

    The number of symbols listed in the cross-reference section
    depends on whether the linker is generating a full image map or
    a default image map. In a full image map, this section includes
    global symbols from all modules in the image, including those
    extracted from all libraries. In a default image map, this
    section does not include global symbols from modules extracted
    from the default system libraries SYS$SHARE:IMAGELIB.OLB and
    SYS$SHARE:STARLET.OLB.

    By default, the image map file does not contain a symbol cross-
    reference. In this case, if the linker is generating a default
    map or a full map, the map contains the symbol definition section
    instead of the symbol cross-reference section.

 20. 3.6 - /DEBUG

    /DEBUG[=file-spec]
    /NODEBUG (D)

    Controls whether a debugger symbol table is included in the
    executable image file, and whether the OpenVMS Debugger is
    invoked when the program is run.

    The /DEBUG qualifier optionally allows you to specify an
    alternate debugger or dynamic performance analyzer. The default
    file type is .OBJ. See the OpenVMS Debugger Manual for more
    information.

    By default, no debugger symbol table is included in the
    executable image.

 20. 3.7 - /EXECUTABLE

    /EXECUTABLE[=file-spec] (D)
    /NOEXECUTABLE

    Controls whether the linker creates an executable image file
    and optionally provides a file specification for the file. The
    default file type is .EXE. No wildcard characters are allowed in
    the file specification.

    You can use the /NOEXECUTABLE or /EXECUTABLE=NL: qualifier to
    test a set of qualifier options or input object modules without
    creating an image file. Using /EXECUTABLE=NL: is recommended,
    however, because the linker will not process certain qualifiers
    when the /NOEXECUTABLE qualifier is in effect.

    By default, an executable image file is created with a file name
    comprising up to the first 39 characters of the first unit name
    specified.

 20. 3.8 - /FULL

    /FULL

    Directs the linker to produce a full image map file, which is the
    most complete image map. The /FULL qualifier is valid only if you
    also specify the /MAP qualifier with the ACS LINK command. Also,
    the /FULL qualifier is incompatible with the /BRIEF qualifier,
    but not with the /CROSS_REFERENCE qualifier.

    A full image map file contains the following sections:

    o  Object module synopsis

    o  Module relocatable reference synopsis

    o  Program section synopsis

    o  Symbol definitions

    o  Image section synopsis

    o  Symbols by value

    o  Module relocatable reference synopsis

    In contrast, the default image map file does not contain the
    image section synopsis, the symbols by value, or the module
    relocatable reference synopsis sections.

    Further, unlike the default image map, the full image
    map includes information about modules included from
    the system default libraries SYS$SHARE:STARLET.OLB and
    SYS$SHARE:IMAGELIB.OLB. Therefore, the object module synopsis, program
    section synopsis, and symbols by name sections of a default image
    map do not contain information about modules included from these
    default libraries, whereas in a full image map they do.

 20. 3.9 - /KEEP

    /KEEP (D)
    /NOKEEP

    Controls whether the batch log file generated is deleted after
    it is printed when the ACS LINK command is executed in batch mode
    (LINK/SUBMIT).

    By default, the log file is not deleted.

 20. 3.10 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether a list of all the units included in the
    executable image is displayed. The display shows the units
    according to the order of elaboration for the program.

    By default, a list of all the units included in the executable
    image is not displayed.

 20. 3.11 - /MAIN

    /MAIN (D)
    /NOMAIN

    Controls where the image transfer address is to be found.

    The /MAIN qualifier indicates that the Compaq Ada unit specified
    determines the image transfer address and, hence, is to be a main
    program.

    The /NOMAIN qualifier indicates that the image transfer address
    will come from one of the files specified, and not from one of
    the Compaq Ada units specified.

    By default (/MAIN), only one Compaq Ada unit may be specified, and
    that unit must be a Compaq Ada main program.

 20. 3.12 - /MAP

    /MAP[=file-spec]
    /NOMAP (D)

    Controls whether the linker creates an image map
    file and optionally provides a file specification
    for the file. The default directory for the image
    map file is the current directory. The default file
    name comprises up to the first 39 characters of the
    first unit name specified. The default file type
    is .MAP. No wildcard characters are allowed in the file
    specification.

    By default, no image map file is created.

 20. 3.13 - /NAME

    /NAME=job-name

    Specifies a string to be used as the job name and as the file
    name for the batch log file when the ACS LINK command is executed
    in batch mode (LINK/SUBMIT). The job name can have from 1 to 39
    characters.

    By default, if you do not specify the /NAME qualifier, the
    program library manager creates a job name comprising up to the
    first 39 characters of the first unit name specified. If you
    specify LINK/NOMAIN but do not specify the /NAME qualifier, and
    you use a wildcard character in the first unit name specified,
    the compiler uses the default name ACS_LINK. In these cases, the
    job name is also the file name of the batch log file.

 20. 3.14 - /NOTIFY

    /NOTIFY (D)
    /NONOTIFY

    Controls whether a message is broadcast when the ACS LINK command
    is executed in batch mode (LINK/SUBMIT). The message is broadcast
    to any terminal at which you are logged in, notifying you that
    your job has been completed or terminated.

    By default, a message is broadcast.

 20. 3.15 - /OBJECT

    /OBJECT=file-spec

    Provides a file specification for the object file generated by
    the ACS LINK command. The file is retained by the program library
    manager only when the /COMMAND qualifier is used-that is, when
    the result of the ACS LINK operation is to produce a linker
    command file for future use, rather than to invoke the linker
    immediately.

    The generated object file contains the code that directs the
    elaboration of library packages in the closure of the units
    specified. Unless you also specify the /NOMAIN qualifier, the
    object file also contains the image transfer address.

    The default directory for the generated object file is the
    current default directory. The default file type is .OBJ. No
    wildcard characters are allowed in the file specification.

    By default, if you do not specify the /OBJECT qualifier, the
    program library manager provides a file name comprising up to the
    first 39 characters of the first unit name specified.

    By default, if you do not specify the /COMMAND qualifier, the
    program library manager deletes the generated object file when
    the ACS LINK command completes normally or is terminated.

 20. 3.16 - /OUTPUT

    /OUTPUT=file-spec

    Requests that any ACS output generated before the linker
    is invoked be written to the file specified rather than to
    SYS$OUTPUT. Any diagnostic messages are written to both
    SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the ACS LINK command output is written to SYS$OUTPUT.

 20. 3.17 - /PRINTER

    /PRINTER[=queue-name]
    /NOPRINTER (D)

    Controls whether the log file is queued for printing when the
    ACS LINK command is executed in batch mode (LINK/SUBMIT) and the
    batch job is completed.

    The /PRINTER qualifier allows you to specify a particular print
    queue. The default print queue for the log file is SYS$PRINT.

    By default, the log file is not queued for printing. If you
    specify /NOPRINTER, /KEEP is assumed.

 20. 3.18 - /QUEUE

    /QUEUE=queue-name

    Specifies the batch job queue in which the job is entered when
    the ACS LINK command is executed in batch mode (LINK/SUBMIT).

    By default, if the /QUEUE qualifier is not specified, the job is
    placed in the default system batch job queue, SYS$BATCH.

 20. 3.19 - /SUBMIT

    /SUBMIT

    Directs the program library manager to submit the command file
    generated for the linker to a batch queue. You can continue to
    enter commands in your current process without waiting for the
    batch job to complete. The linker output is written to a batch
    log file.

    By default, the generated command file is executed in a
    subprocess (LINK/WAIT).

 20. 3.20 - /SYSLIB

    /SYSLIB (D)
    /NOSYSLIB

    Controls whether the linker automatically searches the
    default system library for unresolved references. The default
    system library consists of the shareable image library
    SYS$LIBRARY:IMAGELIB.OLB and the object module library
    SYS$LIBRARY:STARLET.OLB.

    By default, the default system library is automatically searched.

 20. 3.21 - /SYSSHR

    /SYSSHR (D)
    /NOSYSSHR

    Controls whether the linker automatically searches the default
    system shareable image library SYS$LIBRARY:IMAGELIB.OLB for
    unresolved references. If you specify the /NOSYSSHR qualifier,
    only SYS$LIBRARY:STARLET.OLB is searched for unresolved
    references.

    By default, the default system shareable image library is
    searched.

 20. 3.22 - /SYSTEM_NAME

    /SYSTEM_NAME=system

    Directs the program library manager to produce an image for
    execution on a particular operating system.

    On VAX systems, the possible system values are VAX_VMS and
    VAXELN. If VAX_VMS is specified, OpenVMS versions of the Ada run-
    time library routines are used, and VMS-specific initialization
    code is generated. If VAXELN is specified, VAXELN versions of
    the Ada run-time library routines are used, and VAXELN-specific
    initialization code is generated. For more information on VAXELN
    Ada, see the VAXELN Ada Programming Guide.

    On Alpha systems, the value of NAME is OpenVMS_AXP.

    If the /SYSTEM_NAME qualifier is not specified in the ACS
    LINK command, the setting of the pragma SYSTEM_NAME for the
    current program library determines the target operating system
    environment.

 20. 3.23 - /THREADS_ENABLE

    /THREADS_ENABLE[=(MULTIPLE_KERNEL_THREADS,UPCALLS)]
    /NOTHREADS_ENABLE (default)

    Kernel threads allow a multithreaded application to have a
    thread executing on every CPU in a multiprocessor system. The
    /THREADS_ENABLE qualifier allows you to turn kernel threads
    on and off on a per-image basis.

    When you specify this qualifier, the OpenVMS linker sets the
    appropriate bits in the image header of the image being linked.
    These bits control the following:

      o Whether the image is allowed to enter a multiple kernel threads
        environment
      o Whether the image can receive upcalls from the OpenVMS scheduler

    On Alpha systems, the MULTIPLE_KERNEL_THREADS keyword sets the
    MULTIPLE_KERNEL_THREADS bit in the image header of the image being
    built.  This bit indicates to the image activator that the image
    can be run in a multiple kernel threads environment.

    If you specify this keyword for OpenVMS VAX links, it is ignored.

    The UPCALLS keyword sets the UPCALLS bit in the OpenVMS image
    header of the image being built. This bit indicates to the image
    activator that the process can receive upcalls from the OpenVMS
    scheduler.

    For more information, consult the OpenVMS Linker documentation.

 20. 3.24 - /TRACEBACK

    /TRACEBACK (D)
    /NOTRACEBACK

    Controls whether the linker includes traceback information in the
    executable image file for run-time error reporting.

    By default, traceback information is included in the executable
    image.

 20. 3.25 - /USERLIBRARY

    /USERLIBRARY[=(table[,...])]
    /NOUSERLIBRARY

    Controls whether the linker searches any user-defined default
    libraries after it has searched any specified user libraries.
    When you specify the /USERLIBRARY qualifier, the linker searches
    the process, group, and system logical name tables to find
    the file specifications of the user-defined libraries. (The
    discussion of the linker in the OpenVMS Linker Utility Manual
    explains user-defined default libraries.) You can specify the
    following tables for the linker to search:

    ALL           The linker searches the process, group, and system
                  logical name tables for user-defined library
                  definitions.
    GROUP         The linker searches the group logical name table
                  for user-defined library definitions.
    NONE          The linker does not search any logical name table;
                  this specification is equivalent to /NOUSERLIBRARY.
    PROCESS       The linker searches the process logical name table
                  for user-defined library definitions.
    SYSTEM        The linker searches the system logical name table
                  for user-defined library definitions.

    By default, the linker assumes /USERLIBRARY=ALL.

 20. 3.26 - /WAIT

    /WAIT

    Directs the program library manager to execute the command file
    generated for the linker in a subprocess. Execution of your
    current process is suspended until the subprocess completes.
    The linker output is written directly to your terminal. Note that
    process logical names are propagated to the subprocess generated
    to execute the command file.

    By default, the program library manager executes the command file
    generated for the linker in a subprocess: you must wait for the
    subprocess to terminate before you can enter another command.

 20.4 - Parameter Qualifiers

 20. 4.1 - /INCLUDE

    /INCLUDE=(object-file,...)

    Indicates that the associated input file is a OpenVMS object
    module library or shareable image library with a default file
    type of .OLB, and that the named elements from that library
    should be linked with the main program named in the ACS LINK
    command.

 20. 4.2 - /LIBRARY

    /LIBRARY

    Indicates that the associated input file is a OpenVMS object
    module library or shareable image library to be searched for
    modules to resolve any undefined symbols in the input files. The
    default file type is .OLB.

    By default, if you do not specify the /LIBRARY qualifier, the
    file is assumed to be an object file with a default file type of
    .OBJ.

 20. 4.3 - /OPTIONS

    /OPTIONS

    Indicates that the associated input file is a OpenVMS linker
    options file. The default file type is .OPT.

    By default, if you do not specify the /OPTIONS qualifier, the
    file is assumed to be an object file with a default file type of
    .OBJ.

 20. 4.4 - /SELECTIVE_SEARCH

    /SELECTIVE_SEARCH

    Omits from the output image symbol table all symbols from the
    associated input object module that are not needed to resolve
    outstanding references. The binary code in the object module is
    always included.

 20. 4.5 - /SHAREABLE

    /SHAREABLE

    Indicates that the associated input file is a OpenVMS shareable
    image. The default file type is .EXE.

    By default, if you do not specify the /SHAREABLE qualifier, the
    file is assumed to be an object file with a default file type of
    .OBJ.

 20.5 - Examples

    1.ACS> LINK HOTEL

      Forms the closure of the unit HOTEL, which is a Compaq Ada main
      program, creates a linker command file and package elaboration
      file, then invokes the command file in a spawned subprocess.

    2.ACS> LINK/SUBMIT HOTEL NETWORK.OLB/LIBRARY,NET.OPT/OPTIONS
      %I, Job HOTEL (queue ALL_BATCH, entry 134) started on FAST_BATCH

      Instructs the linker to link the closure of the Compaq Ada main
      program HOTEL against the user library NETWORK.OLB, and to use
      the linker options file NET.OPT. The /SUBMIT qualifier causes
      the program library manager to submit the linker command file
      as a batch job.

    3.ACS> LINK/NOMAIN FLUID_VOLUME,COUNTER MONITOR.OBJ

      Links the Compaq Ada units FLUID_VOLUME and COUNTER with the
      foreign object file MONITOR.OBJ. The /NOMAIN qualifier tells
      the linker that the image transfer address is in the foreign
      file.

    4.ACS> LINK HOTEL ELN$:RTL/INCLUDE=(KER$MSGDEF)

      Links the closure of the Compaq Ada main program HOTEL against the
      message object file KER$MSGDEF from the VAXELN message library
      ELN$:RTL.OLB.

  21 - LOAD

    Processes the Ada units contained in one or more source files.
    Processing involves determining the compilation order for the
    units in the files and invoking the Compaq Ada compiler to partially
    compile the units. The partial compilation detects syntax errors
    and updates the current program library with unit dependence and
    source-file information.

    Loaded
    units are considered to be obsolete and must be subsequently
    recompiled.

    Format

      LOAD  file-spec[,...]

 21.1 - Parameters

 file-spec[,...]

    Specifies one or more Compaq Ada source files to be loaded. If
    you do not specify a file type, the compiler uses the default
    file type of .ADA. Wildcard characters are allowed in the
    file specifications. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 21.2 - Description

    The ACS LOAD command invokes the Compaq Ada compiler to partially
    compile the units contained in the specified files in any order.
    The partial compilation detects syntax errors and updates the
    current program library with unit dependence and source-file
    information. Units that are loaded into a program library are
    considered obsolete and must be subsequently recompiled. See
    Developing Ada Programs on OpenVMS Systems for more information
    on recompilation.

    The LOAD command is useful for putting the units in a set of
    files into a program library for the first time.

    The LOAD command does not check for missing or duplicate
    compilation units. (Units that have the same name are considered
    to be duplicates.) The LOAD command allows unit bodies to
    be loaded into the program library in the absence of their
    corresponding specifications. Similarly, subunits may be loaded
    into the library in the absence of their corresponding parent
    (or ancestor) units. Because specifications, bodies, and subunits
    can be loaded in any order, the program library can be incomplete
    after a LOAD command has been executed. For example, the program
    library could contain a package body without a specification or a
    subunit without its corresponding parent unit.

    For each set of files specified, the LOAD command goes through
    the following steps:

    1. Resolves any wildcards in the list of source files specified.
       Within any one directory, the version of a particular file
       that has the highest number is considered for compilation.

    2. Creates a DCL command file for the compiler. The file contains
       commands to compile the units in the source files. The command
       file is deleted after the LOAD command is terminated, unless
       you specified the /COMMAND qualifier. If you specified the
       /COMMAND qualifier, the command file is retained for future
       use, and the compiler is not invoked.

    3. If you did not specify the /COMMAND qualifier, the Compaq Ada
       compiler is invoked for syntax-only compilation as follows:

       a. By default (LOAD/WAIT), the command file is executed in a
          subprocess. You must wait for the compilation to terminate
          before entering another command. Note that process logical
          names are propagated to the subprocess generated to execute
          the command file.

       b. If you specified the /SUBMIT qualifier, the compiler
          command file generated in step 2 is submitted as a batch
          job.

       c. For each unit being compiled, the compiler checks to see if
          the unit is of the same name and kind as an existing unit
          in the current program library. If a unit has the same name
          and kind as an existing unit, a check is performed to see
          if the two units are identical; that is, to see if their
          source files have the same creation date and full file
          specification. If the two units are identical, the library
          is not updated with the new unit. If the two units are
          not identical or if the new unit is unique, the compiler
          updates the program library with the new unit.

 21.3 - Command Qualifiers

 21. 3.1 - /AFTER

    /AFTER

    Requests that the batch job be held until after a specific time
    when the LOAD command is executed in batch mode (the default
    mode). If the specified time has already passed, or if the /AFTER
    qualifier is not specified, the job is queued for immediate
    processing.

    You can specify either an absolute time or a combination of
    absolute and delta time. See the OpenVMS User's Manual (or
    type HELP Specify Date_Time at the DCL prompt) for complete
    information on specifying time values.

 21. 3.2 - /BATCH_LOG

    /BATCH_LOG=file-spec

    Provides a file specification for the batch log file when the
    LOAD command is executed in batch mode (the default mode).

    If you do not give a directory specification with the file-spec
    option, the batch log file is created by default in the current
    default directory. If you do not give a file specification with
    the file-spec option, the default file name is the job name
    specified with the /NAME=job-name qualifier. If no job name
    has been specified, the program library manager creates a file
    name comprising up to the first 39 characters of the first unit
    name specified. If no job name has been specified and there is
    a wildcard character in the first unit specified, the program
    library manager uses the default file name ACS_LOAD. The default
    file type is .LOG. No wildcard characters are allowed in the file
    specification.

 21. 3.3 - /COMMAND

    /COMMAND[=file-spec]

    Controls whether the LOAD operations are performed as a result
    of the LOAD command, and determines whether the command file
    generated to perform the LOAD operations is saved. If you specify
    the /COMMAND qualifier, the program library manager does not
    perform the LOAD operations, and the generated command file is
    saved for you to invoke or submit as a batch job.

    The file-spec option allows you to enter a file specification for
    the generated command file. The default directory for the command
    file is the current default directory. By default, the program
    library manager provides a file name comprising up to the first
    39 characters of the first unit name specified. If you use a
    wildcard character in the first unit name specified, the compiler
    uses the default name ACS_LOAD. The default file type is .COM. No
    wildcard characters are allowed in the file specification.

    By default, if you do not specify the file-spec option, the
    program library manager deletes the generated command file when
    the LOAD command completes normally or is terminated.

 21. 3.4 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the LOAD command displays the name of each file
    before loading, and requests you to confirm whether or not the
    file should be processed. If you specify the /CONFIRM qualifier,
    the possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 21. 3.5 - /KEEP

    /KEEP (D)
    /NOKEEP

    Controls whether the batch log file generated is deleted after it
    is printed when the LOAD command is executed in batch mode (the
    default mode).

    By default, the log file is not deleted.

 21. 3.6 - /LOG

    /LOG
    /NOLOG

    Controls whether a list of all the files that will be loaded is
    displayed.

    By default, a list of the files that will be loaded is not
    displayed.

 21. 3.7 - /NAME

    /NAME=job-name

    Specifies a string to be used as the job name and as the file
    name for the batch log file when the LOAD command is executed in
    batch mode (the default mode). The job name can have from 1 to 39
    characters.

    By default, if you do not specify the /NAME qualifier, the
    program library manager creates a job name comprising up to the
    first 39 characters of the first file name specified. If you do
    not specify the /NAME qualifier, but use a wildcard character in
    the first file name specified, the compiler uses the default name
    ACS_LOAD. In these cases, the job name is also the file name of
    the batch log file.

 21. 3.8 - /NOTIFY

    /NOTIFY (D)
    /NONOTIFY

    Controls whether a message is broadcast when the NOTIFY command
    is executed in batch mode (the default mode). The message is
    broadcast to any terminal at which you are logged in, notifying
    you that your job has been completed or terminated.

    By default, a message is broadcast.

 21. 3.9 - /OUTPUT

    /OUTPUT=file-spec

    Requests that any program library manager output generated before
    the compiler is invoked be written to the file specified rather
    than to SYS$OUTPUT. Any diagnostic messages are written to both
    SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the LOAD command output is written to SYS$OUTPUT.

 21. 3.10 - /PRINTER

    /PRINTER[=queue-name]
    /NOPRINTER (D)

    Controls whether the batch job log file is queued for printing
    when the LOAD command is executed in batch mode.

    The /PRINTER qualifier allows you to specify a particular print
    queue. The default print queue for the log file is SYS$PRINT.

    By default, the log file is not queued for printing. If you
    specify the /NOPRINTER qualifier, the /KEEP qualifier is assumed.

 21. 3.11 - /QUEUE

    /QUEUE=queue-name

    Specifies the batch job queue in which the job is entered when
    the LOAD command is executed in batch mode.

    By default, if the /QUEUE qualifier is not specified, the program
    library manager first checks whether the logical name ADA$BATCH
    is defined. If it is, the program library manager enters the
    job in the queue specified. Otherwise, the job is placed in the
    default system batch job queue, SYS$BATCH.

 21. 3.12 - /SMART_RECOMPILATION

    /SMART_RECOMPILATION (D)
    /[NO]SMART_RECOMPILATION

    Controls whether smart recompilation information is preserved
    during the load operation. This information can be used in
    subsequent operations to minimize recompilations.

    When the /SMART_RECOMPILATION qualifier is in effect, smart
    recompilation information from previous compilations is preserved
    in the program library for each unit compiled.

    If the /NOSMART_RECOMPILATION qualifier is specified, units are
    loaded without preserving smart recompilation information.

 21. 3.13 - /SUBMIT

    /SUBMIT

    Directs the program library manager to submit the command file
    generated for the compiler to a batch queue. You can continue to
    enter commands in your current process without waiting for the
    batch job to complete. The compiler output is written to a log
    file.

    By default, the program library manager executes the command file
    generated for the compiler in a subprocess (/WAIT).

 21. 3.14 - /WAIT

    /WAIT

    Directs the program library manager to execute the command file
    generated for the compiler in a subprocess. Execution of your
    current process is suspended until the subprocess completes. The
    compiler output is written directly to your terminal. Note that
    process logical names are propagated to the subprocess generated
    to execute the command file.

    By default, the program library manager executes the command file
    generated for the compiler in a subprocess (LOAD/WAIT).

 21.4 - Positional Qualifiers

 21. 4.1 - /BACKUP

    /BACKUP

    Selects files according to the dates of their most recent
    backups. Modifies the time value specified with the /BEFORE or
    /SINCE qualifier.

    This qualifier is incompatible with the other qualifiers that
    also allow you to select files according to time attributes:
    /CREATED, /EXPIRED, and /MODIFIED. If you specify none of these
    four time qualifiers, the default is /CREATED.

 21. 4.2 - /BEFORE

    /BEFORE[=time]

    Selects only those files dated prior to the specified time.
    You can specify time as an absolute time, as a combination of
    absolute and delta times, or as one of the following keywords:
    TODAY (the default), TOMORROW, or YESTERDAY. See the OpenVMS
    User's Manual (or type HELP Specify Date_Time at the DCL prompt)
    for complete information on specifying time values.

    You can specify one of the following qualifiers with the /BEFORE
    qualifier to indicate the time attribute to be used as the basis
    for selection: /BACKUP, /CREATED (the default), /EXPIRED, or
    /MODIFIED.

 21. 4.3 - /BY_OWNER

    /BY_OWNER[=uic]

    Selects only those files whose owner user identification code
    (UIC) matches the specified owner UIC. The default UIC is that of
    the current process.

 21. 4.4 - /COPY_SOURCE

    /COPY_SOURCE (D)
    /NOCOPY_SOURCE

    Controls whether a copied source file is created in the current
    program library when a compilation unit is loaded without error.
    The ACS RECOMPILE command requires that a copied source file
    exist in the current program library; the ACS COMPILE command
    uses the copied source file if it cannot find an external source
    file when it is recompiling an obsolete unit or completing an
    incomplete generic instantiation (see Developing Ada Programs
    on OpenVMS Systems. Copied source files may also be used by the
    OpenVMS Debugger (see the Developing Ada Programs on OpenVMS
    Systems for information on debugging tasks; see the OpenVMS
    Debugger Manual for information on OpenVMS debugger).

    By default, a copied source file is created in the current
    program library when a unit is loaded without error.

 21. 4.5 - /CREATED

    /CREATED

    Selects files based on their dates of creation. Modifies the time
    value specified with the /BEFORE or /SINCE qualifier.

    This qualifier is incompatible with the other qualifiers that
    also allow you to select files according to time attributes:
    /BACKUP, /EXPIRED, and /MODIFIED. If you specify none of these
    four time qualifiers, the default is /CREATED.

 21. 4.6 - /DESIGN

       /DESIGN[=option]

    /DESIGN[=option]
    /NODESIGN (D)

    Allows you to process Ada source files as a detailed program
    design.

    You can request the following options:

    [NO]COMMENTS       Determines whether comments are processed for
                       program design information. This option can be
                       specified with the ACS LOAD command, however,
                       it does not have an effect.

    [NO]PLACEHOLDERS   Determines whether LSE placeholders are
                       allowed. If you specify NOPLACEHOLDERS, then
                       only valid Ada syntax is allowed.

    If you specify the /DESIGN qualifier without supplying any
    options, the effect is the same as the following default:

    /DESIGN=(COMMENTS,PLACEHOLDERS)

    If you specify only one of the options with the /DESIGN
    qualifier, the default value for the other option is
    used. For example, /DESIGN=NOCOMMENTS is equivalent to
    /DESIGN=(NOCOMMENTS,PLACEHOLDERS). In this case, both
    qualifiers specify that placeholders are allowed. Similarly,
    /DESIGN=NOPLACEHOLDERS is equivalent to /DESIGN=(COMMENTS,
    NOPLACEHOLDERS). In this case, both qualifiers have no effect.

 21. 4.7 - /DIAGNOSTICS

    /DIAGNOSTICS[=file-spec]
    /NODIAGNOSTICS (D)

    Controls whether a diagnostics file containing compiler messages
    and diagnostic information is created. The diagnostics file is
    supported only for use with Digital layered products, such as the
    DEC Language-Sensitive Editor.

    One diagnostics file is created for each source file that is
    compiled. The default directory for diagnostics files is the
    current default directory. The default file name is the name
    of the source file being compiled. The default file type of a
    diagnostics file is .DIA. No wildcard characters are allowed in
    the file specification.

    By default, no diagnostics file is created.

 21. 4.8 - /ERROR_LIMIT

    /ERROR_LIMIT[=n]
    /NOERROR_LIMIT

    Controls whether execution of the LOAD command for a given
    compilation unit is terminated upon the occurrence of the nth
    E-level error within that unit.

    Error counts are not accumulated across a sequence of compilation
    units. If the /ERROR_LIMIT=n option is specified, each
    compilation unit may have up to n - 1 errors without terminating
    the compilation. When the error limit is reached within a
    compilation unit, compilation of that unit is terminated, but
    compilation of subsequent units continues.

    The /ERROR_LIMIT=0 option is equivalent to ERROR_LIMIT=1.

    By default, execution of the COMPILE command is terminated for
    a given compilation unit upon the occurrence of the 30th E-level
    error within that unit (equivalent to /ERROR_LIMIT=30).

 21. 4.9 - /EXCLUDE

    /EXCLUDE=(file-spec[,...])

    Excludes the specified files from the LOAD operation. You can
    include a directory but not a device in the file specification.
    Wildcard characters are allowed in the file specification.
    However, you cannot use relative version numbers to exclude a
    specific version. If you provide only one file specification, you
    can omit the parentheses.

 21. 4.10 - /EXPIRED

    /EXPIRED

    Selects files according to their expiration dates. (The
    expiration date is set with the DCL SET FILE/EXPIRATION_DATE
    command.) Modifies the time value specified with the /BEFORE or
    /SINCE qualifier.

    This qualifier is incompatible with the other qualifiers that
    also allow you to select files according to time attributes:
    /BACKUP, /CREATED, and /MODIFIED. If you specify none of these
    four time qualifiers, the default is /CREATED.

 21. 4.11 - /LIST

    /LIST[=file-spec]
    /NOLIST (D)

    Controls whether a listing file is created. One listing file is
    created for each compilation unit (not file) compiled by the LOAD
    command.

    The default directory for listing files is the current default
    directory. The default file name of a listing file corresponds
    to the name of its compilation unit and uses the Compaq Ada file-
    name conventions described in Developing Ada Programs on OpenVMS
    Systems. The default file type of a listing file is .LIS. No
    wildcard characters are allowed in the file specification.

    By default, the LOAD command does not create a listing file.

 21. 4.12 - /MODIFIED

    /MODIFIED

    Selects files according to the dates on which they were last
    modified. Modifies the time value specified with the /BEFORE or
    /SINCE qualifier.

    This qualifier is incompatible with the other qualifiers that
    also allow you to select files according to time attributes:
    /BACKUP, /CREATED, and /EXPIRED. If you specify none of these
    four time qualifiers, the default is /CREATED.

 21. 4.13 - /NOTE_SOURCE

    /NOTE_SOURCE (D)
    /NONOTE_SOURCE

    Controls whether the file specification of the source file is
    noted in the program library when a unit is loaded without error.
    The COMPILE command uses this information to locate revised
    source files.

    By default, the file specification of the source file is noted
    in the current program library when a unit is compiled without
    error.

 21. 4.14 - /REPLACE

    /REPLACE (D)
    /NOREPLACE

    Controls whether the loaded unit replaces a unit with the same
    name that is already defined in the current program library. If
    the /NOREPLACE qualifier is specified, and a unit already exists
    in the program library with the same name as a unit being loaded,
    a diagnostic message is issued, and the existing unit is not
    replaced.

    By default, the loaded unit replaces a unit with the same name
    that is already defined in the current program library.

 21. 4.15 - /SINCE

    /SINCE

    Selects only those files dated after the specified time. You
    can specify time as an absolute time, a combination of absolute
    and delta times, or as one of the following keywords: TODAY (the
    default), TOMORROW, or YESTERDAY. See the OpenVMS User's Manual
    (or type HELP Specify Date_Time at the DCL prompt) for complete
    information on specifying time values.

    You can specify one of the following qualifiers with the /SINCE
    qualifier to indicate the time attribute to be used as the basis
    for selection: /BACKUP, /CREATED (the default), /EXPIRED, or
    /MODIFIED.

 21. 4.16 - /WARNINGS

    /WARNINGS[=(option[,...])]
    /NOWARNINGS

    Controls which categories of informational (I-level) and warning
    (W-level) messages are displayed and where those messages are
    displayed. You can specify any combination of the following
    message options:

       WARNINGS: (destination[,...])
       NOWARNINGS

       WEAK_WARNINGS: (destination[,...])
       NOWEAK_WARNINGS

       SUPPLEMENTAL: (destination[,...])
       NOSUPPLEMENTAL

       COMPILATION_NOTES: (destination[,...])
       NOCOMPILATION_NOTES

       STATUS: (destination[,...])
       NOSTATUS

    The possible values of destination are ALL, NONE, or any
    combination of TERMINAL (terminal device), LISTING (listing
    file), and DIAGNOSTICS (diagnostics file). The message categories
    are summarized as follows (see Developing Ada Programs on OpenVMS
    Systems for more information):

    WARNINGS         W-level: Indicates a definite problem in a legal
                     program-for example, an unknown pragma.
    WEAK_WARNINGS    I-level: Indicates a potential problem in
                     a legal program-for example, a possible
                     CONSTRAINT_ERROR at run time. These are the only
                     kind of I-level messages that are counted in the
                     summary statistics at the end of a compilation.
    SUPPLEMENTAL     I-level: Additional information associated with
                     previous E-level or W-level diagnostics.
    COMPILATION_     I-level: Information about how the compiler
    NOTES            translated a program, such as record layout,
                     parameter-passing mechanisms, or decisions
                     made for the pragmas INLINE, INTERFACE, or the
                     import-subprogram pragmas.
    STATUS           I-level: End of compilation statistics and other
                     messages.

    The defaults are as follows:

    /WARNINGS=(WARN:ALL,WEAK:ALL,SUPP:ALL,COMP:NONE,STAT:LIST)

    If you specify only some of the message categories with the
    /WARNINGS qualifier, the default values for the other categories
    are used.

 21.5 - Example

  $ ACS LOAD/NOCOPY_SOURCE [JONES.NEW_UNITS]*
   .
   .
   .
  $ ACS COMPILE/NOCOPY_SOURCE MAIN
   .
   .
   .
  $ ACS LINK MAIN

      This series of commands builds the program MAIN from a set
      of files that have never been previously compiled. The LOAD
      command puts syntax-checked, obsolete units into the current
      program library.

      The COMPILE command recompiles the units from their original
      source files. The LINK command creates an executable image for
      the program MAIN. Note the use of /NOCOPY_SOURCE qualifiers to
      control the creation of copied source files.

  22 - MERGE

    Moves one or more units from the current program sublibrary to
    its immediate parent program library.

    Format

      MERGE  unit-name[,...]

 22.1 - Parameters

 unit-name[,...]

    Specifies one or more units, in the current program library, that
    are to be merged into the next library in the current path. You
    must express subunit names using selected component notation as
    follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 22.2 - Description

    The ACS MERGE command moves each specified unit's specification
    and body (if any) from the current sublibrary to the parent
    library. If a subunit name is specified, the MERGE command moves
    the subunit into the parent library.

    For each unit merged, the MERGE command moves its associated
    files into the parent library and updates that library's index
    file.

    If the parent library already has a version of the unit to be
    merged, the unit to be merged must have a more recent external
    source file.

    If you specified the ACS SET LIBRARY/PATH command to set the
    current path, the ACS MERGE command moves one or more units
    from the current program library to the next library in the
    current path. In the case of sublibraries, the next library in
    the current path is the parent library unless you explicitly set
    the path otherwise. For more information on library search paths,
    enter HELP ACS Library_Search_Paths.

 22.3 - Command Qualifiers

 22. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the MERGE command displays the name of each unit
    before merging and requests you to confirm whether or not the
    unit should be merged. If you specify the /CONFIRM qualifier, the
    possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 22. 3.2 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether entered units are merged. You can use the
    library option to merge units that were entered from a particular
    library. When you specify the /NOENTERED qualifier, only the
    units that have been compiled or copied into the current program
    library are merged. Note that when you specify the /ENTERED
    qualifier, local units are merged unless the /NOLOCAL qualifier
    is also in effect (the defaults for these qualifiers are /LOCAL
    and /ENTERED).

    By default, all units, including entered units, are merged.

 22. 3.3 - /KEEP

    /KEEP
    /NOKEEP (D)

    Controls whether a copy of a unit being merged is retained in the
    current program sublibrary after the merge operation.

    By default, the unit is deleted from the current program library
    after the merge operation.

 22. 3.4 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are merged. Note
    that when you specify the /LOCAL qualifier, entered units are
    merged unless the /NOENTERED qualifier is also in effect (the
    defaults for these qualifiers are /LOCAL and /ENTERED).

    By default, all units specified, including local units, are
    merged.

 22. 3.5 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the name of each unit is displayed after it has
    been merged.

    By default, the names of merged units are not displayed.

 22.4 - Positional Qualifiers

 22. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Merges only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the MERGE command
    string, any /SPECIFICATION_ONLY qualifiers that are appended to
    parameters in the command line override the /BODY_ONLY qualifier
    for those particular parameters. You cannot append both the
    /BODY_ONLY qualifier and the /SPECIFICATION_ONLY qualifier to the
    MERGE command string or to the same unit name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specification, as well as the body, is merged.

 22. 4.2 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Merges only the specification of the specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the MERGE
    command string, any /BODY_ONLY qualifiers that are appended to
    parameters in the command line override the /SPECIFICATION_ONLY
    qualifier for those particular parameters. You cannot append both
    the /SPECIFICATION_ONLY qualifier and the /BODY_ONLY qualifier to
    the MERGE command string or to the same unit name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    body, as well as the specification, is merged.

 22.5 - Example

  ACS> SET LIBRARY [JONES.HOTEL.SUBLIB]
  %I, Current program library is USER:[JONES.HOTEL.SUBLIB])
  ACS> SHOW LIBRARY/FULL

  Program library USER:[JONES.HOTEL.SUBLIB]

      Sublibrary
          of USER:[HOTEL.ADALIB]
   .
   .
   .
  ACS> MERGE RESERVATIONS.CANCEL

      Establishes the sublibrary [JONES.HOTEL.SUBLIB] as the current
      program sublibrary. The SHOW LIBRARY/FULL command identifies
      the parent library [HOTEL.ADALIB]. The MERGE command copies the
      subunit RESERVATIONS.CANCEL from the current program sublibrary
      into the parent library, replacing any previous version of
      RESERVATIONS.CANCEL in the parent library, then deletes the
      original unit from the current program sublibrary.

      If the copy of the unit in the parent library is newer than the
      unit in the sublibrary, the unit is not merged.

  23 - MODIFY

 23.1 - LIBRARY

    Modifies the default path of a Compaq Ada program library or program
    sublibrary.

    Format

      MODIFY LIBRARY/PATH  lib-term[,...]

 23. 1.1 - Parameters

 lib-term[,...]

    Specifies the new default library search path for the specified
    library. For more information on library search paths, enter HELP
    ACS Library_Search_Paths.

    You can specify lib-term as follows:

    o  The directory specification of a Compaq Ada library. For example:
       [JONES.HOTEL.ADALIB].

    o  The default path of a Compaq Ada library. To specify the default
       path, you enter the name of a Compaq Ada library preceded by an
       at sign(@). For example: @[JONES.HOTEL.ADALIB].

    o  A file specification preceded by an at sign (@). For example:
       @[JONES.HOTEL]MYPATH.TXT. Note the that file, MYPATH.TXT, must
       contain valid library terms.

       If you do not specify a full file specification, the default
       file name is PATH and the default file extension is .TXT.

    You must use commas to separate more than one lib-term in a
    library search path.

 23. 1.2 - Description

    The ACS MODIFY LIBRARY/PATH command redefines the default library
    search path for a given library. If you do not specify a library
    (you omit the /LIBRARY=directory-spec qualifier), the default
    path for the current program library is redefined.

    The ACS MODIFY LIBRARY/PATH command stores the specified library
    search path in the given library in its original form. In other
    words, the search path is stored exactly as you specified it on
    the command line or with the editor. The command also evaluates
    and verifies the new library search path, and reports any errors.

    If you enter the ACS MODIFY LIBRARY/PATH command interactively
    (that is, at the ACS> prompt), the current path is not
    reevaluated. Therefore, if you modified the default path for the
    current library, this modification will not take effect until
    you reinvoke ACS.

    For more information on library search paths, enter HELP ACS
    Library_Search_Paths.

 23. 1.3 - Command Qualifiers

 23. 1. 3.1 - /EDIT

    /EDIT[=edit_cmd]
    /NOEDIT

    Invokes an editor which allows you to edit the default path
    associated with the current program library. The current
    definition of the default path for the given library is placed in
    a text file, and the editor specified by edit-cmd is invoked. If
    you do not specify an editor with the /EDIT qualifier, callable
    EDT is invoked. When you exit from the editor, the default
    path for the library is redefined to be the library search path
    contained in the edited file.

 23. 1. 3.2 - /LIBRARY

    Specifies a library whose default library search path is to be
    modified. By default, the default path of the current program
    library is modified.

 23. 1. 3.3 - /PATH

    /PATH
    /NOPATH (D)

    Specifies that the default library search path for the given
    library is to be modified.

 23. 1. 3.4 - /VERIFY

    /VERIFY
    /NOVERIFY

    Controls whether the program library manager suppresses the
    evaluation and verification of the new default path.

    By default, the new default path is evaluated and verified.

 23. 1.4 - Example

  ACS> MODIFY LIBRARY/PATH/LIBRARY=[MY_LIB] [MY_LIB],[LIB1],[LIB2]

      Redefines the default path of the library [MY_LIB] to be as
      follows:

        [MY_LIB]
        [LIB1]
        [LIB2]

      Note that if you enter the ACS MODIFY LIBRARY command
      interactively, the current path is not reevaluated. Therefore, if
      you modified the default path for the current library, this
      modification will not take effect until you reinvoke ACS.

  24 - RECOMPILE

    Enters an ACS CHECK command for the specified units, then
    recompiles (makes current) any obsolete unit that is part of
    the closure of the set of units specified. Obsolete entered units
    must be made current before you can use the ACS RECOMPILE command
    (see the Description section).

                                   NOTE

       To be recompiled, units must have previously been compiled
       with the /COPY_SOURCE qualifier (this is the default value
       of this qualifier).

    Format

      RECOMPILE  [unit-name[,...]]

 24.1 - Parameters

 [unit-name[,...]]

    Specifies one or more units in the current program library whose
    closure is to be processed by the ACS RECOMPILE command. You
    must express subunit names using selected component notation as
    follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks
    (*)  as wildcard characters. (See the OpenVMS User's Manual for
    detailed information on wildcard characters.)

    If you do not specify any units with the ACS RECOMPILE command,
    the command uses whatever units were involved with the most
    recent ACS CHECK command.

 24.2 - Description

    The ACS RECOMPILE command is designed to be used when a unit or
    a set of units must be compiled again, but the original source
    code has not changed. Therefore, the RECOMPILE command is useful for
    performing the following operations:

    o  To make an obsolete unit or set of units current (see
       Developing Ada Programs on OpenVMS Systems for definitions
       of obsolescence and currency).

    o  To complete incomplete generic instantiations, once the
       missing or changed generic body has been compiled into the
       current program library.

    o  To recompile units after the value of a global program library
       characteristic such as LONG_FLOAT or SYSTEM_NAME has been
       changed (for example, after you have used the ACS SET PRAGMA
       command).

    o  To obtain new versions of some units, compiled with a
       particular combination of compilation qualifiers (for example,
       /OPTIMIZE=SPACE, /CHECK, and so on). In this case, the units
       are not obsolete, but the RECOMPILE command, in combination
       with the /OBSOLETE qualifier, can be used to force the
       recompilation of the entire execution closure of a set of
       units.

    The RECOMPILE command goes through the following steps:

    1. Forms the execution closure of the specified units.

    2. Determines whether each unit in the closure is in the program
       library and is current. Units entered from other program
       libraries as well as those compiled or copied into the current
       program library are checked.

    3. If all units in the closure are in the program library and are
       current, issues an informational message and terminates the
       operation.

    4. Identifies any unit in the closure that is missing from the
       current program library.

    5. Identifies any unit in the closure that is obsolete and must
       be recompiled.

    6. If any units in the closure are obsolete, creates a DCL
       command file for the compiler. The file contains commands
       to compile the copied source file of each obsolete unit
       in the proper order. Entered units are not considered
       for recompilation. The command file is deleted after the
       RECOMPILE command is completed or terminated, unless the
       /COMMAND qualifier is specified. If the /COMMAND qualifier is
       specified, the command file is retained for future use, and
       the compiler is not invoked.

    7. Unless the /COMMAND qualifier is specified, invokes the DEC
       Ada compiler as follows:

       a. By default (RECOMPILE/WAIT), the command file is executed
          in a subprocess. You must wait for the compilation to
          terminate before entering another command. When the
          /WAIT qualifier is in effect, process logical names are
          propagated to the subprocess generated to execute the
          command file.

       b. If you specify the /SUBMIT qualifier, the compiler command
          file generated in step 2 is submitted as a batch job.

    Note the use of copied source files in the recompilation.
    Files external to the current program library are ignored. If
    a copied source file needed for the recompilation is missing
    (because the /NOCOPY_SOURCE qualifier was specified in a previous
    compilation), the program library manager identifies the missing
    file, and the recompilation is not attempted. Therefore, if you intend
    to use the RECOMPILE command, you should not compile units with
    the /NOCOPY_SOURCE qualifier.

    If the closure you are recompiling includes an obsolete entered
    unit, that unit is not affected by the RECOMPILE command; an
    error diagnostic is issued and the RECOMPILE command is not
    executed. You should recompile an obsolete entered unit in its
    own program library and then reenter it into the current program
    library before you try to recompile its dependent units in the
    current library.

    Program library manager output originating before the compiler
    is invoked is reported to your terminal by default, or to a file
    specified with the /OUTPUT qualifier. Compiler diagnostics are
    to your terminal, by default, or to a log file if the command
    file is executed in batch mode (by way of the RECOMPILE/SUBMIT
    command).

    See Developing Ada Programs on OpenVMS Systems for more
    information on the RECOMPILE command.

 24.3 - Command Qualifiers

 24. 3.1 - /AFTER

    /AFTER=time

    Requests that the batch job be held until after a specific
    time when the command file is executed in batch mode. If the
    specified time has already passed, or if the /AFTER qualifier is
    not specified, the job is queued for immediate processing.

    You can specify either an absolute time or a combination of
    absolute and delta time. See the OpenVMS User's Manual (or
    type HELP Specify Date_Time at the DCL prompt) for complete
    information on specifying time values.

 24. 3.2 - /ANALYSIS_DATA

    /ANALYSIS_DATA[=file-spec]
    /NOANALYSIS_DATA (D)

    Controls whether a data analysis file containing source code
    cross-reference and static analysis information is created. The
    data analysis file is supported only for use with Digital layered
    products, such as the DEC Source Code Analyzer.

    One data analysis file is created for each copied source file
    that is recompiled. The default directory for data analysis
    files is the current default directory. The default file name
    is the name of the source file being compiled. The default file
    type is .ANA. No wildcard characters are allowed in the file
    specification.

    By default, no data analysis file is created.

 24. 3.3 - /ARCHITECTURE

    Controls the use of new Alpha instructions.
    The syntax for this switch is as follows:

    /ARCHITECTURE = { GENERIC | HOST | EV4 | EV5 | EV56 }

    Setting the /ARCH switch causes a corresponding setting in the /TUNE
    switch.  (See the Release Notes for more information.)

 24. 3.4 - /BATCH_LOG

    /BATCH_log=file-spec

    Provides a file specification for the batch log file when the
    command file is executed in batch mode.

    If you do not give a directory specification with the file-spec
    option, the batch log file is created by default in the current
    default directory. If you do not give a file specification with
    the file-spec option, the default file name is the job name
    specified with the /NAME=job-name qualifier. If no job name
    has been specified, the program library manager creates a file
    name comprising up to the first 39 characters of the first unit
    name specified. If no job name has been specified and there is
    a wildcard character in the first unit specified, the program
    library manager uses the default file name ACS_RECOMPILE. The
    default file type is .LOG. No wildcard characters are allowed in
    the file specification.

 24. 3.5 - /CHECK

    /CHECK
    /NOCHECK

    Controls whether all run-time checks are suppressed. The /NOCHECK
    qualifier is equivalent to having all possible SUPPRESS pragmas
    in the source code.

    Explicit use of the /CHECK qualifier overrides any occurrences of
    the pragmas SUPPRESS and SUPPRESS_ALL in the source code, without
    the need to edit the source code.

    By default, run-time checks are only suppressed in cases where a
    pragma SUPPRESS or SUPPRESS_ALL appears in the source code.

    See the DEC Ada Language Reference Manual for more information on
    the pragmas SUPPRESS and SUPPRESS_ALL.

 24. 3.6 - /CLOSURE

    /CLOSURE

    Causes the /SPECIFICATION_ONLY to apply to all units in the
    closure of units named in the RECOMPILE command. (Without the
    /CLOSURE qualifier, the /SPECIFICATION_ONLY qualifier applies
    only to the units named in the command.)

    See the description of the /SPECIFICATION_ONLY qualifier in the
    list of command qualifiers.

 24. 3.7 - /COMMAND

    /COMMAND[=file-spec]

    Controls whether the compiler is invoked as a result of the
    RECOMPILE command, and determines whether the command file
    generated to invoke the compiler is saved. If you specify the
    /COMMAND qualifier, the program library manager does not invoke
    the compiler, and the generated command file is saved for you to
    invoke or submit as a batch job.

    The file-spec option allows you to enter a file specification
    for the generated command file. The default directory for the
    command file is the current default directory. By default, the
    program library manager provides a file name comprising up to
    the first 39 characters of the first unit name specified. If you
    use a wildcard character in the first unit name specified, the
    compiler uses the default name ACS_RECOMPILE. The default file
    type is .COM. No wildcard characters are allowed in the file
    specification.

    By default, if you do not specify the /COMMAND qualifier, the
    program library manager deletes the generated command file when
    the RECOMPILE command completes normally or is terminated.

 24. 3.8 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the RECOMPILE command asks you for confirmation
    before performing a possibly lengthy operation. If you specify
    the /CONFIRM qualifier, the possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 24. 3.9 - /COPY_SOURCE

    /COPY_SOURCE (D)
    /NOCOPY_SOURCE

    Controls whether a copied source file is created in the current
    program library when a compilation unit is recompiled without
    error. The ACS RECOMPILE command requires that a copied source
    file exist in the current program library; the ACS COMPILE
    command uses the copied source file if it cannot find an external
    source file when it is recompiling an obsolete unit or completing
    an incomplete generic instantiation (see Developing Ada Programs
    on OpenVMS Systems. Copied source files may also be used by the
    OpenVMS Debugger (see the Developing Ada Programs on OpenVMS
    Systems for more information on debugging tasks; see OpenVMS
    Debugger Manual for more information on the OpenVMS debugger).

    The /[NO]COPY_SOURCE qualifier has an effect with the RECOMPILE
    command only for those obsolete units in a parent library that
    are being recompiled into the current sublibrary to make them
    current. In this case, by default, a copied source file is
    created in the current program library when a unit is recompiled
    without error.

 24. 3.10 - /DEBUG

    /DEBUG[=(option[,...])] (D)
    /NODEBUG

    Controls which debugger compiler options are provided. You
    can debug Compaq Ada programs with the OpenVMS Debugger (see the
    Developing Ada Programs on OpenVMS Systems for more information
    on debugging tasks; see the OpenVMS Debugger Manual for more
    information on the OpenVMS debugger).

    You can request the following options:

    ALL            Provides both SYMBOLS and TRACEBACK
    NONE           Provides neither SYMBOLS nor TRACEBACK
    [NO]SYMBOLS    Controls whether debugger symbol records are
                   included in the object file
    [NO]TRACEBACK  Controls whether traceback information (a subset
                   of the debugger symbol information) is included in
                   the object file

    By default, both debugger symbol records and traceback
    information are included in the object files (/DEBUG=ALL, or
    equivalently: /DEBUG).

 24. 3.11 - /DESIGN

       /DESIGN[=option]

    /DESIGN[=option]
    /NODESIGN (D)

    Controls whether a design-level check is performed when
    identifying obsolete units. A unit is not considered obsolete
    just because it is design-checked only.

    Also directs the compiler to process Ada source files as a
    detailed program design. For each unit that is design checked
    without error, the program library is updated with information
    about that unit. Design-checked units are considered to be
    obsolete in operations that require full compilation and must
    be recompiled.

    You can request the following options:

    [NO]COMMENTS       Determines whether comments are processed for
                       program design information. For the COMMENTS
                       option to have effect, you must specify the
                       /ANALYSIS_DATA qualifier with the ADA command.
                       See Guide to Source Code Analyzer for VMS
                       Systems for more information on using the
                       Source Code Analyzer (SCA).

                       If you specify NOCOMMENTS, comments are
                       ignored.

    [NO]PLACEHOLDERS   Determines whether design checking is
                       performed. If you specify PLACEHOLDERS,
                       compilation units are design checked-LSE
                       placeholders are allowed and some of the
                       Ada language rules are relaxed so that you
                       can omit some implementation details. If you
                       specify NOPLACEHOLDERS, full compilation is
                       done-the compiler is invoked, LSE placeholders
                       are not allowed, and Ada language rules are
                       not relaxed.

                       Note that when you specify this option with
                       the /SYNTAX_ONLY qualifier, it determines only
                       whether LSE placeholders are allowed. If you
                       specify NOPLACEHOLDERS, then only valid Ada
                       syntax is allowed.

    If you specify the /DESIGN qualifier without supplying any
    options, the effect is the same as the following default:

    /DESIGN=(COMMENTS,PLACEHOLDERS)

    If you specify only one of the options with the /DESIGN
    qualifier, the default value for the other option is
    used. For example, /DESIGN=NOCOMMENTS is equivalent to
    /DESIGN=(NOCOMMENTS,PLACEHOLDERS). In this case, both qualifiers
    specify that the unit is design-checked, but comment information
    is not collected. Similarly, /DESIGN=NOPLACEHOLDERS is equivalent
    to /DESIGN=(COMMENTS,NOPLACEHOLDERS). In this case, both
    qualifiers specify that comment information is collected, but
    the unit is not design-checked (that is, in the absence of the
    /SYNTAX_ONLY qualifier, units are fully compiled).

 24. 3.12 - /DIAGNOSTICS

    /DIAGNOSTICS[=file-spec]
    /NODIAGNOSTICS (D)

    Controls whether a diagnostics file containing compiler messages
    and diagnostic information is created. The diagnostics file is
    supported only for use with Digital layered products, such as the
    DEC Language-Sensitive Editor.

    By default, a diagnostics file is created from the copied source
    file for each unit that is recompiled.

 24. 3.13 - /ERROR_LIMIT

    /ERROR_LIMIT[=n]
    /NOERROR_LIMIT

    Controls whether execution of the RECOMPILE command for a given
    compilation unit is terminated upon the occurrence of the nth
    E-level error within that unit.

    Error counts are not accumulated across a sequence of compilation
    units. If the /ERROR_LIMIT=n option is specified, each
    compilation unit may have up to n - 1 errors without terminating
    the compilation. When the error limit is reached within a
    compilation unit, compilation of that unit is terminated, but
    compilation of subsequent units continues.

    The /ERROR_LIMIT=0 option is equivalent to ERROR_LIMIT=1.

    By default, execution of the RECOMPILE command is terminated
    for a given compilation unit upon the occurrence of the 30th E-
    level error within that compilation unit (equivalent to /ERROR_
    LIMIT=30).

 24. 3.14 - /EXPORT_INTERFACE

    /EXPORT_INTERFACE=ADA  (D)
    /EXPORT_INTERFACE=FORTRAN
    /EXPORT_INTERFACE=DEFAULT

    This qualifier sets the passing mechanism chosen for string parameters
    for exported subprograms unless an export pragma specifically specifies
    the passing mechanism.

    The default is ADA, which uses dope vectors for the passing mechanism.

    FORTRAN or DEFAULT will use VAX descriptors for the passing mechanism.

    For more information, please see the Compaq Ada release notes.

 24. 3.15 - /KEEP

    /KEEP (D)
    /NOKEEP

    Controls whether the batch log file generated is deleted after it
    is printed when the command file is executed in batch mode.

    By default, the log file is not deleted.

 24. 3.16 - /LIST

    /LIST[=file-spec]
    /NOLIST (D)

    Controls whether a listing file is created. One listing file is
    created for each compilation unit (not file) recompiled by the
    RECOMPILE command. The default directory for listing files is
    the current default directory. The default file name of a listing
    file corresponds to the name of its compilation unit and uses
    the Compaq Ada file-name conventions described in Developing Ada
    Programs on OpenVMS Systems.

    The default file type of a listing file is .LIS. No wildcard
    characters are allowed in the file specification.

    By default, the RECOMPILE command does not create a listing file.

 24. 3.17 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether a list of all the units that must be recompiled
    is displayed.

    By default, a list of the units that must be recompiled is not
    displayed.

 24. 3.18 - /MACHINE_CODE

    /MACHINE_CODE
    /NOMACHINE_CODE (D)

    Controls whether generated machine code (approximating assembler
    notation) is included in the listing file.

    By default, generated machine code is not included in the listing
    file.

 24. 3.19 - /NAME

    /NAME=job-name

    Specifies a string to be used as the job name and as the file
    name for the batch log file when the command file is executed in
    batch mode. The job name can have from 1 to 39 characters.

    By default, if you do not specify the /NAME qualifier, the
    program library manager creates a job name comprising up to the
    first 39 characters of the first unit name specified. If you do
    not specify the /NAME qualifier, but use a wildcard character in
    the first unit name specified, the compiler uses the default name
    ACS_RECOMPILE. In these cases, the job name is also the file name
    of the batch log file.

 24. 3.20 - /NOTE_SOURCE

    /NOTE_SOURCE (D)
    /NONOTE_SOURCE

    Controls whether the file specification of the source file is
    noted in the program library when a unit is recompiled without
    error. The COMPILE command uses this information to locate
    revised source files.

    The /[NO]NOTE_SOURCE qualifier has no effect with the RECOMPILE
    command.

 24. 3.21 - /NOTIFY

    /NOTIFY (D)
    /NONOTIFY

    Controls whether a message is broadcast when the RECOMPILE
    command is executed in batch mode. The message is broadcast to
    any terminal at which you are logged in, notifying you that your
    job has been completed or terminated.

    By default, a message is broadcast.

 24. 3.22 - /OBSOLETE

    /OBSOLETE=(option[,...])
    /NOOBSOLETE (D)

    Affects the overall set of units that is identified as obsolete.

    When the execution closure of the units in the parameter list
    of the command is performed, the units named with the UNIT,
    SPECIFICATION, and BODY keywords are assumed to be obsolete as
    described below. If one of those units is not in the execution
    closure of the units named in the command's parameter list, it is
    not added to the closure.

    Unit names are specified with the UNIT, SPECIFICATION, and BODY
    keywords as follows:

    UNIT:(unit_           The specifications and bodies of units
    name[,...])           specified with the UNIT keyword are assumed
                          to be obsolete.
    SPECIFICATION:(unit_  Only the specifications of units specified
    name[,...])           with the SPECIFICATION keyword are assumed
                          to be obsolete.
    BODY:(unit_           Only the bodies of units specified with the
    name[,...])           BODY keyword are assumed to be obsolete.

    You must specify at least one of these keywords. Unit names can
    contain wildcard characters.

    When the /SMART_RECOMPILATION qualifier is in effect, dependent
    units of the specified unit may or may not be recompiled. To
    force recompilation of dependent units when smart recompilation
    is in effect, use the /OBSOLETE=UNIT:* qualifier. (See Developing
    Ada Programs on OpenVMS Systems for more information.)

    By default, units are identified as obsolete based on the current
    state of the program library.

 24. 3.23 - /OPTIMIZE

    /OPTIMIZE[=(option[,...])]
    /NOOPTIMIZE

    Controls the level of optimization that is applied in producing
    the compiled code. You can specify one of the following primary
    options:

    TIME          Provides full optimization with time as the primary
                  optimization criterion. Overrides any occurrences
                  of the pragma OPTIMIZE(SPACE) in the source code.
    SPACE         Provides full optimization with space as the
                  primary optimization criterion. Overrides any
                  occurrences of the pragma OPTIMIZE(TIME) in the
                  source code.
    DEVELOPMENT   Suggested when active development of a program
                  is in progress. Provides some optimization, but
                  development considerations and ease of debugging
                  take preference over optimization. This option
                  overrides pragmas that establish a dependence on
                  a subprogram or generic body (the pragmas INLINE
                  and INLINE_GENERIC), and therefore reduces the need for
                  recompilations when such bodies are modified. This
                  option also disables generic code sharing.
    NONE          Provides no optimization. Suppresses inline
                  expansions of subprograms and generics, including
                  those specified by the pragmas INLINE and INLINE_
                  GENERIC. Suppresses occurrences of the pragma
                  SHARE_GENERIC and disables generic code sharing.

    The /NOOPTIMIZE qualifier is equivalent to /OPTIMIZE=NONE.

    By default, the RECOMPILE command applies full optimization with
    time as the primary optimization criterion (like /OPTIMIZE=TIME,
    but observing uses of the pragma OPTIMIZE).

    The /OPTIMIZE qualifier also has a set of secondary options that
    you can use separately or together with the primary options to
    override the default behavior for inline expansion (generic and
    subprogram) and generic code sharing.

    The INLINE secondary option can have the following values (see
    the DEC Ada Run-Time Reference Manual for OpenVMS Systems for
    more information about inline expansion):

    NONE             Disables subprogram and generic inline
                     expansion. This option overrides any occurrences
                     of the pragmas INLINE or INLINE_GENERIC in the
                     source code, without your having to edit the
                     source file. It also disables implicit inline
                     expansion of subprograms. (Implicit inline
                     expansion means that the compiler assumes a
                     pragma INLINE for certain subprograms as an
                     optimization.) A call to a subprogram or an
                     instance of a generic in another unit is not
                     expanded inline, regardless of the /OPTIMIZE
                     options in effect when that unit was compiled.
    NORMAL           Provides normal subprogram and generic inline
                     expansion.

                     Subprograms to which an explicit pragma INLINE
                     applies are expanded inline under certain
                     conditions. In addition, some subprograms are
                     implicitly expanded inline. The compiler assumes
                     a pragma INLINE for calls to some small local
                     subprograms (subprograms that are declared in
                     the same unit as the unit in which the call
                     occurs).

                     Instances are compiled separately from the unit
                     in which the instantiation occurred unless a
                     pragma INLINE_GENERIC applies to the instance.
                     If a pragma INLINE_GENERIC applies and the
                     generic body has been compiled, the generic is
                     expanded inline at the point of instantiation.
    SUBPROGRAMS      Provides maximal subprogram inline expansion and
                     normal generic inline expansion.

                     In addition to the normal subprogram inline
                     expansion that occurs when INLINE:NORMAL is
                     specified, this option results in implicit
                     inline expansion of some small subprograms
                     declared in other units. The compiler assumes a
                     pragma INLINE for any subprogram if it improves
                     execution speed and reduces code size. This
                     option may establish a dependence on the body of
                     another unit, as would be the case if a pragma
                     INLINE were specified explicitly in the source
                     code.

                     With this option, generic inline expansion
                     occurs in the same manner as for INLINE:NORMAL.
    GENERICS         Provides normal subprogram inline expansion and
                     maximal generic inline expansion.

                     With this option, subprogram inline expansion
                     occurs in the same manner as for INLINE:NORMAL.

                     The compiler assumes a pragma INLINE_GENERIC for
                     every instantiation in the unit being compiled
                     unless an explicit pragma SHARE_GENERIC applies.
                     This option may establish a dependence on the
                     body of another unit, as would be the case if a
                     pragma INLINE_GENERIC were specified explicitly
                     in the source code.
    MAXIMAL          Provides maximal subprogram and generic inline
                     expansion.

                     Maximal subprogram inline expansion occurs as
                     for INLINE:SUBPROGRAMS, and maximal generic
                     inline expansion occurs as for INLINE:GENERICS.

    The SHARE secondary option can have the following values:

    NONE          Disables generic sharing. This option overrides
                  the effect of any occurrences of the pragma SHARE_
                  GENERIC in the source code, without your having to
                  edit the source file. In addition, instances do not
                  share code from previous instantiations.
    NORMAL        Provides normal generic sharing. Normally, the
                  compiler will not attempt to generate shareable
                  code for an instance (code that can be shared
                  by subsequent instantiations) unless an explicit
                  pragma SHARE_GENERIC applies to that instance.
                  However, an instance will attempt to share code
                  that resulted from a previous instantiation to
                  which the pragma SHARE_GENERIC applied.
    MAXIMAL       Provides maximal generic sharing. The compiler
                  assumes that a pragma SHARE_GENERIC applies to
                  every instance in the unit being compiled unless
                  an explicit pragma INLINE_GENERIC applies. Therefore, an
                  instance will attempt to share code that resulted
                  from a previous instantiation or to generate code
                  that can be shared by subsequent instantiations.

                  SHARE:MAXIMAL cannot be used in combination with
                  INLINE:GENERICS or INLINE:MAXIMAL.

    By default, if you specify one of the /OPTIMIZE
    qualifier primary options on the left (for example,
    /OPTIMIZE=TIME), it has the same effect as specifying
    the secondary-option values to the right (in this case,
    /OPTIMIZE=(TIME,INLINE:NORMAL,SHARE:NORMAL)):

    TIME        /OPTIMIZE=(TIME,INLINE:NORMAL,SHARE:NORMAL)
    SPACE       /OPTIMIZE=(SPACE,INLINE:NORMAL,SHARE:NORMAL)
    DEVELOPMENT /OPTIMIZE=(DEVELOPMENT,INLINE:NONE,SHARE:NONE)
    NONE        /OPTIMIZE=(NONE,INLINE:NONE,SHARE:NONE)

    See Developing Ada Programs on OpenVMS Systems for more
    information about the /OPTIMIZE qualifier and its options.

 24. 3.24 - /OUTPUT

    /OUTPUT=file-spec

    Requests that any program library manager output generated before
    the compiler is invoked be written to the file specified rather
    than to SYS$OUTPUT. Any diagnostic messages are written to both
    SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the RECOMPILE command output is written to
    SYS$OUTPUT.

 24. 3.25 - /PRINTER

    /PRINTER[=queue-name]
    /NOPRINTER (D)

    Controls whether the batch job log file is queued for printing
    when the command file is executed in batch mode.

    The /PRINTER qualifier allows you to specify a particular print
    queue. The default print queue for the log file is SYS$PRINT.

    By default, the log file is not queued for printing. If you
    specify the /NOPRINTER qualifier, the /KEEP qualifier is assumed.

 24. 3.26 - /QUEUE

    /QUEUE=queue-name

    Specifies the batch job queue in which the job is entered when
    the command file is executed in batch mode.

    By default, if the /QUEUE qualifier is not specified, the program
    library manager first checks whether the logical name ADA$BATCH
    is defined. If it is, the program library manager enters the
    job in the queue specified. Otherwise, the job is placed in the
    default system batch job queue, SYS$BATCH.

 24. 3.27 - /SHOW

    /SHOW[=option] (D)
    /NOSHOW

    Controls the listing file options included when a listing file is
    provided. You can specify one of the following options:

    ALL            Provides all listing file options.
    [NO]PORTABILITYControls whether a program portability summary is
                   included in the listing file (see Developing Ada
                   Programs on OpenVMS Systems).
    NONE           Provides none of the listing file options (same as
                   /NOSHOW).

    By default, the RECOMPILE command provides a portability summary
    (/SHOW=PORTABILITY).

 24. 3.28 - /SMART_RECOMPILATION

    /SMART_RECOMPILATION (D)
    /NOSMART_RECOMPILATION

    Controls whether smart recompilation information is stored and
    used to identify obsolete units.

    When the /SMART_RECOMPILATION qualifier is in effect, detailed
    information about dependences is stored in the program
    library for each unit compiled. This information describes the
    dependences of a unit at a finer level than the compilation unit
    level.

    The ACS RECOMPILE command uses this information to detect when
    a unit in the closure is not affected by changes (if any) in its
    referenced units that are recompiled. The ACS RECOMPILE command
    does not recompile such dependent units and therefore minimizes
    unnecessary recompilations.

    If smart recompilation is not in effect, detailed information
    about dependences is not stored in the program library, and units
    are considered obsolete and recompiled based on their time of
    compilation. (See Developing Ada Programs on OpenVMS Systems for
    more information.)

 24. 3.29 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Causes only the specifications of the units specified to be
    considered for recompilation. You can use the /CLOSURE qualifier
    with the /SPECIFICATION_ONLY qualifier to force only the
    specifications in the execution closure of the specified units
    to be considered for recompilation.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted,
    all of the specifications, bodies, and subunits in the execution
    closure of the units specified are considered for compilation.

 24. 3.30 - /STATISTICS

    /STATISTICS (D)
    /NOSTATISTICS

    Controls whether statistical information is displayed during
    recompilation. Statistical information includes the number of
    obsolete and possibly obsolete units, the total elasped time for
    the last compilation of the identified units, and the estimated
    elasped time savings due to smart recompilation.

 24. 3.31 - /SUBMIT

    /SUBMIT

    Directs the program library manager to submit the command file
    generated for the compiler to a batch queue. You can continue to
    enter commands in your current process without waiting for the
    batch job to complete. The compiler output is written to a log
    file.

    By default, the program library manager executes the command file
    for the compiler in a subprocess (by way of the RECOMPILE/WAIT
    command).

 24. 3.32 - /SYNTAX_ONLY

    /SYNTAX_ONLY
    /NOSYNTAX_ONLY (D)

    Controls whether a syntax-level check is performed when
    identifying obsolete units. A unit is not considered obsolete
    just because it is syntax-checked only. Because all units in a
    program library are at least syntax-checked, in effect, this
    qualifier generally identifies all units as current.

    The /SYNTAX_ONLY qualifier also directs the compiler to process
    source files for syntax only. Other compiler checks are not
    performed (for example, semantic analysis, type checking, and
    so on).

    By default, the RECOMPILE command performs full checking when
    identifying obsolete units (and the compiler fully compiles
    units).

 24. 3.33 - /TUNE

    Selects processor-specific instruction tuning for implementations of
    the Alpha architecture.  Tuning for a specific implementation can
    provide improvements in runtime performance.  The syntax for this switch
    is as follows:

    /TUNE = { GENERIC | HOST | EV4 | EV5 | EV56 }

    For more information, see the Release Notes.

 24. 3.34 - /WAIT

    /WAIT

    Directs the program library manager to execute the command file
    generated for the compiler in a subprocess. Execution of your
    current process is suspended until the subprocess completes. The
    compiler output is written directly to your terminal. Note that
    process logical names are propagated to the subprocess generated
    to execute the command file.

    By default, the program library manager executes the command file
    generated for the compiler to a subprocess: you must wait for the
    subprocess to terminate before you can enter another command.

 24. 3.35 - /WARNINGS

    /WARNINGS[=(option[,...])]
    /NOWARNINGS

    Controls which categories of informational (I-level) and warning
    (W-level) messages are displayed and where those messages are
    displayed. You can specify any combination of the following
    message options:

       WARNINGS: (destination[,...])
       NOWARNINGS

       WEAK_WARNINGS: (destination[,...])
       NOWEAK_WARNINGS

       SUPPLEMENTAL: (destination[,...])
       NOSUPPLEMENTAL

       COMPILATION_NOTES: (destination[,...])
       NOCOMPILATION_NOTES

       STATUS: (destination[,...])
       NOSTATUS

    The possible values of destination are ALL, NONE, or any
    combination of TERMINAL (terminal device), LISTING (listing
    file), and DIAGNOSTICS (diagnostics file). The message categories
    are summarized as follows (see Developing Ada Programs on OpenVMS
    Systems for more information):

    WARNINGS         W-level: Indicates a definite problem in a legal
                     program-for example, an unknown pragma.
    WEAK_WARNINGS    I-level: Indicates a potential problem in
                     a legal program-for example, a possible
                     CONSTRAINT_ERROR at run time. These are the only
                     kind of I-level messages that are counted in the
                     summary statistics at the end of a compilation.
    SUPPLEMENTAL     I-level: Additional information associated with
                     previous E-level or W-level diagnostics.
    COMPILATION_     I-level: Information about how the compiler
    NOTES            translated a program, such as record layout,
                     parameter-passing mechanisms, or decisions
                     made for the pragmas INLINE, INTERFACE, or the
                     import-subprogram pragmas.
    STATUS           I-level: End of compilation statistics and other
                     messages.

    The defaults are as follows:

    /WARNINGS=(WARN:ALL,WEAK:ALL,SUPP:ALL,COMP:NONE,STAT:LIST)

    If you specify only some of the message categories with the
    /WARNINGS qualifier, the default values for the other categories
    are used.

 24.4 - Examples

    1.ACS> RECOMPILE/SUBMIT/LOG HOTEL
      %I, The following syntax-checked units are obsolete:
      RESERVATIONS
          package specification            4-NOV-1992 20:00:45.97
      HOTEL
          procedure body                   4-NOV-1992 20:05:16.26

      2 obsolete units

      %I, Job HOTEL (queue ALL_BATCH, entry 448) started on FAST_BATCH

      Lists all of the units in the closure of unit HOTEL that
      need to be recompiled, then submits the compiler command file
      generated by the program library manager as a batch job.

    2.ACS> RECOMPILE/CLOSURE/NOCHECK/COMMAND HOTEL

      Creates and retains the compiler command file generated by the
      program library manager. The command file has the file name and
      type HOTEL.COM, by default.

  25 - REENTER

    Enters current references to units that were entered into the
    current program library and subsequently compiled in their
    original libraries.

    Format

      REENTER  unit-name[,...]

 25.1 - Parameters

 unit-name[,...]

    Specifies one or more units to be reentered into the current
    program library. You must express subunit names using selected
    component notation as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 25.2 - Description

    The ACS REENTER command, like the ACS ENTER UNIT command,
    operates on a specified unit's specification plus its body and
    subunits, if any. For each unit specified, the REENTER command
    looks up the unit in its original program library and enters the
    current definition of the unit into the current program library.
    By default, if a specified unit's definition is current, it is
    not reentered.

 25.3 - Command Qualifiers

 25. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the REENTER command displays the unit name of
    each unit before reentering and requests you to confirm whether
    or not the unit should be reentered. If you specify the /CONFIRM
    qualifier, the possible responses are as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 25. 3.2 - /ENTERED

    /ENTERED=library

    Controls whether entered units are selected for reentering. You
    can use the library option to reenter units that were entered
    from a particular library. When you specify the /NOENTERED
    qualifier, only units that have been compiled or copied into
    the current program library are reentered. Note that when you
    specify the /ENTERED qualifier, local units are selected unless
    the /NOLOCAL qualifier is also in effect (the defaults for these
    qualifiers are /LOCAL and /ENTERED).

    By default, all units specified are reentered from all of the
    libraries from which they were originally entered.

 25. 3.3 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the name of a unit is displayed after it has
    been reentered.

    By default, the names of reentered units are not displayed.

 25.4 - Positional Qualifiers

 25. 4.1 - /BODY_ONLY

    /BODY_ONLY

    Reenters only the body of the specified unit.

    When you append the /BODY_ONLY qualifier to the REENTER command
    string, any /SPECIFICATION_ONLY qualifiers that are appended to
    parameters in the command line override the /BODY_ONLY qualifier
    for those particular parameters. You cannot append both the
    /BODY_ONLY qualifier and the /SPECIFICATION_ONLY qualifier to the
    REENTER command string or to the same unit name parameter.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specification, as well as the body, is reentered.

 25. 4.2 - /DATE_CHECK

    /DATE_CHECK (D)
    /NODATE_CHECK

    Controls whether the REENTER command compares the compilation
    date-time in the current program library and original library as
    the criterion for reentering a unit. If you specify the /NODATE_
    CHECK qualifier, the REENTER command will unconditionally reenter
    each unit specified in the command.

    By default, the REENTER command compares the compilation date-
    time and reenters only those references that were obsolete.

 25. 4.3 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Reenters only the specification of the specified unit.

    When you append the /SPECIFICATION_ONLY qualifier to the REENTER
    command string, any /BODY_ONLY qualifiers that are appended to
    parameters in the command line override the /SPECIFICATION_ONLY
    qualifier for those particular parameters. You cannot append both
    the /SPECIFICATION_ONLY qualifier and the /BODY_ONLY qualifier to
    the REENTER command string or to the same unit name parameter.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    body, as well as the specification, is reentered.

 25.5 - Examples

    1.ACS> REENTER/LOG *
      %I, QUEUE_MANAGER entered

      Reenters every unit in the current program library that needs
      to be reentered, in this case the unit QUEUE_MANAGER.

    2.ACS> REENTER/NODATE_CHECK STACKS

      Unconditionally reenters the unit STACKS into the current
      program library, even if references to STACKS are current.

  26 - REORGANIZE

    Optimizes the organization of the current Compaq Ada program library
    (or the specified library).

                                   NOTE

       You can use this command only on a library to which you have
       exclusive access.

    Format

      REORGANIZE  [directory-spec]

 26.1 - Parameters

 [directory-spec]

    Specifies the Compaq Ada program library to be reorganized. No
    wildcard characters are allowed in the directory specification.

    If you do not specify a program library, the ACS REORGANIZE
    command reorganizes the current program library.

 26.2 - Description

    The ACS REORGANIZE command optimizes the organization of the
    current program library or the specified library. You can use
    this command to improve the performance of any library; it is
    especially useful for improving the performance of libraries that
    have have been updated frequently.

    To use the REORGANIZE command, you must have exclusive read-write
    access to the program library you are reorganizing. If another
    user is accessing the library when you enter the REORGANIZE
    command, the command will fail. One way to obtain exclusive
    access is to use the ACS SET LIBRARY/EXCLUSIVE command (note that
    this command will also fail if you cannot gain exclusive access
    when you enter it). You must enter the SET LIBRARY/EXCLUSIVE
    command interactively for it to have an effect.

    Note that the SET LIBRARY/EXCLUSIVE command is not permitted for
    libraries across DECnet.

 26.3 - Command Qualifiers

 26. 3.1 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether a successful library reorganization is reported.

    By default, a successful library reorganization is reported.

 26. 3.2 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the REORGANIZE command output be written to the
    file specified rather than to SYS$OUTPUT. Any diagnostic messages
    are written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the REORGANIZE command output is written to
    SYS$OUTPUT.

 26.4 - Example

  ACS> REORGANIZE
  %I, USER:[JONES.HOTEL.ADALIB] reorganized

      Reorganizes the current program library (the library defined by
      the last ACS SET LIBRARY command). To determine when a library
      was last reorganized, enter the ACS SHOW LIBRARY/FULL command
      for that library.

  27 - SET

 27.1 - LIBRARY

    Defines a Compaq Ada program library or program sublibrary as the
    current program library.

    Format

      SET LIBRARY  directory-spec           (Default)

      SET LIBRARY/PATH  lib-term[,...]

 27. 1.1 - Parameters

 directory-spec

    You use this command parameter when you do not also specify the
    /PATH qualifier.

    This parameter specifies the program library or program
    sublibrary that defines the current program library. The
    directory you specify must be a valid Compaq Ada program library
    or program sublibrary, previously created with the CREATE LIBRARY
    or CREATE SUBLIBRARY command, respectively.

 lib-term

    You use this command parameter when you specify the /PATH
    qualifier.

    This parameter specifies one or more valid library terms (lib-
    term) that are to be defined as the current path. You can specify
    lib-term as follows:

    o  The directory specification of Compaq Ada library or sublibrary.

    o  The default path of a Compaq Ada library. To specify the default
       path, you enter the name of a Compaq Ada library preceded by an
       at sign(@).

    o  A file specification preceded by an at sign (@).

    For more information on library search paths, enter HELP ACS
    Library_Search_Paths.

 27. 1.2 - Description

    The ACS SET LIBRARY command defines the current program library.
    Compaq Ada units are compiled in the context of the current program
    library. The current program library is the target library for
    compiler output and for ACS commands in general.

    The SET LIBRARY command performs the following steps:

    1. Verifies that the specified directory is a valid Compaq Ada
       program library or sublibrary. If the directory is invalid,
       an error message is issued.

    2. Assigns the directory specification to the process logical
       name ADA$LIB. The program library manager and the compiler
       use that logical name to maintain the current program library
       context when performing various operations.

       This assignment takes place even if the specified directory
       is invalid. If you specify an invalid library, the SET LIBRARY
       command sets the library to whatever you specified (to prevent
       you from incorrectly modifying the wrong library).

    You use the second form (ACS SET LIBRARY/PATH) to explicitly
    specify the current path. When you use this form, the first
    library in the specified path is defined as the current program
    library. For more information on libraries and library search
    paths, enter HELP ACS Libraries and HELP ACS Library_Search_
    Paths.

    The SET LIBRARY command does not affect the definition of the
    current default directory. The DCL SET DEFAULT command does not
    affect the definition of the current program library.

    The /EXCLUSIVE and /READ_ONLY qualifiers are used for temporarily
    controlling access to program libraries in a shared library
    environment.

    When using the SET LIBRARY command with the /EXCLUSIVE or
    /READ_ONLY qualifier values, you need to enter the command
    interactively (not as a DCL one-line command). For example:

    ACS> SET LIBRARY/EXCLUSIVE [JONES.HOTEL.ADALIB]

    When you use the /EXCLUSIVE or /READ_ONLY qualifier, the
    qualifier remains in effect until you exit from the program
    library manager or until another SET LIBRARY command is executed.

 27. 1.3 - Command Qualifiers

 27. 1. 3.1 - /EXCLUSIVE

    /EXCLUSIVE
    /NOEXCLUSIVE (D)

    Controls whether the specified program library is opened for
    exclusive or shared (/NOEXCLUSIVE) access when the SET LIBRARY
    command is executed. Exclusive access to a compilation library
    over DECnet is not permitted.

    If you execute a SET LIBRARY command without the /EXCLUSIVE
    qualifier or with the /NOEXCLUSIVE qualifier, then other
    processes are not denied access to the specified program library.

    If you try to execute a SET LIBRARY/EXCLUSIVE command while the
    specified program library is being accessed by another process,
    the command will fail.

    After executing a SET LIBRARY/EXCLUSIVE command, you have
    exclusive access to the specified program library until you exit
    from the program library manager or until another SET LIBRARY
    command is executed. Other processes are denied access to the
    program library until you exit from the program library manager
    or another SET LIBRARY command is executed.

    By default, the SET LIBRARY command provides for shared (
    /NOEXCLUSIVE) access to the specified program library.

 27. 1. 3.2 - /PATH

    /PATH
    /NOPATH (D)

    Allows you to define a current path that differs from the default
    path associated with the current program library.

    You use this qualifier to specify the second form of the ACS SET
    LIBRARY command. See the description section of this command for
    more information.

 27. 1. 3.3 - /LOG

    /LOG (D)
    /NOLOG

    Controls whether the directory specification of the current
    program library being defined is displayed.

    By default, the directory specification is displayed.

 27. 1. 3.4 - /READ_ONLY

    /READ_ONLY
    /NOREAD_ONLY (D)

    Controls whether the program library access is restricted to
    read-only access.

    When you execute the SET LIBRARY/READ_ONLY command, the program
    library is opened only for reading for the duration of the ACS
    session. Therefore, you can only perform operations that do not
    modify the library: for example, ACS CHECK, DIRECTORY, EXPORT,
    EXTRACT SOURCE, LINK, SHOW LIBRARY, or SHOW PROGRAM. You can also
    copy and enter units from (not to) the library.

    When you execute the SET LIBRARY/NOREAD_ONLY command, the program
    library is opened for reading, as well, but any subsequent
    command can try to open the library for a different kind of
    access.

    By default, the /NOREAD_ONLY qualifier is in effect.

 27. 1. 3.5 - /VERIFY

    /VERIFY (D)
    /NOVERIFY

    Controls whether the current path is evaluated and verified when
    an ACS SET LIBRARY command is entered.

    By default, the current path is evaluated and verified each time
    you enter an ACS SET LIBRARY command.

 27. 1.4 - Examples

    1.ACS> SET LIBRARY [JONES.HOTEL.ADALIB]
      %I, Current program library is USER:[JONES.HOTEL.ADALIB]

      Defines the program library [JONES.HOTEL.ADALIB], on the
      default device, as the current program library. The library
      is opened for both read and write access.

    2.ACS> SET LIBRARY/PATH [JONES.HOTEL.ADALIB],@[SMITH.ADALIB]

      Defines the program library [JONES.HOTEL.ADALIB] and
      establishes the current path. Suppose the default path of
      [SMITH.ADALIB] is as follows:

        [SMITH.ADALIB]
        [PROJECT.ADALIB]

      In this case, the current path evaluates to the following:

        [JONES.HOTEL.ADALIB]
        [SMITH.ADALIB]
        [PROJECT.ADALIB]

    3.ACS> SET LIBRARY/READ_ONLY DISK:[SMITH.SHARE.ADALIB]
      %I, Current program library is DISK:[SMITH.SHARE.ADALIB]

      Defines the program library DISK:[SMITH.SHARE.ADALIB] as the
      current program library, with READ_ONLY access to the library.

 27.2 - PRAGMA

    Redefines specified values of the program library characteristics
    FLOAT_REPRESENTATION, LONG_FLOAT, MEMORY_SIZE, and SYSTEM_NAME.

    Note that use of this command may make units obsolete that depend
    on the previous value of a characteristic.

    Format

      SET PRAGMA

 27. 2.1 - Description

    By default, a program library or sublibrary is created with the
    following system characteristics:

    o  FLOAT_REPRESENTATION=VAX_FLOAT

    o  LONG_FLOAT = G_FLOAT

    o  MEMORY_SIZE = 2147483647

    o  SYSTEM_NAME = VAX_VMS or OpenVMS_AXP

    These may be changed by compiling a unit that contains the
    pragmas FLOAT_REPRESENTATION, LONG_FLOAT, MEMORY_SIZE, or SYSTEM_
    NAME.

    The ACS SET PRAGMA command allows you to change the current
    program library's characteristics without having to compile a
    unit consisting of one of those pragmas.

    The SET PRAGMA command may make units that depend on these
    characteristics obsolete. You can use the ACS RECOMPILE command
    to make obsolete units current.

 27. 2.2 - Command Qualifiers

 27. 2. 2.1 - /FLOAT_REPRESENTATION

    /FLOAT_REPRESENTATION=VAX_FLOAT (D)

    Redefines the value of the program library characteristic FLOAT_
    REPRESENTATION. The possible values are either VAX_FLOAT or IEEE_
    FLOAT (for Alpha systems only).

    By default, the current value of FLOAT_REPRESENTATION is
    unchanged.

 27. 2. 2.2 - /LONG_FLOAT

    /LONG_FLOAT=option

    Redefines the value of the program library characteristic LONG_
    FLOAT. The possible values are D_FLOAT and G_FLOAT.

    By default, the current value of LONG_FLOAT is unchanged.

 27. 2. 2.3 - /MEMORY_SIZE

    /MEMORY_SIZE=n

    Redefines the value of the program library characteristic MEMORY_
    SIZE
    to n.

    By default, the current value of MEMORY_SIZE is unchanged.

 27. 2. 2.4 - /SYSTEM_NAME

    /SYSTEM_NAME=system

    Redefines the value of the program library characteristic SYSTEM_
    NAME to a particular target operating system. The possible system
    values are VAX_VMS and VAXELN.

    By default, the current value of SYSTEM_NAME is unchanged.

 27. 2.3 - Example

  ACS> SET PRAGMA/LONG_FLOAT=D_FLOAT

      Redefines the current program library characteristic LONG_FLOAT
      to the value D_FLOAT.

 27.3 - SOURCE

    Defines a source-file-directory search list for the ACS COMPILE
    command.

    Format

      SET SOURCE  directory-spec[,...]

 27. 3.1 - Parameters

 directory-spec[,...]

    Specifies one or more OpenVMS directories where the ACS COMPILE
    command should search for source files.

 27. 3.2 - Description

    The ACS COMPILE command searches the directories in the order
    specified in the ACS SET SOURCE command.

    The search order takes precedence over the version number or
    revision date-time if different versions of a source file exist
    in two or more directories. Within any one directory, the version
    of a particular file that has the highest number is considered
    for compilation.

    The search list specified by SET SOURCE remains in effect until
    another SET SOURCE command is executed, or until the process logs
    out.

    If no SET SOURCE command is executed, the default search order is
    as follows:

    1. SYS$DISK:[] (the current default directory)

    2. ;0 (the directory that contained the file when it was last
       compiled), or node::;0 (if the file specification of the
       source file being compiled contains a node name)

 27. 3.3 - Examples

    1.ACS> SET SOURCE SYS$DISK:[],USER:[JONES.HOTEL],;0

      Defines the source-file search list to be: first, the current
      default directory (SYS$DISK:[]); second, the directory
      USER:[JONES.HOTEL]; third, the directory where the particular
      source file was last compiled (;0).

    2.ACS> SET SOURCE SYS$DISK:[],CMS$LIB

      Defines the source-file search list to be: first, the current
      default directory (SYS$DISK:[]); second the current CMS
      library, as defined by the most recent CMS SET LIBRARY command,
      which defines the logical name CMS$LIB.

  28 - SHOW

 28.1 - LIBRARY

    Displays information about one or more Compaq Ada program libraries,
    including directory specifications, library characteristics, and
    units defined in each library.

    Format

      SHOW LIBRARY  [directory-spec[,...]]

 28. 1.1 - Parameters

 [directory-spec[,...]]

    Specifies one or more Compaq Ada program libraries for display. No
    wildcard characters are allowed in the directory specifications.

    If you do not specify a program library, the SHOW LIBRARY command
    displays information about the current program library.

 28. 1.2 - Description

    The ACS SHOW LIBRARY command displays various information about
    one or more specified program libraries, including the full
    directory specifications, library characteristics, and units
    defined in each program library.

    The output of the SHOW LIBRARY command depends on whether the
    /UNITS qualifier is used and, in addition, whether the /BRIEF or
    /FULL formatting qualifier is used.

    If you do not specify a qualifier, the SHOW LIBRARY command
    displays the directory specifications of the program libraries
    specified.

 28. 1.3 - Command Qualifiers

 28. 1. 3.1 - /BODY_ONLY

    /BODY_ONLY

    Displays only the bodies of the specified units when you use the
    /UNITS qualifier.

    You cannot append both the /BODY_ONLY qualifier and the
    /SPECIFICATION_ONLY qualifier to the SHOW LIBRARY/UNITS command
    string.

    By default, if the /BODY_ONLY qualifier is omitted, the
    specifications, as well as the bodies, are displayed.

 28. 1. 3.2 - /BRIEF

    /BRIEF

    Displays the program library directory specifications.

    If used with the /UNITS qualifier, also lists the names of all
    units contained in each program library.

 28. 1. 3.3 - /ENTERED

    /ENTERED[=library] (D)
    /NOENTERED

    Controls whether entered units are displayed when you use the
    /UNITS qualifier. You can use the library option to display units
    that were entered from a particular library. When you specify
    the /NOENTERED qualifier, only units that have been compiled
    or copied into the current program library are displayed. Note
    that when you specify the /ENTERED qualifier, local units are
    displayed unless the /NOLOCAL qualifier is also in effect (the
    defaults for these qualifiers are /LOCAL and /ENTERED).

    By default, all units, as well as entered units are displayed
    when you use the /UNITS qualifier.

 28. 1. 3.4 - /FULL

    /FULL

    Displays, for each program library specified, the directory
    specifications, unevaluated and evaluated forms of the current
    and default paths, and the values of the program library
    characteristics FLOAT_REPRESENTATION, LONG_FLOAT, MEMORY_SIZE,
    and SYSTEM_NAME. For more information on paths, enter HELP ACS
    Library_Search_Paths.

    If used with the /UNITS qualifier, also displays, for each
    program library specified, each unit's name, kind, compilation
    date-time, and the file specifications of the files associated
    with each unit.

 28. 1. 3.5 - /LOCAL

    /LOCAL (D)
    /NOLOCAL

    Controls whether local units (those units that were added to the
    library by a compilation or a COPY UNIT command) are displayed
    when you use the /UNITS qualifier. Note that when you specify
    the /LOCAL qualifier, entered units are displayed unless the
    /NOENTERED qualifier is also in effect (the defaults for these
    qualifiers are /LOCAL and /ENTERED).

    By default, all units specified, including local units, are
    displayed.

 28. 1. 3.6 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the SHOW LIBRARY command output be written to the
    file specified rather than to SYS$OUTPUT. Any diagnostic messages
    are written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the SHOW LIBRARY command output is written to
    SYS$OUTPUT.

 28. 1. 3.7 - /SPECIFICATION_ONLY

    /SPECIFICATION_ONLY

    Displays only the specifications of the specified units when you
    use the /UNITS qualifier.

    You cannot append both the /SPECIFICATION_ONLY qualifier and the
    /BODY_ONLY qualifier to the SHOW LIBRARY/UNITS command string.

    By default, if the /SPECIFICATION_ONLY qualifier is omitted, the
    bodies, as well as the specifications, are displayed.

 28. 1. 3.8 - /UNITS

    /UNITS

    Lists each unit that is defined in the specified program
    libraries. The level of information displayed depends on whether
    the /BRIEF or /FULL qualifier is also used. The unit information
    displayed is identical to that displayed by the DIRECTORY
    command.

 28. 1.4 - Examples

    1.ACS> SHOW LIBRARY
      %I, Current program library is USER:[JONES.HOTEL.ADALIB]

      Identifies the current program library.

    2.ACS> SHOW LIBRARY/FULL
      Current program library DISK:[LIB2]

      Current path in its original form:

          DISK:[LIB2]
          @DISK:[LIB1]

      Current path evaluates to:

          DISK:[LIB2]
          DISK:[LIB1]
          DISK:[LIB0]

      Program library DISK:[LIB2]

      Created:           4-NOV-1992 16:33:30.74, by DEC Ada V3.0
      Last reorganized:  4-NOV-1992 19:47:36.13

      Default path in its original form:
          DISK:[LIB2]
          @DISK:[LIB1]

      which evaluates to:

          DISK:[LIB2]
          DISK:[LIB1]
          DISK:[LIB0]

      Pragmas that affect STANDARD and SYSTEM:

          pragma FLOAT_REPRESENTATION(VAX_FLOAT)
          pragma LONG_FLOAT(G_FLOAT)
          pragma MEMORY_SIZE(2147483647)
          pragma SYSTEM_NAME(VAX_VMS)

      Identifies DISK:[LIB2] as the current program library with a
      current path of DISK:[LIB2],@DISK:[LIB1]. This path evaluates
      to DISK:[LIB2], DISK:[LIB1], DISK:[LIB0]. This example also
      shows the pragmas that affect STANDARD and SYSTEM.

 28.2 - PROGRAM

    Displays information about the execution closure of one or more
    units in the current program library.

    Format

      SHOW PROGRAM  unit-name[,...]

 28. 2.1 - Parameters

 unit-name[,...]

    Specifies one or more units, in the current program library,
    about whose execution closure various information is to be shown.
    You must express subunit names using selected component notation
    as follows:

    ancestor-unit-name{.parent-unit-name}.subunit-name

    The unit names may include percent signs (%)  and asterisks (*)
    as wildcard characters. (See the OpenVMS User's Manual for more
    information on wildcard characters.)

 28. 2.2 - Description

    The ACS SHOW PROGRAM command displays information about all of
    the units in the execution closure of the specified units.

    Units are listed by name in alphabetical order. Subunit names are
    shown using selected component notation.

    The output of the SHOW PROGRAM command depends on whether the
    /BRIEF, /FULL, or no formatting qualifier is used.

    If you do not specify a qualifier, the SHOW PROGRAM command
    displays a level of information that is part way between that
    displayed with the /BRIEF and /FULL qualifiers.

    If you do not specify a qualifier, the SHOW PROGRAM command
    displays the information provided by the /BRIEF qualifier plus
    the following information for each unit in the closure:

    o  The list of that unit

    o  The duration specified with the pragma TIME_SLICE

    o  The names of units mentioned in one or more ELABORATE pragmas
       for that unit

    o  The names of units that the unit has established a dependence
       on as a result of subprogram inline expansion

    o  The names of units that the unit has established a dependence
       on as a result of generic inline expansion

 28. 2.3 - Command Qualifiers

 28. 2. 3.1 - /BRIEF

    /BRIEF

    Displays the following information:

    o  The directory specification of the current program library.

    o  The values of the program library characteristics FLOAT_
       REPRESENTATION, LONG_FLOAT, MEMORY_SIZE, and SYSTEM_NAME.

    o  For each unit in the closure of the specified units: the unit
       name; the kind of unit (for example, procedure body); the date
       and time of the last compilation; and the file specification
       of the source file, or (if the unit was entered into the
       current program library) the directory specification of the
       other library.

 28. 2. 3.2 - /FULL

    /FULL

    Displays the information provided by the SHOW PROGRAM command
    when used with no qualifier plus, for each unit in the closure,
    the file specifications of the associated files.

 28. 2. 3.3 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the SHOW PROGRAM command output be written to the
    file specified rather than to SYS$OUTPUT. Any diagnostic messages
    are written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. The
    default file type is .LIS. If you specify a file type but
    omit the file name, the default file name is ACS. No wildcard
    characters are allowed in the file specification.

    By default, the SHOW PROGRAM command output is written to
    SYS$OUTPUT.

 28. 2. 3.4 - /OBSOLETE

    /OBSOLETE=(option[,...])
    /NOOBSOLETE (D)

    Allows you to ask what the effect on a program or a set of units
    would be if some specific units were obsolete.

    When the execution closure of the units in the parameter
    list of the command is performed, the units named with the
    UNIT,SPECIFICATION, and BODY keywords are assumed to be obsolete
    as described below. If one of those units is not in the execution
    closure of the units named in the command's parameter list, it is
    not added to the closure.

    Unit names are specified with the UNIT, SPECIFICATION, and BODY
    keywords as follows:

    UNIT:(unit_           The specifications and bodies of units
    name[,...])           specified with the UNIT keyword are assumed
                          to be obsolete.
    SPECIFICATION:(unit_  Only the specifications specified by the
    name[,...])           SPECIFICATION keyword are assumed to be
                          obsolete.
    BODY:(unit_           Only the bodies of units specified with the
    name[,...])           BODY keyword are assumed to be obsolete.

    You must specify at least one of these keywords. Unit names can
    contain wildcard characters.

    By default, units are identified as obsolete based on the current
    state of the program library.

 28. 2. 3.5 - /PROCESSING_LEVEL

    /PROCESSING_LEVEL[=option]

    Determines the kind of obsolete units identified. Obsolete units
    are identified based on the level of processing applied to the
    unit: syntax checking, design checking, or full compilation. You
    can request the following options:

    SYNTAX         Determines whether a unit is obsolete because it
                   has been syntax-checked only. Because all units
                   in a program library are at least syntax-checked,
                   and because syntax-checking does not require any
                   particular order of compilation, generally accepts
                   all units as being current.
    DESIGN         Determines whether a unit is obsolete because
                   it has been design-checked only. Accepts design-
                   checked units and fully compiled units as being
                   current, unless they are otherwise obsolete (for
                   example, they depend on units that have been
                   syntax-checked only, or they depend on other
                   obsolete units).
    FULL           Determines three kinds of obsolete units: units
                   that are obsolete because they have been syntax-
                   checked only, units that have been design-checked,
                   and units that are obsolete as a result of the
                   compilation of the units they depend on. Units
                   that depend on obsolete units are also considered
                   to be obsolete.

    By default, all units are fully checked (/PROCESSING_LEVEL=FULL),
    and all obsolete units are identified.

 28. 2. 3.6 - /SMART_RECOMPILATION

    /SMART_RECOMPILATION (D)
    /NOSMART_RECOMPILATION

    Controls whether smart recompilation information, which is stored
    in the program library, is used to identify obsolete units.

    If smart recompilation is not in effect, units are identified
    as obsolete and in need of recompilation based on their time of
    compilation only. (See Developing Ada Programs on OpenVMS Systems
    for more information.)

 28. 2.4 - Example

  ACS> SHOW PROGRAM ADA_CALLER

  ADA_CALLER
  ADA_CALLER
  4-NOV-1992 08:57:12.48

  Program library USER:[TEST]

  Created:           1-NOV-1992 10:03:53.93, by DEC Ada V3.0
  Last reorganized: <No reorganization date>

  Default path in its original form:

      USER:[TEST]

  Default path evaluates to:

      USER:[TEST]

  Pragmas that affect STANDARD and SYSTEM:

      pragma FLOAT_REPRESENTATION(VAX_FLOAT)
      pragma LONG_FLOAT(G_FLOAT)
      pragma MEMORY_SIZE(2147483647)
      pragma SYSTEM_NAME(VAX_VMS)

  The closure of the specified units is:

  ADA_CALLER
      Procedure body
   Compiled: 4-NOV-1992 08:56:42.94
   Source file: 31-JUL-1992 16:23:43.39  USER:[TEST]ADA_CALLER.ADA;1
   With list: SQR
     INTEGER_TEXT_IO

  INTEGER_TEXT_IO
      Package instantiation
   Compiled:  2-NOV-1992 01:47:11.30
   Entered from: ADA$PREDEFINED_ROOT:[ADALIB]
   With list: TEXT_IO
   Inline_Generic: TEXT_IO

  IO_EXCEPTIONS
      Package specification
   Compiled:  2-NOV-1992 01:45:42.02
   Entered from: ADA$PREDEFINED_ROOT:[ADALIB]

  SQR
      Function specification
   Compiled: 4-NOV-1992 08:51:26.95
   Source file:  7-NOV-1988 17:06:41.30  USER:[TEST]SQR_.ADA;2
      Foreign function body
          Object file:    4-NOV-1992 08:51:26.95  SQR.OBJ;1

  SYSTEM
      Builtin package

  TEXT_IO
      Package specification
   Compiled:  2-NOV-1992 01:46:43.02
   Entered from: ADA$PREDEFINED_ROOT:[ADALIB]
   With list: IO_EXCEPTIONS

      Package body
   Compiled:  2-NOV-1992 01:46:56.16
   Entered from: ADA$PREDEFINED_ROOT:[ADALIB]
   With list: SYSTEM

      Displays information about the closure of the unit ADA_CALLER,
      which also includes the unit SQR and a number of Compaq Ada
      predefined units.

 28.3 - SOURCE

    Displays the source-file-directory search list used by the ACS
    COMPILE command.

    Format

      SHOW SOURCE

 28. 3.1 - Description

    The ACS SHOW SOURCE command displays the directory list specified
    in the last ACS SET SOURCE command. See the description of the
    SET SOURCE command.

 28. 3.2 - Example

  ACS> SHOW SOURCE
  %I, Current source search list (ADA$SOURCE) is
          USER:[JONES.HOTEL]
          DISK:[SMITH.SHARE]

      Shows that the directories to be searched by the ACS COMPILE
      command for external source files are first the directory
      USER:[JONES.HOTEL] and then the directory DISK:[SMITH.SHARE].

 28.4 - VERSION

    Displays the version of Compaq Ada that is installed on your system.

    Format

      SHOW VERSION

 28. 4.1 - Description

    The ACS SHOW VERSION command displays a string that gives the
    version number of Compaq Ada (compiler and program library manager)
    that is installed on your system.

 28. 4.2 - Example

  ACS> SHOW VERSION
  DEC Ada V3.0-0

      Shows that Version 3.0 of DEC Ada is currently running on the
      user's system.

  29 - SPAWN

    Creates a subprocess of the current process and suspends
    execution of the current process.

    Format

      SPAWN  [DCL-command]

 29.1 - Parameters

 [DCL-command]

    Specifies an optional DCL command.

 29.2 - Description

    The ACS SPAWN command creates a subprocess of the current process
    and suspends execution of the current process.

    If you specify a DCL command, that command is executed in a
    subprocess, and control is returned to the program library
    manager after the command is executed.

    If you do not specify a DCL command, an interactive subprocess
    is created allowing you to execute a whole series of DCL commands
    interactively. You can return to the program library manager by
    logging out of the subprocess (by entering a DCL LOGOUT command)
    or entering a DCL ATTACH command. See the description of the DCL
    ATTACH command in the OpenVMS DCL Dictionary.

 29.3 - Example

  ACS> SPAWN MAIL       ! from process JONES
  MAIL>
   .
   .
   .
  MAIL> ATTACH JONES
  %I, Control returned to process JONES
  ACS>
   .
   .
   .
  ACS> ATTACH JONES_1
  MAIL>

      The ACS SPAWN MAIL command, entered from process JONES, invokes
      the VMS Mail Utility in a subprocess named JONES_1. The DCL
      ATTACH command entered from MAIL (subprocess JONES_1) returns
      control back to process JONES. The ACS ATTACH command entered
      interactively from the program library manager (process JONES)
      switches control back to subprocess JONES_1.

  30 - VERIFY

    Performs a series of consistency checks on the current program
    library (or the specified library) to determine whether the
    library structure and library files are in valid form. The ACS
    VERIFY command optionally corrects some of the inconsistencies
    detected.

    Format

      VERIFY  [directory-spec]

 30.1 - Parameters

 directory-spec

    Specifies the Compaq Ada program library to be verified. No wildcard
    characters are allowed in the directory specification.

    If you do not specify a program library, the ACS VERIFY command
    verifies the current program library.

 30.2 - Description

    The ACS VERIFY command checks the following items (unless
    otherwise stated, only files in the specified program library
    are checked):

    o  The format of the library index file.

    o  Whether all files cataloged in the library index file exist
       in the program library and are accessible-that is, all object
       (.OBJ), compilation unit (.ACU), and copied source (.ADC)
       files. In the case of entered units, the VERIFY command checks
       whether the files exist in the library from which they were
       entered.

    o  Whether all .OBJ, .ACU, and .ADC files that exist in the
       program library directory are cataloged in the library index
       file.

    o  Whether temporary files used by the REORGANIZE command are in
       the program library.

    o  The format of the compilation unit files (.ACU).

    o  Whether the protection code of cataloged .OBJ, .ACU, and .ADC
       files is consistent with that of the library index file (see
       Developing Ada Programs on OpenVMS Systems.

    If inconsistencies are found, the VERIFY command issues error
    messages indicating the units or files that are erroneous.

    The kinds of inconsistencies detected by the VERIFY command are
    typically not detected by the ACS CHECK command, which is used to
    determine whether any units in a closure are missing or obsolete.

    You can use the /REPAIR qualifier to correct some of the
    inconsistencies reported by the VERIFY command. When the /REPAIR
    qualifier is used, the VERIFY command performs the same checks
    as when the qualifier is not used, but corrective action is
    taken only on the specified program library or, by default, on
    the current program library. No corrective action is taken for
    entered units.

 30.3 - Command Qualifiers

 30. 3.1 - /CONFIRM

    /CONFIRM
    /NOCONFIRM (D)

    Controls whether the VERIFY/REPAIR command asks for confirmation
    before deleting unit index entries from the library index file,
    or deleting uncataloged files from the program library directory.
    If you specify the /CONFIRM qualifier, the possible responses are
    as follows:

    o  Affirmative responses are YES, TRUE, and 1.

    o  Negative responses are NO, FALSE, 0, and the RETURN key.

    o  QUIT or Ctrl/Z indicates that you want to stop processing the
       command at that point.

    o  ALL indicates that you want to continue processing the command
       without any further prompts.

    You can use any combination of upper- and lowercase letters for
    word responses. Word responses can be abbreviated to one or more
    letters (for example, Y, YE, or YES). If you type a response
    other than one of those in the list, the prompt is reissued.

    By default, no confirmation is requested.

 30. 3.2 - /LOG

    /LOG
    /NOLOG (D)

    Controls whether the name of a unit or the specification of a
    file is displayed as that unit or file is verified.

    By default, the names of units or files being verified are not
    displayed.

 30. 3.3 - /OUTPUT

    /OUTPUT=file-spec

    Requests that the VERIFY command output be written to the file
    specified rather than to SYS$OUTPUT. Any diagnostic messages are
    written to both SYS$OUTPUT and the file.

    The default directory is the current default directory. If you
    specify a file type but omit the file name, the default file name
    is ACS. The default file type is .LIS. No wildcard characters are
    allowed in the file specification.

    By default, the VERIFY command output is written to SYS$OUTPUT.

 30. 3.4 - /REPAIR

    /REPAIR
    /NOREPAIR (D)

    Controls whether the VERIFY command repairs some of the
    inconsistencies that it has detected.

    To use the /REPAIR qualifier, you must have exclusive read-write
    access to the program library you are repairing. If another
    user is accessing the library when you enter the VERIFY/REPAIR
    command, the command will fail. One way to obtain exclusive
    access is to use the ACS SET LIBRARY/EXCLUSIVE command (note that
    this command will also fail if you cannot gain exclusive access
    when you enter it). You must enter the SET LIBRARY/EXCLUSIVE
    command interactively for it to have an effect.

    Note that the SET LIBRARY/EXCLUSIVE command is not permitted for
    program libraries over DECnet.

    The VERIFY/REPAIR command takes the following actions:

    o  Identifies any files in the program library directory that
       are not cataloged in the library index file. Deletes any
       uncataloged files with a file type of .OBJ, .ACU, or .ADC.
       Deletes any temporary files remaining from an interrupted ACS
       REORGANIZE command. Deletes any other uncataloged files if
       you have also specified the /CONFIRM qualifier and given an
       affirmative response.

    o  As necessary, changes the file protection on .OBJ, .ACU, and
       .ADC files to be consistent with the protection code for the
       library index file.

    o  Marks as obsolete any unit whose .OBJ or .ACU file is
       inaccessible. A later VERIFY/REPAIR command will reset any
       such marks if the associated files are again available.

    o  Removes references to inaccessible copied source files (.ADC)
       from the library index file.

    o  Deletes any index entry with an illegal format from the
       library index file.

    By default, the VERIFY command only checks for inconsistencies
    and takes no corrective action.

 30.4 - Examples

    1.ACS> VERIFY
      %I, USER:[JONES.HOTEL.ADALIB] verified

      Checks the current program library. No inconsistencies have
      been detected.

    2.ACS> SET LIBRARY/EXCLUSIVE [PROJ.ADALIB]
      %I, Current program library is USER:[PROJ.ADALIB]
      ACS> VERIFY/REPAIR/LOG
       .
       .
       .
      %I, STARLET verified
      %I, STR verified
      %E, Inconsistent file protection [PROJ.ADALIB]SQR.OBJ;1
      %W, SQR verified and repaired
       .
       .
       .
      %E, Error opening [PROJ.ADALIB]TEST_STACKS.OBJ;2 as input
      -E, file not found
      %W, TEST_STACKS verified and repaired
       .
       .
       .
      %I, Units with inaccessible files are obsolete. If repair
          (VERIFY/REPAIR) is not possible, then recompilation of
          these units is necessary; after entering a VERIFY/REPAIR
          command, the CHECK command will show any obsolete units
      %W, USER:[PROJ.ADALIB] verified and repaired
      ACS> RECOMPILE TEST_STACKS

      Defines the program library [PROJ.ADALIB] as the current
      program library, with exclusive read-write access. This step
      is necessary before using the VERIFY/REPAIR command.

      The VERIFY/REPAIR command then notes that the protection of
      file SQR.OBJ is inconsistent with that of the library index
      file and changes the protection to make it consistent; marks
      the unit TEST_STACKS as obsolete, because its .OBJ file (TEST_
      STACKS.OBJ;2) is inaccessible; and issues a summary message
      that the program library has been verified and repaired.

      The RECOMPILE command then makes the obsolete unit, TEST_
      STACKS, current.
  Close     Help