Development Log in September 2014.

  • SPARK Pro
    Sep 30th, 2014

    Tools now warn on hidden unexposed state
    The SPARK toolset now issues a warning per hidden state of a package that is not exposed through a state abstraction while an enclosing package declares abstract state.

  • CodePeer
    Sep 29th, 2014

    New switches -show-reviews and -show-reviews-only
    A new switch -show-reviews (relevant with using -output-msg) shows the messages which have been reviewed, with their review information. -show-reviews-only is introduced and replaces the previous -show-manual-reviews switch.

  • GNAT Pro
    Sep 29th, 2014

    Improved elimination of useless range checks at -O2
    The compiler now eliminates more range checks that can never fail when the optimization level -O2 or above is specified.

  • GNAT Pro
    Sep 27th, 2014

    Support for 32bit and 64bit Windows registry views
    GNAT.Registry has been enhanced to be able to open or create a key into either of the registry view on Windows 64bit.

  • SPARK Pro
    Sep 26th, 2014

    New categorization of messages
    The SPARK toolset used to issue not suppressible errors for violations of legality rules and important analysis problems, and suppressible warnings for less severe problems and suspicious situations. There is now a third category of messages, called checks. Some previous errors and warnings have become checks. The new categorization is that only violations of legality rules are errors, only suspicious situations are warnings, and all messages which impact the soundness of the code or the tool output are checks. Checks are suppressible, but the mechanism for suppression is different, so this represents an incompatible change. See the users guide for more details about messages and how to suppress them.

  • GPRbuild
    Sep 26th, 2014

    gprconfig issues an error for compiler not found
    When gprconfig cannot find a compiler for a language specified with a switch --conf, it now issues an error, even in quiet mode, indicating the language, the target and the runtime.

  • PolyORB
    Sep 23rd, 2014

    Lifted limitations on IAC command line
    IAC used to support only 64 preprocessor arguments, and 64 search path elements at most. Both limitations have been removed.

  • CodePeer
    Sep 22nd, 2014

    Ability to exclude source files from analysis
    A new project attribute Excluded_Source_Files in package CodePeer is available to easily exclude source files from analysis.

  • GPS | GNATbench
    Sep 19th, 2014

    GPS: outline showing C structs and typedefs
    The outline will now show entries for the named C structs (i.e. not those defined as part of a typedef). For instance, "struct foo {}" and "typedef struct foo bar" will generated entries, but not "typedef struct { ... } bar"

  • GPS | GNATbench
    Sep 19th, 2014

    GPS: alignment preserves the selection
    When using the contextual menu Align, this will now preserve the selection so that multiple such commands can be chained.

  • GPS | GNATbench
    Sep 18th, 2014

    CodePeer: display check kinds for messages
    GPS and GNATbench now display corresponding check kinds for CodePeer precondition messages. GPS allows filtering out messages based on these check kinds.

  • GPS | GNATbench
    Sep 18th, 2014

    GPS: save scenario on exit and restore on startup
    The value for the scenario variables is saved when GPS exits or you load a new project, and restored when the same project is loaded in the future (unless a new value is specified via environment variables or the -X command line parameter).

  • GPS | GNATbench
    Sep 17th, 2014

    GPS: Review handling of auto-saved files
    When you open a file for which there exists an auto-save file, GPS displays a dialog asking whether you would like to load this auto-save file instead of the actual file. This dialog was enhanced with the following capabilities: not displayed when the auto-save file contains the same thing as the file itself; loading the auto-save file can be undone, thus ending with the actual file, or redone, thus going back to the auto-save file.

  • GNAT Pro
    Sep 17th, 2014

    Better error msg for illegal deferred constants
    The compiler provides a more explicit message when a deferred constant is declared with an anonymous array type, explaining that the type of the full declaration is a different type.

  • GPS | GNATbench
    Sep 16th, 2014

    GPS: remove the GPS Shell console
    Although the GPS shell scripting is still supported for this language, the console itself has been removed. We recommend using the Python console instead. Most commands are available there, with the following replacements possible:

              GPS Shell         |    Python
                  cd            | os.chdir('...')
                  pwd           | os.getcwd()
                  ls            | os.listdir('...')
                  help          | help(...)
    

  • GPS | GNATbench
    Sep 16th, 2014

    GPS: save browser contents in desktop
    When GPS is restarted, the contents of the various browsers (call graph, project dependencies, file dependencies or entities) is restored.

  • GPS | GNATbench
    Sep 16th, 2014

    GPS: new File Operations menu in project view
    The File Operations menu, already available in the Files view, has also been added to the Project view. Through this contextual menu, it is possible to easily create new files or directories, rename existing files or directories, and delete them.

  • GPS | GNATbench
    Sep 16th, 2014

    GPS: folding compartments in entity view
    It is now possible to fold the attributes or operations compartment in the Entities browser. A new local configuration is also available to chose whether to display fully qualified names or simple names for the boxes.

  • GNAT Pro
    Sep 16th, 2014

    Support for C/C++ xrefs and symlinks
    The -fdump-xref compiler switch for C and C++ sources no longer resolves symbolic links under unix systems, thus allowing generation of cross references on the direct files, as used by e.g. some CM systems.

  • CodePeer
    Sep 11th, 2014

    Faster processing of enumeration type data
    CodePeer has improved the analysis of very large enumeration type declarations.

  • GNAT Pro
    Sep 8th, 2014

    Improve recognition of misspelled aspects
    The compiler now does a better job of recognizing and diagnosing misspelled aspects (such as Prelaborate for Preelaborate).

  • GNAT Pro
    Sep 8th, 2014

    Improve error recovery for bad comma/semicolon
    The compiler now gives a clearer error message for the case of an extra comma or semicolon after a logical phrase when more follow (e.g. X > 3; and then).

  • GNAT Pro
    Sep 7th, 2014

    Implement No_Tagged_Streams pragma and aspect
    A new pragma No_Tagged_Streams allows selective suppression of generation of stream routines for tagged types for which no stream operations are used. There are two forms, one with no parameters which appears in a package spec or declarative region and applies to all subsequent declarations of root tagged types in the package or declarative region, and one with an argument that names a specific root tagged type for which streams are not allowed. The latter form has a corresponding aspect.

  • PolyORB
    Sep 6th, 2014

    Changed preference order for Ada compiler
    When looking for an Ada compiler, the PolyORB configure scripts now favor "gcc" over "gnatgcc" or "adagcc". The default Ada compiler can always be overridden at configure time using the "ADA" environment variable.

  • GNAT Pro
    Sep 4th, 2014

    Inter-unit inlining of instantiated subprograms
    The compiler now considers instantiations of generic subprograms subject to pragma Inline or with an Inline aspect as equivalent for inter-unit inlining to regular subprograms subject to the pragma or aspect. Previously they were much less likely to be inlined across units.

  • SPARK Pro
    Sep 4th, 2014

    Individual checks for each Loop_Invariant Pragma
    For a given loop, the SPARK toolset used to generate a single check for all loop invariant pragmas in a group of loop invariants of that loop. This made it difficult to see which loop invariants were not proved. Now, the SPARK toolset generates a check for each Loop_Invariant pragma individually.

  • Ada Web Server
    Sep 3rd, 2014

    Add support for controlling WebSocket lifetime
    It is now possible to control the WebSocket's lifetime. First the new configuration option Max_WebSocket can be used to allow a maximum of simultaneous opened WebSocket and so avoid using all operating system file descriptor. Second the new configuration option WebSocket_Timeout can be used to control the time without activity after which a WebSocket is in timed-out mode. A timed-out WebSocket can be closed if the maximum number of WebSocket is reached.

  • CodePeer
    Sep 2nd, 2014

    Switch -update-scil now enabled by default
    The switch -update-scil is now the default, so can be omitted. A switch -no-update-scil is provided for compatibility with the previous default behavior in the rare cases where it is useful to separate SCIL generation from codepeer analysis. This means that a typical launch of codepeer now looks like:

      codepeer -P<project>
    

  • GPS | GNATbench
    Sep 1st, 2014

    GPS: on-the-fly syntax error reporting for Python
    GPS now runs the pep8 syntax checking library on Python source editors and reports errors as you type.