Development Log in June 2008.

  • GNAT Pro | GPS | GNATbench
    Jun 30th, 2008

    Improve the gnat switches handling
    The Project Editor and the Ada support module have been improved to better handle the Gnat compiler switches. In particular, the switches shown in the editor now match the actual compiler used, and adds better support for global switches (such as "-gnatwa", "-gnatVa", etc), and new warnings switches (with the form "-gnatw.x").

  • GNAT Pro
    Jun 28th, 2008

    Better warnings for non-standard bit order usage
    The messages generated for component clauses when non-standard bit order is specified for a record are improved. The Ada 95 error for a non-contiguous field suggests the possibility of using Ada 2005 mode to avoid the problem, and the layout messages generated in Ada 2005 mode are labeled as info messages rather than warnings.

  • GNAT Pro
    Jun 27th, 2008

    Enhancements for GNAT.Command_Line
    The GNAT.Command_Line package has been enhanced to support the handling of command line sections of switches (like -cargs, for example). It also now allows grouping of switches that have more than one character after the prefix (as in -gnatwa.X). Switch order is also supported by allowing switches to be added at the begining of their section, and by preserving the switch order when grouping.

  • GNAT Pro
    Jun 25th, 2008

    64-bit Descriptors are the default on VMS
    The construction of descriptors on VMS now defaults to 64-bit style, to be consistent with the default use of 64-bit allocation (with malloc). The logical name GNAT$NO_MALLOC_64 forces 32-bit behavior. It is evaluated once at program elaboration. Also available is the compile time qualifier /POINTER_SIZE={32,short,64,long}.

  • GNAT Pro
    Jun 25th, 2008

    Improved GNAT.Command_Line package
    GNAT.Command_Line now allows handling of more complex command line switches. It adds support for building command lines with switch sections, as well as grouping/ungrouping switches with more than 1 character after the prefix or with simple number parameters.

  • GNAT Pro
    Jun 24th, 2008

    New VMS GNATcmd switch /POINTER_SIZE
    A new qualifier is introduced which can turn off the default use of the 64-bit heap and generation of 64-bit descriptors. See VMS help for GNAT for full details.

  • GNAT Pro
    Jun 22nd, 2008

    Add GNAT.OS_Lib support for the readable attribute
    Two new routines (Set_Readable and Set_Non_Readable) have been added into GNAT.OS_Lib for setting/resetting the readable attribute of a file.

  • GNAT Pro | GPS | GNATbench
    Jun 20th, 2008

    Major speed improvement in unused entities
    The computation of unused entities as done by the unused_entities plug-in is now several times faster, thanks to a better caching of cross-reference information in memory.

  • GNAT Pro
    Jun 19th, 2008

    New warning for biased representation
    If a component size clause, size clause, or component clause forces the use of biased representation for an integer type (e.g. storing range 10..11 in one bit using 0/1 to represent 10/11, then a warning is given. This warning is on by default and is included in -gnatwa. It can be turned off by using -gnatw.B. Note that, as documented, biased representation is not allowed for enumeration types for which an enumeration representation clause is given.

  • GNAT Pro | GPS | GNATbench
    Jun 19th, 2008

    Improvements in the Smart Completion
    A new "Dynamic" Smart Completion mode has been introduced. In this mode, the Smart Completion window is invoked as soon as a character is entered in the editor. To activate the dynamic mode, set the Smart Completion preference to "Dynamic" in the Editor panel of the Preferences dialog. The Smart Completion now offers language keywords as completions. Multiple entries corresponding to the same completion are now collapsed into one entry, and in this case the Documentation window lists all corresponding declaration locations, along with the documentations. To improve typing speed, the "TAB" key automatically completes to the first entry in the list, or with the selected entry if there is a selection.

  • PolyORB
    Jun 18th, 2008

    IAC generates NOT NULL constraints in impl
    When generating implementation templates, the IDL to Ada compiler, IAC, now generates explicit NOT NULL constraints for the Self formal parameter of primitive operations. This allows the use of subprogram renaming declarations as the bodies of such primitive operations when operating in Ada 2005 mode.

  • GNAT Pro | GPS | GNATbench
    Jun 13th, 2008

    Edit menu reorganized
    The Edit menu has been reorganized to give access to the most common and useful actions more easily. Note that some menus have been moved, which means that if you had custom key bindings associated with these menus, you will need to recreate the key binding with the new menu name.

  • GNAT Pro
    Jun 12th, 2008

    New switch to disable if statement optimizations
    The new GCC switch -fno-tree-phi-optimize disables optimization of if statements into a simple statement. This can make decision coverage of the object code more straightforward.

  • GNAT Pro
    Jun 11th, 2008

    Warning on potentially blocking call to Abort_Task
    GNAT warns on potentially blocking statements within protected operations as listed in 9.5.1. In addition, the compiler now warns on a call to Abort_Task, which is also a potentially blocking operation (C.7.1)

  • GNAT Pro
    Jun 10th, 2008

    Eliminate range warnings in generic instances
    Warnings about range tests whose outcome is known at compile time, or that correspond to 'Valid tests, are now suppressed in generic instances. This avoids confusing false positives in cases where the test in the generic template is reasonable in the general case, even if in some particular instance, it may be optimized away.

  • GNAT Pro
    Jun 8th, 2008

    Improved support for handling file attributes
    First a new routine has been added in GNAT.OS_Lib to check the executable file attribute (Is_Executable_File). And on Windows the file attributes are now set/read using the ACL. So, on Windows GNAT, is now able to deal with extended attributes (executable, readable) set using the file properties dialog for example.

  • GNAT Pro
    Jun 7th, 2008

    Improved warnings for oversize types
    Warnings are issued in more cases where the use of a default discriminant for a type that has a large range is likely to raise Storage_Error if an object of the type is declared using the default.

  • GNAT Pro | GPS | GNATbench
    Jun 6th, 2008

    List all variables used in a subprogram
    A new plug-in is enabled by default which adds the contextual menu References->Variables used in subprogram to list all variables used in a given subprogram.

  • GNAT Pro | Ada Compiler
    Jun 4th, 2008

    Coverage Project

    Thanks to French public funds, the next generation of Free Software code coverage tools is on its way. “Project Coverage” will produce a Free Software coverage analysis toolset together with the ability to generate artifacts that allow the tools to be used for safety-critical software projects undergoing a DO-178B software audit process for all levels of criticality.

    While an important target use of the coverage toolset is safety-critical embedded applications, the design of the tools allows its use in non safety-critical projects.

    Beyond the production of useful tools and certification material for industrial users, an important goal is to raise awareness and interest about safety-critical and certification issues in the Free Software/Open Source community.

    The key insight of “Project Coverage” is as follows: code coverage can greatly benefit from recent advances in hardware virtualization technology as promoted, for instance, by QEMU.

    The attached slides give a presentation of the technical scope of the project.

  • GNAT Pro | GPRbuild
    Jun 3rd, 2008

    New attribute Builder’Global_Compilation_Switches
    A new attribute Global_Compilation_Switches ("<lang>") is created in package Builder. This attribute is taken into account in the main project when attribute Default_Switches ("<lang>") is not take into account. The switches specified in Global_Compilation_Switches ("<lang>") are used when compiling a source of language "<lang>" anywhere in the project tree.

  • GNAT Pro
    Jun 2nd, 2008

    Thread support implemented in alpha-tru64 debugger
    The Tru64 debugger is now able to print the list of threads currently running inside your program and to switch from thread to thread.

  • GNAT Pro
    Jun 2nd, 2008

    Block IO for String types
    By default, GNAT Pro inputs and outputs String, Wide_String and Wide_Wide_ String types as blocks of memory in order to minimize the number of system and library calls involved. This behavior can be changed to a byte IO mode by using pragma Restrictions (No_Stream_Optimizations).

  • GNAT Pro
    Jun 2nd, 2008

    Better recovery from missing TYPE keyword
    A missing type keyword was correctly diagnosed but left the tree malformed, so that -gnatQ caused a compilation abandoned. This enhancement makes sure that the recovery from this situation works well with -gnatQ.

  • GNAT Pro
    Jun 2nd, 2008

    Improved warnings for bad external/link names
    The warnings for bad characters in external and link names in interfacing pragmas have been improved. They are now unconditional (rather than being controlled by the -gnatwx flag), the includ the slash characters, and the warning flag is placed exactly under the dubious character.