- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
GPS: translucent highlighting colors
It is now possible to specify translucent colors for highlighting of things like error messages and current lines in the editors.
GB: Show Ada content in Project Explorer view
GNATbench now uses the Project Explorer view rather than the now deprecated GNAT Project Explorer view. This is the standard view in Eclipse for viewing projects, folders, and files. There's also a new view filter that can hide any folders/files that are not relevant to the current build configuration. Working sets are supported now as well.
GB: Show Ada content in Project Explorer view
GNATbench now uses the Project Explorer view rather than the now deprecated GNAT Project Explorer view. This is the standard view in Eclipse for viewing projects, folders, files, etc. There's also a new view filter that can hide any folders/files that are not relevant to the current build configuration. Working sets are supported now as well.
GPS: refactoring of highlighter.py
This Python module is used as the basis for all Python scripts that need to highlight text in editors. In particular, you can easily extend it to highlight specific text or regular expressions in your buffer. This script now provides an OverlayStyle class, which supports more properties than before. Now you can strike through or underline specific text in your editors with just a few lines of code.
GNATCOLL.Traces display microseconds precision
When the stream DEBUG.MICRO_TIME is actived, the time displayed by DEBUG.ABSOLUTE_TIME will show microseconds, instead of just milliseconds by default.
Mar 20th, 2013
New attribute Loop_Entry
A new attribute Loop_Entry is available. This can be used only within a Loop_Variant or Loop_Invariant pragma to refer to the value of an expression on entry to the loop.
Name of undefined external reference
When the Project Manager is not able to find an external reference with no default, the error message now displays the name of the undefined external reference.
Using 'configure --target=...' can now be used to build GNATCOLL for a cross-target. The --target will be passed as is to gprbuild.
Mar 16th, 2013
New attribute Update
A new attribute Update is available. This allows creation of copies of array and record values with specified components modified. The components to be modified are specified by using an argument to the attribute consisting of an aggregate (with no others choice) that specifies the components that are to be modified (e.g. R'Update((2 => 4)) creates a copy of the array value R which is unchanged except that element 2 is changed to 4.
DSA application without name server
Facilities are now provided to override the location of RCI units using run-time configuration parameters (from configuration file, command line, or environment variables). When all RCI locations are provided through configuration, the DSA name server can be disabled altogether, by specifying "None" as the name server type in the gnatdist configuration.
Executable name in traces
The name of the executable can now optionally be included in trace messages logged to standard error. This feature is enabled by setting "exe_name=true" in section [log] of the PolyORB configuration.
Mar 12th, 2013
Examiner option to ignore SPARK 2014 aspects
If the language profile is set to 2014 (-lang=2014) the Examiner will ignore SPARK 2014 aspects in the source text. This allows both SPARK annotations and aspects to be present in the same code, enabling it to be analysed with the existing SPARK toolset and the new SPARK 2014 tools. This is designed to be useful when migrating existing SPARK code to SPARK 2014.
Mar 12th, 2013
New gnatls switch -aPdir
A new switch -aPdir is added to gnatls. When gnatls is called with one or several switches -aPdir and also switch -v, the directories specified in the -aP switches are displayed immediately after the current directory in the Project Search Path. A new warning is issued by gnatls for switches that are not recognized by gnatls. The GNAT driver when called as "gnat ls/list -aPdir ..." will also use the switch -aPdir in its invocation of gnatls.
Mar 11th, 2013
New pragma Loop_Variant
A new assertion pragma Loop_Variant appears in loops to specify expressions whose value is guaranteed to increase or decrease on each loop iteration. This can be used to guarantee that a loop makes progress, and is useful in helping to show that loops always terminate.
New pragma Assert_And_Cut
A new pragma Assert_And_Cut is available. This is identical to Assert (except that the name Assert_And_Cut must be used in an Assertion_Policy pragma to control it). The intention is that it be used in the middle of the code for a subprogram, to sum up all the work done up to that point.
New pragma Assume
A new pragma Assume is available. This is identical to Assert (except that the name Assume must be used in an Assertion_Policy pragma to control it). The intention is that this be used for assumptions about the external environment that cannot be verified from the program alone.
Mar 8th, 2013
New check name Predicate_Check
A new check name Predicate_Check is available that can be used in Suppress and Unsuppress pragmas. This allows predicate checks to be turned on and off for specific sections of code (unlike the effect of Assertion_Policy which is to enable or disable predicates at the point where they are defined).
Mar 7th, 2013
New manual review classification
When doing a manual review of a message, the user can no longer change the message ranking, but instead specify a review classification and the name of the reviewer.
Mar 6th, 2013
New procedure: Set_Close_On_Exec for sockets
A new procedure GNAT.Sockets.Set_Close_On_Exec is now available, allowing users to indicate that a given socket should not be inherited by spawned processes (on platforms where this is supported).
Mar 5th, 2013
gprinstall now preserves timestamps
gprinstall now preserves timestamps when copying the source files, object files and libraries.