- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
Jun 30th, 2005
Auto-init of SALS with constructors
Stand-Alone Libraries for most platforms, except VMS, are now auto-initialized using the constructor mechanism. This is achieved by the binder using new internally generated pragmas Linker_Constructor and Linker_Destructor.
Jun 19th, 2005
gnatpp option to control output file format
A new option ('--eol') is added to gnatpp to set the line ending format of the result file(s) containing the reforatted source(s). It is possible to specify DOS (CR LF) or Unix (LF) line endings.
Jun 16th, 2005
New function GNAT.Expect.Get_Command_Output
This new function provides a convenient way of executing a command and obtaining its output as a string.
Jun 11th, 2005
XDR stream attributes raise Data_Error
Per AI95-00132, the default implementation for stream-oriented attributes must raise Ada.IO_Exceptions.End_Error when end-of-stream is encountered during a Read operation. For consistency's sake, the XDR version now defines System.Stream_Attributes.Data_Error to be a renaming of End_Error as well.
AI-382 Current instance rule for access types
This AI modifies the Ada 95 "current instance" rule that states that the name of a type within its own declaration, when legal, denotes the current object of the type, and not the type itself The new rule states that in the context of an anonymous access definition, the name denotes the type itself and not the object. This allows Ada 2005 to recover the C / Pascal notation for lists, without the need for incomplete type declarations:
type Node is record Value : Integer; Next : access Node; Prev : access Node; end record;
AI-397 Overriding entries and protected operations
This AI extends the notion of overriding indicators (AI-218) to entries and protected subprograms. In this case an operation is said to "override" if it implements an operation of a parent interface, given that there is no notion of extending task or protected types.
AI-396 The “no hidden interfaces” rule
This AI allows for an untagged partial view to be completed by a tagged type that implements at least one interface. The partial view must be either untagged, or descend from a type that implements the same interfaces as the full view.