Compaq Fortran 77 Release Notes for OpenVMS VAX Systems
*HyperReader
|
2.8 New and Changed Features
This section provides highlights of new and changed features
in Compaq Fortran 77
2.8.1 New Command Qualifiers and Qualifier Parameters
Several new qualifiers and qualifier parameters to the
FORTRAN command have been implemented to invoke
and control the new features mentioned in the previous
section. In addition, the /CONTINUATIONS and /HPO qual-
ifiers are now ignored; see Sections 2.8.1.2and 2.8.1.3for
more details.
The new qualifiers and qualifier parameters are listed be-
low. See theDEC Fortran User Manual for OpenVMS VAX
Systems for complete details on qualifier syntax and mean-
ings.
* /ASSUME=(ACCURACY_SENSITIVE,DUMMY_ALIASES)
Specifies assumptions the compiler is allowed to make
when considering potential optimizations.
* /BLAS=(INLINE,MAPPED)
Controls recognition of and code generation for routines
from the Basic Linear Algebra Subroutines Level 1 group.
* /CHECK=(ALIGNMENT,ASSERTIONS)
Controls compiler generated code for recovery from vec-
tor alignment faults and checking of ASSERT conditions.
* /DIRECTIVES=(DEPENDENCE)
Controls recognition of dependence directives.
* /ERROR_LIMIT=n
Controls whether compilation terminates after a specified
number of errors has been found.
* /MATH_LIBRARY=(ACCURATE | FAST,V5)
Controls selection of vector math library routines and
whether or not the compiler restricts use of math library
routines to those supplied by OpenVMS V5.x. (See section
Section 2.8.1.4for more information on the V5 keyword.)
* /OPTIMIZE=LEVEL=n
Specifies the optimization level.
* /PARALLEL=(AUTOMATIC,MANUAL)
Controls whether the compiler peforms automatic de-
composition of DO loops for parallel processing and
/or enables recognition of the manual decomposition
directives from VAX FORTRAN V5.
* /RECURSIVE
Controls generation of reentrant (recursive) code and
data.
* /SHOW=(DATA_DEPENDENCES,LOOPS)
Controls presentation of data dependences in the listing
and diagnostics file and loop structure in the listing.
* /STANDARD=MIA
Controls whether the compiler performs standards com-
pliance against the NTT MIA standard.
* /SYNCHRONOUS_EXCEPTIONS
Controls when vector arithmetic exceptions are reported.
* /TERMINAL=STATISTICS
Specifies display of the module name and combined code
and data bytes as each module is compiled.
* /VECTOR
Controls generation of VAX vector processor code.
* /WARNINGS=(ALIGNMENT,Alpha,INLINE,TRUNCATED_SOURCE)
Specifies whether the compiler provides warnings of:
unaligned variables in COMMON or EQUIVALENCE
statements, uses of language features not supported by
Digital Fortran on Alpha platforms, references to BLAS
routines which were not expanded inline, source lines
longer than the statement field width.
2.8.1.1 /WARNINGS=[NO]ALIGNMENT Default Changed
The default for /WARNINGS=[NO]ALIGNMENT has been
changed to NOALIGNMENT so as to reduce unneces-
sary messages when vector processing is not being used.
/WARNINGS=ALIGNMENT is recommended for com-
pilations which declare data which is to be used by vector
instructions, for applications which are to be ported to the
Alpha environment, and for users who wish to eliminate
unaligned data for maximum scalar performance on VAX
systems.
2.8.1.2 /CONTINUATIONS Qualifier Obsolete
In previous versions of VAX FORTRAN, the /CONTINUATIONS
compile command qualifier was used to specify the minimum
number of continuation lines which the compiler would ac-
cept. The default was 19 and the maximum was 99. This
qualifier is now obsolete and is ignored if specified; the com-
piler will always accept a minimum of 99 continuation lines
of 132 characters each. The number of continuation lines ac-
cepted may be greater if some of the lines are shorter than
132 characters. The compiler will still issue a diagnostic if
more than 19 continuation lines (of any length) are found
and the /STANDARD=SOURCE_FORM compile command
qualifier is specified.
If the FDML preprocessor, a component of the VAX DBMS
product and invoked with the FORTRAN/DML command, is
used, the /CONTINUATIONS qualifier may still be necessary.
See Section 2.7.5.3for more information.
2.8.1.3 /HPO Qualifier and FORTRAN-HPO PAK Obsolete
The /HPO compile command qualifier, which was used to
select between the VAX FORTRAN and VAX FORTRAN-
HPO compilers, is now obsolete and is ignored if specified.
Also, the FORTRAN-HPO Product Authorization Key (PAK)
is no longer necessary in order to use the automatic vector-
ization or decomposition features.
2.8.1.4 New /MATH_LIBRARY=V5 Qualifier Keyword
The /MATH_LIBRARY qualifier accepts a new [NO]V5 key-
word which is not currently documented in the DEC Fortran
User Manual for OpenVMS VAX Systems . This keyword
controls whether or not the compiler restricts itself to us-
ing only those Math Library routines which were used by
VAX FORTRAN V5.x and supplied by OpenVMS VAX V5.0-
V6.0 (V5.4 for vector routines.) The default is NOV5 which
allows the compiler to use the new routines for intrinsic
function references as described in Section 2.8.14. If V5 is
specified, the compiler does not use the new routines so that
the object module may be linked against an OpenVMS VAX
V5.x math library; the result will be performance comparable
to that obtained with VAX FORTRAN-HPO.
2.8.2 FORT$LIBRARY Logical Name as Search List
The FORT$LIBRARY logical name is used to define an ad-
ditional default library for INCLUDEs from text libraries.
In previous releases, if FORT$LIBRARY were defined with
multiple translations (a search list), only the first trans-
lation would be used. As of Version 6.0, the compiler will
recognize the multiple translations and will search each li-
brary specified before searching the system default library
FORSYSDEF.TLB. Within the list of translations, file name
defaulting occurs as it would for a plus-list of input files
specified on the command line with the /LIBRARY qualifier.
For example, given the following definition:
$ DEFINE FORT$LIBRARY MYDISK:[MYDIR]LIB1,[MYDIR2]LIB2,LIB3
The compiler would search the following libraries in order:
MYDISK:[MYDIR]LIB1.TLB
MYDISK:[MYDIR2]LIB2.TLB
MYDISK:[MYDIR2]LIB3.TLB
If any of the specified libraries do not exist or are not valid
text libraries, a warning diagnostic will be displayed. See the
DEC Fortran User Manual for OpenVMS VAX Systems for
more information on using text libraries.
2.8.3 FORT$INCLUDE Logical Name
Compaq Fortran 77 Version 6.0 provides the ability to
specify a default location for INCLUDE files. If the logi-
cal name FORT$INCLUDE is defined, the compiler uses
'FORT$INCLUDE:.FOR' as the default file specification
for non-library files and 'FORT$INCLUDE:.TLB' for li-
brary files specified in an INCLUDE statement. Definition of
FORT$INCLUDE does not affect default library files spec-
ified by the logical name FORT$LIBRARY nor the system
default library FORSYSDEF.TLB. FORT$INCLUDE may be
defined as a search list.
Note
If the current default disk and directory is to be
searched, 'SYS$DISK:[ ]' must be explicitly included in
the search list definition of FORT$INCLUDE.
For example, given the existence of the following files:
MYDISK:[DIR1]INC1.FOR
MYDISK:[DIR2]INC2.FOR,LIB1.TLB
MYDISK:[DIR3]INC2.FOR
and the logical name definition:
$ DEFINE FORT$INCLUDE MYDISK:[DIR1],[DIR2],[DIR3]
the following INCLUDE statements would access the indi-
cated files:
INCLUDE 'INC1' ! MYDISK:[DIR1]INC1.FOR
INCLUDE 'INC2' ! MYDISK:[DIR2]INC2.FOR
INCLUDE 'LIB1(MOD1)' ! MYDISK:[DIR2]LIB1.TLB
2.8.4 Language Syntax
Several new language statements, directives and syntax ex-
tensions have been implemented; a summary is provided
below. Some of the syntax extensions have been provided for
greater compatibility with Digital Fortran on other platforms;
others were introduced in VAX FORTRAN-HPO. See the
DEC Fortran Language Reference Manual for more details.
* ASSERT statement and directive
* AUTOMATIC statement
* INIT_DEP_FWD directive
* INTEGER 1 type declaration (synonym for BYTE)
*
* NOVECTOR directive
* POINTER statement
* STATIC statement
* '1010'B syntax for binary typeless constants, '10AB'Z as
alternative to '10AB'X for hexadecimal typeless constants
* B'1010', O'2377', X'10AB', Z'10AB' forms of typeless
constants
2.8.5 Non-native Data in I/O Feature
Compaq Fortran 77 Version 6.0 includes the ability to read
and write numeric data which is in non-native formats us-
ing unformatted I/O. The formats available, in addition to the
native VAX floating and little-endian integer types are: IEEE
little-endian floating and integers (compatible with Alpha and
RISC DECstation systems), IEEE big-endian floating and in-
tegers (Sun, IBM RS-6000, etc.), CRAY big-endian floating
and integers and IBM System\370 big-endian floating and
integers.
To enable this feature for individual logical units opened
for unformatted I/O use the new CONVERT= keyword in
an OPEN statement. The INQUIRE statement also allows
a CONVERT= keyword to inquire of the current conver-
sion type. The /CONVERT compile command or OPTIONS
statement qualifier provides a default conversion type for all
units opened in the program unit. It is also possible to define
a logical name at run-time to specify the convert type for
individual program units.
If an application uses the CONVERT= OPEN or INQUIRE
keyword, or uses /CONVERT and OPEN, the program will
fail with an "Invalid argument to FORTRAN Run-Time
Library" error if it is run on an OpenVMS VAX system
which does not include the enhanced Fortran Run-Time
Library support provided with Compaq Fortran 77. If
/CONVERT is used but a unit is implicitly opened, or if the
logical name method is used, no error will occur but neither
will the feature be enabled if the program is run on a sys-
tem without the new support. To test in a program whether
or not the non-native data in I/O support is available, execute
an INQUIRE statement with a CONVERT= keyword for
any unit. If no error occurs (IOSTAT=0 or no ERR= branch),
then the support is present.
For more information on OPEN and INQUIRE, see the DEC
Fortran Language Reference Manual . For more informa-
tion on the /CONVERT qualifier and use of logical names to
access this feature, see the DEC Fortran User Manual for
OpenVMS VAX Systems .
Caution
Applications which use this feature cannot currently
be translated by DECmigrate to run on OpenVMS
Alpha systems.
2.8.6 New Intrinsic Routines
A number of new intrinsic routines are recognized by the
Compaq Fortran 77 compiler. If your application has user-
supplied routines with the same names as intrinsic routines,
you should add EXTERNAL declarations for those routines
in modules which use them, otherwise the compiler will at-
tempt to recognize them as intrinsics. The names of the
new intrinsic routines are shown in Table 2-3 and are de-
scribed in more detail in the DEC Fortran Language Reference
Manual .
2.8.7 Automatic Decomposition for Parallel Processing
The Compaq Fortran 77 compiler has the ability to auto-
matically determine where it is effective and safe to execute
DO-loops in parallel on VAX multiprocessor systems. This
feature, previously introduced in VAX FORTRAN-HPO,
is selected by specifying the compile command qualifier
/PARALLEL=AUTOMATIC. The directed (manual) decom-
position feature which was provided by VAX FORTRAN V5
is selected by the /PARALLEL=MANUAL qualifier. Both
automatic and manual decomposition may be selected for
a given compilation. See the DEC Fortran User Manual
for OpenVMS VAX Systems and DEC Fortran Performance
Guide for OpenVMS VAX Systems for more details.
2.8.8 Generation of VAX Vector Processor Code
The /VECTOR compile command qualifier causes the com-
piler to generate vectorized code for DO-loops when it is
effective and safe to do so; this feature was previously in-
troduced in VAX FORTRAN-HPO. The vector code can
execute on VAX processors that support the VAX Vector
Architecture (the VAX 6000-400 series, VAX 6000-500 se-
ries and VAX 9000 series with optional VAX vector processor
boards), or on any VAX system running OpenVMS VAX V5.4
or later with the VAX Vector Instruction Emulator Facility
(VVIEF) enabled. For more information on vectorization, see
the DEC Fortran User Manual for OpenVMS VAX Systems
and the DEC Fortran Performance Guide for OpenVMS VAX
Systems . For more information on VVIEF, see the VMS V5.4
New Features Manual .
2.8.9 Recursion and Automatic Storage
The /RECURSIVE compile command or OPTIONS statement
qualifier causes the compiler to generate recursion-capable
or reentrant code and data, which permits a given routine
to be reentered while a call to it is currently active. When
the /RECURSIVE qualifier is in effect, the compiler's default
memory allocation is changed from static, in which local
variables and compiler-generated data structures such as
descriptors and argument lists are allocated at fixed locations,
toautomatic , in which these items are allocated on the stack
each time the routine is entered. Automatic allocation pre-
vents conflicts between multiple calls to the same routine at
the same time; a situation which might occur if, for example,
multitasking software such as DEC Ada or DECthreads was
in use.
The /RECURSIVE qualifier also allows a call to a subroutine
or a function from within that subroutine or function; such
use is invalid if /NORECURSIVE, the default, is in effect.
Automatic allocation can also be selected for individual vari-
ables even if /NORECURSIVE is in effect by means of the
AUTOMATIC specification statement. Similarly, static allo-
cation can be forced for individual variables by means of the
STATIC statement. See the DEC Fortran Language Reference
Manual for more details on AUTOMATIC and STATIC.
Automatic allocation is not permitted for variables named in
EQUIVALENCE, SAVE or STATIC statements, which are
data-initialized, or are named as the pointee in a POINTER
statement.
/RECURSIVE is not permitted if /PARALLEL is in effect. See
the DEC Fortran User Manual for OpenVMS VAX Systems
for more information on the /RECURSIVE qualifier.
2.8.9.1 Automatic Allocation and Vectorization
The requirement that double-precision data used by VAX
vector instructions be quadword aligned poses a problem
when such data is to be allocated on the stack, either im-
plicitly due to the /RECURSIVE qualifier being specified or
due to an AUTOMATIC declaration. As the VAX archi-
tecture guarantees only longword alignment for the stack
upon entry to a subroutine, the compiled code must force the
stack to be quadword aligned. This is accomplished by a spe-
cial instruction sequence which is generated when one or
more double-precision or double-complex variables is to be
stack-allocated and the /VECTOR qualifier is specified. The
instruction sequence appears in the machine code listing as
follows:
0000 SUB::
0000 .WORD ^M<IV,R2,R3,R4,R5,R6,R11> 1
0002 BITL #^X7, SP 2
0005 BEQL L$1
0007 CALLG (AP), L$0 3
000B RET
000C NOP 4
000D NOP
000E L$0:
000E .WORD ^M<IV>
0010 L$1: 5
0010 MOVAL $LOCAL, R11
0017 SUBL2 #20, SP
001A MOVC3 #12, $LOCAL(R11), -20(FP)
1 This is the entry mask of the routine or main program
entry point, as seen by an external caller. It specifies all of
the registers to be saved before the routine is entered.
2 The stack pointer register is tested to see if it is quad-
word aligned; that is, a multiple of 8. If it is, the routine's
regular prologue code is branched to at label L$1.
3 If the stack is not quadword aligned, a call is made to a
special entry mask at L$0 which specifies no registers to
be saved. As the fixed part of the stack frame is an odd
number of longwords (5), the stack will now be quadword
aligned.
4 Two non-executed NOP instructions are inserted to force
the L$1 branch target to quadword alignment, which im-
proves performance when the branch to it is taken. The
compiler specifies quadword alignment for the $CODE
PSECT.
5 The normal routine prologue code begins here. After the
base register for statically-allocated storage is loaded, the
next two instructions allocate the required space on the
stack and initialized with any link-time constant data
(descriptors, argument lists, etc.) if needed.
In order to reduce the overall performance impact of this ad-
ditional code, the compiler tries to ensure that the alignment
call is performed as few times as possible during the life of
the application. It does this by forcing the stack to be non-
quadword aligned (but longword aligned) after the stack area
is allocated and ensuring that the register save mask causes
an even number of registers to be saved. This will tend to
keep the stack quadword aligned for nested calls, assuming
that the called routines also use automatic storage and are
compiled with /VECTOR.
There are some important considerations to be aware of
when using automatic storage and vectorization:
* If recursion or automatic storage is used in any of the
program units, all program units should be compiled with
the /VECTOR qualifier to ensure proper stack alignment
(and to reduce the need for alignment to take place.)
* Exception handlers which count call frames may need to
be aware of the possibility of the presence of an extra call
frame.
2.8.10 Basic Linear Algebra Subroutines
The Compaq Fortran 77 compiler recognizes as intrinsics the
routines comprising the Basic Linear Algebra Subroutines li-
brary, Level 1 and Level 1 Extended; this feature was first
introduced in VAX FORTRAN-HPO. In most cases, the
compiler generates inline code for references to the BLAS
routines; this code can be further vectorized and/or de-
composed for improved performance if the /VECTOR or
/PARALLEL qualifiers are in effect. For more information,
see the DEC Fortran Language Reference Manual and the
DEC Fortran Performance Guide for OpenVMS VAX Systems
for more details.
2.8.11 Performance Optimization for Large Array
Operations
In many applications which perform operations on large ar-
rays, performance is often limited by the behavior resulting
from the typical pattern of memory access which causes nu-
merous page faults. The Compaq Fortran 77 compiler can
analyze program units and, when it determines that it is safe
and effective to do so, can rearrange DO-loops and insert
"chunking" loops so as to significantly reduce the number of
memory pages being accessed in close succession and hence
improve performance by reducing page faults. This opti-
mization is done automatically when /VECTOR is specified,
and it is now also available for scalar processors. The new
/OPTIMIZE=LEVEL=4 compile command qualifier enables
this optimization.
When using /OPTIMIZE=LEVEL=4, it is recommended that
you also specify /DIAGNOSTICS and /SHOW=(LOOPS,DATA_
DEPENDENCE) so that the compiler can report on inhibitors
to this additional level of optimization. Not all applications
will benefit from this optimization, but those which do can see
significant elapsed time improvements. See the DEC Fortran
Performance Guide for OpenVMS VAX Systems for more
information.
2.8.12 Optimizations of Operations on COMPLEX
Variables
In previous versions of VAX FORTRAN, most operations
on complex-typed variables were performed by calls to the
OpenVMS Run-Time Library. Compaq Fortran 77 Version
V6.0 now does many of these operations, such as complex
multiply, inline, and separates the real and imaginary parts
of complex variables for further optimization.
2.8.13 Optimizations on References to Dummy Arguments
and COMMON
The Compaq Fortran 77 compiler can now make local copies
of dummy arguments and/or variables in COMMON blocks
for improved performance. Previously, the generated code
would always reference such variables through the argument
list or COMMON block. The compiler is careful to always
copy values back or fetch new values when the language se-
mantics require it, but some applications may have taken
advantage of the previous implementation's limitation in this
area and may produce incorrect results.
For dummy arguments, it is important to specify
/ASSUME=DUMMY_ALIASES or to declare the variable
as VOLATILE if a dummy argument can be addressed
through some path other than the argument name; for ex-
ample, if a dummy argument is also a COMMON variable,
or if the routine can be called with some arguments omitted.
By default, Compaq Fortran 77 assumes that the application
conforms to the FORTRAN-77 standard in that it does not
alias dummy arguments and that all actual arguments agree
in order, number and data type (or structure, for record ar-
guments), with their corresponding dummy arguments. See
the DEC Fortran User Manual for OpenVMS VAX Systems
for more information on the /ASSUME=DUMMY_ALIASES
option.
For variables in COMMON, it is important to name in a
VOLATILE statement any variables or COMMON blocks
that can be referenced (either read or written) other than by
direct reference or during a routine call. For example, if a
variable in COMMON is referenced in an OpenVMS AST
routine, condition handler or exit handler, or is in a shared
global section, you must declare as volatile that variable,
or the COMMON block to which it belongs. See the DEC
Fortran Language Reference Manual for more information
on the VOLATILE statement.
2.8.14 Optimizations on Intrinsic Functions
Compaq Fortran 77 performs additional optimizations for
references to many intrinsic functions. A side-effect of
these optimizations is that more statement functions which
reference these intrinsics can be expanded inline.
* Inline and/or vectorized code can be generated for refer-
ences to the SIGN intrinsic with integer operands.
* New higher-performance JSB Mathematics Library en-
try points are used for references to the AMOD, ATAN,
ATAN2, CABS, CCOS, CEXP, CLOG, COSH, CSIN,
CSQRT, SINH and TANH intrinsics, as well as for the
SIGN intrinsic when real operands are specified. This
optimization is disabled if the compile command qualifier
/MATH_LIBRARY=V5 is specified.
* The compiler can now vectorize references to the ATAN2,
CCOS, CEXP, CLOG, COSH, CSIN, CSQRT, MOD
(integer and real), SINH and TANH intrinsics. This opti-
mization is disabled if the /MATH_LIBRARY=V5 compile
command qualifier is specified.
Note
The values returned by the CEXP intrinsic may dif-
fer in the least significant bit from those returned
by earlier versions of VAX FORTRAN, but the new
values are more accurate.
2.8.15 Detection of Uninitialized Variables
The Compaq Fortran 77 compiler will now issue a FORT-
W-USEUNIVAR warning when it detects a use of a local
scalar variable for which it has determined that the vari-
able is uninitialized at the point of use. The compiler cannot
detect all cases of uninitialized variables, and does not pro-
duce a warning for variables which are named in a SAVE
or VOLATILE statement, data-initialized, or equivalenced
to a variable which is data-initialized, nor in a program
unit for which /DESIGN=PLACEHOLDERS was in effect
and placeholders were seen. The warnings are not issued if
/NOOPTIMIZE or /WARNINGS=NOUNINITIALIZED is in
effect. (/NOOPTIMIZE prevents the compiler from collect-
ing the information it needs in order to properly determine a
variable's initialization status.)
A warning is given only once for a given variable in a
program unit. The warning message includes the line
number on which the uninitialized use occurred; if the
/DIAGNOSTICS qualifier was also specified and the diag-
nostics are reviewed in the Language-Sensitive Editor, the
GOTO SOURCE (CTRL/G) command will position the editor
at the offending use.
It is particularly important to find and correct uses of unini-
tialized variables when automatic storage is used, as the
initial values of automatic variables are unpredictable, in
contrast to that of static variables which are initialized to
zero.
2.8.16 Vectorization of DO-Loops with INTEGER 2 Control
*
Variables
The Compaq Fortran 77 Version V6.0 compiler can now vec-
torize DO-loops which have INTEGER 2 control variables.
*
Previously in VAX FORTRAN-HPO, such loops were not
eligible for vectorization.
2.8.17 Design Processing Features
Compaq Fortran 77 supports the design processing features
of VAX Language-Sensitive Editor/Source Code Analyzer.
These features allow you to embed design information
in Fortran source, compile program units which contain
pseudocode and other LSE placeholders, and generate doc-
umentation, help text and LSE syntax templates from your
application source. See the description of the /DESIGN qual-
ifier in theDEC Fortran User Manual for OpenVMS VAX
Systems for more details.
2.8.18 VOLATILE Allowed for RECORD Variables
The VOLATILE declaration is now allowed for variables
declared in RECORD statements; previously, this was not
allowed. It is important to declare as volatile any variable
which can be modified by means other than an assignment
statement or being passed as an actual argument. Variables
in COMMON blocks should also be declared volatile if they
can change at times other than during routine calls.
2.8.19 Formal Arguments Allowed in NAMELIST Groups
Routine formal arguments may now appear in NAMELIST
groups; previously, this was not allowed.
2.8.20 Limit on Number of COMMON Blocks Increased
In previous versions, the compiler allowed a maximum of 250
named COMMON blocks. This limit has been raised to 508;
if blank COMMON is also used, a total of 509 COMMON
blocks are allowed.
2.8.21 Support for NTT MIA Standard
Compaq Fortran 77 Version 6.0 provides the necessary
support to comply with Nippon Telephone and Telegraph
(NTT) Technical Requirement TR550001, Multivendor
Integration Architecture (MIA) Version 1.1, Division 2, Part
3-2, Programming Language FORTRAN. The primary
change needed to provide this support was the addition of
the /STANDARD=MIA qualifier to enable standards check-
ing against the MIA requirements. The HFIX and IMAG
intrinsic function names were also added. See the DEC
Fortran User Manual for OpenVMS VAX Systems for more
information on /STANDARD=MIA.
2.8.22 Warnings for Features Not Supported on Alpha
The new /WARNINGS=Alpha qualifier causes the com-
piler to issue warnings whenever a language feature which
is not supported by Digital Fortran on Alpha platforms is
used. These features are: RAD50 constants and the PDP-11
compatibility routines ASSIGN, CLOSE, ERRSET, ERRTST,
FDBSET, IRAD50, RAD50, R50ASC, USEREX.
2.8.23 DECwindows Compiler Interface Removed
The DECwindows Compiler Interface, a method of selecting
compile options through a graphical interface activated by
the DECwindows FileView application, is no longer provided.
Digital will investigate alternate methods of providing similar
functionality in the future.