- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
Apr 25th, 2012
Package Ada.Streams.Stream_IO is preelaborated
As specified in AI05-0283, package Ada.Streams.Stream_IO is now declared with a pragma Preelaborate. This allows the declarations of Remote_Types and Remote_Call_Interface packages to depend on it, for support of such features as logging and persistence.
GPS: automatic mode for “strip blanks” preference
A new mode "Autodetect" has been added to the "strip blanks" preference. In this mode, if a file is open and contains zero trailing blanks, GPS will automatically strip trailing blanks when saving that file. Otherwise, trailing blanks will be preserved.
GPS: strip trailing blank lines
A new preference is provided in GPS to strip or keep trailing blank lines at end of file when saving editors.
Apr 23rd, 2012
More precise analysis of standard arithmetic
CodePeer now analyzes more precisely code involving standard arithmetic functions, such as Sin and Cos, by taking into account the postconditions of these functions giving bounds and results for special values.
Apr 23rd, 2012
New proof statement for system assumptions
A new proof statement (assume) has been added to introduce assumptions about a system. In essence, this can be used to introduce any fact into the proof system and is intended as a replacement for certain prv files. An example assumption could be "we reboot this system every 10 years, hence the uptime counter cannot overflow".
Apr 23rd, 2012
Add postconditions to standard numeric functions
The Ada RM requires numeric functions to return values in specific ranges, and specific values for some specified argument values. Many of these are now translated as Ada 2012 Post aspects on numeric functions, so that they can used by analysis tools, such as codepeer.
Apr 19th, 2012
Further relaxation of static limits
The symbol table has been made dynamic and the limit of 1 million source lines per file has also been relaxed - it is now 2.1 billion lines which should be enough for most...
Apr 19th, 2012
GNAAMP emits exception instructions for small lib
On the AAMP target, when using the small library configuration, raises of Program_Error and Constraint_Error are compiled into EXCEPT1 and EXCEPT2 instructions rather than run-time calls, reducing code size.
GB: Improved search results interaction
In search results, when a non-nested entry is selected, the IDE opens an editor on the first enclosed match, rather than on the enclosing construct itself. For example, let's say the search finds one more more references to an entity within a subprogram. Only one entry, the subprogram name, will appear in the results, rather than every enclosed match being given an entry. Selecting that subprogram entry will open the editor at the first enclosed reference, rather than at the subprogram name.
Apr 16th, 2012
Code size reduction for controlled operations
The output of informative messages for the case of raising Program_Error in Finalize and Adjust due to earlier exceptions is now enabled only when the switch -gnateE is used. As a consequence, code size is reduced for programs using controlled types.
GPS: inherit ALI parser for custom language
GPS may now be configured to use its ALI parser to read cross referencing information for custom languages.
Apr 11th, 2012
Support for VxWorks Linux
gprbuild now support VxWorks Linux targets.
GPS: wildcard support in Open From Project
Interpretation of wildcard characters is now available in the "Open From Project..." dialog.
gnatcoll_db2ada can now generate Create_Database
This function (that is generated with the -adacreate switch) provides the necessary code to recreate the database from your application, with no need for the external files that define the schema and initial data of the database.
GNATCOLL.Readline: new package
This package provides an interface to the readline library, providing advanced interactive input.
GNAT.Command_Line: default value for string switch
The function Define_Switch that automatically assigns the value of the parameter to a variable will now preserve the default value set in that variable, instead of systematically reseting to the empty string. This makes it easier to specify default values.
GNAT.Command_Line: specify argument names
It is now possible to specify the name of the argument, as displayed in the automatic help message, when registering switches in Define_Switch. This helps make the help message more readable.
Read the latest installment of the Ada 2012 Rational by John Barnes:
Download Chapter 1 - Contracts and Aspects
Here's this Monday's installment from the Ada Connection 2011 talks. Jozef Cvirik from Ipesoft gives a talk on Real-Time Management & Production Systems for Manufacturing and Energy Facilities
A new film added every Monday. To view all the films we've added to date, please visit the Ada Lecture Series.
Apr 5th, 2012
Extending functionality of cil2ada
The cil2ada interfacing tool now support assemblies of .NET 4.0
Apr 4th, 2012
Minutes and Seconds predefined in RavenSPARK2005
In RavenSPARK2005 mode, the functions Seconds and Minutes are now predefined in the package Ada.Real_Time with specifications as in the Ada 2005 LRM D.8. These functions are only predefined when both the Examiner switches -profile=ravenscar and -language=2005 are given.
Apr 3rd, 2012
CodePeer now takes pragma Unreferenced into account
In the case of an assignment to a variable which is subject to an Unreferenced pragma (which indicates that the variable will never be read), CodePeer no longer generates a useless "unused assignment" warning.
Apr 1st, 2012
Improved detection of unreachable code
Pragmas are now ignored when checking for unreachable code. This causes additional cases of unreachable code to generate warnings (or errors in SPARK mode). This also fixes the anomaly that attempting to suppress an unreachable code warning could generate a spurious warning.