Understand Build 1029

(Build b1029) – 2 Jul 2020

INTERACTIVE GRAPHS
Control Flow Graph fix for flow when Passive option is turned off
STRICT PARSER
Fix worker process crash on code with deeply nested brackets on Windows

Understand Build 1028

(Build b1028) – 24 Jun 2020

GENERAL
Update fastgrep sample project to analyze without errors on strict parser
INSTALLER
Have the Windows installer prompt to close Understand if it is running.

Understand Build 1027

(Build b1027) – 29 May 2020

GENERAL
Fix possible crash on tab drag with the explorer open.

JAVA PARSER
Fixed bug where overrides relation was sometimes not created when method parameter types were unknown.

Understand Build 1025

(Build b1025) – 15 May 2020

  BASIC

  •     For Visual Basic, fixed syntax error on line-termintation before and after keyword ‘IN’ in foreach and query statements. Fixed syntax error on if-expression followed by a member access. Fixed syntax error on lamba expressions used in a parameter context. Fixed syntax error on some uses of the nullable type indicator ‘?’.
  •     For Visual Basic, fixed parser crash and an invalid syntax error.

  PASCAL PARSER

  •     For Pascal/Delphi, fixed bug where a namespace name on a ‘program’ declaration caused a syntax error. Also, added support for Delphi 10.3 inline var declarations.

  PERL

  •     Removed unneeded import from _delta.pl that was causing the script to crash

  JAVA PARSER

  •     For Java, fixed bug where some overrides of generic methods were not linked with ‘overrides’ relations.

  CODECHECK

  •     Fixed bug in MISRA 2004 Rule 5.4, MISRA 2012 Rule 5.7, and All Checks script tagsUnique.upl that caused constructors and destructors to be flagged as non-unique identifiers.
  •     Fixed bug in MISRA 2008 Rule 3-1-2, MISRA 2004 Rule 8.6, and All Checks script functionDeclaredFileScope.upl that caused false positives with function parameters.

Understand Build 1024

(Build b1024) – 23 Apr 2020

CODECHECK

  • Fixed Script Error in fixedValuesConstants.upl.
  • Added option to allow bitshift operations in magic numbers Codecheck.

COMMANDLINE

  • Und enable -exclude flag for cmake files.

WEB PARSER

  • For Web Javascript/PHP removed SumStmt metrics.
  • Changed CountStmt metrics to include statements from nested functions, with the exception of nested anonymous (lambda) functions.

Understand Build 1023

(Build b1023) – 10 Apr 2020

CODECHECK

  • Codecheck checks for discarded return values should not consider uses in inactive code.
  • Fixed bug in the C/C++ magic numbers check where const was being flagged.

Understand Build 1022

(Build b1022) – 6 Apr 2020

CODECHECK

  • Added metric Codechecks for CountClassCoupled, CountPackageCoupled and MaxInheritanceTree.
  • Added percentLackOfCohesion to Codecheck metrics.

STRICT PARSER

  • Added support for variadic macros to be set from the und command line.

Understand Build 1021

(Build b1021) – 2 Apr 2020

CODECHECK

  • Updated unusedLocal.upl to use a different error message when parameters are flagged.
  • Add "-ignoredonlyresults" switch to und codecheck to save only ignored (false positives) to results.
  • Fixed a bug in MISRA 2012 rule 13.3, MISRA 2008 rule 5-2-10, MISRA 2004 rule 12.13 and All Checks script IncrementDecrimentStandalone.upl where arrays weren't correctly handled.
  • Fixed a bug in MISRA 2004 rule 17.5 and All Check script noMoreThanTwoLevelsOfIndirection.upl that would cause false positives on range based loops.
  • Added "-exportignoredall" switch to und codecheck to allow exporting ignores including those in comments. Codecheck will also run since commented ignores are found during the analysis, not stored.

STRICT PARSER

  • Add missing control flow information for lambda functions.
  • Add improved support for the Apple blocks extension.

Understand Build 1020

(Build b1020) – 24 Mar 2020

GENERAL

  • Fix metric definition not showing on Linux (again).
  • Fix potential crash during project creation.

REPORTS

  • Fixed bug where the Unused Program Unit and Unused Objects and Functions reports for multi language projects that included C++ did not contain entities from non-C++ files.
  • Fixed bug in Unused Program Unit report where Ada subroutines instantiated from generic packages were listed as unused if they were only referenced using the ‘Access’ attribute.

Understand Build 1019

(Build b1019) – 13 Mar 2020

CODECHECK

  • Update MISRA 2012 rule 21.6 to correctly handle circular inclusions.

COMPILERS

  • Fixed fuzzy parser handling of interrupt functions for IAR AVR compiler.
  • Add support for IAR AVR compiler to strict parser.

ECLIPSE PLUGIN

  • Update Eclipse plugin to version 1.1.6

GENERAL

  • Fix Metrics Definition page not showing on Mac.
  • Fix failure to recognize some cl.exe invocations with escaped backslashes.

REPORTS

  • Fixed bug where the Ada ‘Uses Not Needed’ and ‘Withs Not Needed’ reports were always empty.
  • Fixed bug where the Ada ‘Exception Cross Reference’ report did not include referenced exceptions from the standard library.

UND

  • Show system include paths when listing include settings.

VISUAL BASIC

  • Fixed some invalid missing type warnings for types defined in dll files.
  • Fixed several issues with valid code resulting in missing type messages.

Understand Build 1018

(Build b1018) – 2 Mar 2020

ADA PARSER

  • An empty control flow graph is no longer created for packages without initalization code. Essential complexity and path counts for these packages are now 0 instead of 1.
  • Changed cyclomatic complexity of instantiated generic subprograms from 1 to 0. 'If', 'For loop', and 'Case' expressions now add to complexity metrics.

ASSEMBLY PARSER

  • For Coldfire 68K assembly, fixed bug where some valid 'include' commands caused unable to open file warnings.

CODECHECK

  • Fix bug in MISRA 2012 rule 20.2 where certain header file names weren't being recognized.

COMMANDLINE

  • Added support to und add command for -exclude for visual studios projects.

ECLIPSE

  • Increment Eclipse plugin to 1.1.5 – the eclipse plugin installer should work again.

GRAPHS

  • Enable UML sequence diagram for more Python entities

PASCAL PARSER

  • Fixed bug where the complexity for case statements without an otherwise branch was one more than it should have been.
  • Fixed bug where try-finally statements were shown incorrectly on control flow graphs.

