Development Log in 2013.

  • GNAT Pro
    Dec 31st, 2013

    Better error message for illegal completions
    The error message generated for a private type that is completed by an unconstrained type with discriminants has been improved, to avoid using the technical and somewhat obscure term "definite subtype".

  • GNAT Pro
    Dec 31st, 2013

    More complete enforcement of No_Abort_Statements
    This restriction now forbids all use of Ada.Task_Identification.Abort_Task, including renamings and the use of 'Access. In addition all checks of this restriction are not carried out even if code is not being generated (-gnatc) which was not the case previously.

  • GNAT Pro
    Dec 30th, 2013

    Pragma Warning_As_Error (selected warnings as errs)
    A new pragma Warning_As_Error allows specification of selected sets of warnings to be treated as errors. The warnings can either be selected by pattern matching with the text of the messages (as is done now for pragma Warnings), or a class of warnings specificed by -gnatw switch can be given.

  • GNAT Pro
    Dec 29th, 2013

    Better handling of anonmous access type convention
    Two changes are made to improve the handling of conventions for anonymous access types, and in particular anonymous access-to-subprogram types. It is not possible to explicitly specify the convention for such types, since they have no name, so previously they were always convention Ada. To give more control, first, if a convention is explicitly given for an object or component whose type is an anonymous access [to subprogram] type, then this type inherits the convention. Second if a convention is given for a record, then any components whose types are anonymous access [to subprogram] types which do not have a specified convention inherit the record convention.

  • GNAT Pro
    Dec 28th, 2013

    Documentation for pragma Reviewable
    A new section in the GNAT RM describes the effect of pragma Reviewable, and how it is possible to obtain all the information that is required to be output when this pragma is used.

  • GNAT Pro
    Dec 28th, 2013

    More accurate messages for bad left sides
    If code generation is inactive (-gnatc mode, or after some other illegality has been detected), the messages for incorrect assignments to non-variables are more accurate, avoiding confusion.

  • GNAT Pro
    Dec 28th, 2013

    Update library documentation for Ada 2012
    The "Standard Library Routines" chapter of the GNAT RM has been updated to include all packages defined in the Ada 2012 RM.

  • GNAT Pro
    Dec 28th, 2013

    Pragma Assert (False) as function exit
    The compiler checks that all exit points from a function end with either a raise statement or a return. If pragma Assert (False) is used this seems a very reasonable way to indicate that it is an error if this branch is taken, and such a pragma should inhibit the warning. For the case where assertions were enabled this always worked fine (since such an assertion gets turned into a raise statement), but if assertions were disabled, the warning was given. With this change, the pragma is recognized and the warning suppressed whether or not assertions are enabled.

  • GNAT Pro
    Dec 27th, 2013

    Documentation of handling of records with holes
    Records may contain holes or gaps with bits that do not correspond to the location of any component in the record. This can occur as a result of alignment requirements, or through the use of explicit component clauses that leave such gaps. A documentation section has been added to the GNAT reference manual that explains that GNAT does not initialize such holes, and that in general they may contain undefined rubbish.

  • GNAT Pro
    Dec 27th, 2013

    Clean up and new switches for elaboration messages
    Previously, the -gnatwl switch controlled two kinds of messages, real warning messages that are generally useful (e.g. warning on use of pragma Elaborate in the static elaboration model), and also info messages, useful only when debugging cycles in the static elaboration model. These are now separated, -gnatwl/-gnatwL controls only the warning messages, and -gnatel/-gnateL are new switches used to turn the info messages on and off.

  • GNAT Pro
    Dec 26th, 2013

    Warnings off to kill Unchecked_Conversion warnings
    Given a declaration like "function f is new Unchecked_Conversion (...)", any warnings associated with this instantiation can now be suppressed by applying a pragma Warnings (Off) to the function instance (f in this example).

  • GNAT Pro
    Dec 25th, 2013

    New pragma Provide_Shift_Operators
    A new pragma Provide_Shift_Operators can be given with a single argument that is the local name of an integer first subtype. The effect is to provide the five shift operators for this type (Shift_Left, Shift_Right, Rotate_Left, Rotate_Right, Shift_Right_Arithmetic) avoiding needing to write out the five function declarations and corresponding import pragmas.

  • GNAT Pro
    Dec 24th, 2013

    It is now allowed to use RAISE WITH in the compiler
    It is now permissible to use the RAISE WITH construct internally in the compiler sources and run-time. Mostly this is an internal change, but it does affect bootstrap requirements. Bootstrapping GNAT now requires a GCC 4.1 compiler or GNAT Pro version 5.04a1.

  • GPRbuild
    Dec 22nd, 2013

    Add support for artifacts in gprinstall
    It is now possible to install files or directories not part of the project (source or object). Those artifacts are described into the project's Install package and can be used to install documentation or examples.

  • CodePeer
    Dec 21st, 2013

    New codepeer_msg_reader switch: -show-header
    A new switch -show-header can be used when calling codepeer_msg_reader (either directly or via the -output-msg switch) to display a header containing information about the codepeer run (date, version, etc...).

  • GPS | GNATbench
    Dec 18th, 2013

    GPS: Periodic recomputation of XRefs while editing
    Cross references information is recomputed regularly with the live content of the editor every time the content of the buffer is changed. This in turns gives better support for navigation, highlighting, and every functionality based on cross references.

  • GPS | GNATbench
    Dec 17th, 2013

    GPS: Automatic indentation of pasted content
    When you paste content in a source editor that supports automatic indentation, it will be indented automatically, provided you have switched the feature on via the preferences dialog (Editor -> Auto indent on paste)

  • GPS | GNATbench
    Dec 17th, 2013

    GPS: Improved auto-align end of line comments
    Align end of line comments now ignores comments that don't have code before them.

  • GNAT Pro
    Dec 16th, 2013

    Serial_Error includes meaningful OS error message
    When GNAT.Serial_Communication routines raise the Serial_Error exception, a meaningful error message from the underlying OS is provided in the exception message, instead of just a numeric error code.

  • GNAT Pro
    Dec 15th, 2013

    Pre/Postconditions tested for imported subprograms
    Previously, preconditions and postconditions for imported subprograms were taken into account by the SPARK 2014 proof tools, but were ignored by the code generator with a warning. Now they are fully tested, and will cause run-time exceptions if violated, as for any other subprogram.

  • GPS | GNATbench
    Dec 12th, 2013

    GPS: Bind goto next/previous location to Alt+Arrows
    Goto next location is now bound to Alt+Right and Goto previous location is now bound to Alt+Left. This is meant to mimic the behaviour of numerous modern applications, most notably popular web browsers, have for navigating the history.

  • GNAT Pro
    Dec 11th, 2013

    Improved error recovery for bad null component
    The compiler now handles a null component appearing in a non-null record much more nicely, giving a clear error message, and proceeding ahead to scan the remaining legal components.

  • GNAT Pro
    Dec 9th, 2013

    Remove Ada version aspects
    The aspects Ada_2005, Ada_2012, are removed. Their use was a potential source of confusion, because for example it did not work to use them as aspects on a package specification (a most natural attempted use), because in this case they were handled too late. The use of the pragma is much clearer.

  • GNAT Pro
    Dec 8th, 2013

    Direct project support for ASIS-based tools
    A set of project-specific options is added to ASIS-based tools (gnatcheck, gnatelim, gnatpp, gnatstub, gnat2xml). Now it is possible to use a project file as a parameter to these tools, and the tool behavior is similar to the case where the tool is called from the GNAT driver.

  • GNAT Pro
    Dec 5th, 2013

    AAMP names for floating-point types in Interfaces
    The floating-point types declared in the AAMP version of package System are now declared with names AAMP_Float_32 and AAMP_Float_48, replacing the previous IEEE names.

  • GNAT Pro
    Dec 4th, 2013

    Avoid use of theta symbol in dimension facility
    Previously, theta was used for display of Kelvin when using the dimension capability. This looked nice, but was problematical in environments which did not support the Latin-1 display mapping of upper half ASCII (e.g. many PC environments). The symbol has been changed to '@', which doesn't look as nice as a real theta, but is universally displayable.

  • GPS | GNATbench
    Dec 2nd, 2013

    GPS: Highlight custom patterns in Messages View
    The Message View highlights text according to user defined regular expressions and colors.

  • GNAT Pro
    Dec 2nd, 2013

    Element iterators can be used on formal containers
    Iterators of the form "for Elem of Container" can be applied to types to which the Iterable aspect applies, if the Element attribute is specified.

  • GPS | GNATbench
    Dec 2nd, 2013

    GPS: Minor enhancements to the tip-of-the-day
    The "tip of the day" dialog can now be moved, and the text for the documentation can be selected.

  • GNAT Pro
    Dec 1st, 2013

    Composite Object_Size can be multiple of Alignment
    The compiler now allows the specification of an object size value for a composite type if it is a multiple of the alignment. Previously some values that met this requirement were rejected. E.g, the following is now accepted:

      type R is record
         A : Integer;
         B : Character;
      end record;
      for R'Object_Size use 40;
      for R'Size use 40;
      for R'Alignment use 1;
    

  • CodePeer
    Nov 30th, 2013

    Support for large interrupt id range
    CodePeer now accepts large interrupt range when using pragma Attach_Handler, for compatibility with any target compiler.

  • GNAT Pro
    Nov 30th, 2013

    Add message about mismatching predicates
    In cases where types do not conform because of mismatching predicates (e.g. when the formal in a subprogram spec and the formal in a subprogram body are of subtypes with mismatching predicates), then a message specifically noting this mismatch (which is course new with Ada 2012) is output.

  • GPS | GNATbench
    Nov 29th, 2013

    GPS: Multi selection using multi-cursors
    When multiple cursors are active, it is now possible to select simultaneously with all cursors as you would with one.

  • GPS | GNATbench
    Nov 29th, 2013

    GPS: Copy/Paste operations using multi-cursors
    When multiple selections are active, it is possible to cut, copy, and paste with multiple cursors. If the copy buffer has been filled with the same cursors, then the content of each individual cursor will be pasted. If the buffer was filled with only the main cursor, or with other cursors in a precedent operation, the content of the main buffer will be replicated on every cursor's location. Cut and copy works as you would expect. Multi-cursors buffers are ignored in the context of other applications, or when there are no multi cursors active.

  • GPS | GNATbench
    Nov 27th, 2013

    GPS: New line number display preference
    The "Display line numbers" preference now settings Never, Some_Lines, All_Lines. The new Some_Lines option displays every fifth line number, reducing visual clutter and making the source code stand out more.

  • GNAT Pro
    Nov 27th, 2013

    Document non-portability of GNAT.OS_Lib.Rename_File
    The function GNAT.OS_Lib.Rename_File is significantly non-portable in the case where the output file already exists. On unix, the effect is to first delete the file, and proceed with the renaming, signalling success. For windows, such a call fails. The spec (which is in file s-os_lib.ads, since GNAT.OS_Lib is a renaming of System.OS_Lib) now has a big warning about this.

  • GNAT Pro
    Nov 27th, 2013

    Suppress warnings for “junk” names
    The compiler now specially recognizes names containing any of the substrings DISCARD, DUMMY, IGNORE, JUNK, UNUSED (in any casing), and suppresses unreferenced, unmodified, and useless assignment warnings for such names, since these are typical names used when the warning would otherwise be expected. This reduces the need for pragma Unreferenced, Unmodified, or Warnings (Off) when such names are used.

  • GNAT Pro
    Nov 26th, 2013

    Better warning for elab problem with variable
    A warning is given if a package initialization is used to initialize an otherwise uninitialized variable in the spec (because a client may access this variable prematurely). The warning for this situation has been made shorter and clearer.

  • GPS | GNATbench
    Nov 25th, 2013

    GPS: new block completions available
    Block completion now supports protected types and tasks.

  • CodePeer
    Nov 25th, 2013

    Support for large priority range
    CodePeer now accepts large priority values when using pragma Priority, for compatibility with any target compiler.

  • GNAT Pro
    Nov 25th, 2013

    Reason for pragma Warnings must be string literal
    The optional Reason argument for pragma Warnings must now be either a string literal or a concatenation of string literals. This allows internal tools to access the resulting string for logging purposes.

  • GNAT Pro
    Nov 25th, 2013

    Eliminate cascaded message from extra right paren
    In some cases, the appearence of an extra right paren was correctly diagnosed but caused confusing cascaded errors, which have now been eliminated.

  • GPS | GNATbench
    Nov 22nd, 2013

    GPS: remove busy cursor
    GPS no longer uses a "busy" cursor when it is doing long operations, since this is better replaced by the main progress bar. A busy cursor is typically hard to aim. The corresponding python API GPS.set_busy, GPS.unset_busy and GPS.get_busy have been removed.

  • GNAT Pro
    Nov 19th, 2013

    Layout of extended return statement
    The RM suggested layout for extended return statements has the END RETURN lining up with the start of the line containing the RETURN keyword (usually this is the RETURN keyword itself). This layout is now enforced in -gnatyl mode (check RM column layout).

  • GNAT Pro
    Nov 19th, 2013

    More liberal formatting of IF/THEN with -gnatyi
    The -gnatyi (style check IF/THEN) switch now permits the THEN to appear on the line following the IF. The THEN must appear on its own lined up with the IF, so the entire condition must fit on the IF line.

  • GNAT Pro
    Nov 18th, 2013

    Types with different sizes do not match statically
    The use of the 'Object_Size attribute can cause otherwise statically matching subtypes to have different sizes. It was previously described as erroneous to (for example) convert between access types to such subtypes. The compiler now considers such conversions to be illegal. Formally, we have added another rule for static matching that the object sizes must be the same. In standard Ada, where the 'Object_Size attribute is not used, this is always the case. If it is absolutely necessary to force dubious conversions of this type, then Unchecked_Conversion can be used.

  • GPS | GNATbench
    Nov 14th, 2013

    GPS: Use a fallback by name for cross references
    The GPS cross reference engine will now use imprecise information from the completion engine to find the origin of an entity, so that it is able to resolve an entity by name, even when this entity is not visible in the lexical closure of the user's code

  • GPS | GNATbench
    Nov 13th, 2013

    GPS: Integrate GNATcoverage detailed messages
    The GNATcoverage plug-in in GPS can now get the detailed coverage messages for each line and display them in the location window. These messages can also be displayed inside the corresponding editors by clicking on the coverage status margin.

  • GPS | GNATbench
    Nov 13th, 2013

    GPS: Menus described in menus.xml
    GPS now describes its menu layout in an external file, which can be used to reorder menus or even hide some of them. As part of this refactoring, we detected that the icon 'Reload project' in the Project view was not working the same as the menu /Project/Reload, which has been fixed.

  • CodePeer
    Nov 12th, 2013

    New informational messages for limitations
    CodePeer and codepeer_msg_reader now display new informational messages to report which modules or subprograms were skipped due to tool limitations as well as the modules that were included in the analysis.

   1  2  3     Next »