Development Log in categories CodePeer

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

  • CodePeer
    Feb 25th, 2015

    Increase capacity for variables and initialization
    We have increased the default CodePeer capacity for number of distinct variables (including components) that can be tracked in a given subprogram from 400 to 600, and tripled the default memory capacity allowed when analyzing library-unit elaboration code, as elaboration code often includes large aggregates used to initialize global objects. This change should enable successful analysis by CodePeer of larger Ada subprograms, and Ada packages with more complex global-variable initializations.

  • CodePeer
    Feb 23rd, 2015

    Use Red/Orange/Yellow in CodePeer HTML report
    The HTML report was using Red/Yellow/Green for High/Medium/Low ranking messages. This was inconsistent with the Red/Orange/Yellow color coding used in GPS. The HTML report now uses Red/Orange/Yellow consistently for High/Medium/Low. There was no other change to the HTML output.

  • CodePeer
    Feb 18th, 2015

    Distinguish imported values of a global variable
    When the value of a global variable is used to initialize a global constant, it is possible that the value might change between when the global constant "captures" the variable's value, and when the value is subsequently fetched elsewhere in the program. CodePeer will now indicate in preconditions, postconditions, and other messages that a value of a variable was captured as part of initializing a global constant by adding a suffix on the global variable's name indicating the elaboration procedure initializing the constant. For example, "Global_Var@my_package'Elab_Spec" represents the value of Global_Var that was read by the My_Package spec elaboration procedure as part of initializing some constant declared in My_Package.

  • CodePeer
    Feb 17th, 2015

    Allow illegal comment characters
    Ada does not allow nongraphic characters (such as 16#7F#, DEL) in comments, but now CodePeer ignores this error, since some compilers do not flag this error, and it does not affect the CodePeer analysis of the code itself.

  • CodePeer
    Nov 13th, 2014

    Faster analysis of logical expressions
    CodePeer has improved the time necessary to perform the analysis of complex expressions that combine a large number of logical operators.

  • CodePeer
    Nov 7th, 2014

    Comparison to baseline in different location
    It is now possible to compare the results of an analysis to a baseline of the same project established in a different location, as long as they share the same database.

  • CodePeer
    Oct 29th, 2014

    Suppressing analysis via Annotate pragmas
    By adding "pragma Annotate (CodePeer, Skip_Analysis);" at the start of the declaration list of a subprogram body or a package body, CodePeer's analysis of selected subprogram bodies can be suppressed. This is typically done in order to improve performance. For details, see CodePeer User's Guide section 2.4 ("Running CodePeer Faster").

  • CodePeer
    Sep 29th, 2014

    New switches -show-reviews and -show-reviews-only
    A new switch -show-reviews (relevant with using -output-msg) shows the messages which have been reviewed, with their review information. -show-reviews-only is introduced and replaces the previous -show-manual-reviews switch.

  • CodePeer
    Sep 22nd, 2014

    Ability to exclude source files from analysis
    A new project attribute Excluded_Source_Files in package CodePeer is available to easily exclude source files from analysis.

   1  2  3     Next »