PYTHON PARSER

  • Fixed bug where the 'if-else' ternary operator was not counted toward cyclomatic complexity.
  • Fixed bug where 'and' and 'or' operators were not counted in strict complexity.

WEB PARSER

  • For Web/Javascript, fixed bug where some nested template literals caused syntax errors.
  • For Web/Php, fixed bug where complexity was incorrect for some switch statements.
  • For Web/Php, fixed bug where control flow graphs were incorrect for some switch statements (this could also result in incorrect values for path counts and essential complexity).
  • For Web/Php, fixed bug where 'and' and 'or' operators were not identified as 'short circuit operators' and so were not counted in strict complexity.

Understand Build 1017

(Build b1017) – 15 Feb 2020

GRAPHS

  • Fix issue in Control Flow Graph with styled labels that occured when mixing tabs and spaces in internal white space.
  • Add a passive option to the control flow graph to control the display of passive nodes. Passive is on by default.
  • For the control flow graph, add "Decision only" value to the "Show Source Code" option.

IREPORT

  • Allow a filename instead of a file entity for the upl api sync method on graphviz nodes and edges.

JOVIAL

  • Added average essential complexity and average strict complexity metrics for files. Added statement count and complexity metrics for main program units.
  • Fixed bug where no control flow graph was available for subroutines included from another file.

PROJECT

  • Added search functionality to the analysis log window.

STRICT PARSER

  • Fix warning message with c++ strict analyzer error count appearing twice when analysis is aborted.

Understand Build 1016

(Build b1016) – 7 Feb 2020

COMMANDLINE

  • Fixed bug in und where setting multiple settings to the same value in one command was not working.
  • Changed und so that on a crash it outputs a message to stderr instead of launching the gui asking users to email the file.

GENERAL

  • Fix where changing the project Java version did not cause a reparse.

WEB PARSER

  • For Web Php, fixed bug where statement counts for 'trait' and 'interface' entities were sometimes incorrect.
  • For Web Javascript, made change to increment both CountStmtExe and CountStmtDecl for statements that are both declarative and executable (declarations that have invocations in the intialization expression). CountStmt is no longer the sum of CountStmtExe and CountStmtDecl. It is now counted separately to avoid double counting statements that are both declarative and executable.

Understand Build 1015

(Build b1015) – 1 Feb 2020

GRAPHS

  • In the Control Flow Graph, allow comments to be shown even when source code is not shown.

WEB PARSER

  • Added new SumStmt metrics that provide statement counts that do include nested functions.
  • Fix mismatch headers in metric definition documentation
  • Changed CountStmt metrics to be consistent with c++ values in that statement counts from nested functions are not included in the count for the enclosing context.
  • Fixed bug where metrics were not being generated for some Typescript entities.

Understand Build 1014

(Build b1014) – 27 Jan 2020

METRICS

  • Rewrite metric definitions page with improved descriptions and layout.

NEW PROJECT WIZARD

  • Enable build watching on Windows and Linux machines when creating a new project to improve the overall project analysis.

Understand Build 1013

(Build b1013) – 17 Jan 2020

GENERAL

  • Remove Strict and Fuzzy option from New Project Wizard and always default to use the Strict Parser.
  • Remove debug option from toolbar menu.

Understand Build 1012

(Build b1012) – 10 Jan 2020

CLUSTER GRAPHS

  • Moved interactive graph options (such as hide node, expand node, etc) out of the toolbar and into a sidebar for improved visibility. Added a configure option to the toolbar that opens the Graph options in settings.

COMMANDLINE

  • Removed automatic partial analysis that occurs after removing a file and/or directory using und remove.

FORTRAN PARSER

  • For Fortran metrics, fixed bug where select case statements with no 'default' had a complexity value of 1 less than the correct value. Changed the complexity of arithmetic if statements and computed gotos to not count multiple branches to the same statement (where the same label is specified more than once in the statement). Added included executable code to the control flow graph, and added paths through included executable code to the path count for the including subroutine.

PYTHON API

  • Update Python API test script to check LD_LIBRARY_PATH is set on Linux machines.

WEB PARSER

  • For Web Php, fixed bug where the use of a php directive (strict_types, ticks, encoding) could cause a set relation to the wrong entity.

Understand Build 1011

(Build b1011) – 3 Jan 2020

BASIC PARSER

  • For Basic metrics, fixed bug where ORELSE and ANDALSO were not adding to the strict complexity. Fixed bug where the conditional IF expression was not adding to complexity.

PASCAL PARSER

  • Removed duplicate missing unit messages.

PYTHON PARSER

  • Fixed bug where some uses of namespaced packages resulted in unknown entities.

WEB PARSER

  • For web/html, fixed bug where some href links using relative file names did not locate the named file or fragment.

Understand Build 1010

(Build b1010) – 13 Dec 2019

CODECHECK

  • Fixed a bug in MISRA 2012 rule 13.3, MISRA 2008 rule 5-2-12, MISRA 2004 rule 12.13, and All check script IncrementDecrimentStandalone.upl where an increment or decrement operator performed on a member variable wasn't handled correctly.

STRICT PARSER

  • Fix failure to apply compiler transformations to files with Windows style line endings (CRLF).

WEB PARSER

  • For Web Php, fixed bug where protected and private class constants were classified as public.
  • For Web Php, added a collection of class metrics providing counts of base and derived classes, and counts of declared methods and variables.
  • For Web Javascipt and Typescript, added class metrics providing counts of declared methods and variables. For Reports, added Class Metrics and Class OO Metrics reports for Javascript and Php.

Understand Build 1009

(Build b1009) – 6 Dec 2019

