- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
Apr 29th, 2008
Ben Brosgol's tutorial at SSTC 2008, entitled "Safety and Security: An Analysis of Certification Issues and Technologies for High-Integrity Software".
Today's interconnected critical systems must be both safe and secure; software developers and decision makers need to understand the operative certification standards and their implications on technology choice and system development. This presentation first summarizes the DO-178B avionics safety standard and the Common Criteria / Common Evaluation Methodology security standard. It identifies the requirements that these standards impose on programming language technology and development tools, and explains how safety and security considerations are similar and how they differ. It describes how modern programming language features such as Object-Oriented Programming affect safety and security certification, and assesses several current language family approaches -- C / C++, Ada / SPARK, and Java -- against safety and security requirements.
Apr 28th, 2008
New gnatcheck rule for exceptions
A new rule (Separate_Numeric_Error_Handlers) is added to gnatcheck. This rule checks if the predefined Numeric_Error and Constraint_Error are always used together as exception choices of the same exception handler. This check is used to ensure that exception handling will behave the same in Ada 83 and in Ada 95 modes.
Wider access to GCC builtins from Ada
Raw access to most of the GCC builtin functions is now possible thanks to Intrinsic import pragmas, allowing for instance access to very low level information like the current call frame return address or inline expansion of common math routines.
gnatlink “—GCC=gcc -xxx”
When gnatlink is invoked with --GCC= with an executable that is the same as the default one (gcc or <prefix>-gcc) and additional switches, the back end switches from the ALI file are also used to compile the binder generated sources.
Apr 23rd, 2008
New attribute Excluded_Source_List_File
A new attribute Excluded_Source_List_File is added to the Project Manager. Its value is a single string that designates a text file that contains the list of simple file names that should not be considered as sources of the project.
Warning on redundant slices
If a one-dimensional constant array object A is declared with an index subtype S, then the slice A (S) is flagged as redundant to indicate that the construct could be optimized simply to A.
gnatname: different patterns for different dirs
gnatname may now be invoked so that different patterns apply to different directories, using a new switch --and to separate sections of directories/patterns. Example: gnatname -d src1 "*.ada" --and -d src2 "*.spec" ".body"
Apr 17th, 2008
Direct visibility on variables in ancestors
In a child project, there is now direct visibility on project level variables and string types in the ancestor of the project. For example, in project Parent.Child any variable and string type in project Parent is directly visible.
Apr 16th, 2008
Higher alignment for composite stand-alone objects
The compiler now chooses a higher alignment than that of their type for composite stand-alone objects if this will result in better performances. This can be disabled by means of pragma Optimize_Alignment (Space).
New attributes Object_Generated and Objects_Linked
New attributes for languages are created: Object_Generated (when "false", it means that no object file is created by the "compiler") and Objects_Linked (when "false", it means that the object files of the languages are not linked in an executable or put in a library).
Apr 14th, 2008
The Return of Ada
A very nice article entitled the "Return of Ada" has been published in Government Computer News. In it, the author highlights some of the recent contract wins and successes that made the choice to use the Ada programming language. To view the article, please click here or visit: http://www.gcn.com/print/27_8/46116-1.html
Better handling of compiler checks in gnatcheck
A -R switch is implemented for the 'Restrictions' gnatcheck rule. This allows the check for a specified restriction to be turned off. In addition the list of warnings and style checks known to gnatcheck has been updated.
New switch to treat restrictions as warnings
A new compiler switch -gnatr (/TREAT_RESTRICTIONS_AS_WARNINGS in VMS) causes pragma Restrictions to be treated as Restriction_Warnings, and Profile as Profile_Warnings, and Ravenscar sets restriction warnings.
Abstract projects may be extended more than once
It is now possible for a project qualified as abstract to be extended by several projects in the same project tree.
Avoid intermediate overflow for type conversion
For an expression such as Integer (A + B), where A and B are Short_Integer and the result of the addition exceeds Short_Integer, it is allowed to get a constraint_error even though the result would fit in type Integer. This seems undesirable in this case, and the RM specifically allows for the possibility of not raising the exception if the right result is given. The compiler now takes advantage of this and does not raise CE in this case.
Support for the arm-nucleus toolchain
Support for the GNAT arm-mentor-nucleus toolchain is now available by default in the project properties.
Apr 7th, 2008
In memory of Peter Amey
It is with great sadness that AdaCore learnt of the passing of Peter Amey last Thursday. Peter has been a long-term friend of many members of the AdaCore team through his work leading the SPARK Ada project and more generally through his interest and expertise in the areas of Safety and Security. Our thoughts and condolences go to his family, friends, and colleagues at this time.
Warning when no source of a language
When a language is declared or defaulted in a project file and there is no source of the language, gprbuild now issues a warning indicating this, unless warnings are suppressed.
New compiler switch -gnateG
A new switch is added to the compiler: -gnateG. When integrated preprocessing is performed and this switch is used, the result of the preprocessing is saved in a file in the directory where the compiler is invoked. The file name is <source>.prep (<source>_prep on VMS).
Blocking socket operations with timeout
New versions of Connect_Socket and Accept_Socket in GNAT.Sockets are provided, which offer blocking operations with a user defined timeout.
Better code for object with address clause
When an object has an address clause whose value is known at compile time, references to this object is done directly using the address, rather than referencing indirectly through a pointer. This saves time and space.
Static lib projects may import standard projects
The restriction that static library projects could only import library projects has been lifted. Shared library projects are still allowed to import only shared library projects.
Restricted imports of sources
New functionalities have been added to restrict the set of sources or header files that can be inported:
- switch --direct-import-only forbid sources of a projects to imports sources or header files of a project that is not directly withed. - attribute Interfaces lists the sources and header files that are allowed to be imported from sources of an importing project.