Here are the lists of implemented and not implemented features. A more precise
description of the gnat system is provided in the file 'gnat-intro' which is
part of the Sparc distribution, and the file READ.ME, which is part of the
OS/2 distribution.

Features added since GNAT version 1.61

Ada 83 features:
================-
Io_Exceptions/Ada.IO_Exceptions
Text_IO/Ada.Text_IO (with some restrictions -- see below)
Derived integer/modular types with constraints
Some constraint checking (turned off with -gnatp)
Floating point declarations without constraints

Ada 9X features
===============
Equality on composite types.
Abstract tagged types and abstract subprograms
Checks on use of 'Access attribute
Subtype of Modular types
View conversions for tagged types
=======================================================================

Features added since GNAT version 1.53

Ada 83 features:
================
image attribute for integer, boolean and character
generic formal subprograms
exception renaming

Ada 9X features:
================
library package renaming
image attribute for float
class-wide objects and allocators
Ada9x version of package Ada.Tags

Features supported
------------------

The parser is a full Ada9X parser,and includes the latest decisions of the
mapping team, including the keyowrd -abstract-. Semantic analysis and code 
generation are in constant evolution, and several important Ada9X features
have been implemented in this release. In particular, tagged types, type
extensions,  and dynamic dispatching (but no private extensions yet) as well
as the full hierarchical library mechanism. 
 

Chapter 2
   pragma List, Page

Chapter 3
   Object declarations
   Number declarations

   Subtype declarations

   Type declarations
     Derived types and classes
     Enumeration types
        attributes (first, last, range, pos, val, image)
     Class-Wide types
     Character types
        attributes (first, last, range, pos, val, image)
     Boolean types
     Integer types
        attributes (first, last, range, pos, val, image)
     Modular types.
       subtypes
     Floating point (only operations on the predefined types)
     Array types
       attributes first, last, range, length
     Record types
       Discriminants and Discriminant constraints
       Variant Parts
     Tagged Types and extensions (without discriminant)
     Dispatching
     Access types
     Access to subprograms
     Incomplete types

Chapter 4
     Indexed Components
     Slices
     Selected Components
     Aggregates (record and array)
     Exponentiation
     Expressions (all forms)
        static concatenation
     type conversions  (except array conversions)
     membership tests, conversion with class-wide types

Chaper 5
     statements (all forms)

Chapter 6
     subprogram declaration and bodies
     subprogram calls 
       named and positional associations
       default parameters
     overloading of subprograms and operators
     functions returning unconstrained arrays
  
Chapter 7
     package declaration and bodies
     private types 
 
Chapter 8
    use clauses
    object, subprogram and package (including library package) renaming 
    exception renaming 

Chapter 10
    library units
    with clauses
    stubs and subunits
    pragma elaborate
    child units

Chapter 11
    exceptions
       declarations
       handlers
       raise statement
    limited constraint checking on integer/enumeration types under
      the following catagories:
        Index Checks
        Access Checks
        Range Checks
          Initial values in object declarations.
          Assignment
          parameter passing of IN parameters
          type conversions

Chapter 12
    Generic units
    In and In-out generic parameters.
    Generic formal integer types.
    Generic formal array types.
    Generic formal access types.
    Generic formal subprograms

Chapter 13
    package System is more complete
       Address attribute
    pragma Import
    pragma Interface, Interface_Name
    Unchecked deallocation
    simple record representation clauses
    Unchecked conversion 

Chapter 14
    package IO_Exceptions/Ada.IO_Exceptions
    package Text_IO/Ada.Text_IO
      sections 14.3.1, 14.3.2, 14.3.3, 14.3.4, 14.3.5, 14.3.6
      section 14.3.7 (Integer_IO) for type Integer, but NOT Long_Integer and
        NOT Long_Long_Integer
    

Features currently (11/3/1993) not supported
--------------------------------------------

Chapter 3
    Derived types
      from private types

    private type extensions

    Floating point declaration with constraint
      Floating point attributes
    Fixed point declaration
    Fixed point attributes
    tagged types with discriminants, 

Chapter 4
    Attributes other than first, last, pos, val, address
    dynamic concatenation
    aggregates for tagged types.
 
Chapter 6
    full conformance rules

Chapter 9
    Tasks and protected types (some semantic processing,  no runtime)
    package Calendar

Chapter 11
    No constraint checking on floating point types or modular types.
    Range checks which are not listed in the supported features section above.

Chapter 12
    Generic formal derived types.
    Generic formal packages.
    
Chapter 14
    Text_IO
      section 14.3.7 (Integer_IO) for Long_Integer and Long_Long_Integer
      section 14.3.8 (Float_IO) only Put and not Get supported
       Long_Integer and Long_Long_Integer not supported.
      section 14.3.8 (Fixed_IO) not supported yet
      section 14.3.9 (Enumeration_IO) not supported yet
      Ada 9X Modular_IO and Decimal_IO not supported.
    Sequential_IO
    Direct_IO
    Stream_IO
