Development Log

  • GNAT Pro
    Jun 23rd, 2017

    Direct conversion from unsigned subtype to FP type
    On 32-bit RISC platforms, the compiler now generates a direct conversion from a 32-bit unsigned subtype of a 64-bit base type to a floating-point type instead of calling a dedicated routine.

  • GNAT Pro
    Jun 21st, 2017

    New gnatcheck rule Numeric_Indexing
    A new gnatcheck rule Numeric_Indexing flags integer literals used as index expressions.

  • GNAT Pro
    Jun 20th, 2017

    Efficiency of Trim improved
    Ada.Strings.Fixed.Trim is now slightly faster than it was.

  • GNAT Pro
    Jun 18th, 2017

    Symbolic tracebacks without hexadecimal addresses
    New functions Symbolic_Traceback_No_Hex are added to System.Traceback.Symbolic to avoid printing hexadecimal addresses. This is useful for getting deterministic output from tests.

  • SPARK Pro
    Jun 16th, 2017

    Better handling of discriminants of protected types
    GNATprove now tracks the value of discriminants of protected types in a better way, leading to better proof results.

  • GNAT Pro
    Jun 16th, 2017

    Extended version of -gnatR for record subcomponents
    The new -gnatRe variant of the -gnatR switch makes the compiler output extended representation information for record components that are themselves records, displaying information about their subcomponents.

  • SPARK Pro
    Jun 15th, 2017

    Enable multiprocesing by default in IDEs
    When interacting with GNATprove inside GPS or GNATbench, it is desirable that the analysis uses all available cores to go as fast as possible. This is now achieved by selecting by default the "multiprocessing" mode with -j0. The user can always revert that in the analysis/proof panel opened.

  • GNAT Pro
    Jun 15th, 2017

    Refine warning on redundant comparison to True
    In many cases, comparing the value of an expression to True is a matter of preference to decide what is clearer. Thus, in such cases the use of -gnatwr may lead to spurious warnings. This is revised: GNAT now only warns on comparisons with True when the expression being compared is an object name or a simple expression involving an operator.

  • GNAT Pro | GPRbuild
    Jun 9th, 2017

    Allow path of object file (O817-030)
    In .d dependency files for file-based languages, the beginning of the file line may be the full path of the object file, instead of its simple file name.

  • CodePeer
    Jun 8th, 2017

    Warnings suppressed on unreferenced in out formals
    CodePeer now takes pragma Unreferenced into account on formal parameters of mode in out, instead of ignoring the pragma and generating unwanted messages that suggest changing modes to in or out.

  • GNAT Pro
    Jun 8th, 2017

    More expressions allowed in Pure_Barriers
    Type conversions and subcomponents of a protected object are now allowed to be specified in entry barriers under the restriction Pure_Barriers. The following constraints apply: type conversions cannot potentially raise Constraint_Error and subcomponents cannot be selected from a prefix that is a dereferenced access value.

  • GNAT Pro | GPS | GNATbench
    Jun 7th, 2017

    GPS: Edit register values from Registers view
    While debugging, it is now possible to change the value of registers directly from within the Registers view.

  • CodePeer
    Jun 2nd, 2017

    Warnings suppressed on unreferenced out parameters
    CodePeer now takes into account pragma Unreferenced on an actual parameter of mode out instead of ignoring it and generating a message.

  • CodePeer
    Jun 1st, 2017

    Better handling of unused assignment messages
    When tracking review of messages from one run to another, CodePeer is now able to differentiate between multiple unused assignments of different values into the same variable in the same subprogram.

  • SPARK Pro
    May 31st, 2017

    Improve message for overridden subprograms
    When an overriding subprogram has more effects on globals variables than the overridden subprogram, GNATprove will report an error message. We have now improved this message making more explicit the underlying issue and we have reworded the case when these effects are through access types (i.e. pointers).

  • CodePeer
    May 31st, 2017

    Ada syntax is used for addresses in messages
    When codepeer generates a message which refers to the address of some entity named Foo, the message text is now "Foo'Address" in cases where previous versions of CodePeer generated "&Foo".

  • Postgres notification support
    Support notifications between different postgres database sessions.

  • SPARK Pro
    May 29th, 2017

    Better precision on functions returning tagged types
    GNATprove now tracks better the value of the tag of the result of function calls. This will lead to more discharged checks on code dealing with functions returning tagged types.

  • GNAT Pro | GPRbuild
    May 26th, 2017

    Do not ignore sources when compiler cannot be found
    When the compiler for a language could not be found, sources of the language were ignored. This is no longer the case, but if one of these sources needs to be compiled, an error will be reported and the GPR tool will fail.

  • GNAT Pro | GPS | GNATbench
    May 25th, 2017

    GPS: Autofix removes redundant context clauses
    Autofix now removes redundant "with" clauses together with any accompanying "use" clauses.

  • GNAT Pro
    May 25th, 2017

    New function To_Ada in GNAT.Sockets
    A new function GNAT.Sockets.To_Ada supports converting externally created socket descriptors to type Socket_Type for use with other operations in package GNAT.Sockets.

  • GNAT Pro | GPS | GNATbench
    May 24th, 2017

    GPS: Autofix removes redundant context clauses
    Autofix now removes redundant "with" clauses together with any accompanying "use" clauses.

  • GNAT Pro
    May 24th, 2017

    Debug information for imported entities
    GCC now produces debug information to describe Ada entities that are imported using the Import pragma or aspect.

  • GNAT Pro
    May 23rd, 2017

    Warning on potential C++ ABI mismatch on ARM
    With -Wpsabi on ARM, the compiler now warns in corner case situations where it knows it could possibly generate wrong code for complex C++ constructs involving method calls passing vectors of composite elements as arguments. The issue warned against is a possible caller/callee disagreement about what arguments-passing convention to use, leading to crashes at run time.

  • CodePeer
    May 22nd, 2017

    Better handling of ‘Length in preconditions
    Less false positives when dealing with a 'Length attribute

  • GNAT Pro
    May 22nd, 2017

    Minimize useless body compilations when inlining
    A filter has been added to the inlining / instantiation circuitry to recognize package bodies that do not contain bodies of inlined functions or generic bodies being instantiated, and that therefore do not need to be compiled, even though their declarations may appear in the context of other units that are needed for inlining.

  • GNAT Pro | GPS | GNATbench
    May 17th, 2017

    GPS: Better default colors on Windows
    The colors used for selected items on Windows have been improved to make them more readable by default.

  • GNAT Pro | GPS | GNATbench
    May 17th, 2017

    GPS: The GNAT examples are now deployable
    GPS now asks to specify a directory for deploying GNAT examples via the HELP/GNAT/Examples menus, rather than opening examples in the location where they are installed.

  • SPARK Pro
    May 11th, 2017

    Added preconditions to standard numerical functions
    Preconditions have been added to functions from the standard numerical package Ada.Numerics.Generic_Elementary_Functions, in cases that may lead to Numerics.Argument_Error or Constraint_Error when called on actual parameters that are not suitable, like a negative input for Sqrt. This ensures that GNATprove generates corresponding precondition checks when such functions are called.

  • SPARK Pro
    May 10th, 2017

    Precise handling of dispatching calls with known tag
    GNATprove now precisely determines the subprogram called by a dispatching call when the tag is known. In particular, it is now able to use its more precise specific contract if any.

  • GNAT Pro | GPS | GNATbench
    May 9th, 2017

    GPS: Debug/Print contextual menus reintroduced
    The Debug/Print contextual menus have been reintroduced in GPS.

  • GNAT Pro | GPS | GNATbench
    May 7th, 2017

    GPS: Debug/Print contextual menus reintroduced
    The Debug/Print contextual menus have been reintroduced in GPS.

  • GNAT Pro
    May 6th, 2017

    Warning on potential C++ ABI mismatch on ARM
    With -Wpsabi on ARM, the compiler now warns in corner case situations where it knows it could possibly generate wrong code for complex C++ constructs involving method calls passing vectors of composite elements as arguments. The issue warned against is a possible caller/callee disagreement about what arguments-passing convention to use, leading to crashes at run time.

  • SPARK Pro
    May 5th, 2017

    Improve message for functions that could not return
    GNATprove used to emit a confusing check about initialization of functions when it could not determine if a function would return. We have now improved the message for this check. In addition, when encountering a potentially non returning function, GNATprove will now precise if the function may not return on some or on every path.

  • CodePeer
    May 4th, 2017

    Message text improved for double negations
    In some cases where CodePeer formerly generated messages mentioning conditions of the form "not (X /= Value)", CodePeer now avoids the double negative and generates "X = Value".

  • GNAT Pro | GPS | GNATbench
    May 3rd, 2017

    GB: Optimization on scenario variables view display
    The GNAT project load is no longer required to show the scenario variables view. The GNAT project load is postponed to until it is selected in the project explorer or in the scenario variables views.

  • SPARK Pro
    May 3rd, 2017

    Use unique names for private record parts
    GNATprove now generates unique names for the Why3 translation of private parts of distinct record types. This should facilitate mappings of these parts to distinct types in interactive theorem provers.

  • GNAT Pro
    May 3rd, 2017

    Enhanced -gnatR3 output for simple dynamic records
    The representation information given by the compiler when the -gnatR3 switch is specified now includes size information for simple dynamic record types without discriminants.

  • SPARK Pro
    May 2nd, 2017

    Use unique names for simple private types
    For simple private types (untagged private type with no discriminants and full view out of SPARK) we now use unique names in Why3 so that they can easily be mapped to distinct existing types in interactive provers.

  • GNAT Pro | GPRbuild
    Apr 27th, 2017

    Avoid following too many symbolic links
    When gprbuild or gprclean were invoked without switch -eL, some symbolic links were still needlessly followed. Now, only the minimum number of symbolic links are followed.

  • GNAT Pro
    Apr 27th, 2017

    Relax alignment constraint for record extensions
    On x86 and, more generally, architectures that do not require strict alignment for memory accesses, the compiler now accepts size clauses on record type extensions that effectively lower the alignment of the type, if there is also a representation clause on the type.

  • GNAT Pro | GPS | GNATbench
    Apr 25th, 2017

    GPS: Preserve “withs” node state in the Outline view
    The Outline view now preserves the expanded/collapsed state of the "withs" node when switching between sources.

  • CodePeer
    Apr 24th, 2017

    -csv and -show-header
    Mixing -csv and -show-header with -output-msg was disallowed in CodePeer 17.1 because it generates a invalid CSV file. Since this option was found useful by some users, it's available again. It's up to the user to postprocess (e.g. split) the output if needed.

  • CodePeer
    Apr 24th, 2017

    -csv and -show-header
    Mixing -csv and -show-header with -output-msg was disallowed in CodePeer 17.1 because it generates a invalid CSV file. Since this option was found useful by some users, it's available again. It's up to the user to postprocess (e.g. split) the output if needed.

  • GNAT Pro | GPS | GNATbench
    Apr 21st, 2017

    GPS: Items selection improved in GPS browsers
    On Linux, electing an item now deselects any other unless the user is pressing a modifier key.

  • GNAT Pro | GPS | GNATbench
    Apr 21st, 2017

    GB: Use relative path when creating linked folders
    On Eclipse versions 3.6 (Helios) or above, GNATbench uses relative paths to create linked folders. GNATbench creates linked folders when directories found in GNAT project files are not present in the workspace.

  • CodePeer
    Apr 20th, 2017

    Show-header displays current and base “run” numbers
    If the "-show-header" flag is passed to codepeer after the "-output-msg[-only]" flag, two additional header lines are now displayed, with the form "current run number 7" and "base run number 2". The run numbers identify which execution of CodePeer produced the output, and which execution was used as the "baseline" for comparison for the purpose of identifying "added" or "removed" messages. In addition the date displayed in the header now corresponds to when the results were produced, rather than when they are being displayed.

  • CodePeer
    Apr 20th, 2017

    Excluded source files listed by -show-header
    The list of files excluded from analysis by CodePeer via the Excluded_Source_Files or Excluded_Source_Dirs project attributes is now available when using -output-msg[-only] -show-header.

  • SPARK Pro
    Apr 20th, 2017

    Better handling of powers of 2 in modular types
    GNATprove now handles better powers of 2 that are of a modular type, leading to better proof results. This improvement only concerns modular types whose modulus is itself a power of 2.

  • SPARK Pro
    Apr 20th, 2017

    Better handling of discriminant-dependent components
    GNATprove now handles accesses to discriminant-dependent record components better, leading to more proofs and less spurious trivial checks on such components.

  • GNAT Pro | GPS | GNATbench
    Apr 19th, 2017

    GPS: Python API for creating Tasks
    It is now possible to create Tasks from the GPS Python API, and to create tasks that monitor a workflow. This can conveniently replace some uses of the GPS.Timeout API, and integrates within the GPS Task Manager, allowing to provide progress indication for background tasks.

  • SPARK Pro
    Apr 19th, 2017

    Improved handling of compile-time-known assertions
    Assertions that are known to be true at compile-time are now handled in a more efficient way by the SPARK tools. This results in shorter running times on projects that contain such assertions.

  • CodePeer
    Apr 19th, 2017

    More efficient IDE/CodePeer exchange format
    The new format of IDE/CodePeer data exchange allows minimizing the amount of inspection information loaded at the opening of the CodePeer report and only loading annotation information when needed.

  • GNAT Pro
    Apr 19th, 2017

    Removal of restriction on inlining in related units
    The compiler can now inline into a child package a subprogram declared in a parent package, even if the parent package has a with clause for the child package in the parent's body.

  • GNAT Pro | GPS | GNATbench
    Apr 18th, 2017

    GPS: Local toolbar in the Assembly view
    The Assembly view now has a local toolbar, containing buttons for disassembling and local configuration.

  • CodePeer
    Apr 17th, 2017

    Improved analysis for ‘Image
    CodePeer has now more knowledge about the bounds of Image attribute evaluations; for example, it knows the low bound = 1 and the high bound >= 1.

  • CodePeer
    Apr 17th, 2017

    Improved handling of pragma Assume
    CodePeer now takes into account pragma Assume and will no longer generate messages about the possibility that the condition of an Assume (as opposed to Assert) pragma may yield "false".

  • GNAT Pro
    Apr 17th, 2017

    Speedup for functions returning unconstrained arrays
    The compiler now generates more efficient object code for simple functions returning an unconstrained array type, for example Ada.Numerics.Real_Arrays.Eigenvalues as implemented in GNAT.

  • GNAT Pro
    Apr 16th, 2017

    Optimize calls to null procedures
    GNAT now replaces calls to null procedures by null statements, except when GNATcoverage is active. This enables further optimizations that include such calls.

  • GNAT Pro
    Apr 15th, 2017

    Improved dimensionality checking for generic units
    The dimensionality-checking algorithms have been enhanced to allow the construction of generic units that can apply to different dimensioned arguments, and verify the dimensional consistency of each separate instance of such a unit.

  • SQL Long_Float type conformity
    New cursor operation Long_Float_Value returns Long_Float value by the field index. New routine As_Long_Float makes SQL_Parameter from Long_Float value to be able to send Long_Float parameter to SQL subsystem.

  • GNAT Pro
    Apr 15th, 2017

    Time_IO.Value enhanced to parse ISO-8861 UTC
    The function Value of package GNAT.Calendar.Time_IO has been enhanced to parse strings containing UTC date and time with the ISO-8861 format.

  • SPARK Pro
    Apr 13th, 2017

    Protect against unsound function contracts
    When a function has an inconsistent contract (a contract which cannot hold for some inputs), GNATprove used to generate an unsound axiom which may then allow to prove anything in a caller of such a function, and so, even if the function is always called on 'valid' inputs, that is, inputs on which the contract holds. Though this behavior is expected with a proof technology such as SPARK, it used to come as a surprise to some users. We now avoid generating unsound axioms as much as possible by introducing guards for function axioms which are only assumed to hold on actually used values. Note that there are still cases where an unsound axiom will be generated (functions called in type invariants / type predicates, in primitive equalities of record types, or sometimes in user written quantified expressions). As a consequence, having inconsistent contracts on functions is still a bad usage of SPARK, and users should avoid it as much as possible. Also, this new 'safer' translation can sometimes impact proof capabilities. Thus, we provide an advanced switch --no-axiom-guard to disable it.

  • GNAT Pro | GPS | GNATbench
    Apr 10th, 2017

    GPS: New debug-related entries in contextual menus
    The debug section of contextual menu now contains entries to remove, enable, or disable breakpoints.

  • GNAT Pro | GPS | GNATbench
    Apr 10th, 2017

    GPS: New Build & Run and Build & Debug buttons
    A Build & Run and a Build & Debug toobar button have been introduced. Clicking on these buttons has for effect to build the selected executable before performing the second action (either Run or Debug).

  • GNAT Pro
    Apr 7th, 2017

    Better message on violation of No_Dynamic_Allocation
    The Ravenscar profile includes a restriction on dynamic allocation. Its violation is usually detected in the back-end, with an obscure message that does not refer directly to the entity responsible for the dynamic allocation (which is typically a discriminated object with non-static discriminants). This enhancement adds a source warning to pinpoint more precisely the cause of the subsequent error and compiler rejection.

  • GNAT Pro
    Apr 6th, 2017

    Elimination of out-of-line body with Inline_Always
    The compiler now always eliminates the out-of-line body of a subprogram subject to pragma Inline_Always.

  • GNAT Pro | GPS | GNATbench
    Apr 5th, 2017

    GPS: GPS.Debugger allows to manipulate frames now
    The python GPS.Debugger now has following methods - current_frame, frame_down, frame_up, frames, select_frame.

  • SPARK Pro
    Mar 30th, 2017

    Globals of renamed subprograms in code not-in-SPARK
    GNATprove now synthesizes more precise Global contracts for subprograms annotated with SPARK_Mode => Off that make calls via subprogram renamings. Such calls happen, for example, in instances of generic units with formal subprogram parameters.

  • GNAT Pro | GPS | GNATbench
    Mar 28th, 2017

    GPS: Auto fix for prefix of Result attribute
    GPS provides auto fix to help with compiler errors of the form 'incorrect prefix for attribute "Result", expected "Incr2"'.

  • GNAT Pro | GPS | GNATbench
    Mar 27th, 2017

    GNATDOC: Documentation for concurrent constructs
    Detailed information is generated for task and protected objects, including their subprograms and entries.

  • CodePeer
    Mar 27th, 2017

    Better messages for null statements
    CodePeer flags both dead null statements and predetermined test conditions which govern the possible execution of null statements.

  • GNAT Pro
    Mar 27th, 2017

    GNATdoc can now extract documentation from bodies
    GNATdoc has a new capability, activated by the command-line switch '-d'; in this mode, GNATdoc processes bodies and extracts documentation for library-level entities.

  • SPARK Pro
    Mar 24th, 2017

    Empty “others” alternative in Case statement
    Flow analysis now detects when an "others" alternative of a Case statement corresponds to an empty range and effectively considers its sequence of statements as unreachable. This helps to avoid spurious messages about variables not being referenced or initialized within that sequence of statements.

  • GNAT Pro
    Mar 24th, 2017

    Automatic reordering of components in record types
    The compiler can now reorder components in record types with convention Ada in order to fix blatant inefficiencies that the layout of components in textual order would bring about. The reordering is automatic and silent by default, but both characteristics can be toggled: pragma No_Component_Reordering disables it either on a per-record-type or on a global basis, while -gnatw.q gives a warning for each affected component in record types.

  • GNAT Pro
    Mar 23rd, 2017

    Relax alignment constraint for record extensions
    On x86 and, more generally, architectures that do not require strict alignment for memory accesses, the compiler now accepts size clauses on record type extensions that effectively lower the alignment of the type, if there is also a representation clause on the type.

  • SPARK Pro
    Mar 21st, 2017

    Simplified translation of simple private types
    Untagged private types with no discriminant whose full view is not in SPARK are now translated in Why3 as clones of the predefined __private abstract type. This should allow users of interactive proof assistants to more easily map these private types to a logic type of their choice.

  • GNAT Pro | GPS | GNATbench
    Mar 20th, 2017

    GPS: The Window menu now contains icons
    Icons were added in the Window menu for editors. This allows displaying which editors are currently modified.

  • SPARK Pro
    Mar 20th, 2017

    Theories for conversion of discrete types realized
    The Why3 theories used by GNATprove to model conversions between discrete types have been realized in Coq. This increases confidence in their correction.

  • GNATCOLL.Traces performance improvements
    Performance has been significantly enhanced: streams no longer flush after each message by default (though this is now configurable in the configuration file), locking is done at the stream level, and can often be avoided altogether since the system provides its own locking, messages are created as a whole line and then sent once to the stream, which provides more flexibility when writing streams, and other various enhancements. In a single threaded application, we now output 6 million messages per second to a file.

  • GNAT Pro
    Mar 16th, 2017

    GNAT includes a ZFP runtime for Linux and Windows
    The native ZFP (Zero Footprint) runtime for Linux and Windows is now part of the base GNAT package. It is now also available with 64-bit compilers. This runtime is similar to the ZFP runtimes that are delivered with our bare metal products and can be used to test an embedded project in a native environment.

  • CodePeer
    Mar 15th, 2017

    Better messages for .scil file creation failure
    If CodePeer unsuccessfully attempts to create a .scil file, then generate an additional error message which includes the full name of the file which could not be created. If it appears likely that the source of the problem is a Windows-specfic restriction on filename lengths, then that is also noted in a message.

  • GNATCOLL.Mmap: support files larger than 2Gb
    This package now supports mapping files up to 1 petabyte, on 64 bits systems. This is backward compatible, although to access such large files you will need to use some different functions. This package also includes support for the madvise() system call on Unix systems, which might provide a 5% performance improvements when accessing files sequentially.

  • GNATCOLL.Strings: new package
    This package, and the generic implementation in GNATCOLL.Strings_Impl, provide a new string type. A XString is similar to an unbounded string, but more efficient (up to 10x for strings 23 characters or less, or when manipulating substrings, and up to 1.4 for larger strings), and with a more extensive API.

  • GNATCOLL.Promises: new package
    This package provides a promise type, also known as a future in some language. This is a way to perform background computation, then chain a series of callbacks which can themselves perform asynchronous computation.

  • GNAT Pro
    Mar 13th, 2017

    Option to treat run-time exception warnings as errors
    The compiler supports a new switch -gnatwE that treats warnings that run-time exceptions will occur as compile-time errors.

  • Ada Web Server
    Mar 11th, 2017

    Add support for type/subtype in ada2wsdl
    The tool ada2wsdl will now generate proper WSDL out of Ada specs using types or subtypes to derived from other Ada specs.

  • SPARK Pro
    Mar 9th, 2017

    New switch produces header in gnatprove.out
    The new switch --output-header produces a header in the generated file gnatprove.out, with useful information about the run of GNATprove, such as the version number, date, host platform and switches used.

  • GNAT Pro | GPRbuild
    Mar 7th, 2017

    Extending a package from a project being extended
    In an extending project A, it is now possible to extend a package P from the project being extended B, when project B is extending another project C and package P is not declared in project B but has only been inherited from project C.

  • Ada Web Server
    Mar 7th, 2017

    Add support for xsd:dateTime in ada2wsdl
    The ada2wsdl tool will now generate a SOAP xsd:dateTime for references to the standard Ada.Calendar.Time.

  • GNAT Pro
    Mar 4th, 2017

    Ceiling locking on Linux without root privileges
    Ceiling locking on Linux no longer requires root privileges. Instead, you can run "sudo /sbin/setcap cap_sys_nice=ep exe_file" to set the relevant capability on the executable file, and then that program can use ceiling locking without running as root.

  • Ada Web Server
    Mar 4th, 2017

    Add support for selecting encoding in ada2wsdl
    The ada2wsdl tool has a new option to select the encoding to be used by the SOAP services.

  • GNAT Pro | GPRbuild
    Feb 28th, 2017

    Environment variables TEMP and TMP for temp dir
    In addition to environment variable TMPDIR, TEMP and TMP are potentially used by the Project Manager to store temporary files. If one of these environment variables designates the absolute path of a directory, this directory is used to store the temporaty files. TMPDIR is checked first, then TEMP, then TMP. If none of those designates the full path of a directory, then the temporary files are stored in object directories.

  • GNAT Pro | GPS | GNATbench
    Feb 27th, 2017

    GPS: Locate in Project view and flat mode
    The "Locate in Project View" action now works for both normal and flat modes, without switching the mode.

  • GNAT Pro | GPS | GNATbench
    Feb 27th, 2017

    GPS: Locate in Project view and flat mode
    The "Locate in Project View" action now works for both normal and flat modes, without switching the mode.

  • GNAT Pro
    Feb 27th, 2017

    Warning messages for null-excluding components
    Warnings are now issued on composite objects that have components of a null-excluding access type that are default initialized to null, as such initializations will raise Constraint_Error.

  • GNATCOLL.SQL: New routines for SQL_Criteria
    Length routine returns number of criteria on the upper level of SQL_Criteria delimited by the same logical operator "OR" or "AND". Is_And and Is_Or routines to discover upper level boolean operation of criteria. Combine routine to create SQL_Criteria from list of criteria.

  • SPARK Pro
    Feb 24th, 2017

    Dynamic type constraints of protected components
    GNATprove now better tracks dynamic type constraints of protected components, such as dynamic bounds, predicates and invariants. This results in more automatic proof on protected operations or their callers, whenever types of protected components have some dynamic constraints.

  • GNAT Pro | GPRbuild
    Feb 23rd, 2017

    GPRbuild response files
    GPRbuild now supports response files. A response file is a text file, specified to gprbuild with argument '@<argument_file_path>'. The path is either absolute or relative to the current working directory. Each line in a response file is an argument for gprbuild. An argument '@<file>' is not allowed in a response file.

  • CodePeer
    Feb 23rd, 2017

    Support for -jxxx switch
    CodePeer now supports the -jxxx switch as an alias for the existing switch -jobs xxx, for consistency with other GNAT tools. This switch enables the use of multiple processes for SCIL generation and analysis.

   1  2  3     Next »