Development Log in August 2014.

  • GNAT Pro
    Aug 29th, 2014

    Improve error message for illegal iterator
    The compiler provides an improved error message on an Ada 2012 iterator specification whose name is a function call, when the function does not yield a type that implements the predefined iterator interface.

  • GNAT Pro
    Aug 28th, 2014

    Parameter for Positional_Parameters gnatcheck rule
    A parameter is added to the gnatcheck Positional_Parameters rules, it causes the rule to flag all the positional associations that can be replaced with named associations according to Ada rules.

  • GNAT Pro
    Aug 22nd, 2014

    Pragma/aspect Suppress_Initialization for variables
    Suppress_Initialization can now be used as a boolean aspect as well as a pragma, and now applies to variables as well as types. When applied to a variable it suppresses all implicit initialization for that variable.

  • GNAT Pro
    Aug 22nd, 2014

    Improved messages in configurable run-time mode
    The error messages for unsupported features in a configurable run-time have been enhanced for the cases of task rendezvous not supported, and specified array packing not supported. Instead of just listing the (possibly obscure) name of the missing entity in these cases, a clear error message is now given saying that the feature is not supported. In the latter case an error is now issued on the array type declaration itself, as well as on packed operations.

  • SPARK Pro
    Aug 21st, 2014

    Support for manual proof with Coq
    GNATprove now offers suppor to use of Coq to manually prove SPARK 2014 VCs. This includes:

       - Extraction and verification of files containing SPARK 2014 VC that must
         be completed by the user with proof.
       - Definition of a project attribute to specify the location of VC files.
       - Communication with GPS environment for SPARK 2014 to perform manual
         proof from the IDE.
    

  • GPRbuild
    Aug 20th, 2014

    —target and CodePeer mode
    When gprbuild is called with switches --codepeer and --target, it now issues a clear error message indicating that these two switches cannot be used simultaneously, instead of hard to understand errors such as:

        no languages defined for this project
    

  • CodePeer
    Aug 20th, 2014

    Compiler specific libraries
    CodePeer now provides compiler specific libraries to ease analysis of Ada code used with most compilers.

  • GNAT Pro
    Aug 19th, 2014

    Pragma Warnings with string literal OK in Ada 83
    The compiler now accepts the two argument form of pragma Warnings in Ada 83 with a string literal as the second argument. This was previously not allowed because a static string expression was required, and there is no such thing in Ada 83.

  • SPARK Pro
    Aug 19th, 2014

    Support for Default_Initial_Condition
    Both proof and flow analysis now support aspect Default_Initial_Condition.

  • GPS | GNATbench
    Aug 17th, 2014

    Improved indentation of conditional expressions
    Indentation of Ada 2012 conditional expressions (if and case expressions) spanning multiple lines has been improved.

  • GNAT Pro
    Aug 17th, 2014

    New application unit System.Atomic_Counters
    The unit System.Atomic_Counters is now officially available to application programmers. This unit provides an atomic counter type, along with increment, decrement and test operations using hardware synchronization primitives. It is available for most targets: See documentation for complete list of supported targets.

  • GPS | GNATbench
    Aug 15th, 2014

    GPS: auto-load plugin
    GPS now loads project-specific plugin named <project>.ide.py when root <project>.gpr is open.

  • GPS | GNATbench
    Aug 14th, 2014

    GPS: defining tool switches no longer needs size
    When you define new tool switches with <tool><switches...></tool>, you no longer need to define the "lines" and "columns" attributes, which are computed automatically.

  • GPS | GNATbench
    Aug 13th, 2014

    GPS: Save callgraph browsers across sessions
    The contents of the callgraph browser is now saved when GPS exits, and restored the next time it is restarted.

  • GPS | GNATbench
    Aug 12th, 2014

    CodePeer: Read-only message review dialog
    The CodePeer message review dialog now prevents changes the message review status when a message was reviewed in the source code with pragma Annotate.

  • CodePeer
    Aug 12th, 2014

    Faster generation of messages
    The generation of messages has been improved, which is particularly noticeable when lots of messages are generated.

  • SPARK Pro
    Aug 12th, 2014

    Use of volatile objects in type conversions
    Volatile objects with enabled properties Async_Writers or Effective_Reads can now appears as the expression of a type conversion.

  • GNAT Pro
    Aug 11th, 2014

    -gnatn is equivalent to -gnatN on non-GCC targets
    For non-GCC targets, such as JVM, .NET, and AAMP, -gnatn now enables inlining in the front end, and is thus equivalent to -gnatN on these targets.

  • GNAT Pro
    Aug 10th, 2014

    Improved accuracy of warnings with pragmas involved
    The treatment of variables for which pragmas such as Shared are given has been improved to give more accuracy in the warnings when a variable is not referenced (for example, appearance in pragma Shared does not count as a reference for the purpose of this warning).

  • GNAT Pro
    Aug 10th, 2014

    Improve casing of identifiers in error messages
    The casing of identifiers in error messages has been improved by copying the exact casing from the source program in cases where this is possible.

  • GNAT Pro
    Aug 9th, 2014

    New pragma Prefix_Exception_Messages
    A new configuration pragma Prefix_Exception_Messages sets a mode in which raise statements using "raise with" where the message is given as a static string expression add an automatic prefix to this string consisting ot the name of the enclosing entity (identifying the package and subprogram). This mode is automatic for run-time library routines, which makes it easier to tell where an exception message came from.

  • GNAT Pro
    Aug 7th, 2014

    Sockets implemented for arm-linux-android
    Sockets have been implemented for the arm-linux-android eabi toolchain.

  • SPARK Pro
    Aug 6th, 2014

    Quantification on type with Iterable aspect
    Generalized loop iteration is now supported in quantified expressions using a new, more SPARK friendly, mechanism for defining an iterable container type.

  • GPS | GNATbench
    Aug 4th, 2014

    GPS: support for auto-indentation in Python
    GPS provides auto-indentation for Python files.

  • CodePeer
    Aug 4th, 2014

    Support for -U and -U main_file switches
    CodePeer now supports switches -U (analyze all files from the project) and -U main_file (analyze only the closure of the specified main file) on the command line.

  • GNAT Pro
    Aug 3rd, 2014

    Add warning for access to atomic record component
    If X.Y is referenced where X is an atomic object and Y is a non-atomic component, the RM does not specify exactly what mechanism is used to do this access. In particular there is no guarantee that this will be done using a full access to X. A warning is now given in this situation if X has an address clause, typical of the memory mapped I/O case, that the result may not be what is expected (there are several possible different expectations in this case).

  • GPRbuild
    Aug 2nd, 2014

    Better reactivity for gprslave
    The locking circuitry of gprslave has been rewritten completely to ensure better responsiveness to multiple requests. For example, now a gprclean distributed request won't have to wait the end of compilations.

  • GNAT Pro
    Aug 2nd, 2014

    Implementation aspect Obsolescent
    A new implementation-defined aspect Obsolescent is implemented that is equivalent to the existing implementation defined pragma of the same name.

  • GNAT Pro
    Aug 1st, 2014

    Improved error recovery for bad aspect syntax
    Omitting => in an aspect definition could cause a "compilation abandoned" message when operating with -gnatQ mode to force semantic analysis of the program, This is now fixed, and the compiler recovers gracefully,