Development Log in April 2013.

  • GNAT Pro | Ada
    Apr 30th, 2013

    Ada Basics Training Course in Paris Offices

    AdaCore is organizing a public training from June 17th to June 21st, on Ada basics. This training targets people that have programming knowledge in languages such as Java, C or C++, but with little or no Ada knowledge. It is particularly appropriate for programmers that have just joined an Ada project, or are planning to in the next 12 months.

    This training combines theory and practice. The practical exercises are carried out on a GNAT Pro installation. The following topics will be studied:

    • Programming structures (declarations, types, instructions, arrays, record, exceptions)
    • Software architecture (subprograms, packages, encapsulation, access types, inheritance, limited types, genericity)
    • Ada 2012 Overview of advanced concepts (object orientation, low level programming, concurrency)


    Please contact info@adacore.com for additional information.

     

  • GNAT Pro
    Apr 29th, 2013

    New attribute Restriction_Set
    This attribute allows compile testing of whether a restriction is set. The allowed restrictions that can be tested are No_Dependence, and all boolean (no parameter) restrictions for which the binder enforces consistency. This is primarily intended for specialization of library code, but can be used in applications programs as well.

  • GNAT Pro
    Apr 25th, 2013

    Improved error message for illegal trigger
    The error message for an illegal triggering statement in an asynchronous transfer of control now has an RM reference to clarify the legality rule.

  • GPS | GNATbench
    Apr 22nd, 2013

    GB: Ada elements now displayed in Properties view
    When any element contributed to the Project Explorer or Outline view by GNATbench is selected, you will now see properties of that element in the Properties view.

  • GNAT Pro | GPS | GNATbench
    Apr 22nd, 2013

    GB: Ada elements now displayed in Properties view
    When any element contributed to the Project Explorer or Outline view by GNATbench is selected, you will now see properties of that element in the Properties view.

  • GNAT Pro
    Apr 21st, 2013

    Partition_Elaboration_Policy pragma in System
    A pragma Partition_Elaboration_Policy pragma may now appear in package System (in file system.ads), to set an elaboration policy for a library (and any program using this library.

  • GNAT Pro
    Apr 20th, 2013

    Restriction SPARK_05 replaces SPARK
    The restriction SPARK is replaced by SPARK_05 (since this restriction is specifically about violating rules of SPARK 2005). The restriction SPARK is retained for backward compatibility, but will generate a warning that it is obsolescent if it is used.

  • GNAT Pro
    Apr 19th, 2013

    Implicit packing for multi-dimensional arrays
    The Implicit_Packing pragma now applies to multi-dimensional packed arrays. Previously it was only applicable to single-dimensioned arrays.

  • GPS | GNATbench
    Apr 16th, 2013

    GPS: Visual indication of completions visibility
    In smart completions, entities that are not visible in the current scope are now displayed in grey.

  • GNAT Pro
    Apr 15th, 2013

    X’Img can be renamed as function
    In analogy with the 'Image attribute, the GNAT attribute 'Img can be renamed as a function, and used as an actual for a formal subprogram in an instance.

  • GPS | GNATbench
    Apr 11th, 2013

    WB: Wind River Workbench 3.2 support
    Wind River Workbench 3.2.x support is restored installing a new dedicated feature.

  • GPS | GNATbench
    Apr 11th, 2013

    GPS: Aliases auto completion
    Aliases can now be completed and expanded by the regular auto-completion mechanism.

  • CodePeer
    Apr 10th, 2013

    Removal of most soft preconditions
    CodePeer used to generate "soft" preconditions to guard against errors that may occur only on some paths through a subprogram, but not all paths. This led to false positives in the callers, as well as some imprecise results. Most of these soft preconditions have now been suppressed. Instead, CodePeer relies on the mechanism of conditional preconditions, which states exactly on which paths the guard is needed, and on the assumptions that all computed inputs of the subprogram should be initialized at subprogram call (which leads to precondition checks for initialization at call sites).

  • GNAT Pro
    Apr 10th, 2013

    Unchecked_Union types with multiple discriminants
    Unchecked_Union record types can now have multiple discriminants with nested variants controlled by different discriminants.

  • GNAT Pro
    Apr 9th, 2013

    Allow comments to line up with previous line
    An additional allowed indentation for comments when style checking for comments is enabled allows a comment that lines up with the previous non-blank source line.

  • GPRbuild
    Apr 5th, 2013

    gprinstall now supports cross-environment
    gprinstall will work in cross-environment by using the newly added --target option. This way it is possible to install a .dll created from a Windows cross-compiler on GNU/Linux for example.

  • GNAT Pro
    Apr 4th, 2013

    New aspect and pragma Contract_Cases
    A new implementation-defined aspect Contract_Cases and corresponding pragma are now available. This is considered to be an assertion that is controllable using Assertion_Policy or Check_Policy. It is a form of exteded precondition and postcondition testing in which several cases are presented each with a corresponding consequence, and as a postcondition, the consequence that corresponded to the case that was true on entry must hold on exit. For example: Contract_Cases => (P => Q, R => S) means that on entry either P or R must be true (but not both), and on exit, Q must be true if P was true on entry, and S must be true if R was true on entry.

  • CodePeer
    Apr 3rd, 2013

    Recognize variables initialized at declaration
    CodePeer avoids issuing messages about uninitialized variables in cases where the variables are known to be fully initialized at the point of their declaration, either by an explicit expression or implicitly due to default initialization.

  • GNAT Pro
    Apr 3rd, 2013

    Ada 2012 mode enabled by default
    The compiler now defaults to the current Ada standard (Ada 2012) instead of Ada 95, which was the historical default. This is basically equivalent to specifying the -gnat2012 switch. You can override this default setting via e.g. -gnat95/-gnat2005 switches or pragma Ada_95/Ada_2005 if needed. Note that Ada 2012 is generally upwards compatible with Ada 95 and Ada 2005, so even if your program is in one of these older versions, it will typically compile in Ada 2012 mode without needing one of these special switches.

  • GNAT Pro
    Apr 3rd, 2013

    Add Reason parameter for pragma Warnings
    All forms of the pragma Warnings now allow an optional extra argument (Reason => static_string_EXPRESSION) that is intended for documenting the purpose of a Warnings pragma. The compiler checks that the argument is a static string expression, but otherwise ignores it. The string is left in the tree, so other tools (e.g. ASIS tools) can read the reason string and possibly provide specialized processing for it.