Development Log in April 2008.

  • Ada
    Apr 29th, 2008

    Designing Safe and Secure Systems

    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.

  • GNAT Pro
    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.

  • GNAT Pro
    Apr 24th, 2008

    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.

  • GNAT Pro
    Apr 24th, 2008

    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.

  • GNAT Pro
    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.

  • GNAT Pro
    Apr 20th, 2008

    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.

  • GNAT Pro
    Apr 20th, 2008

    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"

  • GNAT Pro
    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.

  • GNAT Pro
    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).

  • GNAT Pro | GPRbuild
    Apr 16th, 2008

    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).

  • Ada
    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

  • GNAT Pro
    Apr 12th, 2008

    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.

  • GNAT Pro
    Apr 12th, 2008

    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.

  • GNAT Pro
    Apr 11th, 2008

    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.

  • GNAT Pro
    Apr 11th, 2008

    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.

  • GNAT Pro | GPS | GNATbench
    Apr 8th, 2008

    Support for the arm-nucleus toolchain
    Support for the GNAT arm-mentor-nucleus toolchain is now available by default in the project properties.

  • Ada
    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.

  • GNAT Pro | GPRbuild
    Apr 5th, 2008

    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.

  • GNAT Pro
    Apr 4th, 2008

    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).

  • GNAT Pro
    Apr 4th, 2008

    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.

  • GNAT Pro
    Apr 4th, 2008

    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.

  • GNAT Pro | GPRbuild
    Apr 2nd, 2008

    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.

  • GNAT Pro | GPRbuild
    Apr 1st, 2008

    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.