182 lines
5.8 KiB
Plaintext
182 lines
5.8 KiB
Plaintext
|
GNAT IMPLEMENTED FEATURES LIST
|
||
|
Current as of 01/26/95
|
||
|
|
||
|
Here is the list of implemented and not implemented features. A more precise
|
||
|
description of the GNAT system is provided in the file 'gnatinfo.txt', which
|
||
|
is part of the GNAT distribution.
|
||
|
|
||
|
Latest features in GNAT version 2.02
|
||
|
====================================
|
||
|
|
||
|
Extension aggregates are implemented (not much tested so far)
|
||
|
The Storage_Pool mechanism is in place
|
||
|
Functions returning unconstrained values shouldn't leak anymore
|
||
|
Enumeration representation clauses are fully implemented
|
||
|
Record representation clauses are implemented (currently there is
|
||
|
a restriction that all fields must be given a position and tagged
|
||
|
records cannot yet be given representation clauses)
|
||
|
The constrained attribute is implemented
|
||
|
Conformance checking is fully implemented
|
||
|
Shared variables (pragmas Shared, Atomic, Atomic_Components,
|
||
|
Volatile, and Volatile_Components) are implemented
|
||
|
User-defined Initialize/Adjust/Finalize is now almost complete for
|
||
|
controlled types as well as for types containing controlled components.
|
||
|
(aggregates involving controlled types and functions returning objects
|
||
|
with controlled components may still cause trouble).
|
||
|
Alignment attribute and attribute definition clause are implemented
|
||
|
Pred and Succ for fixed-point types are implemented
|
||
|
Discard_Names pragma is implemented
|
||
|
Arrays are passed properly to convention C routines
|
||
|
Pragma Inspection_Point is implemented
|
||
|
Pragma Locking_Policy is implemented
|
||
|
Pragma Task_Dispatching_Policy is implemented
|
||
|
Pragma Memory_Size is implemented (it is ignored anyway)
|
||
|
Derived types from private types are impelmented
|
||
|
Floating-point attribute functions are implemented:
|
||
|
Adjacent, Ceiling, Compose, Copy_Sign, Exponent, Floor, Fraction,
|
||
|
Leading_Part, Machine, Model, Pred, Remainder, Rounding, Scaling, Succ,
|
||
|
Truncation, Unbiased_Rounding
|
||
|
Pragma Optimize is implemented (checks that GCC optimization level is
|
||
|
consistent)
|
||
|
Pragma Reviewable is implemented (checks that GCC debug option "-g" is set)
|
||
|
Pragma Controlled is implemented (but ignored so far)
|
||
|
The attributes Version and Body_Version are implemented
|
||
|
Pragma Linker_Options is implemented
|
||
|
Attribute Max_Size_In_Storage_Elements is implemented
|
||
|
The attribute Valid is implemented
|
||
|
Requeue without abort is implemented
|
||
|
Delay statement on OS/2 is now working correctly.
|
||
|
The attribute Bit_Order is implemented
|
||
|
Range checking for modular types
|
||
|
Length checks are now implemented
|
||
|
Pragma Import Fortran and COBOL are implemented
|
||
|
Pragma Convention is now fully implemented (for C, Fortran, COBOL),
|
||
|
Pragma Convention for Fortran correctly maps multi-dimensional arrays
|
||
|
|
||
|
=======================================================================
|
||
|
|
||
|
Status of Features
|
||
|
|
||
|
============================================================================
|
||
|
= All of Ada 83 is implemented EXCEPT the following unimplemented features =
|
||
|
============================================================================
|
||
|
|
||
|
The following language-defined checks are not implemented:
|
||
|
|
||
|
Discriminant Checks
|
||
|
Elaboration Checks
|
||
|
Range Checks on the elaboration of a subtype_indication
|
||
|
Stack overflow checking
|
||
|
|
||
|
Language-Defined Pragmas
|
||
|
Pack for arrays
|
||
|
|
||
|
Input-Output for Integer for type Long_Long_Integer.
|
||
|
(only Put currently supported for Long_Long_Integer not Get)
|
||
|
|
||
|
Delay is not yet fixed-point as required (the current temporary
|
||
|
implementation uses floating-point to represent Delay).
|
||
|
|
||
|
Tasking is currently implemented only on the following platforms
|
||
|
SGI IRIX 5.2, Sun Sparc (SunOS 4.1), i386 running IBM OS/2
|
||
|
|
||
|
=========================================================================
|
||
|
= All of Ada 95 implemented EXCEPT the following unimplemented features =
|
||
|
=========================================================================
|
||
|
|
||
|
CORE
|
||
|
|
||
|
Protected entry families
|
||
|
Protected subprogram pointers
|
||
|
Condition protected entry calls
|
||
|
Requeue Statement involving task entries
|
||
|
Delay until
|
||
|
|
||
|
Input-Output for Modular Types
|
||
|
(Only Put is supported currently, Get not yet supported)
|
||
|
|
||
|
Input-Output for Decimal Types
|
||
|
Input-Output for Wide Text
|
||
|
|
||
|
Objects of type with unknown discriminants
|
||
|
|
||
|
Unimplemented subprograms in package Ada.Text_IO
|
||
|
Flush
|
||
|
Look_Ahead
|
||
|
Get_Immediate
|
||
|
|
||
|
Accessibility checks
|
||
|
|
||
|
Stream-Oriented Attributes of Specific Types
|
||
|
Stream-Oriented Attributes of Class-Wide Types
|
||
|
|
||
|
ANNEX A. PREDEFINED LANGUAGE ENVIRONMENT
|
||
|
|
||
|
Ada.Exceptions
|
||
|
Ada.Interrupts
|
||
|
Ada.Streams.Stream_IO
|
||
|
Ada.Wide_Text_IO
|
||
|
Ada.Wide_Text_IO.Complex_IO
|
||
|
|
||
|
ANNEX B. INTERFACING TO OTHER LANGUAGES
|
||
|
|
||
|
The body of Interfaces.COBOL is not yet implemented
|
||
|
|
||
|
ANNEX C. SYSTEMS PROGRAMMING
|
||
|
|
||
|
Machine intrinsic subprograms
|
||
|
Interrupt support
|
||
|
The body of package Interrupts is not implemented
|
||
|
Preelaboration requirements are not fully met
|
||
|
|
||
|
ANNEX D. REAL-TIME SYSTEMS
|
||
|
|
||
|
Tasking restrictions
|
||
|
Synchronous task control
|
||
|
|
||
|
ANNEX E. DISTRIBUTED SYSTEMS
|
||
|
|
||
|
The distribution annex is under active development. Stub generation
|
||
|
is not yet implemented, and there is no configuration control program.
|
||
|
All pragmas are fully implemented.
|
||
|
|
||
|
ANNEX F. INFORMATION SYSTEMS
|
||
|
|
||
|
Ada.Text_IO.Editing
|
||
|
Ada.Wide_Text_IO.Editing
|
||
|
|
||
|
ANNEX G. NUMERICS
|
||
|
|
||
|
Accuracy requirements for floating-point and complex not fully met
|
||
|
|
||
|
ANNEX H. SAFETY AND SECURITY
|
||
|
|
||
|
pragma Normalize_Scalars
|
||
|
Safety and security restrictions
|
||
|
|
||
|
ANNEX I. OBSOLESCENT FEATURES
|
||
|
|
||
|
Interrupt entries
|
||
|
|
||
|
ANNEX J. LANGUAGE-DEFINED ATTRIBUTES
|
||
|
|
||
|
Caller
|
||
|
Definite
|
||
|
External_Tag
|
||
|
Identity
|
||
|
Input
|
||
|
Output
|
||
|
Read
|
||
|
Storage_Pool
|
||
|
Write
|
||
|
|
||
|
ANNEX K. LANGUAGE DEFINED PRAGMAS
|
||
|
|
||
|
Attach_Handler
|
||
|
Export
|
||
|
Interrupt_Handler
|
||
|
Normalize_Scalars
|
||
|
Queuing_Policy
|
||
|
Restrictions
|
||
|
|