Development Log in July 2013.

  • GPS | GNATbench
    Jul 31st, 2013

    GPS: new preference to override tooltip colors
    A new preference was added in the "Windows" page to override the background of tooltips as set by the gtk+ theme.

  • GPS | GNATbench
    Jul 31st, 2013

    GPS: prevent possible locations for views
    GPS now adds a restriction as to where editors and views can be put. Editors can only be part of the perspective-independent part of the desktop so they always remain visible when switching perspectives.

  • GNAT Pro
    Jul 31st, 2013

    New pragma Allow_Integer_Address
    A new configuration pragma Allow_Integer_Address allows expressions of an integer type to be used in contexts where the private type System.Address is expected. The effect is to introduce an implicit unchecked conversion from the integer type to type Address. The inverse case of using an address type where an integer type is handled in an analogous manner. This may be useful when compiling legacy code which assumes that type Address is an integer type. This mode is set automatically when using CodePeer, and in relaxed semantics mode set by switch -gnatd.M.

  • GPS | GNATbench
    Jul 30th, 2013

    SPARK 2014 support
    The SPARK 2014 toolset is now supported by both GPS and GNATbench. A Prove menu will be available if the SPARK 2014 toolset is installed and found on the PATH at start up.

  • Ada Web Server
    Jul 30th, 2013

    Store response’s file name
    Store the response's file name from the server into the response record. This gives the client access to the file name which was containing the response received.

  • GNAT Pro
    Jul 30th, 2013

    Improved handling of warning for assign to formal
    The warning for assignment to a pass-by-copy formal being ineffective in the presence of a raise statement is now suppressed for assigments to formals of outer nested subprograms. This avoids some false postives and did not result in any missing warnings in the test suite, so this is a clear improvement.

  • GNAT Pro
    Jul 29th, 2013

    Redesign of gnatpp /—pp-old switch
    The formatting algorithms used by gnatpp have been substantially redesigned to provide better formatting in many cases, and to be more robust. The --pp-old switch is temporarily available to cause the old algorithms to be used.

  • GPS | GNATbench
    Jul 29th, 2013

    GPS: highlighting of numeric values
    GPS now supports highlighting of numeric values in the code editor and provides a new user preference to customize it.

  • GPS | GNATbench
    Jul 29th, 2013

    GPS: syntax highlighting of aspects
    Ada 2012 and SPARK 2014 aspects are highlighted with a different color (configurable via preferences), increasing their visibility when editing source files.

  • CodePeer
    Jul 29th, 2013

    Suspicious uses of out parameters of an access type
    CodePeer now issues warnings for suspicious dereferences of out parameters of an access type when the dereference occurs before assignment to the out parameter. Formerly, CodePeer might give a high error message indicating that an access check will be violated, even though an out-mode access parameter might have a value on input that is not null.

  • Ada Web Server
    Jul 24th, 2013

    Add timeout support for WebSocket Send and Close
    The Send and Close WebSocket routine supports now a timeout. This can be used to avoid blocking if the peer is not responding.

  • GNAT Pro
    Jul 23rd, 2013

    Loop_Entry allowed in Assert[_And_Cut] and Assume
    The Loop_Entry attribute can now be used in pragmas Assert, Assert_And_Cut, and Assume, if these pragmas obey the same loop placement rules required for the Loop_Assertion pragma.

  • CodePeer
    Jul 22nd, 2013

    Relaxed rules on pragma Preelaborate
    Rules in pragma Preelaborate are relaxed by CodePeer to support some legacy Ada 83 compilers, which provided different semantics for this pragma.

  • CodePeer
    Jul 22nd, 2013

    CodePeer package no longer depends on GNAT
    The CodePeer package is now standalone and is no longer required to be installed on top of a GNAT or GNSA (GNAT Semantic Analyzer) package, making the installation process simpler, and less error prone. This also means that CodePeer can be more easily updated without updating GNAT.

  • GPRbuild
    Jul 21st, 2013

    —no-object-check may be used in package Builder
    The gprbuild switch --no-object-check is no longer restricted to the command line. It may be specified in package Builder of the main project file.

  • CodePeer
    Jul 19th, 2013

    Relaxed syntax on pragma Import/Export
    Some Ada 83 legacy compilers accepted a different syntax for pragma Import/Export (no leading Convention), which is now accepted by CodePeer. For example:

      pragma Export (Variable, "external_name");
    

  • CodePeer
    Jul 18th, 2013

    Warnings on suspicious in out parameters
    CodePeer now issues warnings for certain in out parameters that could have a more restricted mode. For an in out parameter of an elementary type that is assigned on all paths through the subprogram, a warning is given indicating that the parameter's mode could have mode out. For an in out parameter of a scalar type that is never assigned, a warning is given indicating that the parameter could have mode in.

  • CodePeer
    Jul 17th, 2013

    Support message review via Annotate pragmas
    Manual review of messages generated by CodePeer can now be provided by adding pragmas to the program being analyzed, as in

       X := Y;
       pragma Annotate
         (CodePeer, Intentional, "Range Check", "reviewed by John Smith");
    
    For details, see CodePeer User's Guide sections 4.2.1 ("Review of Messages") and 5.2.5 ("Add message review pragmas").

  • GPRbuild
    Jul 17th, 2013

    Bind and link several executables simultaneously
    gprbuild is now able to bind several executables simultaneously when switch -jnnn is used, with nnn other than 1. It is also able to link these executables simultaneously with the same switch -jnnn.

  • CodePeer
    Jul 15th, 2013

    Improved analysis for modular type conversions
    In the case of a signed-to-modular type conversion, CodePeer now distinguishes a checked conversion (which preserves the mathematical value of the operand) from an unchecked conversion (which might not). This allows more precise analysis than before. The previous version was not incorrect, but it was unnecessarily conservative.

  • GPRbuild
    Jul 14th, 2013

    Linking several executables simultaneously
    gprbuild is now able to link several executables simultaneously when switch -jnnn is used, with nnn other than 1.

  • GPS | GNATbench
    Jul 12th, 2013

    GPS: support for displays with 16 bpp
    GPS now supports displays with a color depth of 16 bits per pixels.

  • GPS | GNATbench
    Jul 11th, 2013

    GPS: tooltip while scrolling in editors
    When manipulating an editor scrollbar with the mouse, a tooltip is displayed that shows the current line and entity.

  • CodePeer
    Jul 11th, 2013

    New switch -update-scil
    CodePeer supports a new switch -update-scil to automatically (re)generate SCIL files from a project file (.gpr), making it unnecessary to call gnatmake manually.

  • GPS | GNATbench
    Jul 10th, 2013

    GPS: update default color scheme
    GPS now features a more modern default syntax highlighting color scheme for the code editor.

  • GPS | GNATbench
    Jul 10th, 2013

    GPS: reopen messages window as needed
    Even if the Messages window is somehow closed, GPS will automatically reopen it as necessary.

  • GPS | GNATbench
    Jul 10th, 2013

    GPS: display build progress when build completes
    When a build terminates with a failure, GPS now displays the total progress (as displayed by the task manager) in the console. This makes it easier to know how many files were compiled before the first compilation error.

  • GPS | GNATbench
    Jul 10th, 2013

    GPS: display size of selection in editors
    When a selection exists in an editor, the status bar will display the number of characters and lines that are selected.

  • GNAT Pro
    Jul 10th, 2013

    Additional warnings on unused withs in subunits
    When a subunit is compiled by itself for semantic correctness, the compiler now can emit warnings on with_clauses in the context of the subunit that are superfluous because none of their entities are referenced.

  • GNAT Pro
    Jul 9th, 2013

    gnatpp: Output encoding implies input encoding
    You no longer need to pass the "-cargs -gnatWX" switches to gnatpp in addition to "-WX"; "-WX" sets both the input and output encoding. Alternatively, you can use a Byte Order Mark (BOM) to get UTF-8 encoding. The input and output encodings are always the same.

  • GNAT Pro
    Jul 9th, 2013

    Raising and catching C++ exceptions
    It is possible to import C++ exceptions, and to handle them. The new package GNAT.CPP_Exceptions is provided to raise imported C++ exceptions and to get the object from such occurrences.

  • GPS | GNATbench
    Jul 8th, 2013

    GPS: vertical tabs
    It is now possible to change the orientation of the text via the contextual menu on each notebook tab. For instance, displaying the tabs on the left will rotate the text bottom-to-top, thus saving horizontal space.

  • GPS | GNATbench
    Jul 8th, 2013

    GPS: middle-click on tab closes the window
    A middle-click on a tab closes the window. This is close to the behavior most web browsers implement and is a convenient way to quickly close a number of tabs.

  • GNAT Pro
    Jul 6th, 2013

    New info messages saying why spec requires a body
    A new warning switch -gnatw.y activates information messages showing why a package spec requires a body. This can be useful if you have a long package spec that unexpectedly requires a body.

  • CodePeer
    Jul 5th, 2013

    Specifying a target configuration
    By default, CodePeer assumes a target configuration (size and alignment of standard integer types, endianness, etc.) equal to the host configuration. If this is not the case, the target configuration can now be specified using the compilation switch -gnateT.

  • GPS | GNATbench
    Jul 5th, 2013

    GPS: clean up Plug-ins dialog
    The plug-ins dialog has been simplified. It no longer shows the Python files that are mandatory for GPS and no longer supports custom initialization commands for the modules (since standard Python can be used for this). The implementation of the plug-ins is now accessible via hyperlinks, instead of being directly displayed in this dialog.

  • GNAT Pro
    Jul 5th, 2013

    Implement workaround for LEON3FT data cache errata
    The compiler switch -mfix-ut699 has been enhanced to work around the data cache nullify problems in Gaisler Research's LEON3FT Microprocessor.

  • Ada Web Server
    Jul 5th, 2013

    Add support for SMTP over SSL
    It is now possible to connect to SMTP server using a secure connection.

  • GPS | GNATbench
    Jul 4th, 2013

    GPS: only save changed preferences
    GPS will now only save those preferences that have been modified in its HOME/.gps/preferences.xml file. This change should be mostly invisible to users, except when changing versions of GPS where the new default will be picked up automatically.

  • GNAT Pro
    Jul 3rd, 2013

    Improved redundant checks elimination
    The front end now removes more unnecessary access and zero divide checks, based on analysis of short-circuited forms. For example, the expression "Boolean'(N=0) or else 10/N=7" does not require a zero divide check.

  • GNAT Pro
    Jul 2nd, 2013

    Improved error message for extra ELSE in IF expr
    If an if-expression contains redundant else clauses, a clearer error message is now given, with cleaner error recovery.

  • GPS | GNATbench
    Jul 1st, 2013

    GPS: style for build buttons in the toolbar
    The rendering has been modified for the build buttons in the toolbar so that they occupy less space while making it clearer that they have a popdown menu to select their build target.