Development Log

  • GNAT Pro
    Dec 1st, 2016

    Foreign thread names retained on Linux
    When foreign threads are registered with the Ada runtime on Linux, GNAT no longer changes the name of the thread to "foreign thread".

  • GNAT Pro
    Nov 25th, 2016

    New warning on late dispatching primitives
    Compiler provides a new warning (enabled by means of switches -gnatw.j or -gnatwa) that warns on public primitives of a tagged type defined after some private extension of it.

  • GNAT Pro
    Nov 24th, 2016

    Support for vxWorks 653 2.5.0.2
    GNAT Pro for vxWorks 653 now supports 2.5.0.2 on both PowerPC and e500v2.

  • CodePeer
    Nov 17th, 2016

    Support for -gnatxxx switches
    CodePeer now supports the -gnatxxx compiler switches directly, either from the command line, or from the Switches attribute in the CodePeer package in project files, giving more flexibility in particular coupled with the -compiler-mode switch. This also allows specifying CodePeer-specific compiler switches (such as -gnatI) without impacting compilation.

  • SPARK Pro
    Oct 27th, 2016

    Better handling of always-fail subprograms
    Subprograms where all possible execution paths end in an exception are now dealt with in a more obvious fashion. Instead of raising many checks and warnings, we now emit only a single high check indicating that no path will return normally.

  • SPARK Pro
    Oct 20th, 2016

    level switch uses time limit instead of step limit
    The level switch used to provide a high level way of tuning the verification condition now sets time limits instead of step limits for provers. As a result, this switch is more predictable, as it always allows each prover to run for the same amount of time, but less deterministic, as the time needed for a prover to complete a proof may vary depending on the computer.

  • CodePeer
    Oct 8th, 2016

    No False Positive mode
    Significant work has been done to reduce the number of false alarm messages (also known as false positives) when using the -messages min switch. This is also the default when using -level 0, -level 1 and -compiler-mode switches. In this mode, only messages which are the most likely to be real errors are generated.

  • GNAT Pro | Libraries and Bindings
    Sep 30th, 2016

    Gtkada.Canvas_View: inline editing improvements
    New signals have been aded:

       Signal_Inline_Editing_Started
       Signal_Inline_Editing_Finished
    
    New subprograms have been added:
       Set_Editable, Is_Editable
       Inline_Editing_In_Progress
    
    When an item that is edited interactively by the user is moved, we now also move the editing widget (generally a GtkTextView). This text view now also inherits the font size and attributes from the edited item. End of editing is done via a simple <return>, since the previous <ctrl-return> was impossible to guess by the user. Preselect the whole text when editing, so that the user can more easily change it all.

  • SPARK Pro
    Sep 29th, 2016

    Integration of Codepeer Technology into SPARK
    The CodePeer Static Analysis engine is now part of the SPARK tools. It can be enabled using the command line switch --codepeer=on, or selected via a new checkbox in the SPARK integration inside GPS. If this is done, SPARK will run the CodePeer engine prior to its own analysis to discharge checks. Depending on the project and kinds of checks, this can result in more proved checks, or quicker completion of analysis, because SPARK doesn't need to analyze some checks already proved by the CodePeer analysis. The strong point of the CodePeer static analysis are ranges of variables, including floating-point variables. As a result, proof of runtime checks will be improved if the CodePeer engine is used.

  • GNAT Pro | GPS | GNATbench
    Sep 29th, 2016

    GPS: relative paths in the Omnisearch
    The Omnisearch can now also display project relative paths instead of absolute ones. This behavior can be controlled via a checkbox present in the Omnisearch settings.

  • GNAT Pro | GPS | GNATbench
    Sep 29th, 2016

    GPS: non-exclusive key bindings in plugins
    It is now possible to bind keys to actions without unbinding the key. This means that the same key binding might apply to several actions, and the action that gets executed is the first one for which the filter matches. In particular, this allows reusing keys like <enter> or <tab> in contexts other than the editor.

  • SPARK Pro
    Sep 29th, 2016

    Ability to replay proofs using SPARK
    The SPARK tools now support a new switch --replay. If this switch is passed to GNATprove, it will attempt to replay the proofs of all checks that are marked as proved in the proof session, using for each VC the same prover that succeeded in proving it, and a time and steps limits that were sufficient to make the proof succeed. This feature provides an efficient way of checking that all proofs still go through, e.g. after an upgrade of the SPARK tools.

  • GNAT Pro
    Sep 29th, 2016

    Implement AI95-0133 in Ada 95 mode
    Record representation clauses for record types with non-native Bit_Order are now interpreted according to the Binding Interpretation in AI95-0133 even when the compiler is running in Ada 95 mode. A new debug command line switch -gnatd.p is introduced, which restores the previous behavior (from the original Ada 95 specification). (Note that -gnatd.p has no effect when running in Ada 2005 mode or above).

  • SPARK Pro
    Sep 28th, 2016

    Use SMT-LIB float theory with prover Z3
    GNATprove can now benefit from SMT solvers with native floating- point support. In particular GNATprove uses this support in prover Z3, which gives more precise results on floating-point programs.

  • GNAT Pro
    Sep 28th, 2016

    Use natural interrupt numbers on Cortex-M
    The runtime has been adjusted so that Interrupt_ID now corresponds to the interrupt number of the manual. The previous offset of 2 has been removed. Warning: you possibly need to modify your application to use the new numbering if you were using pragma Attach_Handler.

  • GNAT Pro | GPS | GNATbench
    Sep 27th, 2016

    GPS: new action to maximize a window
    A new action ("maximize window") is provided to make the central area of the desktop (that contains the editor) occupy the full GPS window, hiding all other views. Executing the action again goes back to the previous layout. You can bind a key shortcut to this action via the Preferences/Key Bindings menu.

  • SPARK Pro
    Sep 27th, 2016

    Support for type invariants
    The tools now have initial support for type invariants (SRM 7.3.2). A type invariant can be specified on the completion of a private type. This invariant can be assumed anywhere outside the package where the type is declared; and is checked inside the package. Type invariants are useful to simplify a common pattern where an invariant is added to the pre- and post-conditions of all subprograms in a package.

  • GNAT Pro
    Sep 27th, 2016

    More efficient integer overflow checking
    The compiler now generates more efficient code for the overflow checking required by the arithmetical operations on signed integer types.

  • CodePeer
    Sep 27th, 2016

    New switch -f
    A new switch -f is provided to force reanalysis when using the -compiler-mode switch, instead of doing an incremental analysis only, and to force generation and analysis of scil files for all source files in the default mode.

  • GNAT Pro | GPS | GNATbench
    Sep 26th, 2016

    GPS: cross-references from runtime files
    It is now possible to force GPS to index runtime files so that you can perform cross-references from them (it was always possible to cross-ref from your own sources to the runtime). This takes longer to index, so is disabled by default. See the preference Project/Cross References in Runtime Files.

  • GNATCOLL.Scripts.Execute_Expression: new function
    This new function can be used to execute any python expression (not just function calls) and retrieve their result without knowing in advance whether it will return a string, list of string, boolean,...

  • GNAT Pro | GPS | GNATbench
    Sep 23rd, 2016

    GPS: toolchain information in About dialog
    The About dialog now contains the name of the current project's toolchain if this toolchain is not the native one.

  • GNAT Pro | GPS | GNATbench
    Sep 22nd, 2016

    GNATdoc: Documentation_Dir attribute
    Attribute Documentation_Dir is defined in Documentation package now. Attribute with same name in package IDE is obsolete. Its support will be removed in future version of GNATdoc.

  • SPARK Pro
    Sep 22nd, 2016

    Better handling of ‘Length on modular index types
    The translation of the 'Length array attribute has been improved to avoid unecessary conversions when the index type is a modular integer type. This should improve provability whenever 'Length is used on a modular index type in contracts.

  • GNAT Pro | GPS | GNATbench
    Sep 22nd, 2016

    GPS: Windows view sort order
    Two new settings have been added to the Windows view: you can now choose whether to show nodes for notebooks that have a single window (the default is still to display the window itself, but not its notebook in this case); and you can choose whether to sort windows alphabetically, or to preserve the order of tabs within the notebooks. When the notebooks are not displayed, and sorting is disabled, the order depends on which window had the keyboard focus last, which provides a convenient way of switching quickly between a few editors among a lot of them.

  • GNAT Pro
    Sep 21st, 2016

    Improved warning for value not referenced
    The wording of two warnings related to values assigned to an object but possibly never referenced has been adjusted to reflect that these values might actually be referenced in some corner cases (namely, components of a controlled object might be referenced during the finalization of that object).

  • GNAT Pro
    Sep 21st, 2016

    No_Elaboration_Code_All for System.Machine_Code
    Package System.Machine_Code can now be with-ed by packages that have the pragma No_Elaboration_Code_All, supporting execution of code before elaboration.

  • GNAT Pro | GPS | GNATbench
    Sep 20th, 2016

    GPS: using keyboard in Outline view
    It is now possible to use <enter> in the Outline to jump to the corresponding entity (same as clicking on the line).

  • GNAT Pro | GPS | GNATbench
    Sep 20th, 2016

    GPS: mouse buttons 4 and 5 for locations
    The mouse buttons 4 and 5 (available on some high-end mice) are mapped to the locations command, and used to move in the locations history (back to the previous position, and back). This is hard-coded, and cannot be changed.

  • GNAT Pro | GPS | GNATbench
    Sep 20th, 2016

    GPS: new action “locate in Files view”
    GPS now exports a new action to find the current file in the Files view. This action is not visible by default in the contextual menu (as opposed to Locate in Project view) in an effort to keep the menu simple. However, it can be added with a small python script as in:

         GPS.Action("Locate in Files view").contextual("Locate in Files")
    
    The menu /Navigate/Locate in Files view has been added.

  • GNAT Pro | GPS | GNATbench
    Sep 20th, 2016

    GPS: ask before overwriting read-only file
    GPS now checks the permission on the disk before saving a file (rather than just the read-only status of the editor). If the file is read-only on the disk, it displays a confirmation dialog to let you chose whether to overwrite (and, in the context of Clearcase, hijack the file).

  • GNAT Pro | GPRbuild
    Sep 20th, 2016

    GPRinstall support for separate ALI directory
    The new GPRinstall's --ali-subdir option can be used to install the ALI files into a specific directory.

  • GNAT Pro | GPS | GNATbench
    Sep 19th, 2016

    GPS: compute the GNAT Runtime menu dynamically
    The Help -> GNAT Runtime menu is now computed from the runtime that is actually being used for the current project, rather than a static image of a native runtime. This is particularly helpful when working with embedded or restricted runtimes.

  • GNAT Pro | GPS | GNATbench
    Sep 19th, 2016

    ECL: AJIS examples integration
    A new "AJIS examples" importer is now available. It is accessible from "File > Import..." menu in Ada folder. This importer requires AJIS 17.0.20160919w or later installation. These AJIS versions contain GNATbench examples that can be imported, built, run and debugged in GNATbench without modifications.

  • GNAT Pro | GPS | GNATbench
    Sep 16th, 2016

    GPS: display list of mains as flat menu
    When a project (and its subprojects) have a small number of main units, and the root project is not an aggregate, we display the /Build/Project/, /Build/Run/ and /Debug/Initialize menus as a flat list of mains, rather than introduce one extra level of menu for the name of the project.

  • GNAT Pro | GPS | GNATbench
    Sep 16th, 2016

    GPS: contextual menu to set watchpoint
    Right-clicking on a variable while the debugger is running will now set a watchpoint, so that the debugger stops any time the variable is modified.

  • CodePeer
    Sep 15th, 2016

    Messages involving loop imprecision marked low
    CodePeer is now able to identify messages where loop imprecision is involved and is making messages uncertain, which are marked low now by default instead of medium.

  • GNAT Pro | GPS | GNATbench
    Sep 14th, 2016

    GPS: new menu /File/Reset All Perspectives
    This menu restores the default window layout. This is in particular useful to reset the Debug perspective that has changed in this release of GPS.

  • GNAT Pro
    Sep 14th, 2016

    Include units requiring extended Ravenscar
    The "Ravenscar-full" runtime libraries now contain language- defined and GNAT-defined packages that require the extended Ravenscar profile defined by GNAT. Specifically, Ada.Synchronous_Barriers, GNAT.Semaphores, GNAT.Bounded_Buffers, and GNAT.Bounded_Mailboxes are now available.

  • GNAT Pro | GPS | GNATbench
    Sep 13th, 2016

    GPS: GPS.Process accepts a list of args
    The Python GPS.Process() now accepts the command as a list of arguments instead of a string, which makes it easier to handle arguments with spaces (no need for quoting)

  • GNAT Pro
    Sep 10th, 2016

    Update Ada.Locales for RM 2012 COR:1:2016
    Update the Ada.Locales interface to conform to the RM 2012 COR:1:2016. The type definitions for Language_Code and Country_Code are now using dynamic predicates.

  • SPARK Pro
    Sep 9th, 2016

    Suppressed unnecessary warning message
    For a null default subprogram defined in the formal part of a generic unit, now GNATprove does not emit a warning about formal parameters of the subprogram being unused and/or unmodified.

  • GNAT Pro | GPS | GNATbench
    Sep 8th, 2016

    GPS: GUI enhancements to the Omnisearch
    The Omnisearch feature has received a number of enhancements:

       - A default key shortcut (control-u) brings up the omnisearch
    
       - When bringing up the omnisearch through the key shortcut
         completions start appearing even before anything is typed
         in the entry. This allows, for instance, using the arrow keys
         to select one of the currently open windows.
    
       - The size of the popup window has been increased to take up to
         2/3 of the main window. This is useful when listing directories
         with long names, for instance.
    
       - The highlighting of the fuzzy-matched characters now uses a
         color.
    
       - If the text in the global entry has been manually deleted,
         it no longer reappears next time the search is activated.
    

  • GNAT Pro | GPS | GNATbench
    Sep 8th, 2016

    GPS: new %TP macro in builder targets
    A new macro %TP is available in builder targets. It will be replaced with the name of the project file to which the main unit belongs. It is for instance used when you do not want to pass the root project to gprbuild, but directly the unit's own project

  • GNAT Pro | GPS | GNATbench
    Sep 5th, 2016

    GPS: outline option to hide parameter names
    A new setting for the Outline view allows you to hide the name of parameters in the profile of subprograms. This saves some space, and helps differentiate homonym subprograms.

  • GNAT Pro | GPRbuild
    Sep 5th, 2016

    New gprname switch—RTS=
    gprname has now a switch --RTS= like all other GPR tools, as it is necessary for targets that do not have a default runtime.

  • GNAT Pro | GPRbuild
    Sep 3rd, 2016

    GPRinstall support for separate debug symbol file
    The new GPRinstall's --side-debug option can be used to write debug symbols out of executables and libraries into a separate file. If the executable to be installed is named main, then the debug information is moved into the file main.debug and is removed from the executable.

  • GNAT Pro | GPS | GNATbench
    Sep 2nd, 2016

    GPS: Pass the configuration file to the builder
    The configuration file (.cgpr) set by the "--config" command-line switch is now passed on to the builder. Also, GPS now also passes the configuration file which was automatically generated when the "--autoconf" option was given.

  • GNAT Pro
    Sep 1st, 2016

    Sjlj runtimes switched to back-end setjmp/longjmp
    The setjmp/longjmp (sjlj) runtimes of our gcc based ports are now all relying on the gcc core mechanisms for exception handling, with improved efficiency compared to the previous scheme.

  • GNAT Pro
    Sep 1st, 2016

    AI12-061 : iterated component associations
    Ada issue AI12-061 introduces a new construct in array aggregates allowing component associations to be parameterized by a loop variable, for example: Squares : Array (1 .. 10) of Integer := (for I in 1 .. 10 => I ** 2); type Matrix is array (Positive range <>, Positive range <>) of Float; G : constant Matrix := (for I in 1 .. 4 => (for J in 1 .. 4 => (if I=J then 1.0 else 0.0))); -- Identity matrix The expression in such an association can also be a function that returns a limited type, and the range can be specified by an 'others' choice.

   1  2  3     Next »