GNAT IMPLEMENTED FEATURES LIST Current as of 03/29/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.04 ==================================== GNATMAKE utility (see gnatinfo.txt for details) Pragma Export Ada.Streams.Stream_IO Attribute Definite Interrupt entries Input-Output for Modular Types Input-Output for Decimal Types Input-Output for Integer for type Long_Long_Integer. The following are now implemented in package Ada.Text_IO Flush Look_Ahead Get_Immediate Text_IO.Complex_IO Text_IO.Text_Streams Wide_Text_IO Wide_Text_IO.Complex_IO Wide_Text_IO.Text_Streams Note: All the I/O packages have been rewritten from the ground up for this release, and should completely implement all features of the RM. To get file sharing, allowed only if the files are for the same I/O package and same mode, use a form parameter shared=yes. Latest features in GNAT version 2.03 ==================================== Delay until 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 Duration 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 and Solaris 2.3), x86 running IBM OS/2, Linux ========================================================================= = All of Ada 95 implemented EXCEPT the following unimplemented features = ========================================================================= CORE Protected entry families Protected subprogram pointers Conditional protected entry calls Requeue Statement involving task entries Private protected operations. Aggregates for Controlled Types Objects of type with unknown discriminants Accessibility checks Stream-Oriented Attributes of Specific Types Stream-Oriented Attributes of Class-Wide Types ANNEX A. PREDEFINED LANGUAGE ENVIRONMENT Ada.Exceptions Ada.Interrupts 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 now implemented, but there is no configuration control program yet. 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 (fully implemented) ANNEX J. LANGUAGE-DEFINED ATTRIBUTES Caller External_Tag Identity Input Output Read Storage_Pool Write ANNEX K. LANGUAGE DEFINED PRAGMAS Attach_Handler Interrupt_Handler Normalize_Scalars Queuing_Policy Restrictions