Development Log in September 2010.

  • GNAT Pro
    Sep 30th, 2010

    Exemption mechanism for gnatelim
    The new '--ignore=filename' option allows specification of a set of sources for which no Eliminted pragmas will be generated.

  • SPARK Pro
    Sep 29th, 2010

    Allow -vcg option in metafiles
    It is now possible to specify '-vcg' on a file-by-file basis in any metafile, causing the Examiner to generate VCs for those files only. Previously one had to either generate VCs for all files or no VCs at all, now some finer-grained control is possible.

  • GNAT Pro | GPS | GNATbench
    Sep 29th, 2010

    Automatic indentation of C and C++ comments
    The GPS editor is now able to indent C and C++ comments and automatically takes into account various styles of multiple line comments.

  • Ada | Ada 2005 / 95 / 83
    Sep 29th, 2010

    AI-0176 Quantified expressions
    Both universally and existentially quantified expressions are implemented. They use the new syntax for iterators proposed in AI05-139-2, as well as the standard Ada loop syntax.

  • Ada | Ada 2005 / 95 / 83
    Sep 29th, 2010

    AI-0139 Syntactic sugar for iterators
    The new syntax for iterating over arrays and containers is now implemented. All container types have aspects Reference, Constant_Reference, Iterate, and Element_Type. Each container extends the types declared in Ada.Iterator_ Interfaces, and provides Iterate functions and Reference functions that support both loop forms: "for Element of C" and "for Cursor in Iterate (C)"

  • Ada | Ada 2005 / 95 / 83
    Sep 29th, 2010

    AI-0127 Adding Locale Capabilities
    This package provides an interface for identifying the current locale.

  • Ada | Ada 2005 / 95 / 83
    Sep 28th, 2010

    AI-0125 Nonoverridable operations of an ancestor
    In Ada 2012, the declaration of a primitive operation of a type extension or private extension can also override an inherited primitive that is not visible at the point of this declaration.

  • Ada | Ada 2005 / 95 / 83
    Sep 24th, 2010

    AI-0171 Pragma CPU and Ravenscar Profile
    A new package System.Multiprocessors is added together with the definition of pragma CPU for controlling task affinity. A new no dependence restriction on System.Multiprocessors.Dispatching_Domains is added to the Ravenscar profile.

  • GNAT Pro | GPS | GNATbench
    Sep 23rd, 2010

    Easy toolchain selection in project editor
    The selection of a toolchain from the project editor has been greatly improved, implementing automatic detection of installed toolchains and easy selection of predefined toolchains.

  • GNAT Pro | GPS | GNATbench
    Sep 22nd, 2010

    Key binding to remove messages in locations view
    A new key binding (alt-del by default, can be configured via the Edit->Key Shortcuts menu) is available to remove individual messages in the locations view.

  • GNAT Pro
    Sep 21st, 2010

    New qualifiers for GNAT COMPILE for VMS
    Two project related qualifiers are added to GNAT COMPILE for VMS: /SRC_INFO= and /UNCHECKED_SHARED_LIB_IMPORTS (converted to --source-info= and --unchecked-shared-lib-imports respectively).

  • GNAT Pro | GPS | GNATbench
    Sep 21st, 2010

    Filter improvement for locations view
    When a filter is applied to locations view, file rows that do not have any visible messages are now hidden.

  • GNAT Pro
    Sep 20th, 2010

    More detailed exception messages
    A new compiler switch is available (-gnateE) which generates more detailed exception messages associated in particular with index, range, and validity checks, where extra information of the following form is displayed:

      index 1 not in 2..10
    
    
    as well as extra column information about where the check failed. Similarly, column information is also generated for access checks where it is useful to be able to know which dereference on the same line failed.

  • GNAT Pro | GPS | GNATbench
    Sep 20th, 2010

    Improved customizability of the toolbar
    The Python/Shell interface now allows creating Toolbar buttons, rather than just buttons, through the GPS.ToolButton class. In addition, these buttons can be inserted in the toolbar at any location through GPS.Toolbar.insert. The Cut/Copy/Paste buttons are now taking advantage of this: they are now hidden, and can be activated through the plugin toobar_cut_copy_paste.py.

  • GNAT Pro | GPS | GNATbench
    Sep 20th, 2010

    Support for Ada 2012
    GPS now supports Ada 2012 syntax and keywords when highlighting Ada sources or indenting.

  • GNAT Pro | GPS | GNATbench
    Sep 17th, 2010

    Completion filters on raise statements
    The completion mechanism will now only offer exception and packages entities when completing a raise statement.

  • GNAT Pro | GPRbuild
    Sep 17th, 2010

    No linking with GNAT libs with -nostdlib
    When a shared library is linked and -nostdlib is in the library options, then the GNAT libraries are not used for the link.

  • CodePeer
    Sep 16th, 2010

    Sep Find the Bug Challenge

    In order to demonstrate the scope of CodePeer’s code analysis capabilities we thought we’d have a little fun and each month post a simple piece of code that contains a few tricky bugs, so that you can measure your bug-finding capacities to those of CodePeer.

    This Month’s Challenge
    Ever found yourself not knowing what to put in this backpack your little one is carrying to school? This helper program does it for you, or your kid, or your kid’s teacher. Because not everyone has the same priorities.

    To see CodePeer in action please click here.

  • Ada | Ada 2005 / 95 / 83
    Sep 16th, 2010

    AI-0193 Alignment of allocators
    This AI introduces a new attribute Max_Alignment_For_Allocation, analogous to Max_Size_In_Storage_Elements, but for alignment instead of size.

  • Ada | Ada 2005 / 95 / 83
    Sep 16th, 2010

    AI-0158 Generalizing membership tests
    Extend the syntax of membership tests to simplify complex conditions that can be expressed as membership in a subset of values of any type. Introduce syntax for a list of expressions that may be used in loop contexts as well.

  • GNAT Pro | GPS | GNATbench
    Sep 15th, 2010

    Project templates
    GPS is now capable of creating new projects from templates. This is done either by selecting the first item "Create new project from template" in the welcome dialog, or by using the menu Project->New from template...

  • GNAT Pro | GPS | GNATbench
    Sep 15th, 2010

    Highlight of dispatching calls
    The dispatching.py plug-in which highlights dispatching calls in the source editor is now enabled by default, and supports both Ada and C++.

  • Ada | Ada 2005 / 95 / 83
    Sep 15th, 2010

    AI-0190 pragma Default_Storage_Pool
    This AI introduces a new pragma Default_Storage_Pool, which can be used to control storage pools globally. In particular, you can force every access type that is used for allocation ("new") to have an explicit storage pool, or you can declare a pool globally to be used for all access types that don't have an explicit one.

  • Ada | Ada 2005 / 95 / 83
    Sep 15th, 2010

    AI-0162 Incomplete type completed by partial view
    Incomplete types are made more useful by allowing them to be completed by private types and private extensions.

  • GNAT Pro
    Sep 13th, 2010

    New gnatcheck Annotated_Comments rule
    A new rule Annotated_Comments is added to gnatcheck. This rule allows flagging of comments in the source code that have a specific format such as those used for SPARK annotations.

  • GNAT Pro | GPS | GNATbench
    Sep 13th, 2010

    Memory view embedded in the MDI
    The debugger memory view can now be embedded in the MDI, as opposed to being a separate dialog. This provides a more integrated workflow

  • GNAT Pro | GPS | GNATbench
    Sep 13th, 2010

    Rectangles plugin loaded by default
    The rectangles.py plugin is now loaded by default, providing extra menu items under Edit->Rectangles to manipulate rectangle/block selections.

  • GNAT Pro | GPS | GNATbench
    Sep 13th, 2010

    Breakpoints editor part of the MDI
    The breakpoints editor can now be embedded in the MDI, instead of always being a floating window.

  • Ada | Ada 2005 / 95 / 83
    Sep 13th, 2010

    AI-0145 Pre- and Post-conditions
    Preconditions and Postconditions, using the Pre and Post aspect syntax are fully implemented. The precondition and postcondition pragmas are retained and the latter can be used in all versions of Ada. GNAT also provides the aspect synonyms Precondition for Pre and Postcondition for Post.

  • Ada | Ada 2005 / 95 / 83
    Sep 11th, 2010

    AI-0161 Restriction No_Default_Stream_Attributes
    A new restriction No_Default_Stream_Attributes prevents the use of any of the default stream attributes for elementary types. If this restriction is in force, then it is necessary to provide explicit subprograms for any stream attributes used.

  • Ada
    Sep 9th, 2010

    Slides from the CompCert presentation now available

    The slides presented by Xavier Leroy in his talk "CompCert, formal verification of realistic compilers for critical software" are available here for download. For a paper describing the CompCert project, please visit:

    http://gallium.inria.fr/~xleroy/publi/compcert-CACM.pdf

  • GNAT Pro
    Sep 9th, 2010

    New attribute Ignore_Source_Sub_Dirs
    A new project level attribute Ignore_Source_Sub_Dirs is introduced to suppress directory subtrees to be included in the source directories when using ".../**" in Source_Dirs.

  • GNAT Pro | GPS | GNATbench
    Sep 9th, 2010

    Completion for task entries
    GPS now offers smart completion for task entries and accept statements.

  • CodePeer
    Sep 9th, 2010

    Dynamic default partitioning
    CodePeer will now dynamically choose a default partitioning based on the amount of memory available on the system and the number of jobs requested, instead of using a hard coded value. This can be overriden by using the -global and -dbg-partition-limit switches.

  • GNAT Pro | GPS | GNATbench
    Sep 9th, 2010

    Completion for task entries
    GPS now offers smart completion for task entries and accept statements.

  • Ada
    Sep 8th, 2010

    Modeling software architectures for space systems

    AdaCore Internal Seminar
    Modeling software architectures for space systems - Marco Panunzio - ESA

    AdaCore, from time to time, organizes seminars in the Paris offices. If you are interested in a particular talk, please send email to events@adacore.com.

  • GNAT Pro
    Sep 8th, 2010

    New compiler switch -fdump-xref
    A new compiler switch -fdump-xref relevant for C and C++ sources can be used to generate cross reference information on sources in the GNAT ali format. The generated files have the extension .gli and can then be used by gnatfind and gnatxref (via the --ext switch) and GPS to display source information and navigate in C/C++ source code. Note: this is an experimental feature which is not as complete as the cross reference information generated for Ada, with the intent to complete it gradually based on user input and interest.

  • GNAT Pro | GPS | GNATbench
    Sep 8th, 2010

    New engine for C and C++ navigation
    GPS has a new engine to navigate in C and C++ sources, now based on the cross reference information generated by the compiler (gcc -fdump-xref). While this capability is still in progress on the compiler side, this will provide in general a much better source navigation experience.

  • GNAT Pro | GPS | GNATbench
    Sep 8th, 2010

    New engine for C and C++ navigation
    GPS has a new engine to navigate in C and C++ sources, now based on the cross reference information generated by the compiler (gcc -fdump-xref). While this capability is still in progress on the compiler side, this will provide in general a much better source navigation experience.

  • CodePeer
    Sep 8th, 2010

    Detect useless assignment to self
    CodePeer now generates a new warning 'useless self assignment' to indicate when an assignment does not modify the value stored in the variable being assigned.

  • Ada | Ada 2005 / 95 / 83
    Sep 8th, 2010

    AI-0152 Restriction No_Anonymous_Allocators
    Restriction No_Anonymous_Allocators prevents the use of allocators where the type of the returned value is an anonymous access type.

  • GNAT Pro
    Sep 4th, 2010

    GDB command to save all breakpoints in a file
    The "save breakpoints" command is now available to save in a file all currently defined breakpoints. To restore the breakpoints, use the "source" command.

  • CodePeer
    Sep 4th, 2010

    Support for pragma Export + Address clause
    A variable with an address clause can also have an associated pragma Export without generating an error during SCIL generation.

  • PolyORB
    Sep 3rd, 2010

    Abortable RPC
    Remote subprogram calls can now safely be aborted using asynchronous transfer of control. The abortion is notified to the server, and an attempt is made to cancel the server side execution of the call.

  • GNAT Pro
    Sep 2nd, 2010

    Enhancement of gnatcheck Numeric_Literals rule
    A new parameter 'Statements_Only' is added to the rule to limit the check for numeric literals to statements only (meaning that occurrences of literals in declarations are never flagged). A rule diagnosis now displays the literal value being flagged.

  • GNAT Pro
    Sep 2nd, 2010

    Reduce the run-time assembly size in .NET
    A new linking mechanism has been put in place with the .NET compiler to significantly lower the size of the mgnat.dll assembly, allowing only actually used run-time packages to be included in the final executable.

  • GNAT Pro | GPS | GNATbench
    Sep 2nd, 2010

    Centralized font handling in the source editor
    The selection of fonts in the source editor has been simplified. In the section Editor->Fonts & Colors of the Preferences dialog, all fonts are represented as variants of the default font.

  • GNAT Pro | GPS | GNATbench
    Sep 2nd, 2010

    Centralized font handling in the source editor
    The selection of fonts in the source editor has been simplified. In the section Editor->Fonts & Colors of the Preferences dialog, all fonts are represented as variants of the default font.

  • Ada Web Server
    Sep 1st, 2010

    Improve templates parser macro support
    Improve macro inlining and add a tree simplifier. With this improvement most of the macro's conditionals can be removed from the tree which increase the performance of the templates rendering.