E.3 Compatibility with Other Ada 95 Systems
Providing that programs avoid the use of implementation dependent and
implementation defined features of Ada 95, as documented in the Ada 95
reference manual, there should be a high degree of portability between
GNAT and other Ada 95 systems. The following are specific items which
have proved troublesome in moving GNAT programs to other Ada 95
compilers, but do not affect porting code to GNAT.
- Ada 83 Pragmas and Attributes
- Ada 95 compilers are allowed, but not required, to implement the missing
Ada 83 pragmas and attributes that are no longer defined in Ada 95.
GNAT implements all such pragmas and attributes, eliminating this as
a compatibility concern, but some other Ada 95 compilers reject these
pragmas and attributes.
- Special-needs Annexes
- GNAT implements the full set of special needs annexes. At the
current time, it is the only Ada 95 compiler to do so. This means that
programs making use of these features may not be portable to other Ada
95 compilation systems.
- Representation Clauses
- Some other Ada 95 compilers implement only the minimal set of
representation clauses required by the Ada 95 reference manual. GNAT goes
far beyond this minimal set, as described in the next section.