Development Log in February 2013.

  • CodePeer
    Feb 28th, 2013

    Support for—version/—help switches
    CodePeer now recognizes the --version and --help switches in addition to the existing -v and -help, for consistency with other tools.

  • New package GNATCOLL.Iconv
    This optional package provides a binding to libiconv, to convert between various character encodings.

  • Ada
    Feb 26th, 2013

    AI-285 New function Value with default
    A new function Value is added to package Ada.Environment_Variables:

       function Value (Name : in String; Default : in String) return String;
    
    if the external execution environment supports environment variables and an environment variable with the given name currently exists, then Value returns its value; otherwise, it returns Default.

  • GNAT Pro
    Feb 26th, 2013

    New function Value with default
    Change in Ada.Environment_Variables as described in AI 285. A new function Value is added to package Ada.Environment_Variables: function Value (Name : in String; Default : in String) return String; If the external execution environment supports environment variables and an environment variable with the given name currently exists, then Value returns its value; otherwise, it returns Default.

  • GNAT Pro
    Feb 25th, 2013

    GNAT.Ctrl_C available on VMS
    This functionality now works on VMS. Ctrl/C from the terminal and/or SIGINT raised from the code is caught and the installed user handler is run as an AST (asynchronous system trap).

  • GNAT Pro
    Feb 25th, 2013

    gnatclean -f ignores missing directories
    When gnatclean is called with -f and -P, then if there are missing object, exec or library directories, these directories are ignored and gnatclean does not fail.

  • GNAT Pro
    Feb 25th, 2013

    Pragma Contract_Case replaced by Contract_Cases
    GNAT pragma Contract_Case is replaced by the more powerful Contract_Cases (plural). The new pragma allows defining fine-grain specifications that can complement or replace the contract given by a precondition and a postcondition, and it can be used anywhere a precondition or a postcondition are allowed. A corresponding aspect is also defined, which can be used in Ada 2102 mode.

  • GNAT Pro
    Feb 24th, 2013

    Allow extended syntax for Check_Policy pragma
    Check_Policy now permits a syntax analogous to that allowed by the new Assertion_Policy form (e.g. Check_Policy (kind => policy, kind => policy ..). The old syntax, Check_Policy (kind, policy) is still recognized.

  • Ada
    Feb 23rd, 2013

    AI-0272 Restrictions No_Use_Of_Pragma and others
    Restrictions No_Use_Of_Pragma and No_Use_Of_Attributes are now recognized.

  • GNAT Pro
    Feb 23rd, 2013

    Additional Ada 2012 Restrictions
    Several restrictions introduced late in the Ada 2012 revision process are now recognized: No_Access_Parameter_Allocators, No_Coextensions, No_Use_Of_Pragma, No_Specification_Of_Aspect, and No_Use_Of_Attribute.

  • Ada
    Feb 22nd, 2013

    AI-0290 Extensions to Assertion_Policy control
    Assertion_Policy as now implemented in extended form. The main improvements are that it can appear in any declarative part with scope rules like pragma Suppress, and it can be applied to individual assertion aspects. GNAT extensions allow it to also apply to GNAT assertion aspects and pragmas. Check_Policy is enhanced in a consistent manner. Finally Debug pragmas are now controllable with Assertion_Policy.

  • GNAT Pro
    Feb 22nd, 2013

    New Ada 2012 Assertion_Policy control
    Assertion_Policy as implemented as described in AI 290. The improvements are that it can appear in any declarative part with scope rules like pragma Suppress, and it can be applied to individual assertion aspects. GNAT extensions allow it to also apply to GNAT assertion aspects and pragmas. Check_Policy is enhanced in a consistent manner. Finally Debug pragmas are now controllable with Assertion_Policy.

  • GNAT Pro
    Feb 20th, 2013

    Scalar_Storage_Order info is included in -gnatR*
    Compiler switches -gnatR* cause data structure layout information to be displayed by the compiler. This output now includes the Scalar_Storage_Order implementation defined attribute.

  • GNAT Pro
    Feb 18th, 2013

    New ASIS query to obtain end labels
    A new Corresponding_End_Name query is added to Asis.Elements package. The query returns the name that is repeated at the end of a declaration or a statement. The returned Element is not visited by Traverse_Element, so adding this query does not affect existing ASIS applications.

  • GNAT Pro
    Feb 18th, 2013

    Remove unneeded error checking for Connect_Socket
    If the version of Connect_Socket with timeout is called with a timeout of 0.0, the subprogram returns immediately without attempting to poll the socket for connection completion, thus ensuring that no exception is raised if the initial call to connect(2) either succeeded immediately or return a connection-in-progress status.

  • GNAT Pro
    Feb 16th, 2013

    New gnatcheck option to annotate diagnoses
    A new '--show-rule' is added to gnatcheck. With this option, gnatcheck appends the name of the corresponding rule to each diagnosis generated.

  • GNAT Pro
    Feb 16th, 2013

    Catch additional cases of style errors
    Normally when a body is compiled with style checking set (-gnaty), then style errors in the spec are also flagged. In cases where the spec was explicitly with'ed indirectly, these style errors were not caught. Now they will be caught which may result in additional cases of correct style errors being flagged in existing code.

  • GNAT Pro
    Feb 16th, 2013

    Implement VMS RMS keys in file I/O
    This implements passing VMS RMS keys in Ada.Streams.Stream_IO. Currently the only keys implemented are "Context=Force_Stream_Mode" for forcing a byte stream read on a file with a record context and "Context=Force_Record_Mode" for forcing a record style read.

  • Ada Web Server
    Feb 15th, 2013

    Support for setting priorities
    It is now possible to set the priorities of different tasks used by AWS. There are four priority categories supported. One for the HTTP server, one for the WebSocket handler, one for the session data cleaner task and one for all other optional services (Jabber protocol handler, Server Push...).

  • GNAT Pro
    Feb 14th, 2013

    Multiprocessors[.Dispatching_Domains] ok in Ada 95
    System.Multiprocessors and System.Multiprocessors.Dispatching_Domains are now available in Ada 95 and Ada 2005 modes. These are Ada 2012 defined units but with this change we permit them in earlier versions of Ada where they are technically implementation-defined units (Ada implementations are allowed to add children to System).

  • GNAT Pro
    Feb 13th, 2013

    New environmment variable GPR_PROJECT_PATH_FILE
    A new environment variable GPR_PROJECT_PATH_FILE is used by the Project Manager to set up the project path. When defined, GPR_PROJECT_PATH_FILE indicates the path of a text file that contains directories to be added to the project path. GPR_PROJECT_PATH_FILE is taken into account before GPR_PROJECT_PATH. A warning is issued if the text file cannot be found.

  • GNAT Pro
    Feb 10th, 2013

    Clearer -gnatG output for unconstrained objects
    When a variable of nominal type String is declared, the -gnatG output now shows the actual subtype, which includes the bounds derived from the initial value expression.

  • GNAT Pro
    Feb 6th, 2013

    Extend static initialization to discriminated types
    In general the declaration of an object of a discriminated type requires a call to the compiler-generated initialization procedure. This prevents the declaration of such objects in a package to which No_Elaboration_Code applies. The compiler now makes it possible to initialize such objects statically, by generating an aggregate with static components whenever possible. This transformation is applicable in cases where the restriction No_Initialize_Scalars is present, the discriminant values are static, and other components have static default values or none.

  • GPRbuild
    Feb 5th, 2013

    Empty Run_Path_Origin
    It is now allowed to specify attribute Run_Path_Origin as an empty string. This allows the run paths to be absolute paths. Then an executable may be moved to another directory without moving the shared libraries it needs.

  • GPS | GNATbench
    Feb 4th, 2013

    GPS: return block completion
    Add "return ... end return;" statement support for block completion.

  • GPS | GNATbench
    Feb 4th, 2013

    ECL: automatic scenario set for Android projects
    When the New Project wizard creates a new Ada for Android project, the "OS" scenario variable will be set to "linux" automatically. This setting is essential for creating proper library names for subsequent use by the Android OS.

  • GNAT Pro | GPS | GNATbench
    Feb 4th, 2013

    GPS: return block completion
    Add "return ... end return;" statement support for complete block completion

  • GNAT Pro | GPS | GNATbench
    Feb 4th, 2013

    ECL: automatic scenario set for Android projects
    When the new-project wizard creates a new Ada for Android project the "OS" scenario variable will be set to "linux" automatically. This setting is essential for creating proper library names for subsequent use by the Android OS.