Development Log in November 2013.

  • 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.

  • GNAT Pro
    Nov 8th, 2013

    Parallel processing for gnatpp
    A new gnatpp option '-jn' supports using up to n parallel processes, speeding up processing of large sets of sources. As in gnatmake, -j0 means use as many processes as there are cores available.

  • CodePeer
    Nov 7th, 2013

    Allow more complex expressions in preconditions
    CodePeer now generates more precise preconditions able to represent complex expressions such as "A(I) in 1..10" or "'Max(X,Y) < Z," which internally involve array indexing or conditional computations.

  • GPS | GNATbench
    Nov 7th, 2013

    GPS: Open shell from icons in Project View
    Shell plugin extends contextual menu to lauch shell from Project View and others contexts where directory information available.

  • GNAT Pro
    Nov 6th, 2013

    Limited types with foreign convention not copied
    A function whose return type is a limited type that has a foreign convention now builds its result in place instead of copying it into the target,

  • GNAT Pro
    Nov 5th, 2013

    gnatpp: Line break controls
    By default, gnatpp squeezes multiple blank lines down to one. The switch --preserve-blank-lines turns this feature off. The --insert-blank-lines switch causes gnatpp to insert blank lines in certain places (between bodies and other large constructs).

  • GNAT Pro
    Nov 5th, 2013

    Parallel processing for gnatmetric
    A new gnatmetric option '-jn' allows using up to n parallel processes, speeding up processing of large sets of sources. As in gnatmake, -j0 means use as many processes as there are cores available.

  • GNAT Pro
    Nov 5th, 2013

    Warn for MIN/MAX used on unordered enumeration type
    MIN and MAX operations are implicit comparisons. A warning is now given if either of these attributes is used on an unordered enumeration type (one for which pragma Ordered is not given) if the warning flag -gnatw.u is set.

  • GNAT Pro
    Nov 5th, 2013

    Allow SPARK_Mode in -gnatyp mode
    Normally -gnatyp insists on strict mixed-casing rules for pragma names, and thus would normally require Spark_Mode, but we now make a special case to allow SPARK_Mode as an alternative since this is more familiar usage.

  • GNAT Pro
    Nov 5th, 2013

    Ignore case in matching specific Warnings (Off..)
    If pragma Warnings (Off, string) is given to specify a pattern to be used to suppress warnings, then the comparison is now done in a case insensitive manner, so for example XYZ matches xyz. This is particularly useful when there is a need to match a specific identifier, since it removes the issue of how the identifier is cased.

  • GPS | GNATbench
    Nov 5th, 2013

    GPS: Autofix to current file only
    Autofix menu was extended with items to restrict fixing of simple errors and warnings to current file occurencies.

  • GNAT Pro
    Nov 3rd, 2013

    Parallel processing for gnatelim
    A new gnatelim option '-jn' allows using up to n parallel processes, speeding up processing of large sets of sources.

  • GNAT Pro
    Nov 1st, 2013

    gnatpp: Formatting of function specifications
    Function specifications are now formatted according to the latest standard GNAT style. In particular, the "return T" part is placed on the same line as the preceding parameter if it fits, and if it doesn't fit, the type name is not aligned with the preceding parameter type.

  • GNAT Pro
    Nov 1st, 2013

    gnatpp: Alignment of formal parameter modes
    Formal parameter modes are now aligned (if alignment is enabled, and if the parameters do not all fit on one line).

  • GNAT Pro
    Nov 1st, 2013

    gnatpp: Right-justification in record rep clauses
    The position, first bit, and last bit of a component clause in a record representation clause are now aligned and right justified. For example:

       X at 0 range   0 ..  127;
       Y at 0 range 128 .. 1023;