Development Log in October 2005.

  • GNAT Pro
    Oct 30th, 2005

    Table performance in GNAT.Spitbol improved
    The performance of the hashing algorithm used in the implementation of the Spitbol table function has been improved.

  • GNAT Pro
    Oct 29th, 2005

    Obsolescent pragma applies to packages
    A pragma Obsolescent may now be used as a program unit pragma within the declarative part of a package. A client with'ing a package with such a pragma is considerd to violate pragma Restrictions (No_Obsolescent_Features), and warnings will be issued if -gnatwj mode is active.

  • GNAT Pro
    Oct 27th, 2005

    New verbosity levels for gnatmake
    Three new switches are added to gnatmake: -vl (verbosity Low), -vm (verbosity Medium) and -vh (verbosity High, equivalent to -v). For each verbosity level, potentially fewer lines are output than for the nest higher verbosity level.

  • GNAT Pro
    Oct 23rd, 2005

    Warnings for dubious comparisons
    If two quantities are compared using >= or <= and the compiler can tell that only = is possible, it will warn that the > or < condition is impossible if the warn on constant conditionals option (-gnatwc or -gnatwa).

  • GNAT Pro
    Oct 20th, 2005

    Improved exception message for Host_Error
    When GNAT.Sockets.Get_Host_By_Name/Get_Host_By_Addr raises an exception, a meaningful explanatory message is now attached to the exception occurrence giving an indication of the cause of the error.

  • GNAT Pro
    Oct 19th, 2005

    New form allowed for -gnatm switch
    An equal sign may now optionally precede the numeric value in a -gnatm switch, so that for example, you can write either -gnatm2 or -gnatm=2.

  • GNAT Pro
    Oct 16th, 2005

    Improved warnings on unused generic formals
    Generic formal parameters of generic subprograms are now flagged if they are not referenced in the body of the subprogram.

  • GNAT Pro
    Oct 16th, 2005

    Improved efficiency for Vax Float
    On OpenVMS, if pragma Float_Representation (Vax_Float) is used, then implicit generated code was correct, but overused Vax_Float formats for implicit conversions and other operations. This is now corrected, improving the efficiency of programs using this pragma.

  • GNAT Pro
    Oct 10th, 2005

    Debugger option to print arrays with indexes
    The debugger has been enhanced to provide the option of printing the indexes of each element when printing an array. This option is controllable using the "set print array-indexes" command.

  • GNAT Pro
    Oct 10th, 2005

    Static Elaboration model works with -gnatp
    As documented, pragma Suppress (Elaboration_Check) can be used to suppress static elaboration checking, even though no run-time checks are involved. An unintended consequence was that -gnatp and Suppress (All_Checks) disconnected static elaboration processing, since they implied suppression of Elaboration_Check. The compiler has been modified so that it is no longer the case that the use of -gnatp or Suppress (All_Checks) has any effect on elaboration order (run time checks for the dynamic elaboration model will still be suppressed).

  • GNAT Pro
    Oct 5th, 2005

    Better exception support on Solaris
    Added the required support for unwinding through signal handlers in new Solaris versions. It allows exception propagation through signal handlers when using the zero cost exception mechanism.

  • GNAT Pro
    Oct 4th, 2005

    Switch for gnatprep to replace in comments
    A new switch -C for gnatprep (/REPLACE_IN_COMMENTS for OpenVMS) causes preprocessing to scan comments, and do normal replacements on any $symbol occurrences within the comment text (this is particularly useful for structured comments, e.g. in SPARK).

  • GNAT Pro
    Oct 4th, 2005

    Unsupported task switch message in debugger
    The debugger now prints an error message when attempting to perform a task switch in the debugger while debugging from a core file, which is not supported. This prevents any confusion about the result of the action.

  • GNAT Pro
    Oct 3rd, 2005

    Multicast output interface control
    The Get_Socket_Option/Set_Socket_Option interface in GNAT.Sockets now provides a new option, Multicast_If, corresponding to the IP_MULTICAST_IF setsockopt option. This allows the user to get and set the default output interface for a multicast socket.

  • GNAT Pro
    Oct 3rd, 2005

    Support for socket I/O timeouts control
    The Get_Socket_Option/Set_Socket_Option interface in GNAT.Sockets now provides two new options, Send_Timeout and Receive_Timeout, corresponding to the SO_SNDTIMEO and SO_RCVTIMEO setsockopt options. This allows getting and setting the output and input timeout values for a socket.

  • GNAT Pro
    Oct 3rd, 2005

    Improved string for Expression_Error
    When using GNAT.Regpat, the Expression_Error exception may be raised when parsing an invalid regular expression. More details on the invalidity is now provided as part of the message associated with the exception propagation.

  • GNAT Pro
    Oct 2nd, 2005

    Improved warning control via pragma
    Pragma warnings can now be used to selectively turn on and turn off specific warnings (using the same set of warning characters available in command line options).

  • GNAT Pro
    Oct 1st, 2005

    Optimized calls to imported subprograms
    Calling an imported function or procedure via an access value is now much more efficient (it used to be rather expensive due to the use of a stub (called a trampoline). This is no longer generated and the call is directly to the subprogram.

  • GNAT Pro
    Oct 1st, 2005

    Improved message for complex ambiguity
    If an operand of a concatenation is a call to a function that returns an array, and the function can be called without parameters, the operation is ambiguous because the call can also be interpreted as an indexing of the result of a parameterless call, and two concatenation operations are available (array/array, array/component). The error message for this case now describes precisely the two possible interpretations.