Development Log in January 2011.

  • GNAT Pro
    Jan 28th, 2011

    Spec file name in ALI file when body not found
    When an imported unit needs a body, but the body source file cannot be found, always put the spec file name in the ALI file of the importing unit. This was done when a configuration pragmas file was available to the compiler, but not when there was no configuration pragmas file. This is now done in all cases.

  • GNAT Pro
    Jan 28th, 2011

    Spec file name in ALI file when body not found
    When an imported unit needs a body, but the body source file cannot be found, always put the spec file name in the ALI file of the importing unit. This was done when a configuration pragmas file was available to the compiler, but not when there was no configuration pragmas file. This is now done in all cases.

  • GNAT Pro
    Jan 24th, 2011

    New warning for excessive stack usage
    The warning -Wstack-usage=LEN has been implemented. It causes the compiler to issue a warning for each subprogram whose stack usage might be larger than the specified amount of LEN bytes.

  • GNAT Pro
    Jan 24th, 2011

    C++ types are limited
    Ada types representing C++ classes have always been treated as limited. The compiler used to generate a warning in such case. In order to better follow the Ada contract model, an explicit LIMITED keyword must now appear in these types' declaration.

  • GNAT Pro
    Jan 24th, 2011

    C++ types are limited
    Ada types representing C++ classes have always been treated as limited. The compiler used to generate a warning in such case. In order to better follow the Ada contract model, an explicit LIMITED keyword must now appear in these types' declaration.

  • GNATCOLL.SQL now supports prepared statements
    Prepared statements are precompiled statements on the DBMS server. They execute much faster than statements represented as strings. GNATCOLL now also supports parameterized queries, ie the actual values used in SQL_Criteria can be provided only when the query is executed. This makes it possible to prepare a general query, and then reuse it with various parameters, providing much greater speeds.

  • CodePeer
    Jan 19th, 2011

    January 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 wondered how a drowsy pilot might react to wings having bad vibrations on a diverging plane? Well, let’s explore the possibilities in this small automaton with 3^5 states.

    To see CodePeer in action please click here.

  • SPARK Pro
    Jan 19th, 2011

    Improved proof of modular or/xor with literals
    Due to the order in which certain simplification strategies were employed, previous versions of the Simplifier were not able to determine that an expression such as "X xor n" where X is of a modular type and the literal n is one less than a power of 2 (eg 1, 3, 7 etc), will always remain within the range of the type. (The Simplifier could prove this in general, but not for the particular case where the literal was one less than a power of 2.) The Simplifier's proof strategy has been modified and it is now able to show that such expressions remain in type.

  • SPARK Pro
    Jan 19th, 2011

    Upgraded to ViCToR 0.9.1
    Upgraded SPARKBridge's FDL to SMT translator and prover driver ViCToR to version 0.9.1.

  • CodePeer
    Jan 18th, 2011

    Improved handling of uplevel references
    CodePeer analysis of nested procedures referencing a constant local to an enclosing procedure has been improved and now provide more accurate results.

  • GNAT Pro | Ada Compiler
    Jan 17th, 2011

    ARTiMon - verification of temp-logic properties over flow of events

    AdaCore Internal Seminar - March 22, 2011

    ARTiMon - verification of temp-logic properties over flow of events. ARTiMon is a tool which analyzes on-the-fly a flow of dated observations in order to detect hazards expressed in its formal entry language (a temporized logic). A flow may stem from the instrumentation of a natural object, from the simulation of a model, the execution of a code or a system.

    ARTiMon can then be used in the design process of complex systems, for model validation, system testing or as an embedded controller. ARTiMon works in variable-step or in fixed-step mode and has no limitation about the length of flow. This is the only tool gathering all those features.

    Presenter: Nicolas Rapin - CEA/list researcher.

    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
    Jan 17th, 2011

    Additional run-time support of tagged types on .NET
    The .NET compiler supports all the services of package Ada.Tags and has run-time support for dispatching calls through synchronized interfaces.

  • GNAT Pro
    Jan 17th, 2011

    Avoiding unnecessary elaboration code
    A constant object of an unconstrained type with discriminants, initialized with an aggregate with all static components, now compiles without generating any elaboration code, even if the type has a representation clause.

  • GNAT Pro
    Jan 17th, 2011

    Additional run-time support of tagged types on .NET
    The .NET compiler supports all the services of package Ada.Tags and has run-time support for dispatching calls through synchronized interfaces.

  • GNAT Pro
    Jan 17th, 2011

    Avoiding unnecessary elaboration code
    A constant object of an unconstrained type with discriminants, initialized with an aggregate with all static components, now compiles without generating any elaboration code, even if the type has a representation clause.

  • Ada | Ada 2005 / 95 / 83
    Jan 16th, 2011

    AI-0151 Further uses of tagged incomplete types
    Incomplete types are allowed in more contexts than previously. If the type is tagged it can be used in the profiles of bodies, including entry bodies and accept statements, without the presence of a regular with_clause on the package whose limited view makes the type available. This makes it easier to replace a regular with-clause with a limited one.

  • GNAT Pro
    Jan 15th, 2011

    Optimization of length comparisons
    The code for comparison of X'Length with a given value has been improved significantly to be shorter and faster (by avoiding overhead associated with the possibility of "super-flat" arrays (where length /= last - first + 1). This should have no functional effect other than the time or space savings, and has been thoroughly reviewed and tested like all other changes, but just in case, the debug flag -gnatd.P disables this optimization).

  • GNAT Pro
    Jan 15th, 2011

    Optimization of length comparisons
    The code for comparison of X'Length with a given value has been improved significantly to be shorter and faster (by avoiding overhead associated with the possibility of "super-flat" arrays (where length /= last - first + 1). This should have no functional effect other than the time or space savings, and has been thoroughly reviewed and tested like all other changes, but just in case, the debug flag -gnatd.P disables this optimization).

  • SPARK Pro
    Jan 14th, 2011

    Improved proof of modular operations
    Previous versions of the Simplifier were not able to determine that an expression such as Y xor (not Z) where Y and Z are of a modular type, will always remain within the range of the type. The Simplifier's reasoning has been improved and it is now able to show that such expressions are in type.

  • SPARK Pro
    Jan 14th, 2011

    Removal of restriction on maximum line length
    Previous versions of the Examiner rejected source code lines of more than 255 characters in length. This restriction has now been removed.

  • CodePeer
    Jan 14th, 2011

    Improved evaluation of ‘and’ and ‘or’
    The detection of conditions that are always false or always true has been improved.

  • Ada | Ada 2005 / 95 / 83
    Jan 14th, 2011

    AI-0231 Issues in Ada.Directories
    Ada.Directories.Rename now raises Name_Error instead of Use_Error when appropriate.

  • Ada | Ada 2005 / 95 / 83
    Jan 14th, 2011

    AI-0218 Generics and volatility
    This AI plugs a loophole that would have allowed an access value to denote a volatile object of a nonvolatile type. You are no longer allowed to pass a volatile type to a nonvolatile generic formal type.

  • GNAT Pro | GPS | GNATbench
    Jan 13th, 2011

    GPS: improvements in createfile.py plug-in
    The dialog provided by this plug-in has been improved and the file created now appears automatically in the project view.

  • GNAT Pro | GPS | GNATbench
    Jan 12th, 2011

    Add support for sorting on rectangle selections
    It is now possible to sort on rectangular selections. The column range on the rectangular selection is used to get the key on each line on which lines are sorted. Sorting in both ascending and descending order are supported.

  • Support for Unicode strings in the python interface
    Passing unicode strings to Ada is now possible and returns an UTF8 encoded string.

  • GNAT Pro
    Jan 10th, 2011

    Calls to expression functions are inlined
    Expression functions, introduced in Ada2012, are treated as inlined. Calls to them will be inlined in most cases when compiling with some level of optimization (-O or above).

  • GNAT Pro
    Jan 10th, 2011

    Calls to expression functions are inlined
    Expression functions, introduced in Ada2012, are treated as inlined. Calls to them will be inlined in most cases when compiling with some level of optimization (-O or above).

  • SPARK Pro
    Jan 7th, 2011

    High Assurance Software Symposium and SPARK User Group videos

    Videos from the October 2010 High Assurance Software Symposium and SPARK User Group meeting are now available on-line:

    - Designing and Implementing a Verifiable High-Assurance Workstation; Alexander Senier, secunet

    http://www.adacore.com/home/ada_answers/lectures/spark_2010/#video_01

    Alexander Senier presents a methodology and a system architecture for cost-efficient development of high-security systems. The approach, which uses SPARK for critical components, is being successfully used to build an interactive workstation for secure concurrent handling of multiple security domains, using the emerging system architecture called Multiple Independent Levels of Security (MILS). Reuse of general-purpose software and manageable verification effort make the proposed architecture both flexible and cost-efficient.

    - Autocoding – do we still need software design; Rod White, MBDA

    http://www.adacore.com/home/ada_answers/lectures/spark_2010/#video_02

    Over the past few years there has been a rapid proliferation of the use of autocoding across a wide range of software domains. With the heightened focus on code, that on the design and non-functional properties appears to have diminished. Rod White looks across the issues of autocoding and design and, from experience, examines the kind of problems that emerge and suggests how design might be used effectively in an autocoding environment.

    More recordings from this highly successful event will be posted at the same location soon, so keep checking here regularly for further updates: http://www.adacore.com/home/ada_answers/lectures/spark_2010/

  • GNAT Pro
    Jan 7th, 2011

    Remove unnecessary not null error in Ada 2005 mode
    When compiling a type extension in Ada 2005 mode that extends a tagged type declared in an Ada 95 unit and overrides a dispatching subprogram with controlling access parameters, the compiler no longer requires the access parameters in the overriding subprogram to be declared with an explicit "not null".

  • Ada | Ada 2005 / 95 / 83
    Jan 7th, 2011

    AI-0071 Class-wide ops for formal subprograms
    This AI defines how the operations of a defaulted formal subprogram that is a primitive operation of a formal type with unknown discriminants are obtained when the actual is a class-wide type.

  • GNAT Pro
    Jan 7th, 2011

    Remove unnecessary not null error in Ada 2005 mode
    When compiling a type extension in Ada 2005 mode that extends a tagged type declared in an Ada 95 unit and overrides a dispatching subprogram with controlling access parameters, the compiler no longer requires the access parameters in the overriding subprogram to be declared with an explicit "not null".

  • GNAT Pro
    Jan 4th, 2011

    Better error message for Excluded_Source_List_File
    When an error is reported for an excluded source that is listed in a file, the list file name and the number of the line of the excluded source is now included in the error message.

  • GNAT Pro
    Jan 4th, 2011

    Better error message for Excluded_Source_List_File
    When an error is reported for an excluded source that is listed in a file, the list file name and the number of the line of the excluded source is now included in the error message.