Development Log in September 2013.

  • GNAT Pro
    Sep 27th, 2013

    Implement random fixed-point capabilities
    Two new generic functions (Random_Decimal_Fixed and Random_Ordinary_Fixed) are now available in GNAT.Random_Numbers (g-rannum.ads/adb). These permit generation of sequences of random numbers for a specified range of fixed point values (in a manner analogous to that provided by Random_Discrete).

  • Support for long integer values in JSON
    GNATCOLL.JSON can now handle 64 bit integer values (Long_Integer).

  • GPS | GNATbench
    Sep 26th, 2013

    GPS: filter in Locations matches on file names
    The filter in the Locations window now matches the location of the messages, not just their text. It is also possible to force alphabetical sorting of file names.

  • GNAT Pro
    Sep 26th, 2013

    gnatpp: Optional underscores in numeric literals
    A new option --decimal-grouping=n causes gnatpp to put underscores in decimal literals (literals without a base) every n characters. A similar option --based-grouping=n is used for based literals. If a literal already has one or more underscores, it is not modified. For example, with "--decimal-grouping=3 --based-grouping=4", "1000000" will be changed to "1_000_000", and "16#0001FFFE#" will be changed to "16#0001_FFFE#".

  • Ada Web Server
    Sep 25th, 2013

    Templates parser supports complex expressions
    It is now possible to use complex expressions in the template engine conditions. An expression can now be a concatenation of values and variable's values.

  • GPS | GNATbench
    Sep 23rd, 2013

    GPS: Searching for documentation after declaration
    A new preference "Documentation/Leading Comments" has been added to control the order in which GPS looks at the comments (before or after the declaration) to retrieve the documentation for an entity.

  • Support for Postgres SQL extensions
    Package GNATCOLL.SQL.Postgres now supports the construction of UPDATE ... RETURNING and SELECT ... FOR UPDATE statements.

  • GPS | GNATbench
    Sep 22nd, 2013

    GPS: New menu CodePeer>Generate CSV Report
    As part of the CodePeer integration, a new menu is provided to generate a CSV report file directly from GPS.

  • GNAT Pro
    Sep 20th, 2013

    Environment_Task and Activation_Is_Complete
    The Ada 2012 Environment_Task and Activation_Is_Complete functions have been added to Ada.Task_Identification.

  • GNAT Pro
    Sep 20th, 2013

    Raise expressions can be used in return statements
    The compiler now supports the use in Ada 2012 mode of raise expressions in return statements. This is useful in writing stubbed functions, where you can now write e.g. "return raise Program_Error;" and avoid the need for concocting a bogus return statement.

  • GPS | GNATbench
    Sep 19th, 2013

    GPS: safer saving of files
    Saving files is now done via a temporary file which is later renamed. This is safer, and protects against temporary disk issues that could occur during the actual save operation.

  • GPS | GNATbench
    Sep 19th, 2013

    GPS: Find All References displays context
    When you perform a "Find All References", each reference will also display the context of that reference (in general, the subprogram within which the reference is found).

  • GPRbuild
    Sep 19th, 2013

    Attributes External and environment variables
    In main aggregate project, when attribute External is specified, the corresponding environment variable is set, if it is not already set in the environment.

  • XMLAda
    Sep 17th, 2013

    Allow relative URI in namespace location
    For compatibility with older XML documents, XML/Ada can now be set up to allow relative URI when declaration namespaces. This needs to be activated through Sax.Allow_Relative_IRI_Feature.

  • GPS | GNATbench
    Sep 17th, 2013

    GPS: support for retina displays in browsers
    The display in the various browsers (e.g., call graph, entity, and debugger) is now sharper on retina displays.

  • GNAT Pro
    Sep 17th, 2013

    New types in Interfaces.C.Extensions
    New Unsigned* and Signed* types are available in Interfaces.C.Extensions to support types between 33 and 64 bits. These types are mainly for use by the -fdump-ada-spec binding generator which takes advantage of these new types.

  • GPS | GNATbench
    Sep 16th, 2013

    GPS: use separate file for CodePeer’s audit data
    CodePeer's audit data for messages is stored in a separate file to improve performance on subsequent GPS invocations.

  • GNAT Pro
    Sep 14th, 2013

    Linker_Section may be specified for subtypes
    A pragma Linker_Section may now be given for types or subtypes. The effect is to provide a default Linker_Section for all library level objects for which no explicit overriding Linker_Section is given

  • GNAT Pro
    Sep 14th, 2013

    Linker_Section may be specified for subprograms
    A Linker_Section pragma can now be given for a library level subprogram. In the case of overloading, it applies to all previously declared subprograms which do not already have a Linker_Section specified. Note that the aspect form of Linker_Section is useful if different elements of such an overloaded set are to be placed in different sections.

  • GNAT Pro
    Sep 14th, 2013

    Linker_Section information listed in rep info
    The output from the -gnatR? switch now includes listing of Linker_Section pragmas for any entity to which a Linker_Section pragma or aspect applies either explicitly or implicitly (the implicit case occurs when a type is given a linker section, and it is propagated to objects of the type).

  • GNAT Pro
    Sep 14th, 2013

    Linker_Section aspect
    An implementation-defined aspect Linker_Section is now available which is equivalent to the Linker_Section pragma. This can be used to specify that different elements of an overloaded subprogram set have different sections.

  • GPS | GNATbench
    Sep 13th, 2013

    GPS: Build/Settings/Target window now resizable
    The window to edit the build targets has a smaller default size and is resizable. It fits better on smaller screens.

  • GPS | GNATbench
    Sep 13th, 2013

    GPS: persistent contents of Debug/Connect To Board
    The contents of the dialog to connect to a board (target name and protocol) is now restored each time the dialog is displayed, avoiding the need to enter the same information each time the dialog is used.

  • GPS | GNATbench
    Sep 13th, 2013

    GPS: align end-of-line comments
    The align.py plugin now provides a solution to align end of line comments.

  • GNAT Pro
    Sep 13th, 2013

    Disable gnatpp pretty printing in regions of code
    You can now disable pretty printing in regions of code by surrounding the code with special comments that start with "--!pp off" and "--!pp on". The comments must appear on a line by themselves, with nothing preceding except spaces. You can use different comment strings using the gnatpp --pp-off and --pp-on command-line switches. To disable pretty printing for the whole file, put "--!pp off" at the top, with no following "--!pp on".

  • GPS | GNATbench
    Sep 12th, 2013

    GPS:  also aligns selected lines
    By default, if multiple lines are selected and you press <tab>, GPS will also align the colons (:), use clauses (use), arrows (=>) and assignments (:=) in these lines. This behavior can be deactivated by a new preference in the "Editors" section.

  • GNAT Pro
    Sep 11th, 2013

    More complete warnings for unmodified variables
    The compiler now properly recognizes all cases of P.Q being modified where P is an access type, and does not consider them to be modifications of P. This results in more complete warnings for unmodified variables, and also removes a bogus warning on pragma Unmodified when used in such situations.

  • GNAT Pro
    Sep 11th, 2013

    Add warnings for suspicious file names on windows
    On Windows-7, a somewhat surprising security feature from Microsoft checks for executable names of files that contain any of the substrings setup, install, or update. Such files require administrative privileges to load. Now when you run gnatlink on windows it will warn you if the output file name (for example something like App_Install) runs into this restriction.

  • GNAT Pro
    Sep 11th, 2013

    Do not give -gnatyB style errors in instance
    When the style check option -gnatyB (check boolean operators) is given, any errors within a generic template are flagged only on the template, not on each instantiation.

  • GPS | GNATbench
    Sep 10th, 2013

    GPS: search dialog shows name of current project
    The search dialog provides a "Scope" to only search in the source files of the current project. The dialog was improved to show exactly which project is considered current. Also, "/Navigate/Search" from an editor will set the current project to be that of the editor.

  • GNAT Pro
    Sep 10th, 2013

    Implement SPARK_05 recursion restrictions
    Restriction SPARK_05 (was previously called just SPARK) now checks two rules that help prevent recursion. One rule is that a subprogram cannot contain a direct call to itself. The other rule is that a call to a subprogram is not allowed in the same unit as the subprogram before the body has been seen.

  • GNAT Pro
    Sep 9th, 2013

    Never assume volatile variable is valid
    When validity checking of operands is enabled (e.g by using -gnatVa), then the code never assumes that the value of a volatile variable is valid based on analysis of previous assignments, so the validity of such a variable is checked on every read.

  • GNAT Pro
    Sep 7th, 2013

    Improved handling of new Ada 2012 equality errors
    In Ada 2012, it is illegal to declare a user-defined equality routine after the relevant type has been frozen. This incompatible change was needed for support of the new uniform composition of equality in Ada 2012. GNAT will now generate warnings (under control of -gnatwy, suppressible using -gnatwY) if this rule is violated in Ada 95 or Ada 2005 modes. In addition, in the case of Ada 2012 mode, the debug flat -gnatd.E will convert the new error messages into warnings (this is intended as a transition aid).

  • GNATCOOL.Projects.Aux new package
    This package provides additional services when using Project Files: functions to get data types from the underlying implementation of the Project Manager and subprograms that are usually only used by specialized tools.

  • GNAT Pro
    Sep 6th, 2013

    Optimized Stream_Element_Array stream attributes
    The stream attributes for Ada.Streams.Stream_Element_Array now pass the object to the stream primitive operations as a whole, instead of element by element.

  • GPS | GNATbench
    Sep 6th, 2013

    GPS: do not save Locations by default
    By default, the contents of the Locations window is no longer saved when GPS exits (and restored when it restarts), because it sometimes resulted in very long loading times. The previous behavior can be reactivated by using the local configuration menu in the toolbar of the Locations window.

  • GNAT Pro
    Sep 5th, 2013

    Python scripting support in ppc-aix debugger
    Python scripting is now supported in the ppc-aix debugger.

  • GNAT Pro
    Sep 4th, 2013

    Improved error message for concatenation
    Compiler provides a more explicit error message when one operand is of an access type, an error that is common for practitioners of other languages.

  • GNAT Pro
    Sep 3rd, 2013

    Random generators available on bare boards
    Packages Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random are now available in the Ravenscar full runtimes for bareboard platforms.

  • GNAT Pro
    Sep 3rd, 2013

    Reduce false positive for “no entities…” warnings
    The warning that no entities of a withed/used package are referenced is now suppressed if other serious errors were found. This reduces bogus cascaded warnings in such situations.

  • GPS | GNATbench
    Sep 2nd, 2013

    GPS: better error for invalid project names
    The error message when creating a new project with an invalid name now indicates that the name cannot be an Ada reserved word.