If the use of the /G_FLOATING qualifier conflicts with a
double-precision attribute specified in the source program or module,
an error occurs. Routines and compilation units between which
double-precision quantities are passed should not mix floating-point
formats. Not all OpenVMS VAX processors support the G_floating data
types.
See also the description of the /FLOAT qualifier, which is the
preferred method for specifying the floating-point format to the
compiler. The /FLOAT qualifier also allows you to select the IEEE
floating-point format, which is supported only on Alpha systems.
11.5.6.3 OVERLAID Attribute
The OVERLAID attribute indicates how storage should be allocated for
variables declared within a compilation unit. If you specify OVERLAID
on a compilation unit, the variables declared at program or module
level (unless they have the STATIC or PSECT attribute) overlay the
storage of static variables in all other overlaid compilation units.
This attribute is intended for use only with programs that use the
decommitted separate compilation facility provided by VAX Pascal
Version 1.0.
Comments in brackets following a question are intended to help clarify
the purpose of that question.
|
|
|
|
Development History and Plans
|
|
|
|
|
1.
|
Does the application currently run on other operating systems or
hardware architectures?
|
[] YES
|
[] NO
|
|
If yes, does the application currently run on a RISC system?
|
[] YES
|
[] NO
|
|
[If so, it will be easier to migrate to OpenVMS Alpha.]
|
|
|
|
|
|
|
2.
|
What are your plans for the application after migration?
|
|
|
|
a. No further development
|
[] YES
|
[] NO
|
|
b. Maintenance releases only
|
[] YES
|
[] NO
|
|
c. Additional or changed functionality
|
[] YES
|
[] NO
|
|
d. Maintain separate VAX and Alpha sources
|
[] YES
|
[] NO
|
|
[If you answer YES to a, you may wish to consider translating the
application. A YES response to b or c should give you reason to
evaluate the benefits of recompiling and relinking your application,
although translation is still possible. If you intend to maintain
separate VAX and Alpha sources, as indicated by a YES to d, you may
need to consider interoperability and consistency issues, especially if
the different versions of the application can access the same database.]
|
|
|
|
|
|
|
External Dependencies
|
|
|
|
|
3.
|
What is the system configuration (CPUs, memory, disks) required to set
up a development environment for the application?
|
|
|
[This will help you plan for the resources needed for migration.]
|
|
|
|
|
|
|
4.
|
What is the system configuration (CPUs, memory, disks) required to set
up a typical user environment for the application, including
installation verification procedures, regression tests, benchmarks, or
workloads?
|
|
|
[This will help you determine whether your entire environment is
available on OpenVMS Alpha.]
|
|
|
|
|
|
|
5.
|
Does the application rely on any special hardware?
|
[] YES
|
[] NO
|
|
[This will help you determine whether the hardware is available on
OpenVMS Alpha, and whether the application includes hardware-specific
code.]
|
|
|
|
|
|
|
6.
|
a. What version of OpenVMS does your application currently run on?
|
|
|
b. Does the application run on OpenVMS VAX Version 7.1?
|
[] YES
|
[] NO
|
|
c. Does the application use features that are not available on OpenVMS
Alpha?
|
[] YES
|
[] NO
|
|
[The migration base for OpenVMS Alpha is OpenVMS VAX Version
7.1. If you answer YES to c, your application may use
features that are not yet supported on OpenVMS Alpha, or be linked
against an OpenVMS RTL or other shareable image that is incompatible
with the current version of OpenVMS Alpha.]
|
|
|
|
|
|
|
7.
|
Does the application require layered products to run?
|
|
|
|
a. From Digital: (other than compiler RTLs)
|
[] YES
|
[] NO
|
|
b. From third parties:
|
[] YES
|
[] NO
|
|
[If you answer YES to a and are uncertain whether the Digital layered
products are yet available for OpenVMS Alpha, check with a Digital
support representative. If you answer YES to b, check with your
third-party product supplier.]
|
|
|
|
|
|
|
Composition of the Application
|
|
|
|
|
8.
|
How large is your application?
|
|
|
|
How many modules?
|
|
|
How many lines or kilobytes of code?
|
|
|
How much disk space is required?
|
|
|
[This will help you "size" the effort and the resources required for
migration.]
|
|
|
|
|
|
|
9.
|
a. Do you have access to all source files that make up your application?
|
[] YES
|
[] NO
|
|
b. If you are considering using Digital Services, will it be possible
to give Digital access to these source files and build procedures?
|
[] YES
|
[] NO
|
|
[If you answer YES to a, translation may be your only migration option
for the files with missing sources. A YES answer to b allows you to
take advantage of a greater range of Digital migration services.]
|
|
|
|
|
|
|
10.
|
a. What languages is the application written in? (If multiple languages
are used, give the percentages of each.)
|
|
|
[If the compilers are not yet available, you must translate or rewrite
in a different language.]
|
|
|
|
b. If you use VAX MACRO, what are your specific reasons?
|
|
|
c. Could the function of the VAX MACRO code be performed by a
high-level-language compiler or a system service (such as $GETJPI for
retrieving process names)?
|
[] YES
|
[] NO
|
|
[Digital does not recommend the use of VAX MACRO or the MACRO--64
Assembler for OpenVMS Alpha in Alpha applications. You may be able to
replace assembly-language code in certain user-mode applications by a
call to an OpenVMS system service that did not exist when the
application was first written.]
|
|
|
|
|
|
|
11.
|
a. Do you have regression tests for the application?
|
[] YES
|
[] NO
|
|
b. If yes, do they require DEC Test Manager?
|
[] YES
|
[] NO
|
|
[If you answer YES to a, you should consider migrating those regression
tests. The DEC Test Manager is not available at the initial release of
OpenVMS Alpha. Contact a Digital support representative if your
regression tests depend on this product.]
|
|
|
|
|
|
|
Dependencies on the VAX Architecture
|
|
|
|
|
12.
|
a. Does the application use the H_floating data types?
|
[] YES
|
[] NO
|
|
b. Does the application use the D_floating data types?
|
[] YES
|
[] NO
|
|
c. If the application uses D_floating, does it require 56 bits of
precision (16 decimal digits) or would 53 bits (15 decimal digits)
suffice?
|
[] 56 bits
|
[] 53 bits
|
|
[If you answer YES to a, you must either translate your application to
obtain H_floating compatibility, or convert the data to G_floating,
S_floating, or T_floating format. If you answer YES to b, you must
either translate the application to obtain full 56-bit VAX precision
D_floating compatibility, accept the 53-bit precision D_floating format
provided by Alpha systems, or convert the data to G_floating,
S_floating, or T_floating format.]
|
|
|
|
|
|
|
13.
|
a. Does the application use large amounts of data or data structures?
|
[] YES
|
[] NO
|
|
b. Is the data byte, word, or longword aligned?
|
[] YES
|
[] NO
|
|
[If you answer YES to a, but NO to b, you should consider aligning your
data naturally to achieve optimal Alpha performance. You must align
data naturally if the data is in a global section shared among a number
of processes, or is shared between a main program and an AST.]
|
|
|
|
|
|
|
14.
|
Does the application make assumptions about how compilers align data
(that is, does the application assume that data structures are: packed,
aligned naturally, aligned on longwords, and so forth)?
|
[] YES
|
[] NO
|
|
[If you answer YES, you should consider portability and
interoperability issues resulting from differences in compiler
behavior, both on the Alpha platform and between the VAX and Alpha
platforms. Be aware that compiler defaults for data alignment vary, as
do compiler switches for forcing alignment. Typically, VAX systems
default to a packed style alignment, whereas Alpha compilers default to
natural alignment where possible.]
|
|
|
|
|
|
|
15.
|
a. Does the application assume a 512-byte page size?
|
[] YES
|
[] NO
|
|
b. Does the application assume that a memory page is the same size as a
disk block?
|
[] YES
|
[] NO
|
|
[If you answer YES to a, you should be prepared to adapt the
application to accommodate the Alpha page size, which is much larger
than 512 bytes and varies from system to system. Avoid hardcoded
references to the page size; rather, use memory management system
services and RTL routines wherever possible. If you answer YES to b,
you should examine all calls to the $CRMPSC and $MGBLSC system services
that map disk sections to memory and remove these assumptions.]
|
|
|
|
|
|
|
16.
|
Does the application call OpenVMS system services?
|
[] YES
|
[] NO
|
|
Specifically, services that:
|
|
|
|
a. Create or map global sections (such as $CRMPSC, $MGBLSC, $UPDSEC)
|
[] YES
|
[] NO
|
|
b. Modify the working set (such as $LCKPAG, $LKWSET)
|
[] YES
|
[] NO
|
|
c. Manipulate virtual addresses (such as $CRETVA, $DELTVA)
|
[] YES
|
[] NO
|
|
[If you answer YES to any of these, you may need to examine your code
to determine that it specifies the required input parameters correctly.]
|
|
|
|
|
|
|
17.
|
a. Does the application use multiple, cooperating processes?
|
[] YES
|
[] NO
|
|
If so:
|
|
|
|
b. How many processes?
|
|
|
c. What interprocess communication method is used?
|
|
|
[] $CRMPSC
|
[] Mailboxes
|
[] SCS
|
[] Other
|
[] DLM
|
[] SHM, IPC
|
[] SMG$
|
[] STR$
|
|
|
|
|
|
|
d. If you use global sections ($CRMPSC) to share data with other
processes, how is data access synchronized?
|
|
|
[This will help you determine whether you will need to use explicit
synchronization, and the level of effort required to guarantee
synchronization among the parts of your application. Use of a
high-level synchronization method generally allows you to migrate an
application most easily.]
|
|
|
|
|
|
|
18.
|
Does the application currently run in a multiprocessor (SMP)
environment?
|
[] YES
|
[] NO
|
|
[If you answer YES, it is likely that your application already uses
adequate interprocess synchronization methods.]
|
|
|
|
|
|
|
19.
|
Does the application use AST (asynchronous system trap) mechanisms?
|
[] YES
|
[] NO
|
|
[If you answer YES, you should determine whether the AST and main
process share access to data in process space. If so, you may need to
explicitly synchronize such accesses.]
|
|
|
|
|
|
|
20.
|
a. Does the application contain condition handlers?
|
[] YES
|
[] NO
|
|
b. Does the application rely on immediate reporting of arithmetic
exceptions?
|
[] YES
|
[] NO
|
|
[The Alpha architecture does not provide immediate reporting of
arithmetic exceptions. If your handler attempts to fix the condition
and restart the instruction sequence that led to the exception, you
will need to alter the handler.]
|
|
|
|
|
|
|
21.
|
Does the application run in privileged mode or link against SYS.STB?
|
[] YES
|
[] NO
|
|
If so, why?
|
|
|
[If your application links against the OpenVMS executive or runs in
privileged mode, you must rewrite it for it to work as a native Alpha
image.]
|
|
|
|
|
|
|
22.
|
Do you write your own device drivers?
|
[] YES
|
[] NO
|
|
[User-written device drivers are not supported in the initial release
of OpenVMS Alpha. Contact a Digital support representative if you need
this feature.]
|
|
|
|
|
|
|
23.
|
Does the application use connect-to-interrupt mechanisms?
|
[] YES
|
[] NO
|
|
If yes, with what functionality?
|
|
|
[Connect-to-interrupt is not supported on OpenVMS Alpha systems.
Contact a Digital support representative if you need this feature.]
|
|
|
|
|
|
|
24.
|
Does the application create or modify machine instructions?
|
[] YES
|
[] NO
|
|
[Guaranteeing correct execution of instructions written to the
instruction stream requires great care on OpenVMS Alpha.]
|
|
|
|
|
|
|
25.
|
What parts of the application are most sensitive to performance? I/O,
floating point, memory, realtime (that is, interrupt latency, and so
on).
|
|
|
[This will help you determine how to prioritize work on the various
parts of your application and allow Digital to plan performance
enhancements that are most meaningful to customers.]
|
|
|
Copyright © Digital Equipment Corporation 1996. All Rights Reserved.