EDITOR

  • Fix scope list issues caused by scopes that begin and end at the same position (e.g. because they're expanded from a macro).

JAVAAPI

  • Add 'contents' method to the 'Entity' class.

LICENSING

  • Add Und error codes to Und licensing failure.

STRICT PARSER

  • Add missing references to nested name specifiers in constructor base class initializers.
  • Remove invalid system macro defines when using a compiler config file.

Understand Build 1008

(Build b1008) – 16 Nov 2019

REPORTS

  • Add tree view to the HTML report Index.

STRICT PARSER

  • Add support for Diab compiler in strict c++ analyzer.

WEB PARSER

  • For Javascript, removed 'type' text for properties since multiple property definitions may be combined into one database entity.
  • For Web/Javascript, added option to control whether or not imported files are added to the project.

Understand Build 1007

(Build b1007) – 8 Nov 2019

C SHARP

  • Added support for class forwarding in dll files.

STRICT PARSER

  • Look through implicit copy constructor calls for argument to parameter assign refs.

Understand Build 1005

(Build b1005) – 28 Oct 2019

C# PARSER

  • Fixed a parser hang on some invalid syntax.
  • Fixed bug where c# extern methods appeared with 'define' references instead of 'declare' references.

CODECHECK

  • Fix bug in HIS rule 11 where the script would crash if the lexer failed to initialize.
  • Fix bug in unreachableCode.upl that prevented the script from running on VHDL code.

GRAPHS

  • Attempt to preserve the source order of calls expanded from macros in the UML Sequence Diagram.

PYTHON PARSER

  • Fixed parser crash on some invalid syntax.

STRICT PARSER

  • Report all errors instead of the first 20 per translation unit.

Understand Build 1004

(Build b1004) – 14 Oct 2019

C# PARSER

  • Fixed parser hang on some syntax errors.

GENERAL

  • Add option to launch Understand after finishing installation on Windows.

JAVA PARSER

  • Fixed parser hang on some syntax errors.

Understand Build 1003

(Build b1003) – 4 Oct 2019

LICENSING

  • Fixed an issue with node lock license not properly handling dashes

WEB PARSER

  • Fixed some issues with destructuring assignments in Javascript.

Understand Build 1002

(Build b1002) – 28 Sep 2019

GENERAL

  • Updated the New Project Wizard to improve the scan time for project files.
  • Stop the Windows Play Store from opening if Python is not installed when opening the Project Configuration dialog.

STRICT PARSER

  • Changed cyclomatic complexity count to include catch statements to be consistent with fuzzy parser.

WEB PARSER

  • Fixed some invalid Javascript syntax errors.

Understand Build 1001

(Build b1001) – 20 Sep 2019

CODECHECK

  • Fixed an issue with exporting CodeCheck results to HTML.

REPORTS

  • Updated the HTML Report Index page to pay attention to the "Group File Reports by Directory Structure" setting in the project config and group by directory when selected (otherwise it will be a flat list as it is currently).

WEB PARSER

  • Fixed invalid syntax errors parsing some html comments in javascript, catch parameters using object binding patterns, and 'for await' statements.
  • Fixed several invalid Javascript syntax errors. Fixed bug where predefined objects were not recognized in 'new' expressions.

Understand Build 1000

(Build b1000) – 7 Sep 2019

JAVAAPI

  • Add lexer/lexeme support.

STRICT PARSER

  • Fix several extension compiler issues.

Understand Build 999

(Build b999) – 30 Aug 2019

COMPILERS

  • Add support for Renesas RL78 compiler extension for bit access syntax.

JAVA PARSER

  • Fixed crash on some invalid syntax.

PASCAL PARSER

  • Fixed crash parsing some sql statements.

REPORTS

  • Fixed an issue where the html report index page was not being generated correctly.
  • Fixed an errant HtmlExporter crash.

UND COMMANDLINE

  • Added Visual Studio and CMake one time import option to Und. "-onetime"

Understand Build 998

(Build b998) – 23 Aug 2019

CODECHECK

  • Updated the CodeCheck html export to include the Ignored and Notes column.

FUZZY PARSER

  • Improve handling of files with very large initialization blocks.

GENERAL

  • Fixed an issue found in searching for Missing Includes in the Project Config.

PASCAL PARSER

  • Fixed syntax error on TryAsType calls.
  • Fixed bug where Delphi preprocessor 'if' statements extending over more than one line were not evaluated correctly.

REPORTS

  • The Group File Reports by Directory option groups the files in the File Contents report and the Include File Cross Reference report by Directories. The File Metrics and the File Average Metrics reports have been updated to respect the Display Full Filenames in the Report – Advanced Options.

STRICT PARSER

  • Fix inactive range regression to not include the final #endif/#else.

Understand Build 997

(Build b997) – 15 Aug 2019

GENERAL

  • Work around occasional Windows Store popups.

Understand Build 996

(Build b996) – 9 Aug 2019

C# PARSER

  • Added a 'use attribute' reference kind to link classes, methods, and other entities to the attribute classes appearing in the declarations. These references used to be plain 'use' references and linked the containing context instead of the entity the attribute was applied to. Moving the reference to the correct context does in some cases change the 'couple' metric for classes with attributes.
  • Fixed an issue where C# was not showing the parameters on the IB methods correctly.
  • Fixed an issue where C# was not showing the parameters in the UML Class Diagram correctly.
  • Moved all references in attribute tags to the declaration they are associated with instead of the enclosing context.

GENERAL

  • Updated Und to allow for .vbproj file to be added to an Understand project.

PASCAL PARSER

  • Removed "Pascal Predefined Variables" from the IB.

PROJECT

  • Updated CMake excludes to allow for a better user interaction while adding/editing/removing excludes for filenames as well as directories.

Understand Build 995

(Build b995) – 27 Jul 2019

PYTHON API

  • Add kind comparison and hash functions

SETTINGS

  • Updated the Visual Studio excludes to allow for better user interaction while adding/editing/removing excludes. Fixed the Editor Companion Popup to allow space for potential scrollbars.

Understand Build 994

(Build b994) – 24 Jul 2019

C#

  • Fixed bug where curly braces used inside interplolated strings caused syntax errors.
  • Fixed syntax errors in some cases of nested interpolated strings.

C++ (STRICT)

  • Write ‘Begin’ reference at the start of the ‘template’ keyword for templated decls
  • Fix regression in the reference kind of arguments to C++ operator overloads
  • Avoid resolving anonymous namespaces together

FORTRAN

  • Possible fix for crash generating fortran extensions list report
  • Fixed bug where custom truncate column was not correctly applied in parsing.

INSTANT SEARCH

  • Fix possible crash after resolve

GENERAL

  • Fixed an issue with the Window Selector not allowing the first click to select a window.

Understand Build 993

(Build b993) – 5 Jul 2019

REPORTS

  • Fixed an issue where Und Reports were not being created in the correct location.
  • JAVA_API

  • Add `Entity.comments` method to get comments associated with an entity.
  • Understand Build 992

    (Build b992) – 28 Jun 2019

    GENERAL

  • Fixed an issue where View->Project Browser and View->Entity Filter were not becoming active if already showing but in an inactive tab.
  • Fixed an issue where the reports created by Und and Understand were not synced.
  • Fixed an issue with generating a report from the command line.
  • STRICT PARSER

  • Add preliminary support for MPLAB C18 compiler in strict analyzer.
  • ARCHITECTURES

  • Fix possible crash on architecture delete.
  • Understand Build 991

    (Build b991) – 21 Jun 2019

    LICENSING

    • Fixed an issue where traveling across timezones sometimes reports a bad offline license.

    PASCAL PARSER

    • For Pascal/Delphi, fixed bug where ‘result: unsafe’ compiler attribute caused a syntax error.

    STRICT PARSER

    • Fix failure to record macro expansion text
    • Avoid setting MSVC version by default so that it can be set by the environment

    Understand Build 990

    (Build b990) – 7 Jun 2019

    CODECHECK

    • Removed Beta Clang checks from CodeCheck. Let us know if your team was relying on them and we can work with you to address the change.

    EDITOR

    • Undo replace all and save actions as a single operation

    FORTRAN PARSER

    • Made change to allow dec 'type' statement for 'print' in Fortran 90+ code.

    STRICT PARSER

    • Qualify 'typed' references to template arguments with 'templateargument'

    Understand Build 989

    (Build b989) – 30 May 2019

    ARCHITECTURES

    • Fix possible crash on architecture delete.

    CODECHECK

    • Fix failure to visit source by double-clicking on some violations.

    COMPARE

    • Fix regression in hiding the resolve progress indicator after opening a comparison database.

    EDITOR

    • Fix occasional stuck drag operation on macOS.

    FORTRAN

    • Fix import of filenames from Fortran Visual Studio projects.

    GENERAL

    • Added search capablilties to the Project Configuration options menu.
    • Added search capabililities to the Understand Settings menu.
    • Added a more robust New Project Wizard.

    GRAPHS

    • Added Funciton Pointer call support on UML Sequence Diagram.

    IREPORT

    • API info metric definitions added on text hover.

    JAVA PARSER

    • Added a new CountClassCoupledModified metric for C#, Basic, Python, Pascal, and Java. This is the CountClassCoupled metric modified to exclude couples to standard library classes.

    KEYBINDINGS

    • Fixed keybinding issue where the primary and alternate sequences were dissapearing after switching to Visual Studio.net or Emacs in Japanese.

    PROJECT

    • Avoid converting mapped network drive paths to UNC paths on Windows.

    STRICT PARSER

    • Add missing references to template template parameters.
    • Fix worker process crash on some files when the encoding option is set to a non-default value
    • Give template template parameters their own kind.

    Understand Build 988

    (Build b988) – 7 May 2019

    C# PARSER

    • Fixed several issues that lead to syntax errors on valid c# code.
    • Added recognition of some additional Unicode space characters.

    LICENSING

    • Fixed a node lock issue where not all user accounts were working correctly.

    MACOS

    • Fixed performance regression on MacOS.

    METRICS

    • Changed new PercentLackOfCohesionModified metric available for Basic, C#, Java, and Pascal to count all routines within a class that directly or indirectly call an accessor routine for a variable as accessing the variable. Previously, only routines that directly called the accessor method were included.

    Understand Build 987

    (Build b987) – 26 Apr 2019

    METRICS

    • For C#, Visual Basic, Pascal, and Java metrics, added a new PercentLackOfCohesionModified metric that does not penalize the use of accessor functions/methods within a class to set/read variables. The purpose of the metric is to give a lower value than the regular PercentLackOfCohesion metric when accessor methods are used inside of a class to access variables defined in that class.
    • For Java metrics, removed PercentLackOfCohesion metric for enum types. Changed PercentLackOfCohension metrics to exclude constants (static final variables) from the variable count.

    Understand Build 986

    (Build b986) – 20 Apr 2019

    API

    • Add comparison_db method to Java API.

    C# PARSER

    • Fixed invalid syntax errors parsing some interpolated strings and some typeof expressions.

    GENERAL

    • Fixed errant support message on Getting Started page.

    WEB PARSER

    • For Web/Javascript, fixed syntax errors on some uses of 'final' as a variable name.
    • For Web/Javascript, fixed some problems with 'import' statements and expressions.
    • For Web/Javascript, fixed syntax error on some uses of tag function calls using a string template as the parameter.

    Understand Build 985

    (Build b985) – 13 Apr 2019

    FORTRAN PARSER

    • Fixed bug where some forward references of subroutines resulted in 'unresolved' entities.
    • Fixed error where some 'external' routine declarations created unresolved subroutines.
    • Fixed error where local names for use-only items were sometimes identifed as unresolved functions.

    GENERAL

    • Fix occasional QMutex threading error when exiting und

    Understand Build 984

    (Build b984) – 5 Apr 2019

    C# PARSER

    • Fixed parser hang on some self-referential generic type instantiations.
    • Fixed several bugs where valid code produced syntax errors.

    GRAPHS

    • Fixed an issue where Graphs were not displaying the option to export to .Dot files on Mac and Linux for appropriate graph types.

    Understand Build 983

    (Build b983) – 29 Mar 2019

    C# PARSER

    • Fixed several syntax issues.
    • Fixed bug where array initialization on a stackalloc caused a syntax error.

    CODECHECK

    • Add Basic language support to metrics checks.

    EDITOR

    • Add key binding to toggle read-only mode.

    IREPORT

    • Fix spurious comparison view on double-click.

    Understand Build 982

    (Build b982) – 26 Mar 2019

    BASIC PARSER

    • Added support for VS 2017 tuples and for unnamed parameters after named parameter association in a call.
    • Made changes to support VS 2017 tuple types, binary literals, and to allow underscores in numeric literals.

    CODECHECK

    • Add templates for user created templates.

    GRAPHS

    • Update butterfly graph to correctly handle Ada packages.

    SEARCH

    • Fix failure to index some changed files in the instant search.

    STRICT PARSER

    • Strict analyzer upgraded to use Clang 8.0.0.
    • Fix worker process crash on some files when an extension compiler is chosen.
    • Revert to using built-in includes when targeting MSVC.

    UND

    • Fix build log import of quoted include path flags.

    Understand Build 981

    (Build b981) – 15 Mar 2019

    BUILDSPY

    • Fix Buildspy RPATH so LD_LIBRARY_PATH does not need to be explicitly set.

    COMMANDLINE

    • Add Und support for Green Hills Ada macro definition file format for importing ada project macros.

    COMPARE

    • Fix failure to edit files containing entities that are being compared.

    IREPORT

    • Add comparison link function.

    PYTHON PARSER

    • Added 'containin' links between modules and Python 3 namespace style packages.
    • Made change to recognize packages without the presence of __init__.py files as supported by Python 3.3 and subsequent versions.

    STRICT PARSER

    • Add missing references to types referenced in pointer-to-member-function types.
    • Add missing references to template template arguments.

    VISUALSTUDIO

    • Fix crash importing MSVC project.

    Understand Build 980

    (Build b980) – 10 Mar 2019

  • STRICT_PARSER: Fix regression in recording references inside of lambda functions.
  • Understand Build 979

    (Build b979) – 8 Mar 2019

    PASCAL PARSER

    • Allow dotted names as library names.
    • Fixed several parser regressions introduced in recent releases.
    • Fixed bug where extending a same named class with a different number of generic formal parameters resulted in a circular dependency error.

    Understand Build 978

    (Build b978) – 5 Mar 2019

    ADA PARSER

    • Fixed bug where Green Hills multi-line preprocessor #if commands with 'and then' did not work correctly.

    API

    • fixed udbComment(), udbDbName() and udbEntityLibrary(), which all returned the same (first) value for every subsequent call.

    EDITOR

    • Fix text drawing issues on displays with non-integral scaling factors.

    GENERAL

    • Fix regression in importing some compile_commands.json files.
    • Fix failure to open projects on network drives on Windows.

    INSTALLER

    • Release Command Line Only install kit.

    STRICT PARSER

    • Avoid creating invalid ‘<anonymous>’ functions.

    WEB PARSER

    • For Web/Javascript, fixed bug where relative imports of jsx files sometimes failed.
    • For Web/Javascript, fixed bug where an import from an unknown file, where the imported item is renamed in the local file, could cause invalid references.

    Understand Build 977

    (Build b977) – 23 Feb 2019

    ADA PARSER

    • Added support for multi-line Green Hills preprocessor commands.

    API

    • Fix lookup of InitValue freetext.
    • Remove unused literals from c api UdbStatus type.

    ECLIPSE

    • Update Eclipse Plugin Version.

    GRAPHS

    • Modified the Object Reference (+ ObjRef Compare) graphs to cover all possible entity colors in legend.
    • Updated ObjRef Compare graph to support modified entities.

    PARSER

    • Fix crash moving a db between Windows and linux.

    SEARCH

    • Fixed missing Entity Filters in web languages.

    Understand Build 976

    (Build b976) – 15 Feb 2019

    ANALYZE

    • Fix failure to cancel analysis after the cancel confirmation dialog has been supressed.

    C# PARSER

    • Fixed bug where tuple deconstuction in a foreach statement caused a syntax error.

    GRAPHS

    • Cluster control flow graph now supported with TypeScript language.

    WEB PARSER

    • For Web/Typescript, added support for new Typescript features up through version 3.3.

    Understand Build 975

    (Build b975) – 13 Feb 2019

    STRICT PARSER

    • Add option to start worker processes serially instead of in parallel.

    Understand 5.1 Release

    Understand™ version 5.1 is officially available with Build 974. This release includes all updates since February 2018 and most recently includes “under the hood” improvements that will allow our team to bring you improved performance, responsiveness, and new features. You will also find that we updated the look of Understand with fresh icons and dark mode support on Mac.

    New Additions Since 5.0

    Behind the Scenes

    • Added support for MSVC 2017 C# projects
    • Windows installer significantly faster if .NET framework is already installed
    • Updated the Perl version that is included with Understand to 5.28.0
    • Updated the UI framework to Qt 5.12
      • No longer supports 32 bit Linux
      • No longer supports RedHat 6
    • Additional Language Support
      • Java 10
      • C# 7.2
      • FORTRAN 2008
      • Visual Basic .NET 2015
      • Typescript

    Do More with Understand

    If you are new to Understand, sign up for our free one hour webinar to see how Understand can help you.

    If you are familiar with Understand and you are interested in taking your Understand skills to the next level, Be sure to sign up for the free advanced training seminars that our sales partner Emenda has coming up:

    Looking Forward

    Our team is currently hard at work on several projects inside of Understand that we are very excited about. As new builds are released over the coming months you will see further improvements to the interface, as well as updates to graphs, Annotations, Compare Graphs, and CodeCheck.

    Understand Build 973

    (Build b973) – 14 Dec 2018

    PASCAL PARSER

    • Made changes to fix some problems with overload resolution.
    • Made changes to better handle calls to overloaded functions and procedures.

    PROJECT

    • Fixed an issue with Und not adding directories in NamedRoots mode correctly.

    Understand Build 972

    (Build b972) – 30 Nov 2018

    ASSEMBLY PARSER

    • For Coldfire 68K Assembly, added support for CodeCheck UndCC comments.

    COMMANDLINE

    • Remove extra warnings when creating an offline request code in Und.

    GENERAL

    • Add support for non-standard double UTF-8 BOM headers.

    STRICT PARSER

    • Look through pointer and reference to function pointer types when recording 'call ptr' references.

    Understand Build 971

    (Build b971) – 23 Nov 2018

    COMMANDLINE

    • Fixed an issue with adding files in Und.

    GENERAL

    • Widened the default panel size for the project configuration dialog so that it can't be unreadable due to size constraints.
    • Fixed areas that open in the bottom drawer to always open in a new tab.

    Understand Build 970

    (Build b970) – 16 Nov 2018

    CODECHECK

    • Update fixedValuesConstants.upl to include an option to ignore indexes as magic numbers.

    GENERAL

    • Added Project Name to the metric summary table.

    GRAPHS

    • Update to the Visio xml export text positioning.

    METRICS

    • Fixed issue with MaxEssential for directories being summed instead of displaying the max.
    • For Web Javascript and Php, added CountStmt metric.

    PASCAL PARSER

    • Fixed bug where in some cases units from the standard library files that were used by project files were not getting parsed.
    • Fixed bug where type text for implicit 'Result' variables was not correct.

    Understand Build 969

    (Build b969) – 9 Nov 2018

    ADA PARSER

    • Fixed bug where a custom ada standard library path was overwritten by the default value.
    • Fixed crash when parsing very large ada files while saving comments.

    C# PARSER

    • Fixed crash in parsing of some code with syntax errors.
    • Fixed syntax error on tuples used as type arguments.

    GENERAL

    • Fixed issue with report generated date display on some systems.

    Understand Build 968

    (Build b968) – 5 Nov 2018

    ADA PARSER

    • Made changes to allow gnat Ada unicode character encoding.

    GENERAL

    • Fix crash introduced in build 967 when creating new project.

    Understand Build 967

    (Build b967) – 2 Nov 2018

    ADA PARSER

    • Fixed some syntax errors parsing the GNAT standard library files.
    • Added support for raise expressions.

    SEARCH

    • Fixed an issue in Find in Files where only project files were being searched for a directory search.

    VISUALSTUDIO

    • Fixed problem parsing Visual Studio project files that contain xml CDATA content.

    Understand Build 966

    (Build b966) – 26 Oct 2018

    GENERAL

    • Updated the ability for the user to specify the portability mode for include paths.

    PYTHON PARSER

    • Added CountClassCoupled metric.

    Understand Build 965

    (Build b965) – 24 Oct 2018

    PASCAL PARSER

    • Fixed problem where unused type report did not include some unused classes.
    • Fixed error where context on 'initialization' and 'finalization' routines were sometimes incorrect.

    Understand Build 964

    (Build b964) – 12 Oct 2018

    C# PARSER

    • Fixed bug where references to internal constructors were left as 'unresolved' entities.

    GENERAL

    • Updated the Dependency Browser and graph Pascal/Delphi removing Predeclared Type entities (Boolean, string, and Char) from being dependencies.
    • Fixed an issue with moving architectures from Windows to Unix.

    PASCAL PARSER

    • Made change to remove intialization and finalization routines from the unused program unit report.
    • Made changes to track function pointer assignments through properties.

    SEARCH

    • Fixed highlight range and garbled text when highlighting multibyte characters in find-in-files results.

    Understand Build 963

    (Build b963) – 5 Oct 2018

    C# PARSER

    • Fixed a syntax error with nested string interpolation.

    CODECHECK

    • Added proper datamember declaration codecheck.

    LICENSING

    • Added automatic retry on appropriate licensing dialogs and updated various licensing dialog text.

    PASCAL PARSER

    • Changed 'Assign Ptr' references to 'Call Ptr' to be consistent with usage in c++ projects.
    • Added 'call ptr' relation.
    • Created 'call deref' references for calls made through parameters. Made 'call ptr' relations from variables which are defined as property values.

    STRICT PARSER

    • Fixed regression in creating function pointer 'call ptr' references to some entities.

    Understand Build 962

    (Build b962) – 28 Sep 2018

    COMPARE

    • Fix hang when comparing entities and moving cursor quickly.

    GRAPHS

    • Fixed duplicate comments in Visual Basic control flow graph.
    • Fixed an issue with adding a graphic filter on a calls chart.
    • Fix Internal Dependencies showing wrong number.

    LICENSING

    • Added the -deregisterlicensecode command for und and understand command line.

    PASCAL PARSER

    • For Pascal/Delphi, made a 'deref call' relation where a function/procedure pointer is used to call a routine. Made a 'use ptr' relation where a function or procedure address is stored in a variable.
    • For Pascal/Delphi, added Assign Ptr references to track function/procedure pointer assignments.

    PERL SCRIPT

    • Updated the Ada, C, Java and Fortran dead code detection script to correctly handle Fortran rename module.

    STRICT PARSER

    • Fixed worker process crash on Windows when the encoding is not set to UTF-8.

    Understand Build 961

    (Build b961) – 21 Sep 2018

    GRAPHS

    • Cluster Control Flow graph update to allow the visio export to correctly reflect the user expansions done in the gui.

    PASCAL PARSER

    • Fixed bug where include directives with string literal file names did not work. Also, fixed bug where for loop variables were reported as unused if they were only used in the loop control.

    PROJECT

    • Fixed crash on CMake compile_command.json import.

    REPORTS

    • Added function to add project name to pages in report.
    • Updated the generated html reports with new look.

    STRICT PARSER

    • Fixed failure to record assignment and function pointer calls through C++ constructor call expressions.

    VISUAL BASIC

    • Fixed several invalid parser syntax errors.

    Understand Build 960

    (Build b960) – 14 Sep 2018

    GENERAL

    • Changed support for Green Hills Ada macro imports to allow lowercase 'define' keywords.
    • Updated the new project wizard to allow visual basic projects to enable the Visual Studio import page.

    PASCAL PARSER

    • Fixed a parser crash and some instances where name lookup was incorrect.
    • Fixed bug where macros were not used for standard library files.

    REPORTS

    • Fix errors in Declaration Tree report and Exceptions report, introduced in build 921.

    STRICT PARSER

    • Added 'assign' reference kind for tracking variable flow across assignment.

    VISUAL STUDIO

    • Add initial support for VB 2017 project files.

    Understand Build 959

    (Build b959) – 7 Sep 2018

    PASCAL PARSER

    • Made changes to handle '.fmx' form files.
    • Fixed bug where some references in .dfm files were not being picked up.

    REPORTS

    • Made change to remove Delphi/Pascal predefined 'result' variables from the Unused Object Report.

    Understand Build 958

    (Build b958) – 3 Sep 2018

    CODECHECK

    • Fix issue with new codechecks on case sensititve platforms.

    Understand Build 957

    (Build b957) – 31 Aug 2018

    CODECHECK

    • Added CodeCheck Baseline igores functionality to Understand and Und.
    • Added 3 Misra CodeChecks to be used for testing statements for improper use of '++' and '–' operators.

    FORTRAN PARSER

    • Made changes to support .true., .false., and Fortran operators .LT., .GT., etc in preprocessing.

    GENERAL

    • Add support for Green Hills Ada macro definition file format for importing ada project macros.

    PASCAL PARSER

    • Made changes to improve results of the Unused Program Report for Delphi.
    • Added option to parse implementation parts of Delphi standard library files.

    SEARCH

    • Change pascal 'Root Calledby' filter to include ents that call only std-library functions.

    Understand Build 956

    (Build b956) – 24 Aug 2018

    ADA PARSER

    • Made changes to support Green Hills Ada preprocessor.

    INFOBROWSER

    • Fix crash in IB Call tree for Delphi code containing overload references.

    INSTALLER

    • Remove the legacy floating license server from the Understand package. It can still be downloaded from https://btransfer.scitools.com/download/licensemanager/

    PASCAL PARSER

    • Fixed invalid syntax error on some exports statements.

    Understand Build 955

    (Build b955) – 17 Aug 2018

    GRAPHS

    • Add Pascal support for UML Sequence Diagram.

    STRICT PARSER

    • Added template argument list to template specialization qualified names.
    • Don't count the implicit injected class name declaration as a decl statement.

    Understand Build 954

    (Build b954) – 10 Aug 2018

    ARCHITECTURE

    • Fixed crash on analysis when editing an architecture with relative paths.

    CODECHECK

    • Updated the CodeCheck treemap to allow users to double click on files and then open the "Results by File" tab and expand to that desired file with its associated violations expanded.
    • Update 3.2lineSpacingNotUsedInComments.upl to have the correct example displayed in the Description.

    JAVA PARSER

    • Added 'anonymous' to the short kind for anonymous classes.
    • Fixed bug where anonymous classes had an 'implements' relation to a class type appearing in a 'new' expression. Now, an 'implements' relation is created if the type is an interface and an 'extends' relation is created if the type is a class.

    WEB PARSER

    • For web/Javascript, fixed bug where the import of an index.js file using the path to the directory was not working correctly.

    Understand Build 953

    (Build b953) – 5 Aug 2018

    ANNOTATIONS

    • Updated annotation search/filter to be case insensitive, allow whitespace for authors and allow partial matching.
    • Updated the annotation search/filter tag names to be case insensitive. I have also ordered the filter droplist alphabetically.
    • Fixed an intermittent crash on Mac when searching annotations.

    COMMANDLINE

    • Fixed an issue with Und not creating a proper database from a .udx file while in Und’s interactive mode.

    PYTHON API

    • Fixed entity hash value to use the actual entity id instead of the address of an allocated integer object.

    STRICT PARSER

    • Changed counting of declaration statements to exclude parameter declarations.

    Understand Build 952

    (Build b952) – 27 Jul 2018

    CODECHECK

    • Fixed an issue in CodeCheck ignore import/export where a comma in the violation was not being handled correctly.

    JAVA PARSER

    • Made change to automatically add Java 9 and 10 src.lib and java.base.jmod to classpath for new projects.
    • Made changes to allow contents of Java 9 and 10 src.zip and .jmod files to be processed.
    • Fixed bug where import on demand for classes loaded from jar files didn't work correctly in some cases.

    Understand Build 951

    (Build b951) – 20 Jul 2018

    CODECHECK

    • Added -requireexplicitcheckid which will require a checkid for CodeCheck automatic ignores.
    • Added support for '*' as a valid checkID for CodeCheck Automatic Ignores. Und returns a -1 if -requireexplicitcheckid command line arg is passed in and a required checkID is not supplied in the CodeCheck Automatic Ignores.
    • Updated CodeCheck Automatic Ignores to include a warning if an invalid checkid name is used.

    COMMANDLINE

    • Fixed an Und issue where the \# was not functioning correctly when importing @files. This is done by escaping the # with a "\" or another "#".

    JAVA PARSER

    • Fixed invalid syntax error on some uses of '::new' for array creation.
    • Fixed syntax error on the use of a class nested in a generic for a type parameter bound.
    • Added support for Java 10 implicitly typed local variables.
    • Fixed crash on some uses of self-bounding generics.

    TOOLS

    • Fixed issues in the Command Window for when a file link has a '.' in the file path besides the file name and html color not showing properly when on the same line as a file link.
    • Fixed an issue in User Tools – Command Window where python scripts would display duplicate lines under certain conditions.

    Understand Build 950

    (Build b950) – 14 Jul 2018

    C++

    • add option to merge duplicate function definitions into one entity during the analysis.

    GRAPHS

    • Fixed crash on some Fortran control flow graphs.

    STRICT PARSER

    • Disabled references to operator overload candidates when the lookup depends on a template argument.

    Understand Build 949

    (Build b949) – 6 Jul 2018

    CODECHECK

    • Update to CodeCheck to allow users to automatically load/overwrite and save CodeCheck ignores via the .uci file.

    GENERAL

    • Register the .udx settings file with Understand on Windows.

    JAVA PARSER

    • Made change to load thrown exception information from methods in class and jar files.
    • Added support for Java 9 module 'opens' directive. Added support for new syntax in try-with-resource statement.

    STRICT PARSER

    • Fixed parameter lookup for explicitly defaulted and deleted functions.

    Understand Build 948

    (Build b948) – 29 Jun 2018

    GRAPHS

    • Fixed Architecture dependency graphs to export to Visio XML correctly with the selected filter dependecies.
    • Added option to aggregate lifelines by architecture in the UML Sequence Diagrams.

    JAVA PARSER

    • Added support for Java 9 module syntax.

    Understand Build 947

    (Build b947) – 22 Jun 2018

    API

    • For Jovial Api lexer, fixed bug where keywords 'if' and 'or' were labeled as identifiers instead of keywords if they appeared in upper case.
    • Fix 1750A assembly api lexer to support $lexer->lexemes().

    COMMANDLINE

    • Fixed an issue with Und Add so that Und will not automatically analyze on files/directories added unless the analyze flag/command is specified.

    GENERAL

    • Fixed an issue with the Dependency Browser Filter not working correctly.

    PYTHON PARSER

    • Fixed syntax errors parsing f strings with escaped close quote characters.

    STRICT

    • Added function pointer calls to invocation report.

    Understand Build 946

    (Build b946) – 15 Jun 2018

    API

    • Add 1750A Assembly as an available api lexer.

    CODECHECK

    • Added the ability to automatically save the current CodeCheck Violation results and load the results next time CodeCheck starts. This can be turned on/off in Tools ->Options – Auto Loading and Saving options.

    FORTRAN PARSER

    • Fixed bug where some declarations from include files were not associated with the correct file. Also, fixed some problems where line counts were incorrect.

    Understand Build 945

    (Build b945) – 11 Jun 2018

    C# PARSER

    • For c# 7, added support for out parameter discards, and for expression bodies on type cast operator declarations.

    CODECHECK

    • Fixed an Understand CodeCheck issue with CheckID on a top level check.

    PASCAL PARSER

    • Fixed syntax error on pointer dereference access to array.

    STRICT

    • Added project config settings pages set system include paths.
    • Added command line flags to set system includes.
    • Fixed failure to record 'call ptr' references to unresolved function pointers in some cases.

    Understand Build 944

    (Build b944) – 1 Jun 2018

    C# PARSER

    • Fixed problem reading some C# 7 dll files.

    COMMANDLINE

    • Fixed Und assert if create is passed with no database argument.

    GENERAL

    • Update to the .udx feature. File – New UDX Project will create a project based on a .udx file.

    PROJECT

    • Added the .udx feature to allow for export/import of project settings on demand and automatically.

    SEARCH

    • Updated Find in Files to allow for searching current open file only.

    Understand Build 943

    (Build b943) – 25 May 2018


    STRICT PARSER

    • Added ‘call ptr’ reference between Qt signals and slots referenced in connect calls.

    Understand Build 942

    (Build b942) – 22 May 2018


    C# PARSER

    • Full support for C# 7.0, 7.1 and 7.2 has been added

    FORTRAN

    • Fixed lookup of entities by ‘renameby’ reference.

    JAVA PARSER

    • For Java, fixed bug where overloaded functions merged if all parameters have types with the same short names.

    STRICT PARSER

    • Fixed failure to search for include files among project files when the file encoding is different from the system locale encoding.

    Understand Build 941

    (Build b941) – 11 May 2018


    C# PARSER

    • For C#, added support for some C# 7 pattern matching.

    SEARCH

    • Updated Find in Files to save the configuration changes on a more dynamic basis. Also added the ability to only search the currently selected open file.
    • Fixed a Find in Files issue where §§§ search string was not being properly identified in relative project files.

    Understand Build 940

    (Build b940) – 4 May 2018

    C# PARSER

    • Made additional changes for the support of C# 7 tuples.

    COMMANDLINE

    • Updated Und CodeCheck detailed log in terminal output to not show the detail for ignored violations unless the -showignored flag is set.

    Understand Build 939

    (Build b939) – 27 Apr 2018

    API

    • Fix crash in user_api.

    C# PARSER

    • Made changes to support C# 7 tuples.

    INFOBROWSER

    • Add Metrics IB field for web languages.

    STRICT PARSER

    • Record 'call ptr' references for array subscript expressions.

    VISUAL STUDIO

    • Changed handling of MSVC 2010 and later projects to ignore ExcludedFromBuild files that have a 'false' value.

    WEB PARSER

    • In preparation for full support of Typescript, made a change to not process .js files with same base name as a .ts file in the same directory.
    • Beta support for Typescript added.

    Understand Build 938

    (Build b938) – 20 Apr 2018

    C# PARSER

    • Added support for C# 7 nested methods, out variables, and in parameters.
    • Fixed a bug where local constants were identified as variables.

    Understand Build 937

    (Build b937) – 16 Apr 2018

    ARCHITECTURES

    • Fixed New Architecture Wizard read only issue.

    Understand Build 936

    (Build b936) – 13 Apr 2018

    CODECHECK

    • Add missing malloc for Misra 2012 21.3.

    INFOBROWSER

    • Exclude 'call ptr' references from C/C++ References field.
    • Added 'pointer' text to 'call ptr' references in the Calls field.

    Understand Build 935

    (Build b935) – 6 Apr 2018

    GENERAL

    • Fixed an issue in Copy Filename where the absolute filename was not being displayed correctly.

    INTERACTIVE REPORT

    • Fix API Info IReport.

    STRICT PARSER

    • Added support for function pointer assignment to members through array of aggregate initializer lists.
    • Record 'call ptr' references for assignment from argument to parameter.
    • Fixed worker process crash on some DLL declspec redeclarations on Windows.
    • Added support for function pointer assignment from function pointer arrays.

    Understand Build 934

    (Build b934) – 30 Mar 2018

    PASCAL PARSER

    • For Pascal/Delphi, fixed a bug where namespace names given in the Namespaces option were not used for 'uses' statement names that were dotted names (for example, namespace System was not prepended to Generics.Collections).
    • Fixed a bug where an ASM block that contained a label with the name @@END would cause the assembly block to be terminated and result in syntax errors.

    STRICT PARSER

    • Added parameter declare references.

    Understand Build 933

    (Build b933) – 23 Mar 2018

    EDITOR

    • Fixed failure to browse to the correct define/declare reference in some cases.

    GENERAL

    • Updated Project Configuration – C# new references to allow for multiple files to be selected/added at once. Note that the alias field will not be available if mutliple files are added at once but can be added in the edit feature.
    • Updated Architecture XML import to allow architecture paths with "/" or "\".

    GRAPHS

    • For c++ strict projects, on call or calledby graphs, show new 'call ptr' references as dotted lines; for all languages, show 'use ptr' references as grey dashed lines.

    METRICS

    • For web languages, added SumCyclomatic metrics to functions. These metrics include values for nested anonymous functions.
    • For Python, added CountDeclExecutableUnit metric.
    • For web languages, added CountDeclExecutableUnit metric for files which counts all defined functions plus the file itself if it contained top level executable code.
    • For Pascal/Delphi, added CountDeclExecutableUnit metric.

    Understand Build 932

    (Build b932) – 19 Mar 2018

    LICENSING

    • Fix licensing issue when rapidly instantiating API instances.

    Understand Build 931

    (Build b931) – 16 Mar 2018

    API

    • For api lexers, add -> java operator and => operator for c#, and associate lambda entities with these lexemes.

    C# PARSER

    • Added 'lambda method' kind for lambda expressions.

    FORTRAN PARSER

    • Added support for some Silverfrost compiler variations on do loop syntax. Also, fixed some errors in the Fortran MaxNesting metric for some uses of do loops.

    INTERACTIVE REPORTS

    • For the Expand Macro Interactive Report, show the macro's value at the specificied location when using in a file.

    JAVA PARSER

    • Added 'lambda method' kind for lambda expressions, and added an End reference for lambdas.

    PASCAL PARSER

    • For Pascal/Delphi, fix problem where unnamed record types had the same unique name.

    REPORTS

    • Fix crash in html report generation.

    STRICT PARSER

    • Track potential function pointer calls through assignment.

    UPERL

    • Fixed the "Run a Command" window to display appropriate script text even when a gui perl graph is open.

    Understand Build 930

    (Build b930) – 9 Mar 2018

    C# PARSER

    • Added references for calls to operator overloads.

    FORTRAN PARSER

    • Added SumCyclomatic metrics to modules and subroutines.

    INTERACTIVE REPORTS

    • Add Interactive Report to Expand Macro text. To use right click on a Macro and select Interactive Reports->Expand Macro.

    METRICS

    • For Pascal/Delphi, added SumCyclomatic metrics for subroutines. Added SumEssenial metric in all contexts where other SumCyclomatic metrics were available.

    STRICT PARSER

    • Fixed worker process crash.

    VISUALSTUDIO

    • Add initial support for MSVC 2017 C# projects.