GNAT IMPLEMENTED FEATURES LIST
Current as of 11/30/94

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.0
===================================

   Tasking is now available on the IBM OS/2 version
   So tasking is now currently working on Sparc SunOS, SGI and OS/2.

   Pragma Import (for variables)

   Decimal types
   Decimal formal types
   Instantiations of decimal types

   Range checks on floating point types

   package Decimal
   package Direct_IO
   package Sequential_IO
   package Ada.Dynamic_Priorities
   package Ada.Streams
   package Interfaces.Fortran
   package Calendar

   All the wide string packages are now complete

   Note that all specs of Ada.xxx units are updated to match the latest
   Ada 9X spec (RM 5.7 plus a few changes made at the latest WG9 meeting).
   Probably the most notable change for users is that the names Status and
   Set_Status in Ada.Command.Line have been changed to Exit_Status and
   Set_Exit_Status. Also Ada.Strings.Constants is removed and is now a child
   package of Ada.Strings.Maps, i.e. it is now Ada.Strings.Maps.Constants
   and is found in a-stmaco.ads.

   limited conformance checking

   update of gnatchop with -s option (see gnatinfo.txt for details)
   Updated documentation in gnatinfo.txt (for gnatgf, gnatchop, gnatbl)

   Delay Statements (on sparc-sunos, sgi and os/2 only)
   Timed Entry Calls (on sparc-sunos, sgi and os/2 only)
   Protected Objects (on sparc-sunos, sgi and os/2 only)
   Requeue - limited use (on sparc-sunos, sgi and os/2 only)

   Derived types from subtypes

   Fixed-point handling, including decimal and ordinary fixed-point
   handling, is now complete.

=======================================================================

Status of Features

The parser is a full Ada9X parser, which implements the Ada 9X language
as defined by version 5.7 of the Draft International Standard. Semantic
analysis and code generation are in constant evolution.

============================================================================
= All of Ada 83 is implemented EXCEPT the following unimplemented features =
============================================================================

   The Constrained attribute

   Derived types from private types

   The following language-defined checks are not implemented:

      Discriminant Check
      Elaboration Check
      Length Check
      Range Check on the elaboration of a subtype_indication

   limited Conformance checking
  
   Language-Defined Pragmas
     Pack for arrays

   Record Layout
     Record Representation Clauses

   Shared Variables

   Input-Output for Integer for type Long_Long_Integer.
   (only Put currently supported for Long_Long_Integer not Get)

==================================================
= All of Ada 9X implemented except the following =
==================================================

  CORE

    Aggregates for tagged types

    User-defined Initialize/Adjust/Finalize in complex cases:
      records or arrays containing controlled components
      functions returning controlled objects

    Protected entry families
    Condition protected entry calls
    Requeue without abort
    Requeue Statement involving task entries

    No range checking on modular types

    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 code insertions or intrinsic subprograms
    Interrupt support
    The body of packag Interrupts is not implemented
    Preelaboration requirements are not fully met
    Shared Variable Control is not fully implemented

  ANNEX D. REAL-TIME SYSTEMS

    Tasking restrictions
    Synchronous task control
    Asynchronous task control (optional in any case)

  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

    Machine_Radix attribute definition clause
    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
    pragma Reviewable
    pragma Inspection_Point
    Safety and security restrictions

  ANNEX I. OBSOLESCENT FEATURES

    The constrained attribute
    Interrupt entries

  ANNEX J. LANGUAGE-DEFINED ATTRIBUTES

    Adjacent
    Alignment
    Bit_Order
    Body_Version
    Caller
    Ceiling
    Compose
    Constrained
    Copy_Sign
    Definite
    Exponent
    External_Tag
    Floor
    Fraction
    Identity
    Input
    Leading_Part, 
    Max_Size_In_Storage_Elements
    Machine
    Model
    Output
    Pred for fixed-point types
    Pred for floating-point types
    Read
    Remainder
    Rounding
    Scaling
    Storage_Pool,
    Succ for fixed-point types
    Succ for floating-point types
    Truncation
    Unbiased_Rounding
    Valid
    Version
    Write

  ANNEX K. LANGUAGE DEFINED PRAGMAS

    Atomic
    Atomic_Components
    Attach_Handler
    Controlled
    Discard_Names
    Export 
    Inspection_Point
    Interrupt_Handler
    Linker_Options
    Locking_Policy
    Memory_Size
    Normalize_Scalars
    Queuing_Policy
    Restrictions
    Reviewable
    Shared
    Task_Dispatching_Policy
    Volatile_Components
