- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
Warn on 8-bit boolean for imported C subprograms
If an 8-bit convention Ada boolean type is used in a subprogram with C or C_Plus_Plus convention, a warning is given under control of the -gnatwx flag reminding that this must be represented as a char on the C side.
Warn on tagged types for imported C subprograms
If a tagged type, or access type designated a tagged type, is used in a subprogram with C convention, a warning is given under control of the -gnatwx flag (since no C type corresponds to a tagged type).
Warn on C use of Ada convention subprogram pointer
If an Ada convention access-to-subprogram pointer is used in a subprogram with C or C_Plus_Plus convention, a warning is given under control of the -gnatwx flag (since the representation of such pointers may be different from what C expects).
Oct 28th, 2007
Address mod negative value raises exception
The System.Storage_Elements "mod" operation with an address left operand and a negative right operand has no obvious meaning. In accordance with the RM permission in 13.7.1(16), Program_Error is raised in this situation.
Oct 27th, 2007
A new configuration pragma Fast_Math activates a mode in which speed is more important than absolute conformance with the Ada standard for floating-point operations. Initially the only affected operation is complex multiplication, where the pragma has the effect of omitting scaling corrections for the case of intermediate overflow, greatly speeding up complex operations in normal operation, but more cases will be added later.
Oct 26th, 2007
Suppress No_Return warning for exception raise
The procedures Raise_Exception (in Ada 95 mode) and Reraise_Occurrence can return, but in practice they never do. The compiler no longer warns about a missing return in a function following such a call when the function is marked as No_Return (since this warning is almost always bogus).
Highlight context in contextual menu entries
In order to ease readability of contextual menus, the context (e.g the current file name) part is now highlighted.
Oct 23rd, 2007
Byte Order Mark (BOM) recognition and routine
A new unit (GNAT.Byte_Order_Mark in g-byorma.adb/ads) provides the capability of reading the byte order mark (BOM) at the start of a file which indicates what encoding is used in the file. The compiler now uses this routine to recognize a UTF-8 BOM at the start of the file (as standardly placed there by operating systems such as Windows-XP and Vista), and automatically set the encoding of the file to UTF-8.
Oct 15th, 2007
GNAT can be used with stack protection enabled
The GNAT Ada compiler and other tools can now be used on systems that prevent execution of code on the stack for security purposes, e.g. on Windows, this is called DEP (data execution protection). Programs generated by the compiler may or may not run in this environment, depending on which features are used (see Restriction No_Implicit_Dynamic_Code).
Oct 12th, 2007
Improved debugger support for up-level references
Both the compiler and the debugger have been enhanced to better support the access from within the debugger to objects declared at an upper subprogram nesting level. This works for code compiled with debugging information and without optimization on most native and cross platforms.
Ada Web Server
Oct 12th, 2007
Session in multiple embedded server
AWS now supports sessions for multiple embedded servers into the same executable. For this each server can register it's own session name. This will be used for the cookie name on the client side.
Oct 4th, 2007
Examples for bare board targets are available
Some examples are supplied in the GNAT Pro installation containing multi-language applications with project files for bare board targets.
Plug-in to fill Revision Logs
When GPS opens a new Version Control revision log for a source file, the plug-in "auto_changelog.py" will look at exisiting Visual Differences for this source file, and pre-fill the revision log with the names of subprograms being changed.
Oct 2nd, 2007
VxWorks taskInfoGet only needed for stack checking
The VxWorks routine taskInfoGet is only used when stack checking is enabled, to have access to task-specific data and be able to extract stack boundaries.
Automatic Documentation Generation redesigned
The Documentation Generation feature of GPS has been completely redesigned to create clearer and cleaner documentation. The engine is now also much more efficient than the previous one.
Oct 1st, 2007
Cross-reference information for index types
The cross-reference information for an array type declaration now includes links to each of its index types. This provides improved source navigation in GPS.
Display array index type info in Entity Browser
Information about array index types is now generated by GNAT versions more recent than 2007-09-21, and benefits the display of array types in the entity browser.