- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
May 28th, 2008
Better inlining of function instances
If a pragma Inline applies to a function instance and a suitable level of optimization is specified, the back-end will consider the function for inlining. Previously the pragma had to be placed on the generic unit itself, and it was not possible to selectively enable inlining for a given instance of the generic function.
Support for the avr toolchain
Support for the GNAT avr toolchain is now available by default in the project properties.
VMS Machine Code Listings
A new GNATcmd qualifier /MACHINE_CODE_LISTING is introduced which causes a .lis machine code listing file to be generated for each compilation. Interspersed source is included if the /DEBUG qualifier is also present.
VMS Shareable Image Debugging Enhancement
Shareable image initialization happens before program start and before the debugger can gain control. Standalone Ada libraries (implemented as shareable images) put elaboration code into the LIB$INITIALIZE section making it impossible to debug such code, this enhancemnent adds a dummy transfer address in each image making possible to run the image as if it were a main program and debug it. The transfer address is not exported in the symbol vector so does not effect linking of the image as a library.
May 21st, 2008
Debug_Policy is now enabled by default
Configuration pragma Debug_Policy is now set to Check by default in all PolyORB builds, to allow the user to obtain debugging traces under control of the run-time configuration. Two new configure command line switches are provided (--enable-assertion-policy and --enable-debug-policy) which allow the user to override these two policies.
May 20th, 2008
Warning for library project with Linker switches
A new warning is introduced in the Project Manager, when attribute Switches or Default_Switches is declared in package Linker of a library project.
Pre- and postconditions for generic subprograms
Preconditions and postconditions can be given for generic procedures and functions. The checks are applied to each instance of the subprogram.
Pre/Postconditions for generic subprograms
The use of pre- and postconditions has been extended to generic subprograms, The given conditions are checked independently on each instantiation.
May 17th, 2008
Use of back-end inlining preferred
This is really at this stage only a documentation change to the users guide. Historically when using GCC, the back end inlining (-gnatn) was not very effective, but this is no longer true with new versions of GCC. So at this stage, the use of front-end inlining (-gnatN) is deprecated and the use of back end inlining (-gnatn) is preferred. This does not apply to the non-GCC back ends (JGNAT, .NET, GNAAMP), where back end inlining is not available.
May 13th, 2008
The latest edition of the GNAT Pro Insider newsletter has been published and is available for download at:
This issue features:
- New Release of GNAT Programming Studio
- Contract Award for Coverage Analysis Project
- Current Releases
- In the Pipeline
- Academia Corner
- Interview with Emmanuel Briot
- Webinar Schedule
- Technology Corner:Pragmas Precondition and Postcondition
May 13th, 2008
Improved handling of array index checks
The handling of array index checking has been improved and several cases of unnecessary index checks in loops are now recognized and removed.
New action to compare version N and N-1
In the Revision View it is now possible to compare any revision with the previous one.
May 8th, 2008
IAC is now the default IDL compiler
IAC is the new default IDL compiler provided by PolyORB. Its command line interface is compatible with the legacy idlac compiler, making it suitable as a drop-in replacement. IAC also offers a number of new features, including optional generation of minimal perfect hash tables for skeletons, generation of static marshallers for faster handling of remote calls, and the ability to pretty-print IDL files. Detailed documentation of these new features can be found in the PolyORB User's Guide. Note that the legacy idlac compiler is still provided in the PolyORB source tree.
Improve backward compatibility with gnatmake
Compatibility with projects accepted by gnatmake is improved:
- a main may be truncated: the body suffix may be missing - switches from Builder'Switches (<main>) that are not recognized by gprbuild are for the compiler of the language of the main.
May 3rd, 2008
More efficient handling of nested subprograms
Access to nested subprograms has in the past used a technique known as trampolines, which had the disadvantage of being somewhat inefficient, and also required that stack execution protection (DEP mode on Windows) be turned off. The use of trampolines has now been eliminated on native platforms, improving efficiency and making it possible to run with DEP enabled. See the entry for pragma Restrictions (No_Implicit_Dynamic_Code) in the GNAT Reference Manual for more detailed information.