Development Log in March 2006.

  • GNAT Pro
    Mar 31st, 2006

    Hardware watchpoints on Tornado PowerPC targets
    Hardware watchpoint support has been added to the debugger for Tornado PowerPC targets. Support is available for all supported versions of Tornado.

  • GNAT Pro
    Mar 31st, 2006

    Hardware watchpoints on Tornado PowerPC targets
    Hardware watchpoint support has been added to the debugger for Tornado PowerPC targets. Support is available for all supported versions of Tornado.

  • GNAT Pro
    Mar 28th, 2006

    New pragma Wide_Character_Encoding
    This configuration pragma (which can appear anywhere a pragma is permitted), allows specification of the encoding method for wide [wide] characters that will be subsequently recognized. The single parameter is an identifier which is one of: HEX UPPER SHIFT_JIS EUC UTF8 BRACKETS or it is a character literal corresponding to the switch character used with -gnatW (e.g. 8 for UTF8).

  • GNAT Pro
    Mar 28th, 2006

    New pragma Wide_Character_Encoding
    This configuration pragma (which can appear anywhere a pragma is permitted), allows specification of the encoding method for wide [wide] characters that will be subsequently recognized. The single parameter is an identifier which is one of: HEX UPPER SHIFT_JIS EUC UTF8 BRACKETS or it is a character literal corresponding to the switch character used with -gnatW (e.g. 8 for UTF8).

  • GNAT Pro
    Mar 28th, 2006

    32-bit Convention C pointers on VMS
    For VMS 64-bit systems, there is an issue of the appropriate default size of C convention pointers in the absence of an explicit size clause. The HP C compiler can choose either 32 or 64 bits depending on compiler options. With this feature, GNAT chooses 32-bits rather than 64-bits in the default case where no size clause is given. This proves a better choice for porting 32-bit legacy applications. This feature is only available in 5.04a1.

  • Ada | Ada 2005 / 95 / 83
    Mar 28th, 2006

    AI-430 Conventions of inherited operations
    This AI provides semantic rules concerning the consistency of conventions among inherited, overridden and overriding operations for a type. It prevents the presence of numerous conventions, declared either implicitly or explicitly, on a single overriding subprogram.

  • Ada | Ada 2005 / 95 / 83
    Mar 24th, 2006

    AI-392 Forbid unsafe array conversions
    This AI specifies accessibility checks that must be performed on array conversions, when the component types are anonymous access types. The rule guarantee that no dangling references can be created by such conversions.

  • GNAT Pro
    Mar 22nd, 2006

    GNAAMP folds arithmetic for 16 and 32-bit operands
    The GNAAMP compiler's peephole optimizer has been extended to perform folding of arithmetic operations involving 16-bit and 32-bit literal operands. This applies to both signed and unsigned operations for add, subtract, multiply, divide, mod, and rem.

  • GNAT Pro
    Mar 22nd, 2006

    Improved handling of Address clauses
    Many unnecessary run-time checks for correct alignment of address clauses are eliminated in cases where the compiler can tell that the alignment is guaranteed to be correct. In addition, more warnings are given for cases where the alignment is not guaranteed to be correct, and a new warning is given on an attempt to overlay a smaller variable with a larger one.

  • GNAT Pro
    Mar 22nd, 2006

    New check Alignment_Check
    A new check name Alignment_Check can be used in a Suppress or Unsuppress pragma. This controls run-time checking for correct alignment of address clause values. Suppressing this check will eliminate all such checks.

  • GNAT Pro
    Mar 22nd, 2006

    GNAAMP folds arithmetic for 16 and 32-bit operands
    The GNAAMP compiler's peephole optimizer has been extended to perform folding of arithmetic operations involving 16-bit and 32-bit literal operands. This applies to both signed and unsigned operations for add, subtract, multiply, divide, mod, and rem.

  • GNAT Pro
    Mar 22nd, 2006

    Improved handling of Address clauses
    Many unnecessary run-time checks for correct alignment of address clauses are eliminated in cases where the compiler can tell that the alignment is guaranteed to be correct. In addition, more warnings are given for cases where the alignment is not guaranteed to be correct, and a new warning is given on an attempt to overlay a smaller variable with a larger one.

  • GNAT Pro
    Mar 22nd, 2006

    New check Alignment_Check
    A new check name Alignment_Check can be used in a Suppress or Unsuppress pragma. This controls run-time checking for correct alignment of address clause values. Suppressing this check will eliminate all such checks.

  • GNAT Pro
    Mar 20th, 2006

    Better diagnostics on division by zero
    When the compiler detects that the right operator of a division, mod, or rem operation is equal to zero a warning message is generated. This message now indicates which of the previously mentioned operations will raise a Constraint_Error at run time.

  • GNAT Pro
    Mar 20th, 2006

    Better diagnostics on division by zero
    When the compiler detects that the right operator of a division, mod, or rem operation is equal to zero a warning message is generated. This message now indicates which of the previously mentioned operations will raise a Constraint_Error at run time.

  • GNAT Pro
    Mar 16th, 2006

    Support for Priority_Ceiling/Inheritance on AIX
    Under AIX, the Locking_Policy pragma is now mapped to the underlying POSIX settings PTHREAD_PRIO_PROTECT/INHERIT, relying on the AIX thread library to implement this capability. Previousely, the Locking_Policy pragma was ignored.

  • GNAT Pro
    Mar 16th, 2006

    Better precision when handling Duration in ERC32
    When transforming Duration into Time_Span, and vice versa, intermediate values and operations use Long_Long_Integer in order not to lose precision.

  • GNAT Pro
    Mar 16th, 2006

    Support for Priority_Ceiling/Inheritance on AIX
    Under AIX, the Locking_Policy pragma is now mapped to the underlying POSIX settings PTHREAD_PRIO_PROTECT/INHERIT, relying on the AIX thread library to implement this capability. Previousely, the Locking_Policy pragma was ignored.

  • GNAT Pro
    Mar 16th, 2006

    Better precision when handling Duration in ERC32
    When transforming Duration into Time_Span, and vice versa, intermediate values and operations use Long_Long_Integer in order not to lose precision.

  • Ada | Ada 2005 / 95 / 83
    Mar 12th, 2006

    AI-412 Renaming of incomplete type limited views
    This AI introduces subtypes of incomplete types and renamings of limited views as means of abbreviating long names in recursively dependent packages along with appropriate visibility rules for them. To be complete, the AI also introduces subtypes of non-limited withed incomplete types.

  • GNAT Pro
    Mar 5th, 2006

    New function GNAT.OS_Lib.Pid_To_Integer
    A new function is added in package GNAT.OS_Lib:

        function Pid_To_Integer (Pid : Process_Id) return Integer;
    
    This function is useful for hash functions for type Process_Id or to compare Process_Id values.

  • GNAT Pro
    Mar 5th, 2006

    New function GNAT.OS_Lib.Pid_To_Integer
    A new function is added in package GNAT.OS_Lib:

        function Pid_To_Integer (Pid : Process_Id) return Integer;
    
    This function is useful for hash functions for type Process_Id or to compare Process_Id values.

  • GNAT Pro
    Mar 1st, 2006

    Debugger removes useless frames in backtrace
    When printing the call stack inside an Ada task, the debugger now by default stops the stack trace at the level corresponding to the task in the source program, and avoids displaying additional levels corresponding to internal book keeping in the run time. The full complete backtrace can still be printed by using the gdb command "set backtrace past-main".

  • GNAT Pro
    Mar 1st, 2006

    Debugger removes useless frames in backtrace
    When printing the call stack inside an Ada task, the debugger now by default stops the stack trace at the level corresponding to the task in the source program, and avoids displaying additional levels corresponding to internal book keeping in the run time. The full complete backtrace can still be printed by using the gdb command "set backtrace past-main".