Development Log in August 2010.

  • GNAT Pro
    Aug 31st, 2010

    System.Rident.Profile_Info is constant
    Profile_Info was a variable; it is now a constant, to clearly indicate that it should not be modified.

  • GNAT Pro | GPS | GNATbench
    Aug 31st, 2010

    Faster viewer for switches
    Major speed enhancement for the /Project/Edit Switches view for projects with hundreds of files.

  • GNAT Pro | GPS | GNATbench
    Aug 31st, 2010

    Faster viewer for switches
    Major speed enhancement for the /Project/Edit Switches view for projects with hundreds of files.

  • PolyORB
    Aug 31st, 2010

    DSA starter does not depend on Bourne shell
    The generated Ada and shell starters for DSA applications do not require the remote node to provide a Bourne shell anymore.

  • GNAT Pro | XMLAda
    Aug 31st, 2010

    Unicode: new exception Incomplete_Encoding
    A new exception was defined in the unicode module. This exception is used to distinguish between cases where we might simply be missing some characters (and thus should wait for more) with cases where the encoding is indeed invalid.

  • GNAT Pro
    Aug 30th, 2010

    Automatic selection of the number of compilations
    The switch -j0 is now recognized by gnatmake. It indicates that the maximum number of simultaneous compilations is the number of available processors. Adding the debugging switch -dm will display the actual maximum number of simultaneous compilations.

  • GNAT Pro
    Aug 19th, 2010

    Ada.Execution_Time implemented on GNU/Linux systems
    The standard package Ada.Execution_Time (with support for CPU clocks) is now fully implemented on all GNU/Linux systems.

  • SPARK Pro
    Aug 19th, 2010

    Slightly relax aliasing rules
    SPARK and the Examiner now permit different, non-overlapping record fields given as formal parameters. For example, the following used to be illegal, but is now permitted:

       Swap (R.P, R.Q);
    

  • GNAT Pro
    Aug 17th, 2010

    Suppress_All can now appear anywhere in a unit
    The pragma Suppress_All can now appear anywhere within a unit, and the effect is to apply pragma Suppress (All_Checks) to the entire unit. This accomodates various non-standard placement rules for this pragma in other Ada compilers.

  • GNAT Pro
    Aug 17th, 2010

    Better error recovery for abstract/tagged/private
    The error recovery and error messages are improved for cases where the keywords abstract tagged private appear in the wrong order in full type declarations or in formal private type definitions in generics.

  • SPARK Pro
    Aug 16th, 2010

    Open Source SPARK Implementation of Skein Algorithm

    Altran Praxis and AdaCore have released an implementation of the Skein algorithm, written and verified using the GPL 2010 Edition of the SPARK language and toolset. Skein is a cryptographic hash function and an entrant in the National Institute of Standards and Technology (NIST) hash function competition to design what will become the new Secure Hash Algorithm (SHA-3) standard. This is in time for the second SHA-3 candidate conference taking place at the Crypto 2010 conference, Santa Barbara, California, USA, from 23-24 August 2010.


    More info »

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

    AI-0183 Aspect specifications
    Aspect specifications have been fully implemented. All forms of declarations listed in the AI are supported. In addition several implementation-defined aspects are implemented as shown in the following list:

      Ada_2005             -- GNAT
      Ada_2012             -- GNAT
      Favor_Top_Level      -- GNAT
      Inline_Always        -- GNAT
      Invariant            -- GNAT (same as Type_Invariant)
      Object_Size          -- GNAT
      Persistent_BSS       -- GNAT
      Postcondition        -- GNAT (same as Post)
      Precondition         -- GNAT (same as Pre)
      Predicate            -- GNAT (combines Dynamic_Predicate/Static_Predicate)
      Pure_Function        -- GNAT
      Shared               -- GNAT (same as Atomic)
      Suppress_Debug_Info  -- GNAT
      Universal_Aliasing   -- GNAT
      Unmodified           -- GNAT
      Unreferenced         -- GNAT
      Unreferenced_Objects -- GNAT
      Value_Size           -- GNAT
    
    
    The visibility treatment is as described in the AI, expressions are analyzed at the freezing point, and it is an error if the visibiliy of entities for the expression changes between the freezing point and end of declarations.

  • GNAT Pro
    Aug 13th, 2010

    Improved inlining between parent and child units
    The compiler now performs inlining of calls in child units for the case of a subprogram declared in a parent unit.

  • GNAT Pro
    Aug 13th, 2010

    New improved version of hash table iterator
    A new version of the Get_First/Get_Next iterator is added to Simple_HTable in package GNAT.HTable. This new version returns both the key and element values for each entry. The old version which returned only the elements is retained unchanged.

  • GNAT Pro | GPS | GNATbench
    Aug 12th, 2010

    Syntax highlighting for declarations
    Types and blocks (subprograms, tasks, ...) are now highlighted in a different color in declarations to make it easier to read and understand the source code.

  • GNAT Pro | GPS | GNATbench
    Aug 12th, 2010

    Syntax highlighting for declarations
    Types and blocks (subprograms, tasks, ...) are now highlighted in a different color in declarations to make it easier to read and understand the source code.

  • GNAT Pro
    Aug 10th, 2010

    Support for Ref attribute
    The compiler now supports the (implementation-defined) Ref attribute. The attribute must be prefixed with System.Address and is equivalent to System'To_Address.

  • GNAT Pro | GPS | GNATbench
    Aug 10th, 2010

    ‘Replace’ field kept between searches
    The contents of the 'Replace' field in the Search/Replace dialog is now preserved between two search sessions.

  • GNAT Pro | GPS | GNATbench
    Aug 10th, 2010

    Docgen to detect entity names in comments
    The documentation generator can now detect entity names in comments and generate the appropriate link to their definition.

  • GNAT Pro | GPS | GNATbench
    Aug 10th, 2010

    ‘Replace’ field kept between searches
    The contents of the 'Replace' field in the Search/Replace dialog is now preserved between two search sessions.

  • GNAT Pro | GPS | GNATbench
    Aug 10th, 2010

    Docgen to detect entity names in comments
    The documentation generator can now detect entity names in comments and generate the appropriate link to their definition.

  • CodePeer
    Aug 10th, 2010

    Support for Ref attribute
    CodePeer now supports the syntax System.Address'Ref (X) as found in some Ada compilers.

  • CodePeer
    Aug 10th, 2010

    Relaxed rule for Suppress_All pragma placement
    The pragma Suppress_All can now be placed anywhere in the source code instead of only after a compilation unit as was required previously, for better compatibility with some Ada compilers.

  • CodePeer
    Aug 7th, 2010

    Ada 2012 syntax used for sets
    Sets are now generated using the Ada 2012 syntax, e.g. X in (1..4 | 7 | 10) instead of previously: X in {1..4, 7, 10}, so that it is easier to extract these annotations and add them directly in the source code.

  • GNAT Pro | GPS | GNATbench
    Aug 6th, 2010

    More precise call graph
    When using a recent version of GNAT (starting with 2010-08-06), GPS can take advantage of more precise call graph information and will not generate misleading information for some references to subprograms which are not function calls.

  • GNAT Pro | GPS | GNATbench
    Aug 6th, 2010

    Docgen allows specifying index.html
    The GPS document generator now allows the user to specify the index.html file to use when generating the document. This is done via the shell command register_main_index.

  • GNAT Pro | GPS | GNATbench
    Aug 6th, 2010

    More precise call graph
    When using a recent version of GNAT (starting with 2010-08-06), GPS can take advantage of more precise call graph information and will not generate misleading information for some references to subprograms which are not function calls.

  • GNAT Pro | GPS | GNATbench
    Aug 6th, 2010

    Docgen allows specifying index.html
    The GPS document generator now allows the user to specify the index.html file to use when generating the document. This is done via the shell command register_main_index.

  • GNAT Pro
    Aug 5th, 2010

    Support for Type_Key attribute
    The compiler now supports the (implementation-defined) Type_Key attribute. The attribute is applicable to a type or subtype and yields a string containing information about the prefix, possibly encoded in some form. The information to be included and the form of the encoding are subject to change.

  • GNAT Pro | GPS | GNATbench
    Aug 5th, 2010

    Allow customization of the documentation directory
    A new attribute documentation_dir has been added to the projects so that the directory in which the documentation is generated can now be customized.

  • GNAT Pro | GPS | GNATbench
    Aug 5th, 2010

    Documentation generator now handles ‘code’ tag
    The GPS document generator now defines a new default tag 'code' that allows the text in it to keep its layout when displayed in the documentation.

  • GNAT Pro | GPS | GNATbench
    Aug 5th, 2010

    Allow customization of the documentation directory
    A new attribute documentation_dir has been added to the projects so that the directory in which the documentation is generated can now be customized.

  • GNAT Pro | GPS | GNATbench
    Aug 5th, 2010

    Documentation generator now handles ‘code’ tag
    The GPS document generator now defines a new default tag 'code' that allows the text in it to keep its layout when displayed in the documentation.

  • CodePeer
    Aug 5th, 2010

    Symbolic tags on object
    When generating messages and annotations on tagged objects, a symbolic value is now displayed instead of a numeric one, e.g. N'Tag.all in {pkg1.recording, pkg2.cd, pkg3.vinyl, pkg4.cd_rom} instead of previously: N'Tag.all in {662_784, 682_496, 760_576, 777_216}

  • CodePeer
    Aug 5th, 2010

    Support for Type_Key attribute
    CodePeer now recognizes and handles the Type_Key attribute as found in some Ada compilers.

  • Ada Web Server
    Aug 5th, 2010

    Add more integrated support for some headers
    A cleaner and more structured API has been added to handle the Cache-Control HTTP header. At the same time, the support for ETag and Expires headers has been improved.

  • GNAT Pro | GPS | GNATbench
    Aug 4th, 2010

    Improved tag handling in documentation generator
    The GPS document generator now handles lists and on-purpose line return in structured comments. Lists are detected if a line starts with a * or - surrounded with spaces, while on-purpose line returns are detected if a line starts with a capital letter.

  • GNAT Pro | GPS | GNATbench
    Aug 4th, 2010

    Improved tag handling in documentation generator
    The GPS document generator now handles lists and on-purpose line return in structured comments. Lists are detected if a line starts with a * or - surrounded with spaces, while on-purpose line returns are detected if a line starts with a capital letter.

  • GNAT Pro
    Aug 3rd, 2010

    Asis.Limited_Views package added to ASIS interface
    A new package Asis.Limited_Views is added to the ASIS interface. This package provides a lightweight solution for the processing of compilation units and entities that exist in an ASIS Context because some units are attached to the Context by limited with clauses. Implementation of some standard ASIS interface queries are also adjusted for proper processing of such units and entities.

  • Ada Web Server
    Aug 2nd, 2010

    Improve Ajax support in AWS
    The AWS/Ajax implementation now takes advantage of the new Templates_Parser macro support. This makes Ajax more integrated into AWS and improves the user experience when working with Ajax.