Development Log in November 2005.

  • GNAT Pro
    Nov 30th, 2005

    New functions for accessing target file suffixes
    New functions GNAT.OS_Lib.Get_Target_{Debuggable,Executable,Object}_Suffix to return respective suffixes on target system, implemented to resolve cross compiler issues when target suffixes not equal to host suffixes.

  • GNAT Pro | Ada Compiler
    Nov 29th, 2005

    Additional warning on unreferenced entities
    When warnings are enabled, the compiler now reports properly on unreferenced entities declared in subprogram bodies that have a previous subprogram declaration. Previously, messages were only produced for entities in bodies without a prior declaration.

  • GNAT Pro | Ada Compiler
    Nov 29th, 2005

    New project path section for gnatls -v
    When gnatls -v is invoked, in addition to the source and object path section, a new section indicating the project search path is displayed. The project path is found in the environment variable ADA_PROJECT_PATH, or if this environment variable is not defined or empty, it defaults to /lib/gnat, where is the intallation directory of GNAT.

  • GNAT Pro | Ada Compiler
    Nov 29th, 2005

    Independent control of extra paren check
    The warning check for extra parens around conditional expressions has been removed from the redundant construct warning, and been replaced by a new style option -gnatyx (STYLE_CHECKS=XTRA_PARENS in VMS) which controls this specific check. This change reflects the observation that this is really more of a style check, and also allows it to be controlled independently of the other useful redundant construct warnings.

  • GNAT Pro | Ada Compiler
    Nov 29th, 2005

    Improved definition of No_Streams
    The restriction No_Streams is now more useful. It only disallows actual creation of objects of a stream type (by either an object declaration or an allocator). But it does not disallow withing Ada.Streams, which means that library packages with such with statements can still be used, provided no stream object is created.

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

    AI-266-02 Task termination procedure
    This AI provides the mechanisms for associating protected procedures with tasks, in such as way that these procedures are invoked when tasks are about to terminate (either normally, as a result of an unhandled exception or due to abort). It helps mitigating the hazard of tasks terminating silently.

  • GNAT Pro
    Nov 28th, 2005

    Increased default maximum line length
    The maximum line length accepted by GNAT by default has been increased for 255 to 32766 characters. A more restrictive length can still be enforced using the existing style check switch -gnatyM.

  • GNAT Pro
    Nov 26th, 2005

    New warning for ignored pragma Pack for records
    If a complete record representation clause is given for a record, which has component clauses for every component, then pragma Pack has no effect and is ignored. A warning is now generated for a useless pragma Pack in this case.

  • GNAT Pro
    Nov 26th, 2005

    New pragma Complete_Representation
    A new GNAT pragma, Complete_Representation has been implemented. This pragma must appear with no arguments immediately within a record representation clause. The effect is to generate an error is any of the components or discriminants of the record type is missing from the list of component clauses.

  • GNAT Pro
    Nov 26th, 2005

    Output internal types in -gnatG output
    The pseudo-Ada output generated by -gnatD or -gnatG now includes listing of internal types for which no full declaration was generated. Previously, references to these types appeared, without any declarations.

  • GNAT Pro
    Nov 25th, 2005

    Task stack usage analysis
    It is now possible to display the maximum stack usage for each task in a program, simply by using the -u switch when binding the application.

  • GNAT Pro
    Nov 24th, 2005

    New rule checking tool gnatcheck
    A new tool gnatcheck is added to the set of GNAT tools. This is an ASIS-based tool that checks its argument sources against a given set of rules. It generates compiler-style diagnoses about the detected rule violations and also creates a report file. The gnatcheck options allow the user to configure the set of rules being checked. The initial release of gnatcheck is a beta release. The interface may be changed on the base of the user feedback, and the set of checked rules is planned to be extended.

  • GNAT Pro
    Nov 24th, 2005

    Better msg for bad style check option
    Clear specific error messages are now given for bad style options instead of a general often unhelpful "bad style check" message.

  • GNAT Pro
    Nov 24th, 2005

    Enhancements to pragma Debug
    Pragma Debug now allows a two argument form in which the first argument is a conditional expression. The procedure call which is the second argument is made only if debug pragmas are enabled, and the condition evaluates to True. In addition, the procedure call is wrapped in a block, so that overhead from the call only occurs if the condition is true.

  • GNAT Pro
    Nov 21st, 2005

    AltiVec binding integration
    A soft emulation of the PowerPC AltiVec extension has been added to the GNAT library under the GNAT.Altivec hierarchy. This provides a convenient interface to manipulate vectors. The hard version of the binding is provided as a separate package.

  • GNAT Pro
    Nov 11th, 2005

    GDB warns on non-matching executable
    The debugger has been enhanced to detect the situations where the name of the executable used to generate a core file does not match the name of the executable being debugged, and will warn the user of a potential problem.

  • GNAT Pro
    Nov 10th, 2005

    AI-441 Null-exclusion under Ada95 mode
    This AI allows the use of the "not-null" qualifier under Ada95 mode because all access parameters are "not null" in Ada 95. In addition, the first parameter of the stream attributes is now explicitly declared to be a not null access type. Further information can be accessed at www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00441.TXT.

  • Ada | Ada 2005 / 95 / 83
    Nov 10th, 2005

    AI-441 Null-exclusion under Ada95 mode
    This AI allows the use of the "not-null" qualifier under Ada95 mode because all access parameters are "not null" in Ada 95. In addition, the first parameter of the stream attributes is now explicitly declared to be a not null access type.

  • Ada | Ada 2005 / 95 / 83
    Nov 5th, 2005

    AI-267 Fast Float-to-Integer conversion
    This AI provides a new attribute Machine_Rounding for float types, that provides similar functionality to Rounding, except that the treatment of numbers exactly mid-way between two integers can go to either near-by integer (the result is implementation defined). For now GNAT provides the same semantics for Machine_Rounding as for Rounding.

  • GNAT Pro
    Nov 4th, 2005

    Pragma Inline_Always effective after body
    If a subprogram body has no previous spec, and it is immediately followed by a pragma Inline_Always, then all calls to the subprogram will be unconditionally inlined by the front-end. This approach is consistent with the implementation suggestion of AI-309, and is a generally useful optimization.