Development Log in June 2013.

  • GNAT Pro
    Jun 29th, 2013

    Improved performance of stream operations
    Stream operations for the array types System.Storage_Elements.Storage_Array and Ada.Streams.Stream_Element_Array are now optimized in the same manner that has been done in the past for string types. This means that read/write operations handle the entire array as a block rather than reading and writing element by element.

  • GPRbuild
    Jun 26th, 2013

    libstdc++.so directory in run path option
    A new configuration attribute Library_Rpath_Options is created. The main goal of this attribute is to make sure that shared libraries with C++ code are linked with a run path option that includes the directory of the correct libstdc++.so.

  • GNAT Pro
    Jun 25th, 2013

    Performance improvements on large static aggregates
    Compiler makes better choices on whether to expand an aggregate with static components into a sequence of assignments, or construct a static constant for the backend. This improves code generation speed and memory usage when compiling large static tables.

  • GPS | GNATbench
    Jun 25th, 2013

    GPS: approximate search
    GPS is now able to do approximate search. For instance, searching for "saerch" will also match "search" when this mode is activated.

  • GPRbuild
    Jun 24th, 2013

    Non Ada sources copied to the Library_Src_Dir
    In a library project, when attributes Library_Src_Dir and Interfaces are declared and there are non Ada sources/templates in the Interfaces, these sources/templates are now copied to the Library_Src_Dir.

  • GNAT Pro
    Jun 22nd, 2013

    Comparison of symbols to integers in preprocessing
    When preprocessing a source, it is now possible to compare symbols with integers using =, <, <=, > or >=, e.g. #if symbol = 3 or #if symbol <= 20.

  • GPS | GNATbench
    Jun 21st, 2013

    GPS: new plugin formatfile.py
    This plugin, when loaded, adds a new menu "/Edit/Format Whole File", which reformats the whole file while preserving the current cursor location.

  • GPS | GNATbench
    Jun 20th, 2013

    Improved indentation of parenthesized expressions
    Extra spaces following an open parenthesis are now taken into account when indenting Ada code.

  • GPS | GNATbench
    Jun 20th, 2013

    GPS: color schemes
    A new preference is available to select color schemes. This affects other preferences and can be used to set dark colors for the background of editors and windows.

  • GNAT Pro
    Jun 20th, 2013

    Improved error message on illegal predicate
    A new error message flags a function with in-out parameters that is used in a predicate, to clarify subsequent error at the point of call.

  • GNAT Pro
    Jun 20th, 2013

    Ravenscar cert run-time functionality extended
    Add the 'Image, 'Value and other capabilities to all Ravenscar Cert based run-time libraries.

  • GNAT Pro | GPS | GNATbench
    Jun 20th, 2013

    Improved indentation of parenthesized expressions
    Extra spaces following an open parenthesis is now taken into account when indenting Ada code.

  • GNAT Pro
    Jun 20th, 2013

    Overlap warnings are now errors in Ada 2012 mode
    In accordance with AI05-0144-2/07, in Ada 2012, overlap of elementary OUT or IN OUT parameters in a procedure call is an error, not a warning and this is now properly implemented in GNAT. To ease the transition burden for cases where this incompatibility causes difficulty, the debug switch -gnatd.E is introduced, which converts this back into a warning.

  • GNAT Pro
    Jun 20th, 2013

    New switch -gnateu (ignore unrecognized switches)
    A new switch -gnateu switch causes subsequent unrecognized style (-gnaty), warning (-gnatw), and validity (-gnatV) switches to be ignored generating a warning message only. This is useful when compiling a set of sources developed with a later version of the compiler using an earlier version of the compiler (of course this version must implement the -gnateu switch).

  • Linking with static libiconv
    It is now possible to link with a static version of libiconv, to solve link issues with conflicting versions of libiconv. See the --with-iconv=static for configure.

  • GPRbuild
    Jun 18th, 2013

    Clean artifacts in object and exec directories
    gprclean now cleans from the object directory the files specified in new attribute Artifacts_In_Object_Dir in package Clean and for main projects cleans from the exec directory the files specified in new attribute Artifacts_In_Exec_Dir in package Clean.

  • GPS | GNATbench
    Jun 17th, 2013

    GPS: apply preferences on the fly
    The "Apply" button has been removed from the preferences dialog. Changes are now applied on the fly as settings are modified.

  • GNAT Pro
    Jun 16th, 2013

    New attribute P’Library_Level
    A new attribute P'Library_Level (where P is an entity name) is available. This attribute returns a Boolean value which is True if the entity is declared at the library level. Note that within a generic instantition, the name of the generic unit denotes the instance, which means that this attribute can be used to test if a generic is instantiated at the library level, using pragmas Compile_Time_Warning or Compile_Time_Error.

  • GNAT Pro
    Jun 16th, 2013

    Improve invalid UTF-8 code detection/documentation
    The validation tests in GNAT.Decode_String/Decode_UTF8_String now detect invalid UTF-8 sequences in which a longer encoding than is necessary is used. In addition the spec now clarifies that the validation does not include the rejection of UTF-8 sequences that are not "well-formed" and correspond to codes in the range 16#D800#-16#DFFF# which are not valid Unicode characters.

  • GNAT Pro
    Jun 16th, 2013

    Implement Character_Set_Version
    Ada.Wide_Characters.Handling.Character_Set_Version is now implemented. This was a late addition to this package. For GNAT it returns "Unicode 4.0".

  • GNAT Pro
    Jun 15th, 2013

    Initialize_Scalars applies to initialization
    If an array aggregate has a component clause that uses box initialization, and a corresponding component is not otherwise initialized, then the normal effect of Normalize_Scalars/Initialize_Scalars initialization applies.

  • GNAT Pro
    Jun 15th, 2013

    Default_Component_Value used for initialization
    If an array aggregate has a component clause that uses box initialization, e.g. 1..5 => <>, and a Default_Component_Value aspect is specified for the array type, then this value is used for the initialization (rather than the normal default initialization). This is not clearly specified in the Ada RM, but seems clearly the intended effect.

  • GPS | GNATbench
    Jun 13th, 2013

    New review classification of CodePeer messages
    When doing a manual review of a CodePeer message, the user can no longer change the message ranking, but instead can specify a review classification and the name of the reviewer. A new message review dialog is added and a new filter was added for CodePeer Report view to manage visibility of messages by review status.

  • GNAT Pro | GPS | GNATbench
    Jun 13th, 2013

    New review classification of CodePeer messages
    When doing a manual review of a CodePeer message, the user can no longer change the message ranking, but instead specify a review classification and the name of the reviewer. New message review dialog is added and new filter was added for CodePeer Report view to manage visibility of messages by review status.

  • GNAT Pro
    Jun 13th, 2013

    Improved optimization handling of aliased variables
    It is possible for programs to use low level techniques to modify variables that otherwise might be considered to be unassigned. For example, a variable can be passed to a procedure by reference, which takes the address of the parameter and uses the address to modify the variable's value, even though it is passed as an IN parameter. Such code is dubious, but with this change it works as expected providing the variable in question is marked as aliased. Basically the compiler now takes aliased as an indication that some funny business may be going on, and avoids possibly troublesome optimizations.

  • Ada Web Server
    Jun 9th, 2013

    WebSocket passes most Autobahn tests
    AWS now passes all tests from the Autobahn tests except those requiring UTF-8 validation of the messages.

  • GPS | GNATbench
    Jun 7th, 2013

    GPS: GPS.MDI.add to put on top of consoles
    The Python function GPS.MDI.add now has additional parameters to specify the initial location of the new widget. This allows you to put widgets on top of the existing GPS consoles.

  • GPS | GNATbench
    Jun 7th, 2013

    GPS: remove Goto Entity dialog
    The menu "/Navigate/Goto Entity" no longer opens up a dialog. Instead it moves the focus to the global search field. The "/Tools/Views/Entity" view was also removed since its features are now available through the global search field.

  • GPS | GNATbench
    Jun 7th, 2013

    GPS: remove Open From Project dialog
    The menu "/Files/Open From Project" no longer opens a dialog. Instead, it moves the focus to the global search field. The global search field offers many additional features.

  • GNAT Pro
    Jun 7th, 2013

    New pragmas Pre, Pre_Class, Post, Post_Class
    Four new pragmas, Pre, Pre_Class, Post, Post_Class are implemented. These are intended to be usable as direct replacements for the corrresponding Ada 2012 aspects, and share the same restrictions and semantics. The idea is to allow writing a program using these pragmas instead of the aspects, with the intention of possible compilation using an Ada compiler that does not recognize the pragmas (or corresponding aspects), but is prepared to ignore the pragmas.

  • GPS | GNATbench
    Jun 6th, 2013

    GPS: preserve location in new views
    When creating a new view for an editor (for instance through drag-and-drop), the new view is now displayed at the same location as the original editor, rather than on the first line.

  • CodePeer
    Jun 5th, 2013

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

  • SPARK Pro
    Jun 4th, 2013

    Victor wrapper supports solver=none
    Victor wrapper now supports the switch solver=none which causes Victor to process its input files without invoking any SMT solver. This can be useful for testing purposes.

  • GNAT Pro
    Jun 4th, 2013

    Additional functions in Ada.Characters.Handling
    Additional functions are added to Ada.Characters.Handling. These were late additions in Ada 2012 (to match routines in Wide and Wide_Wide cases). The functions added are Is_Line_Terminator, Is_Mark, Is_Punctuation_Connector, Is_Other_Format, and Is_Space).

  • GNAT Pro
    Jun 4th, 2013

    New warning for redundant if statement
    A warning (under control of -gnatwr, redundant constructs) is issued for an if statement that has a simple side effect free condition, a then consisting of a single null statement, and no else or elsif parts.

  • GNAT Pro
    Jun 2nd, 2013

    Updated names in Wide[_Wide]_Characters.Handling
    The names of functions Is_Other and Is_Punctuation in the two packages Ada.Wide_Characters.Handling and Ada.Wide_Wide_Characters.Handling have been changed to Is_Other_Format and Is_Punctuation_Connector to reflect the final decision on names for these Ada 2012 packages.

  • GPS | GNATbench
    Jun 1st, 2013

    GPS: Aliases expansion directly in editor
    The aliases expansion feature now works directly in the editor, without any dialog for aliases with parameters. The user progresses through the fields directly in the editor via the Ctrl+Tab shortcut. Visual feedback is provided for the current field via highlighting.

  • GNAT Pro
    Jun 1st, 2013

    Improved messages for duplicated case choices
    The messages for duplicated case choices now include the duplicated values. In addition the list of missing values is more accurate in the case of a subtype with a static predicate being used as a choice.

  • GNAT Pro
    Jun 1st, 2013

    Improved errors for duplicated array indexes
    The error messages for duplicated and missing index values in array aggregates have been improved, including listing of duplicated values.