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