Specifications
OpenVMS Operating System for Alpha and VAX (Versions 7.1, 7.1–1H1, 7.1–1H2, and 7.1–2) SPD 41.87.06
• Other general-purpose functions
With OpenVMS VAX, these routines can be called from
programs written in such languages as VAX MACRO-32,
VAX Ada, VAX BASIC, VAX BLISS-32 Implementation
Language, VAX C, DEC C, DEC C++, VAX COBOL,
VAX DIBOL, DEC Fortran, VAX Pascal, and VAX PL/I.
With OpenVMS Alpha, these routines can be called
from programs written in such languages as MACRO-
64, DEC Ada, DEC BASIC, DEC C, DEC C++, DEC
COBOL, DEC Fortran, DEC Pascal, and DEC PL/I.
Also included in OpenVMS Alpha are language-support
libraries. While each language is different, all provide
support for sequential file I/O, and most support direct
and indexed file I/O. Language RTLs also provide sup-
port for I/O formatting, error handling, and in DEC For-
tran, the ability to read unformatted files that contain
data from other vendors.
RTLs are provided to support translated images created
from user-mode images built on OpenVMS VAX Version
4.0 through Version 5.5-2. Depending on the method
used to create the VAX image, these RTLs can be use-
ful for images built on later versions of OpenVMS VAX,
which do not use features that were developed since
OpenVMS VAX Version 5.5-2.
Translated image RTLs are used to support a few ar-
chitectural features that differ between VAX and Alpha
systems, such as VAX D-float and H-float. They also
support programs converted to run on Alpha systems
before native Alpha compilers were available for partic-
ular programming languages.
Many Compaq languages adhere to the common call-
ing standard. This means that routines written in any
of these languages can directly call routines written in
any other language. Development of applications using
multiple languages is simple and straightforward.
All user accessible routines in the RTLs follow the Open-
VMS Alpha or OpenVMS VAX calling standard and
condition-handling conventions, and most are contained
within shareable images.
At a lower level, programs can call system services di-
rectly for security, event flag, asynchronous system trap,
logical name, record and file I/O, process control, timer,
time conversion, condition handling, lock management,
and memory management. Again, system services use
the OpenVMS VAX or OpenVMS Alpha calling standard
and condition-handling conventions.
OpenVMS supports the execution of user-mode images
created on earlier versions of OpenVMS. Typically, re-
compiling and relinking are not required.
MACRO Compiler (Alpha Only)
For migration purposes, the MACRO compiler is sup-
plied with the OpenVMS Alpha software.
DECthreads
OpenVMS includes a user-mode, multithreading ca-
pability called DECthreads. DECthreads provides a
POSIX 1003.1C-1995 standard style interface. Addi-
tionally, DECthreads provides an interface that is the
OpenVMS implementation of Distributed Computing En-
vironment (DCE) threads as defined by the Open Soft-
ware Foundation (OSF).
DECthreads is a library of run-time routines that al-
lows the user to create multiple threads of execution
within a single address space. With DECthreads Ker-
nel Threads features enabled, Threads provide for con-
current processing over all CPUs in a multiprocessor
system by allowing a multithreaded application to have
a thread executing on every CPU. Multithreading al-
lows computation activity to overlap I/O activity. Syn-
chronization elements, such as mutexes and condition
variables, are provided to help ensure that shared re-
sources are accessed correctly. For scheduling and pri-
oritizing threads, DECthreads provides multiple schedul-
ing policies. For debugging multithreaded applications,
DECthreads is supported by the OpenVMS Debugger.
DECthreads also provides Thread Independent Ser-
vices (TIS), which assist in the development of thread-
safe APIs.
Librarian Utility
The Librarian utility permits storage of object modules,
image files, macros, help text, or any general record-
oriented information in central, easily accessible files.
Object module and image file libraries are searched by
the linker when the linker finds a reference it cannot
resolve in one of its input files. Alpha macro libraries
are searched by the MACRO-32 compiler and MACRO-
64 assembler when either finds a macro name that is
not defined in the input file. VAX macro libraries are
searched by the assembler when the assembler finds a
macro that is not defined in the input file.
Hypersort
Hypersort is a portable library of user-callable routines
that provide a high-performance sorting capability for
Alpha systems
Traceback Facility
When an application is compiled and linked with trace-
back information, the Traceback facility translates mem-
ory addresses into routine names and line numbers and
displays a symbolic traceback whenever a runtime error
occurs in that application.
3