Development Log in April 2005.

  • Ada | Ada 2005 / 95 / 83
    Apr 29th, 2005

    AI-435 Storage_Pool/Size for access to subprogram
    This AI forbids the use of Storage_Pool and Storage_Size attributes for access-to-subprogram types. These were previously allowed, but did nothing useful, and they are now flagged as illegal.

  • Ada | Ada 2005 / 95 / 83
    Apr 29th, 2005

    AI-310 Overloading ignores abstract subprograms
    This AI specifies that in processing an overloaded call, interpretations of abstract non-dispatching operations need not be considered for resolution. This rule allows resolution of overloaded calls that were ambiguous in Ada 95. It allows the user to hide an inherited operation by declaring an abstract version that effectively hides the inherited one, a technique that is particularly useful with predefined numeric types.

  • Ada | Ada 2005 / 95 / 83
    Apr 29th, 2005

    AI-246 View conversions for by-reference arrays
    This AI forbids view conversion between limited arrays whose components may have incompatible representation clauses. This is a language gap that was addressed two years ago by the ARG. GNAT treated this as a warning, because several ACATS tests used this now illegal construct. The ACATS suite has been updated and GNAT now diagnoses the error.

  • GNAT Pro
    Apr 26th, 2005

    Ravenscar Synchronous_Task_Control
    The Ada.Synchronous_Task_Control package was implemented using a protected object with two entries, which is not allowed by the Ravenscar profile. It has been changed so that the low-level synchronization primitives provided by the operating system are used, and hence the new implementation is more efficient as well as being compatible with the Ravenscar run-time.

  • GNAT Pro
    Apr 23rd, 2005

    More efficient unbounded string handling
    The unbounded string growth factor, used to pre-allocate spaces, has been slightly increased to get more efficient append and other similar operations. This new version is up to 20% faster than the previous one.

  • GNAT Pro
    Apr 23rd, 2005

    New style check for unnecessary blank lines
    A new style check switch has been implemented that checks for unnecessary blank lines, defined as blank lines at the end of the file, or two more more blank lines in a row. The switch is -gnatyu (UNNECESSARY_BLANK_LINES in VMS). This is not included by default in -gnaty, but it is now included in -gnatg (so compiler sources must obey this restriction).

  • GNAT Pro
    Apr 22nd, 2005

    New package Ada.Wide_Characters.Unicode
    This package provides unicode classification functions for type Wide_Character. Strictly speaking this is an Ada 2005 package (because the Ada.Wide_Characters dummy package is defined for Ada 2005), but it seems reasonable to make it available in Ada 95 mode as well, since it deals only with type Wide_Character.

  • GNAT Pro
    Apr 21st, 2005

    Obsolescent pragma and restriction
    If a call is made to a subprogram for which a pragma Obsolescent has been given, and at the point of call the restriction No_Obsolescent_Features is in effect, this is now considered to be a violation of the restriction. This seems more consistent behavior.

  • GNAT Pro
    Apr 21st, 2005

    Ada 2005 enhancement for pragma Obsolescent
    The Obsolescent pragma now takes an optional second argument which, if present, must be Ada_05. If this argument is present, the obsolescent indication is only applicable if compiling in Ada 2005 mode.

  • Ada | Ada 2005 / 95 / 83
    Apr 21st, 2005

    AI-395 Clarifications for Wide_[Wide_]Character
    This AI is a grab bag of changes and additions to AI 295. Included are: allowing other format characters in string and character literals, changes in language defined names to keep width to 12, forbid FFFE/FFFF in all planes, and provide new packages Ada.Characters.Conversions and the dummy packages Ada.Wide_[Wide_]Characters. In addition the names used by Image/Value for wide characters are made uniform and simple (Hex_hhhhhhhh). Finally, new packages Ada.Wide_[Wide_]Characters.Unicode are added to provide unicode classification functions for wide character and wide wide character. These are GNAT defined packages, but are defined as children of the new AI-395 packages as recommended in the AI.

  • GNAT Pro
    Apr 18th, 2005

    Remove -f switch for gnatbind
    The gnatbind -f switch causes elaboration checking to be ignored in the binder. It has been undocumented and deprecated for some time (the proper way to achieve this is to use pragma Suppress, which makes it much clearer that checks are being suppressed). This switch has now been permanently removed.

  • GNAT Pro
    Apr 12th, 2005

    Better msg for out of order pragma args
    It is easy to assume that the use of pragma argument identifiers allows reordering of arguments, as in subprogram calls, but this is not the case. A new error message clearly indicates when pragma arguments are given in the wrong order.

  • GNAT Pro
    Apr 11th, 2005

    Detect bounded error from interrupt handler
    When using the Ravenscar run times, calls to Current_Task from interrupt handlers are detected as bounded errors, and hence Program_Error is raised.

  • GNAT Pro
    Apr 10th, 2005

    Output per-function stack usage
    A new GCC switch -fstack-usage has been implemented. It makes the compiler output stack usage information for the program, on a per-function basis, to auxiliary text files that can be easily parsed.

  • GNAT Pro
    Apr 10th, 2005

    Clearer message for configurable run times
    When trying to use a predefined run-time unit which has been both excluded from the run time and forbidden by pragma Restriction, the corresponding restriction violation message is generated.

  • Ada | Ada 2005 / 95 / 83
    Apr 4th, 2005

    AI-348 Null procedures
    Null procedures are declared by means of the syntax:

         <procedure_specification> is null;
    
    Null procedures can also appear as defaults formal subprograms, in which case they are intrinsic in an instance. Null procedures do not require a completion, and cannot be used as completions.

  • GNAT Pro
    Apr 2nd, 2005

    Default secondary stack for Ravenscar
    A simple default implementation of a secondary stack allocation function is now provided for single-threaded under the Ravenscar profile. This default function is used only if no user-defined implementation is provided. This change only affects the Ravenscar run-times.