- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
Jun 29th, 2007
Better tracking of null values at compile time
The compiler now does a better job of tracking null constant access types, and null variables which are initialized explicitly to null. Dereferences of such null values are now detected at compile time, resulting in compile time warnings.
Suppress_Initialization for derived type
The pragma Suppress_Initialization can now be used on a derived type, suppressing initialization for objects of this derived type, without affecting initialization of objects of the root type from which the type was derived.
Warn on disallowed return of null
If in Ada 2005 mode a function specifies a not null return value, then an attempt to explicitly return null now generates an appropriate warning.
Ada Web Server
Jun 25th, 2007
Add support for plain SMTP authentication
It is now possible to send e-mails using a server requiring authentication. Only the plain authentication is supported.
Jun 24th, 2007
Improved warning for unrecognized pragma
The warning for an unrecognized pragma now includes a check for a likely misspelling of a recognized pragma, and if this is found, an additional warning message is generated.
Jun 20th, 2007
Add pragma Check_Name and ‘Enabled attribute
A new pragma Check_Name allows an application program (or the predefined library) to add a new implementation defined check name. A new attribute Check_Name'Enabled allows testing the status of this check (or one of the predefined checks) at compile time.
Reordering notebook tabs
Support has been added for reordering notebook tabs (or switching to another tab) through keyboard shortcuts. Key bindings are edited as usual through /Edit/Key Shortcuts menu. Reordering can also be done through the mouse, through drag-and-drop
Specifying “recursive” directory status for VCS
It is now possible, in custom XML files, to specify an action to query the status of a directory and subdirectories recursively, which GPS calls instead of launching separate queries for each directory. The provided Subversion plug-in benefits from this improvement.
Jun 16th, 2007
Improved infinite loop warning
The infinite loop warning has been improved to detect more cases (avoid false negatives), and also to eliminate several cases of false positives (warnings about infinite loops that are in fact not infinite).
Jun 15th, 2007
Absolute addressing of objects on AAMP
On the AAMP target, an object whose address is specified using 'Address of another object with a static address, or using a constant initialized by a static address, is now referenced with absolute address instructions rather than by indirect addressing.
Performance improvements with highlighted lines
The speed of operations involving the creation or the removal of line highlighting (such as the visual file differences) has been improved.
Jun 12th, 2007
New rules added to gnatcheck
A number of new rules has been added to the gnatcheck tool. See the gnatcheck section in GNAT Users' Guide for full details.
Grouping VCS queries for better performance
It is now possible to configure VCS so that, when querying status for all files, the VCS performs "Query status for directories" on each source directory instead of file-by-file queries. This is activated by default, and can be controlled on the VCS that are described through XML files.
Avoiding hidden directories in VCS operations
The VCS operations "Query status for directory recursively" and "Update directory recursively" now take into account the Preference "Hidden directories pattern" (in the "Project" section) and do not perform VCS operations on hidden or special directories.
Jun 7th, 2007
Performance improvement for Ada.Containers.Vectors
The representation of the internal elements array was changed from a pointer to an unconstrained array to a pointer to a discriminated record. This is more efficient because no array dope is necessary (the lower bound of the array is fixed), and so the internal pointer has a more efficient representation.
Documentation on conditional compilation
An Appendix has been added to the GNAT User's Guide describing how to model conditional compilation, both in Ada in general and using specific GNAT features in particular.
Add support for Task_Info pragma on Windows
This pragma can now be used on Windows to give information about how tasks must be mapped to the available CPUs. The Windows scheduler is given the ideal processor for a given task, it is not required to map this task with the specified CPU if some other scheduling strategy is better.
Improved handling of switch error messages
Previously, when a compiler switch (such as -gnataf94) was not recognized, the error message included only the first invalid character (invalid switch: 9). The complete invalid switch will now be displayed (invalid switch: -gnat94).
The package Ada.Assertions, as described in Ada 2005 AI-286 is now fully implemented.
Jun 4th, 2007
This book is aimed at experienced programmers who want to learn Ada at the programming level. It is not a "…for dummies" book, nor is it intended as a program design book. Instead, we highlight some key features of the Ada language, with coded examples, that are essential for getting started as an Ada programmer.
This book emphasizes syntax, control structures, subprogram rules, and how-to coding issues rather than design issues. There are other really fine books available that deal with design. Also, this is not a comprehensive treatment of the Ada language. The bibliography lists some books that can help you once you have finished the material in this book. Think of this a quick-start book, one that enables you, the experienced programmer, to get into the Ada language quickly and easily. The examples use text-oriented programs for simplicity of learning. If you prefer to do the exercises for a GUI environment, check out the sites listed for compilers and tools so you can download bindings for programming in a variety of windowing environments, including Wintel, Linux, and Unix. Of particular interest to those wanting to explore Window style programming are GtkAda, CLAW, GWindows, and JEWL.
Copyright 2002, AdaWorks Software Engineering
License: Public Edition. Permission to copy if AdaWorks is acknowledged in copies.
In addition to downloading the ebook in pdf format, you can also download the sample programming files in the accompanying .zip file
Introducing the GNAT Pro InSight webinar series. AdaCore is launching a series of informative webinars dedicated to tools that make up the GNAT Pro development environment. 30 minutes long, each webinar will consist of a presentation, a demo, and a question and answer session conducted by an AdaCore technical expert.
The first technology in the series is GNATbench, the GNAT Pro Ada plug-in for Eclipse that supports both native (standard) Eclipse and Wind River's Eclipse-based Workbench software development environment. The webinar will take place on Tuesday, June 5, 2007.For more information, please click here.
Switch -gnatI to ignore all representation clauses
Use of this switch (option /IGNORE_REP_CLAUSES in VMS) results in ignoring all representation clauses and treating them as comments. This is useful when compiling foreign code (during an initial port, or for use with ASIS).
New warning on unchecked conversion of pointers
A warning is now given for unchecked conversion between pointers with different conventions. In some architectures (notably VMS), pointers with different conventions may have different representations. To deal with this, on VMS a warning is given for such conversions. This warning may be suppressed using -gnatwZ.
Warning for duplicate Preelaborable_Initialization
It is legal to have more than one Preelaborable_Initialization pragma for a given type, but the compiler now generates a warning for this usage if warn-on-redundant constructs mode is set (-gnatwr).
Document how to remove deactivated code
A new section has been added to the High Integrity User's Guide that document the various methods for decreasing deactivated code footprint in the final executable.
Makefile.py now also provides support for ant
The "ant" build system is now supported as a GPS plug-in. The support is similar to what already existed for makefiles, and is available through the same plug-in. See extended documentation through /Tools/Plug-ins menu.