Development Log in January 2013.

  • GPS | GNATbench
    Jan 31st, 2013

    GPS: search in the current selection
    GPS can now limit Find and Replace operations to the currently selected text. This is done by selecting the scope "Current Selection" in the Search dialog; this scope is automatically selected when launching the dialog while a selection exists in the current editor.

  • GNAT Pro | GPS | GNATbench
    Jan 31st, 2013

    GPS: search in the current selection
    GPS can now limit Find and replace operations to the currently selected text. This is done by selecting the scope "Current Selection" in the Search dialog; this scope is automatically selected when launching the dialog while a selection exists in the current editor.

  • Ada
    Jan 28th, 2013

    AI-0054 A raise expression does not fail for IN
    If a predicate contains a raise expression, and this raise is evaluated as part of an IN membership test, then the result is simply that the membership test fails. The exception is not raised.

  • GNAT Pro
    Jan 28th, 2013

    Implement raise expression in membership test
    This implements the requirement that if a raise exppression is evaluated as part of a predicate test for an IN membership test, then the result is simply false (i.e. the predicate is not satisfied) and no exception is raised. This feature is fully documented in Ada 2012 AI12-0054-1.

  • Ada
    Jan 27th, 2013

    AI-0022 Raise expressions
    An expression can contain a raise expression. This is a new kind of relation which has the form "raise exception_NAME [with string_EXPRESSION]. The effect is to raise the given exception. This is particularly useful in the context of assertions such as preconditions, where it can be used to specify the exception that is raised if the assertion fails.

  • GNAT Pro
    Jan 27th, 2013

    Implement raise expression (new Ada 2012 feature)
    This implements the "raise expression" feature that has been added to Ada 2012. This allows you to write "raise NAME [with STRING]" in an expression and the effect is to raise the given exception. This is particularly useful in the case of assertions such as preconditions because it allows you to change which exception a precondition raises if it fails. This feature is fully documented in Ada 2012 AI12-0022-1.

  • GPS | GNATbench
    Jan 25th, 2013

    GB: Enhance block completions
    The block completion facility has been extended to cover additional constructs, e.g. extended return statements, protected entry bodies, and variant parts inside record declarations.

  • GNAT Pro | GPS | GNATbench
    Jan 25th, 2013

    GB: Enhance block completions
    The block completion facility has been extended to cover additional constructs e.g. extended return statement, protected entry bodies, variant parts inside record declarations.

  • GPS | GNATbench
    Jan 24th, 2013

    New cross reference engine
    GPS and GNATbench both have a new cross referencing engine based on SQLite. This new engine is expected to bring extra performance -- the xref database is now persistent across sessions and GPS will no longer need to parse ALI files on the fly. The new engine is also expected to provide more stability, since an external process is used to fill the database.

  • GNAT Pro | GPS | GNATbench
    Jan 24th, 2013

    New cross-reference engine based on sqlite
    GPS and GNATbench both have a new xref engine, based on sqlite. This new engine is expected to bring extra performance (since the xref database becomes persistent across sessions and GPS will no longer need to parse ALI files on the fly), as well as more stability (by using an external process to fill the database, and relying on sqlite's very good stability). This engine is currently disabled by default, but can be enabled by adding a line "ENTITIES.SQLITES=yes" in $HOME/.gps/traces.cfg .


  • Jan 23rd, 2013

    A talk presenting OTAWA toolbox for WCET computation - AdaCore Internal Seminar

    AdaCore Internal Seminar - Wednesday april 3, 2013.

    Hugues Cassé, one of the principal architects and developers of the toolbox, will come to the AdaCore Paris offices to give a talk presenting the OTAWA toolbox for WCET computation.

    OTAWA is a set of libraries and static analysis tools aimed at allowing WCET computation based on an abstract representation of the machine code and the target hardware, with existing mappings for a set of popular processors. For more details, see http://www.otawa.fr

    If you are interested in attending this talk, please send email to events@adacore.com.

  • GPS | GNATbench
    Jan 23rd, 2013

    GPS: filter in the outline view
    A filter has been added to the Outline view to make it easier to find entities.

  • PolyORB
    Jan 23rd, 2013

    Performance improvements for unions
    Several adjustments have been made to the circuitry that handles the marshalling and unmarshalling of aggregates, and in particular unions with enum discriminant. This results in a significant performance improvement when handling such data.

  • GPS | GNATbench
    Jan 22nd, 2013

    GB: Export GNATbench preferences like CDT
    GNATbench preferences can now be exported via the export preferences wizard and imported into another workspace via the import preferences wizard.

  • CodePeer
    Jan 22nd, 2013

    Faster analysis time on large aggregates
    CodePeer now takes much less time analyzing code containing large aggregates used e.g. for default initialization of objects.

  • GNAT Pro | GPS | GNATbench
    Jan 22nd, 2013

    GB: Export GNATbench preferences like CDT
    GNATbench preferences can now be exported via the export preferences wizard and imported into another workspace via the import preferences wizard.

  • GNAT Pro
    Jan 22nd, 2013

    Backup copies of project files with gnatname
    When invoked with an existing project file, gnatname creates a backup copy of the project file, unless it is invoked with the new switch --no-backup. This does not apply to VMS, where multiple versions take care of this need.

  • GNAT Pro
    Jan 21st, 2013

    Improved warnings for possibly null loops
    The warnings for loops which have null ranges detectable at compile time have been improved to give clearer messages and avoid some false positives.

  • GPS | GNATbench
    Jan 21st, 2013

    GPS: autofix on missing constant with preferences
    Autofix has always done fixes using lower-cased letters. This enhancement performs the fixes on missing constants following the user defined preferences specified in "Preferences/Editor/Ada/Reserved word casing".

  • GPS | GNATbench
    Jan 21st, 2013

    GPS: Outline has a flat view mode
    It is now possible to display all entities at the same level, rather than nested hierarchically. In some cases, it makes searching for an entity easier.

  • GPRbuild
    Jan 21st, 2013

    Switches—RTS for gprclean
    gprclean may now be called with switches --RTS= or --RTS:<lang>=. The runtimes specified with these switches are taken into account in the invocation of gprconfig in auto-configuration. This allows gprclean to have more accurate file names to delete, for example when the executable extension depends on the runtime.

  • GNAT Pro | GPS | GNATbench
    Jan 21st, 2013

    GPS: autofix on missing constant with preferences
    Autofix has always done fixes in lowercases. This enhancement performs the fixes on missing constants following the user defined preferences specified in Preferences/Editor/Ada/Reserved word casing

  • GNAT Pro
    Jan 20th, 2013

    Improved messages for explaining non-staticness
    The messages that explain why an expression is non-static (when it is required to be static), are improved, and in particular, if a string concatenation involves a non-static aggregate, this case is now clearly identified in the message.

  • GNAT Pro
    Jan 20th, 2013

    More efficient handling of others for string case
    Aggregates of the form (others => 'X') which are similar in effect to the use of a string literal are now handled more efficiently. Note that it is still the case that such aggregates are not static from a language point of view, so cannot be used in contexts requiring a static string.

  • GNAT Pro
    Jan 18th, 2013

    Pragma No_Inline to suppress inlining
    A new pragma No_Inline has been implemented to suppress inlining for a subprogram or for the instances of a generic subprogram.

  • GNAT Pro
    Jan 18th, 2013

    Profile (Rational) and pragma Overriding_Renamings
    A new profile has been introduced to simplify porting legacy code that compiles with the Rational APEX compiler. This profile enables the pragmas Implicit_Packing and Use_VADS_Size, as well as the new pragma Overriding_ Renamings, which makes legal the renaming of an inherited operation with the same name in its own scope.

  • PolyORB
    Jan 17th, 2013

    Shared libraries build
    PolyORB can now be built as a set of shared libraries using configure switches "--with-gprbuild --enable-shared".

  • GNAT Pro
    Jan 17th, 2013

    Pragma Loop_Optimize to control loop optimizations
    A new pragma Loop_Optimize has been implemented to control optimizations applied to loops. It makes it possible for the programmer to provide the compiler with optimization hints for loops on an individual basis.

  • GNAT Pro
    Jan 15th, 2013

    Variant record types with No_Implicit_Conditionals
    Previously, a declaration of a variant record was rejected if restriction No_Implicit_Conditionals was active, since the resulting generated equality and initialization routines contained implicit tests. Now such declarations are allowed, but these routines are not generated if the restriction is active. Furthermore, if the restriction is active, then any attempt to do a comparison of variant records, or to default initialize such a record, will be considered a violation.

  • gnatcoll_db2ada allows specifying postgresql port
    It is now possible to specify which port number the postgreSQL server runs on, when running gnatcoll_db2ada.

  • GNAT Pro
    Jan 12th, 2013

    Suppress run-time tag check on assignments
    The compiler now suppresses run-time checks on tags for assignments to tagged types if checks are suppressed (e.g. by use of -gnatp).

  • GNAT Pro
    Jan 12th, 2013

    Support Ada.Execution_Time on PowerPC bare board
    Ada.Execution_Time is now supported by the Ravenscar runtimes on ppc-elf and p55-elf.

  • GPS | GNATbench
    Jan 11th, 2013

    GPS: move Serialize to /Edit/Rectangle/
    This menu was previously in "/Edit/Selection", but is more logically in the Rectangle submenu since it conceptually applies to a rectangle.

  • GPS | GNATbench
    Jan 11th, 2013

    GPS: Refill automatically computes paragraph
    The menu "/Edit/Selection/Refill" will now either apply to the current selection if it exists (as before) or automatically compute the extent of the current paragraph to reformat (instead of only applying to the current line).

  • GNAT Pro | GPS | GNATbench
    Jan 11th, 2013

    GPS: move Serialize to /Edit/Rectangle/
    This menu was previously in /Edit/Selection, but is more logical in the Rectangle submenu since it conceptually applies to a rectangle.

  • GPS | GNATbench
    Jan 10th, 2013

    GPS: group spec and body in Outline view
    It is now possible to group the spec and body (or spec and full view) for an entity on the same row in the Outline view to reduce the total height of the Outline view. Clicking on the name of the entity will jump to its spec, but if this is already the current location, the editor will jump to its body instead.

  • Ada Web Server
    Jan 10th, 2013

    Support for certificate checking has been added
    Support for certificate checking has been added. The actual status code can be retrieved and the corresponding message if needed. It is then possible to know why a certificate has been rejected from the verify user's callback.

  • GPS | GNATbench
    Jan 9th, 2013

    GPS: line wrapping in Messages window
    It is now possible to configure whether the Messages window should wrap lines or require horizontal scrolling.

  • SPARK Pro
    Jan 9th, 2013

    POGS -l option to ignore missing Simplifier logs
    The new -l command line option causes POGS to ignore missing slg files rather than raising errors. This option is designed to be used with the Simplifier's -nolog option.

  • GPS | GNATbench
    Jan 8th, 2013

    GPS: Update to Scenario View
    The Scenario view has been updated to a better looking tree rendering.

  • GNAT Pro
    Jan 8th, 2013

    Pragma Warnings and GCC back-end warnings
    Pragma Warnings can now be used in conjunction with the warnings of the GCC back-end to exercise finer control over these warnings.

  • GNAT Pro
    Jan 7th, 2013

    Use discriminant subtype constraints in derivation
    The compiler now takes into account the subtype constraints added by renaming discriminants in the derivation of untagged discriminated types to determine the size of mutable objects of the derived types.

  • GPRbuild
    Jan 4th, 2013

    Project_Path searched before ADA_PROJECT_PATH
    Project_Path values are searched before ADA_PROJECT_PATH. This behavior is better as if Project_Path is defined for the aggregate project we do not want to pick a random project found in ADA_PROJECT_PATH.