Development Log in categories CodePeer

  • 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.

  • 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.

  • CodePeer
    Feb 21st, 2017

    Compiler Mode now remembers previous messages
    When using the -compiler-mode switch, messages generated from the previous run on files that have not changed are now displayed.

  • CodePeer
    Feb 1st, 2017

    Generation of test vectors disabled by default
    Support and documentation for test vectors has been removed, since this capability is only partially implemented and sometimes generates confusing information. It can be temporarily reenabled via a debug switch "-dbg-on test_vectors".

  • CodePeer
    Dec 27th, 2016

    Improved handling of SCIL version mismatch
    When a SCIL version mismatch is detected (e.g. when using a new version of CodePeer) CodePeer will now display a simple info message and will automatically remove obsolete files, and regenerate them.

  • CodePeer
    Dec 23rd, 2016

    Incremental analysis via persistent annotations
    A beta version of incremental analysis is available where CodePeer will save the result of its full analysis on disk via the -persistent-annotations switch, allowing reuse in subsequent runs when the files are still up to date. This allows both faster re- analysis and more precise results.

  • CodePeer
    Dec 7th, 2016

    Support for annotations in the CSV output
    CodePeer annotations (preconditions, postconditions, global inputs and outputs, ...) can now be included in the CSV output using the -show-annotations switch (in addition to -output-msg -csv).

  • CodePeer
    Nov 30th, 2016

    Better messages for access-to-subprogram uses
    In some cases a dereference of an access-to-subprogram value could result in a CodePeer message like "... requires Ptr >= 1" which is inappropriate for a non-numeric value. Instead, we now generate "... requires Ptr /= null" .

  • CodePeer
    Nov 26th, 2016

    Better handling of data modified by unknown calls
    Data that can possibly be modified by a call to a subprogram not analyzed by CodePeer are computed more precisely. In particular, bounds of arrays that are passed as out or in out parameters in a call to an unanalyzed subprogram are no longer considered as possibly modified by the call.

  • CodePeer
    Nov 21st, 2016

    Improved CodePeer handling of tagged types
    CodePeer encounters fewer capacity limitations (timeouts, too many value numbers) for examples which declare tagged types, including examples which instantiate Ada's predefined container generics.

  • CodePeer
    Nov 17th, 2016

    Support for -gnatxxx switches
    CodePeer now supports the -gnatxxx compiler switches directly, either from the command line, or from the Switches attribute in the CodePeer package in project files, giving more flexibility in particular coupled with the -compiler-mode switch. This also allows specifying CodePeer-specific compiler switches (such as -gnatI) without impacting compilation.

  • CodePeer
    Oct 8th, 2016

    No False Positive mode
    Significant work has been done to reduce the number of false alarm messages (also known as false positives) when using the -messages min switch. This is also the default when using -level 0, -level 1 and -compiler-mode switches. In this mode, only messages which are the most likely to be real errors are generated.

  • CodePeer
    Sep 27th, 2016

    New switch -f
    A new switch -f is provided to force reanalysis when using the -compiler-mode switch, instead of doing an incremental analysis only, and to force generation and analysis of scil files for all source files in the default mode.

  • CodePeer
    Sep 15th, 2016

    Messages involving loop imprecision marked low
    CodePeer is now able to identify messages where loop imprecision is involved and is making messages uncertain, which are marked low now by default instead of medium.

  • CodePeer
    Aug 19th, 2016

    More info when reviewing a message in GPS
    The GPS dialog for reviewing a single message now contains information about the message, similarly to the dialog for reviewing multiple messages.

  • CodePeer
    Aug 16th, 2016

    Speedup CodePeer WebServer startup
    Startup time of CodePeer web server with large dababase was significantly reduced.

  • CodePeer
    Jul 23rd, 2016

    Indirect call results now show original name
    When CodePeer produces a message about an indirect or dispatching call, it used to identify the result by "Indirect_Call'Result." Now it uses the actual name used in the call, such as "P.all'Result" if it is a call through an access-to-subprogram value P, or "Prim_Op'Result" if it is a dispatching call of a primitive operation Prim_Op.

  • CodePeer
    Jul 20th, 2016

    More precise handling of aliasing
    CodePeer handles aliasing in a more precise way. This includes detecting conditions always true or false in more cases when using complex expressions in conditions, for instance expressions involving aliased variables, and more precise handling of aliasing in a per-file mode when aliased variables are declared in a module imported by the file being analyzed.

  • CodePeer
    Jul 19th, 2016

    Better display of long ranges
    When displaying very long ranges (e.g. for large floating point values), CodePeer would truncate the range completely and instead display a "[...]" only. CodePeer now displays a truncated value for the two values of the range.

  • CodePeer
    Jul 19th, 2016

    New switch -unconstrained-fpt-overflow
    Overflow detection on unconstrained floating point types previously required the use of the compiler switch -gnateF to be enabled. This can now be enabled more easily via the codepeer switch -unconstrained-fpt-overflow which is also enabled by default at -level 4.

  • CodePeer
    Jul 2nd, 2016

    Protection against unreliable filesystem
    Under certain circumstances when using the Windows operating system, CodePeer reported "cannot generate SCIL" without giving any reason for failure. Rerunning with the "-gnatdk" compiler switch showed a problem related to renaming a temporary SCIL directory, which could be due to filesystem load or anti-virus software activity. CodePeer is now more resistant against such temporary filesystem failure.

  • CodePeer
    Jun 28th, 2016

    Simplify display of modular expressions
    CodePeer now replaces "A mod K" with simply "A" when it is part of a larger expression that has an enclosing "mod K" operation, since a final "mod" operation is all that is required to faithfully represent the result of a tree of arithmetic operations on a modular type.

  • CodePeer
    May 23rd, 2016

    Improved support for arrays with static bounds
    CodePeer now performs more accurate analysis of arrays with static bounds and has improved display of dynamically indexed array elements of such arrays.

  • CodePeer
    May 4th, 2016

    Extended support for shift intrinsics
    Support for shift intrinsics on types other than 8, 16, 32, or 64 bits is now available in CodePeer. This can be useful for e.g. legacy Ada code running on 24-bit hardware with native 24-bit integer types.

  • CodePeer
    Apr 28th, 2016

    Further improved unchecked conversion analysis
    CodePeer now knows more about unchecked conversions involving fixed point types and enumeration types.

  • CodePeer
    Apr 27th, 2016

    Database performance improvement
    The database schema update code has been improved to introduce minimum startup delay for CodePeer tools when the schema is up to date.

  • CodePeer
    Apr 21st, 2016

    Better default for GPS message review dialog box
    When the "CodePeer message review" dialog box comes up in GPS, the default value for the "New status" field is no longer unconditionally "Unclassified", but is instead equal to the "Current status" field. In the case of a subsequent review of an already-classified message, this means that the default action is to preserve the current status of the message as opposed to setting the status back to "Unclassified".

  • CodePeer
    Apr 12th, 2016

    Exclude source directories from analysis
    A new project attribute Excluded_Source_Dirs in package CodePeer is available to easily exclude entire source directories from analysis.

  • CodePeer
    Apr 7th, 2016

    Creating baseline from previous runs
    It is now possible to set a previous run as the default baseline review by allowing the -baseline or -set-baseline-id switches in -output-only mode.

  • CodePeer
    Apr 7th, 2016

    Improved handling of baseline reviews
    A project now has a single baseline review, which will be used by default for all review comparisons. It can be set to the current review using the -baseline switch or set to a previous review using -set-baseline-id. Note that the default review can still be temporarily overwritten by using the -cutoff switch. Support of this switch was added to GPS.

  • CodePeer
    Mar 25th, 2016

    Improved unchecked conversion analysis
    CodePeer now knows about unchecked type conversions between signed and unsigned integer types if the target subtype has basetype bounds and the source type's size is no larger than that of the target type.

  • CodePeer
    Mar 23rd, 2016

    Improved support for System.Address as pointer
    CodePeer now supports 'null' as a valid value when dealing with System.Address, to support legacy Ada compilers where System.Address is declared as a pointer.

  • CodePeer
    Mar 17th, 2016

    Improved access check messages
    CodePeer now generates more accurate messages related to access check (null dereference) messages.

  • CodePeer
    Mar 7th, 2016

    Improved analysis of loops
    CodePeer will now, in some cases, unroll loops. This leads to generally more precise analysis and may also result in messages which refer to a specific iteration of loop as described in the CodePeer User's Guide's "Loop Unrolling" section.

  • CodePeer
    Feb 20th, 2016

    Improved reference to global variables in messages
    When referencing global variables from other packages in messages or annotations, CodePeer now prepend the name of the enclosing package to avoid ambiguities and clarify which variable is involved.

  • CodePeer
    Feb 1st, 2016

    GPS: Review multiple CodePeer messages at once
    It is now possible to select multiple CodePeer messages in the GPS locations view and review all these messages at once.

  • CodePeer
    Jan 5th, 2016

    Removal of floating point underflow detection
    CodePeer no longer generates messages related to potential floating point underflow when running at -level max. These messages generated too many false positives to be useful in practice. They are left temporarily available under the debug switch "-dbg on fpt_underflow" for compatibility.

  • CodePeer
    Dec 2nd, 2015

    New switch: -compiler-mode
    A new CodePeer switch -compiler-mode is provided to replace the use of codepeer-gprbuild -gnateC, allowing more flexiblity and in particular support for other CodePeer switches (on the command line or in the project file).

  • CodePeer
    Nov 18th, 2015

    Global inputs and outputs stored in the database
    Global inputs and outputs for every subprogram are now stored by CodePeer in the database as annotations, and displayed in the HTML, GPS, and GNATbench output as annotations in the source file.

  • CodePeer
    Oct 20th, 2015

    Improved precondition propagation
    CodePeer now allows more complex expressions to become preconditions, so performs a more precise global analysis.

  • CodePeer
    Sep 24th, 2015

    New partitioning algorithm
    CodePeer will now take into account the project file hierarchy (.gpr files) to create corresponding partitions when analyzing a large set of sources, grouping units in a more logical way.

  • CodePeer
    Sep 15th, 2015

    Improved handling of array comparisons
    CodePeer does a more precise comparison of strings and simple arrays, element by element if known. In the general case, the array comparison is now handled as a regular inlined operation rather than an unanalyzed call.

  • CodePeer
    Sep 7th, 2015

    Suppress more messages in messages min mode
    Suppress more messages that are likely false positives when -messages min is specified. The newly suppressed messages include messages that depend on a variable modified in a loop where CodePeer is not able to compute its precise range, and messages that depend on array index or dereference not precisely tracked by CodePeer.

  • CodePeer
    Sep 1st, 2015

    Improved support for machine code insertions
    Machine code insertions written for use with other compilers may contain constructs which the GNAT compiler would not normally accept (e.g., uses of the "Ref" attribute in ways that are inconsistent with GNAT's definition of that implementation-defined attribute). Formerly, this would be treated as a semantic error and CodePeer would be unable to analyze the unit. Such machine code insertions are accepted now, thereby allowing analysis of the containing unit.

  • CodePeer
    Aug 18th, 2015

    Simplified analysis of predefined units & children
    The -gnatg switch is no longer needed to analyze predefined units or new child units of System (and other root units predefined in Ada).

  • CodePeer
    Jun 17th, 2015

    Integration with Jenkins
    A Jenkins plug-in is now distributed with CodePeer. It provides a Build Step to configure a run of CodePeer as part of a Jenkins build.

  • CodePeer
    May 18th, 2015

    Improved performance computing possible value sets
    A more efficient method for computing the union of a large number of sets is used. The observed performance difference is substantial in some cases involving large array aggregates with floating point element values.

  • CodePeer
    May 2nd, 2015

    Tooltips for possible values of variables
    CodePeer generates information about possible values of variables and expressions during its analysis, which is now displayed in the GPS source editor as an information tooltip.

  • CodePeer
    May 1st, 2015

    Generation of backtraces on messages
    CodePeer now generates by default detailed information about places in the source code involved in a particular check-related message, making it easier to analyze such messages and identify possible errors in the source. This extra information is displayed by GPS in a new view.

  • CodePeer
    Apr 28th, 2015

    New switch -no-presumptions
    CodePeer supports a new switch -no-presumptions to suppress generation of presumptions on unanalyzed subprogram calls. Use of this switch will generally result in additional messages being reported in the vicinity of unanalyzed calls, since assumptions about the result of such calls are no longer made. This option is implied by -level 4.

   1  2  3     Next »