Understand Changelog

What's new in Understand 5.0 Build 955

Aug 29, 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.

New in Understand 5.0 Build 954 (Aug 14, 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.

New in Understand 5.0 Build 953 (Aug 8, 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.

New in Understand 5.0 Build 927 (Feb 21, 2018)

  • Visual Basic Support
  • Codecheck Comment Keywords
  • Application wide color schemes
  • License Tracking
  • Previewer window
  • Annotation of individual lines
  • VHDL control flow graph
  • Java & C# UML Sequence diagrams
  • Support for FORTRAN 2008
  • Hersteller Initiative Software Codechecks
  • Additional Codechecks
  • C++14 Support in Strict parser
  • Mac build bundled into .app to be compatible with MacOS Sierra
  • MSVC 2015 Support
  • Support for JIPSE MIL-STD-1750A assembly language
  • C# Version 6 Support
  • Assembly IBM System 370 including Control Flow Graph
  • Visual Studio 2017 C++
  • Pascal86 Syntax
  • Understand 5.0 is also being released along with Helios™, our new licensing system, to give you better user mobility, easier licensing management, and more control.

New in Understand 4.0 Build 924 (Jan 23, 2018)

  • Update Codecheck Validataion Suite.

New in Understand 4.0 Build 920 (Dec 3, 2017)

  • Fixed a potential crash when shutting Understand down before completely initializing the GettingStarted Dialog.

New in Understand 4.0 Build 917 (Nov 13, 2017)

  • INFOBROWSER:
  • Fix crash displaying IB for unresolved c entities.

New in Understand 4.0 Build 915 (Nov 5, 2017)

  • GRAPHS:
  • Fix crash in project-level graphs introduced in b914
  • METRICS:
  • Fix crash in metrics calculation introduced in b912

New in Understand 4.0 Build 845 (Jun 27, 2016)

  • CODECHECK:
  • Fixed a bug in 10_assignmentOperatorReturnThis.upl and assignmentOperatorReturnThis.upl where a false positive was triggered when const was part of the FQN.
  • Updated MISRA 2008 rule 15-3-6 and All Check script exceptionsHaldersOrderedFromMostToBase.upl to be faster and more accurate.
  • GENERAL:
  • Add detailed language information to the hover text on the Project Configuration Language Panel.
  • IREPORT:
  • Add a new project level Interactive Report to Batch Generate Graphs. More details here: https://scitools.com/support/batch-graph-generator/
  • METRICS:
  • Added CountPathLog metric for ada, c#, c++, fortran, java, jovial, pascal, python, and web languages.
  • PROJECT:
  • Fixed restoration of excluded directories from the context menu.
  • SEARCH:
  • Fixed an issue with the Find in Files exclude checkbox unchecking when the file types were modified.
  • STRICT:
  • Record calls to functor object call operators as 'call' instead of 'use'.

New in Understand 4.0 Build 829 (Feb 23, 2016)

  • CODECHECK:
  • Updated MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl to correctly handle templated constructor initialization lists.
  • Updated MISRA 2008 rule 7-5-4, MISRA 2004 rule 16.2, HIS rule 12, and All Check script noRecursion.upl to point violation at the instance of recursion.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to have a configurable option to treat parameters passed to another function as modified.
  • Updated All Check script externalTypeMismatch.upl to have a configurable option to treat MACROs without a value as an empty string.
  • Updated All Check script constRefParam.upl to ignore move constructors.
  • Updated All Check script oneVariablePerLine.upl to correctly handle range based loops.
  • GENERAL:
  • Fixed crash on switching projects with the contextual information sidebar open.
  • Fix bug where file extension to file type mapping was broken.
  • Fixed an issue where the expand/collapse icon would disappear in the Project Config dialog.
  • LICENSING:
  • Allow resizing of the License Setup Dialog.
  • STRICT PARSER:
  • Fixed invalid entity kind for functions called in a template parameter dependent context and found through a using declaration. Added missing 'Using' reference to templates referenced in a using declaration.
  • Fixed duplicate references to constructor call arguments in template class instantiations.
  • WEB PARSER:
  • For Web Javascript, made changes to handle symbol lookup and refresh parsing for modules.
  • For Web html and xml, fixed bug that caused invalid syntax errors and incorrect line counts.

New in Understand 4.0 Build 811 (Nov 21, 2015)

  • CODECHECK:
  • Fixed a few Perl warnings being caused by mismatched number of parameters.
  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle C++ 11 lambda functions.
  • Updated MISRA 2012 rule 8.2 and All Check script check functionsTypesInPrototypeForm.upl to ignore template specializations.
  • COMMANDLINE:
  • Updated Und to accept wildcards when using the command line ignore options (-C++Ignore, -C++IgnoreAdd, -C++IgnoreRemove).
  • GENERAL:
  • Fixed loss of bookmarks after analysis.
  • PROJECT:
  • Updated the add directory (new project) in Understand and Und to not ignore the exclude when setting the watch property to off.
  • STRICT PARSER:
  • Reduced default template instantiation depth to 128 on Windows.
  • TOOLS:
  • Updated UserTools to not try to run the command if empty.

New in Understand 4.0 Build 801 (Sep 23, 2015)

  • BUILDSPY:
  • Added automatic detection of -std flag for switching the C/C++ language standard.
  • CODECHECK:
  • Fixed a bug in MISRA 2012 rule 5.1 and externalIdentifiersShallBeDistinct.upl where unresolved entities were incorrectly handled.
  • Fixed bug in MISRA 2012 rule 15.6 and All Check script iterationStatementShallBeCompoundStatement.upl where do .. while loops were not being handled correctly.
  • Fixed bugs in MISRA 2012 rule 8.4, 6.1 and both of their All Check counterparts as well as externalTypeMismatch.upl to correctly handle typedefs.
  • Updated MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl to handle inline void declarations correctly.
  • Fixed an issue with the tabs shifting focus incorrectly when sorting alphanumerically through the dimple menu and on the CodeCheck tab title change (when alphanumeric sorting is enabled). Also fixed the CodeCheck modified icon (red/green) to show correctly.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to include a note about adding system header files to project.
  • GRAPHS:
  • Fixed an issue where the .DOT export option was not available on various graph types.
  • For Ada control flow graphs, fixed bug where text was missing for 'abort' statements and select 'when' statements.
  • Fixed a crash on Mac when enabling the .DOT export.
  • STRICT PARSER:
  • Fixed analysis of preprocessed files containing GNU line markers.
  • Added support for all MSVC extensions used in MFC/ATL headers.
  • WEB PARSER:
  • Fixed bug where entity fullnames sometimes had double '..' sequences.
  • For Javascript, fixed bug in nodejs mode where 'exports' properties from different files were being merged.

New in Understand 4.0 Build 797 (Aug 28, 2015)

  • API:
  • Fix error handling strings with parentheses in api lexer with macro expansion enabled.
  • C# PARSER:
  • Fixed bug where no 'end' reference was produced for anonymous types.
  • CODECHECK:
  • Updated MISRA 2008 rule 7-3-4 and All Check script usingDirectivesShallNotBeUsed.upl to include line and column numbers in violations.
  • Updated MISRA 2012 rule 8.5 to include file, line number and column number of one of the declare references.
  • Updated MISRA 2012 rule 8.3, MISRA 2004 rule 8.3, MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to be more robust in the Strict parser.
  • Fixed potential crash in CodeCheck when jumping to violation code in the Results Locator.
  • CodeCheck – Terminology updated (Analysis – Inspect).
  • Updated name of noErrno to be consistent with other check names.
  • Added 'Fuzzy' tag to MISRA C 6.1, bitFieldsDeclaredWithAppropriateType.upl, singleBitNamedBitFieldsNotSigned.upl, and bitFieldsBoolOrExplicitSignedness.upl.
  • Updated MISRA 2012 rule 8.14 and All Check script restrictShallNotBeUsed.upl to include a notice about using C99 and later.
  • Updated MISRA 2012 rule 8.6 to include the Strict Only tag.
  • Added MISRA 2012 rule 15.6 and All Check script iterationStatementShallBeCompoundStatement.upl to Code Check.
  • FUZZY PARSER:
  • Fix bug handling MSVC solution files with '.' project subdirectory specifications.
  • GENERAL:
  • Fixed an issue with renaming not working properly on files with a different case.
  • GRAPH:
  • For control flow graphs, make change to better handle switch/case statements with no branch alternatives.
  • INFOBROWSER:
  • Bookmark and IB windows now will display the project name if there are multiple instances of Understand running and the windows are floating (not Docked).
  • JAVA PARSER
  • Added Java Implicit Member Variable and Java Implicit Method kinds to represent the implicit array members 'clone' and 'length'.
  • PASCAL PARSER:
  • For Pascal/Delphi, fixed some problems with include file processing.
  • STRICT PARSER:
  • Fixed regression in saved macro expansion text for some functional macros.

New in Understand 4.0 Build 796 (Aug 18, 2015)

  • ANNOTATIONS:
  • Updated the orphaned annotations to allow the user to right click the annotation or to double click the orphan annotation detail and set the filter text.
  • CODECHECK:
  • Updated MISRA 2008 rule 6-5-3 and All Check script loopCounterShallNotBeModified.upl to be more accurate.
  • Fixed bug in MISRA 2004 rule 14.10 and All Check script danglingElse.upl where an else if statement that ended with preprocessing directives would not properly detect the dangling else.
  • Fixed a bug where MISRA 2012 rule 8.7 and All Check script noExternalLinkageUnlessExternal.upl where unresolved objects were being tested for parents.
  • COMMANDLINE:
  • Fixed an issue in Und where settings -override_c++Includes commands were crashing.
  • INDEX:
  • Fixed intermittent instant search indexer crash.
  • STRICT:
  • Fixed several saved macro expansion text issues.

New in Understand 4.0 Build 794 (Aug 15, 2015)

  • BUILDSPY:
  • Fixed regressions in detecting the source file in some compile commands.
  • Fixed library link paths on Mac.
  • FORTRAN PARSER:
  • Fixed bug where use of 'endprocedure' and 'endsubmodule' in fixed format files caused the creation of invalid local variables.
  • Fixed bug in fixed format files where reference column numbers were incorrect when multiple semicolon separated statements appeared on a single line. These statements also appeared incorrectly in the control flow graph.
  • Made change to create an unknown module when a submodule's parent is not found.
  • Added support for Fortran 2008 lock and unlock statements.
  • Added intrinsics08.txt file with list of intrinsic functions and modules for Fortran 2008. Added some missing names to the Fortran 2003 instrinsics file.
  • Improved handling of unknown types. All unknown types with the same name now merge into a single entity instead of generating a separate entity for each referencing program entity.
  • GENERAL:
  • Fixed an issue where the Info Browser – Visit Next and Visit Previous would not leave the focus of a released window.
  • Save-All toolbar button now displays properly.
  • Fixed an issue with the Navigator not marking unsaved edited files with "*" correctly.
  • LICENSING:
  • Fixed an issue in almtest where ToGo debug info was showing unnecessarily.
  • REPORTS:
  • Fixed bug where the line break was sometimes missing after the first line of an html object cross ref item.
  • SEARCH:
  • Find in Files – Updated to dynamically resize the height of the dialog depending upon the "Find In" selection.
  • Find in Files – Open Files – Fixed to use the File Types field correctly.

New in Understand 4.0 Build 790 (Jul 13, 2015)

  • ANNOTATIONS:
  • Fix crash in line annotations saving non-project file.
  • CODECHECK:
  • In Codecheck Check List, select check when checkbox is clicked.
  • EDITOR:
  • Change editor tab tool tip to show absolute path.
  • Fixed hang on auto-indent after an unmatched closing parentheses.
  • FORTRAN PARSER:
  • Added support for Fortran 2008 submodules.
  • Added support for Fortran 2008 'impure' attribute.
  • Fixed bug where routines with explicit interface declarations had incorrect values for line counts, complexity, and paths.
  • Fixed bug where local entity created for a renaming 'use only' declaration was given the kind 'function' when a variable was renamed.
  • GENERAL:
  • Save changes to window positions and favorites as they occur.
  • Allow changing project portability and named roots from New Project Wizard.
  • Add a gui export option for macros and includes.
  • Save project information about open editors whenever an editor is open or closed.
  • In Gui for C# Reference File Alias List, allow named roots and convert files to project add mode.
  • Add a sync check box to the metrics browser.
  • GRAPHS:
  • Added an "Inverse Selection" option for graphs. The option must be given a keybinding under tools->options->keybindings->graph window to be used.
  • INFOBROWSER:
  • Add Parent IB field for Fortran submodules.
  • Add Children IB field for Fortran modules.
  • LICENSESERVER:
  • Make licenseserver binary executable on linux by default.
  • PROJECT:
  • For Project Settings that use file paths (includes, imports, and such):
  • – Check those settings for named roots in Missing Named Roots dialog.
  • – Add c++ frameworks, python imports, and assembly includes to the settings that follow project add mode.
  • – Don't remove values with unknown NamedRoots (fixes bug where adding a named root from und removed any settings with unknown name root.)
  • – Follow project add mode where possible when editing the following settings from und: assembly includes, cpp auto includes, cpp includes, cpp frameworks, fortran includes, java class paths, pascal includes, python import paths, file override cpp auto includes, file override cpp includes, file override cpp frameworks, file override fortran includes, file override pascal includes.
  • Show absolute file path in tooltips in project browser.
  • Make Project Browser sort by file extension case insensitive on windows.
  • For Project Settings that use file paths (includes, imports, and such):
  • Fix case where removing file from project browser while project browser was sorted by file extension scrolled to the next file alphabetically instead of to the next file by file extension.

New in Understand 4.0 Build 786 (Jun 23, 2015)

  • ANNOTATIONS:
  • Show Annotations in hover text in graphs.:
  • COBOL PARSER:
  • Fixed comment line counts in free format mode.:
  • CODECHECK:
  • Added MISRA 2012 Directive 4.3 to Code Check.
  • Added MISRA 2012 Directive 4.4 to Code Check.
  • Added MISRA 2012 Directive 4.5 to Code Check and updated language on MISRA 2012 Directive 4.4.
  • Updated MISRA 2004 rule 8.10 and All Check script staticLinkageWhenPossible.upl to ignore private methods.
  • Updated identifierWithExternalLinkageOneDefinition.upl and MISRA 2012 rule 8.6 to have an option to ignore the standard library.
  • Updated MISRA 2008 rule 4-5-3 and All Check script charShallBeUsedWithAppropriateOperators.upl to ignore Use Cast references.
  • Updated noDefinitionsHeader.upl and noExternalLinkageUnlessExternal.upl to have options for ignoring const in header file.
  • Upgraded MISRA 2012 rule 8.6 and corresponding All Check to properly handle Templates.
  • Updated MISRA 2012 rule 8.3, MISRA 2004 rule 8.3 and corresponding All Check script to properly handle arrays.
  • Updated uninitialized_objects.upl to ignore class data members.
  • Upgraded MISRA 2008 rule 9-3-2 to ignore methods that don’t return by pointer or reference.:
  • EDITOR:
  • In the editor, for Fortran, treat “procedure” as a keyword to fix folds.
  • Fixed failure to print inactive line backgrounds white when the options to print black or color on white are selected.:
  • FORTRAN PARSER:
  • Added support for Fortran 2008 ‘critical’ construct.
  • Added support for names on Fortran 2008 block statements and the ‘mold’ option on allocate statements.:
  • GENERAL:
  • Connect mouse back and forward buttons to previewer window history.
  • Double click in previewer opens in editor.:
  • GRAPHS:
  • Change Graph Customizer Panel to a toolbar.
  • Remember open graphs.
  • Add an option to the Cluster Control Flow Graph to layout horizontally.
  • Added a Show Edges Between Children Default right click menu option to toggle the default. Nodes that are expanded by default (such as the initial node in an internal dependencies diagram) show inter child edges initially regardless of the setting. Note that changing defaults only affects nodes that are using the defaults (i.e. not customized) and so restore defaults may need to be called to affect the entire graph.
  • Fix issue with cluster control flow Visio export truncating lines with “

New in Understand 4.0 Build 785 (Jun 17, 2015)

  • ANNOTATIONS:
  • Fix Remove All to work for line annotations.
  • CODECHECK:
  • Fixed bug where notDefinitionsHeader.upl was not ignoring Template Functions.
  • Fixed typo in magic number checks.
  • Shortened the CodeCheck tab name and many of the graph tab names.
  • Updated inlineFunctionsInClass.upl to ignore anything that is not a function.
  • Fix error on undefined function definition in External Identifiers Shall Be Distinct check.
  • Updated variableNamingConvention.upl to treat pointer to const and const pointers correctly.
  • Updated unusedLocal to have an option for parameters.
  • Fixed an issue where moving columns in the Results by File and Results by Check windows in CodeCheck causes the text to overlap.
  • Updated MISRA 2008 rule 7-1-2 and parameterShallBeDeclaredAsConst.upl to ignore parameters that are passed by value.
  • COMMANDLINE:
  • Added the number of files added to the und add build.log message.
  • CSHARP PARSER:
  • Fixed error where some Framework 4 dll files did not load correctly, resulting in 'unknown' entities and incorrect values for metrics CountDeclMethodAll and CountClassCoupled.
  • FORTRAN PARSER:
  • Added support for Fortran 2008 block construct.
  • Added support for Fortran 2008 sync statements.
  • Added support for Fortran 2008 codimension and contiguous statements.
  • For Fortran 2008, made changes to allow multiple type-bound procedures to be defined in one statement.
  • Added support for Fortran 2008 Do Concurrent statement.
  • FUZZY PARSER:
  • Improve fuzzy c++ parser handling of function declarations with unknown types.
  • GENERAL:
  • Fixed an issue of not cancelling the New Project dialog when you have a project open, with a changed, unsaved file and cancelling the save file dialog.
  • Re-aligned the second column in Bookmarks to ignore the file name and shift next to the line numbers.
  • Fixed Scheduler Options to reset settings when the option dialog is cancelled.
  • INFOBROWSER:
  • Have the CIS Information browsers refresh the annotations field as needed.
  • METRICS:
  • For c#, fixed bug where event and indexer accessors were not counted in the containing class's CountDeclMethod metrics.
  • PERL:
  • Add index for sample perl scripts.
  • PROJECT:
  • Add support for php comment collection.
  • REFACTOR:
  • Fix error where extract function refactor tool garbled some unicode strings.
  • Fix error with extract function refactor tool when text contained %.
  • SEARCH:
  • Revert hiding empty entity filter categories because of performance regression.
  • STRICT PARSER:
  • Fixed occasional bogus references to entities referenced in default argument initializers.

New in Understand 4.0 Build 781 (May 21, 2015)

  • COMMAND-LINE:
  • In Und, change the name of the Import report to Imports to avoid name conflict with the command import.
  • ECLIPSE:
  • Fix an issue where the Eclipse plugin failed to analyze when a graph was open. (To apply fix, you must update the Eclipse plugin from the update site).
  • FUZZY PARSER:
  • Improved handling of macros defined in inactive regions in fuzzy C++ parser.
  • GENERAL:
  • Fix for crash in previewer window that sometimes occurred on reparse.
  • Fix some translation issues in annotations dialogue, application styles settings page, and previewer.
  • Changed the icon in tools->options->User Interface to a user, and removed icons for the sub pages to make it consistent with the rest of the dialogue.
  • GRAPHS:
  • Add support for Java and C# for uml sequence diagrams.
  • Fix cluster control flow graph bug that showed all nodes even when hide nodes with no highlighted edges was checked.
  • Fix issue with styled labels in cluster control flow graphs repeating the first character for each node in Python.
  • INFOBROWSER:
  • Fix possible crash on view information.

New in Understand 4.0 Build 779 (May 13, 2015)

  • CODECHECK:
  • Change option layout for Control Character check.
  • EDITOR:
  • Added the ability to annotate a line. Line annotations are tied to the scope entity where possible and are updated on reparse, opening a file, and saving a file. Externally modified files can be reparsed to restore the annotations to the correct areas. Annotations that belong to lines after the last line in the file are moved to the last line of the file. Line annotations may be orphaned if the scope entity is removed, and are handled the same as other orphans.
  • GENERAL:
  • Moved the “Save Released Window Positions” and the “Clear Saved Window Positions” to Tools – Options – User Interface – Windows. Also only enable the “Clear Saved Window Positions” button when there are saved window positions.
  • GRAPHS:
  • Added a Show Legend option to cluster control flow graphs (off by default).
  • Allow Cluster Control Flow Graphs to be generated from the API. (Note: styled text is NOT available from the API).
  • For C#, Java, Php, and Python, Changed the control flow graphs for try-catch-finally statements that contain exits to more accurately reflect the actual control flow.
  • Added a Show Deferred Edges option to cluster control flow graphs (off by default).
  • LICENSING:
  • Almstatus now displays the server build number in the results.
  • Fixed an issue of getting the “No Valid License” error when Escaping (Esc key) out of the license Setup Dialog. Esc now performs the same action as the Cancel button.
  • METRICS:
  • For C#, Java, Php, and Python, fixed incorrect essential complexity value for some instances of routines with exits from try-catch-finally statements.
  • VHDL:
  • Added control flow graph.

New in Understand 4.0 Build 778 (May 7, 2015)

  • C# PARSER:
  • For c# control flow graphs, added label text to labeled statements.
  • CHANGE:
  • Removed “Global Objects” option from the Compare Entities dropdown list.
  • CODECHECK:
  • Add new codecheck to look for control characters like formfeed and bell.
  • EDITOR:
  • Fixed editor detection of file names containing a plus.
  • GENERAL:
  • Possible fixes for crash in preview window on reparse / project open.
  • Fixed binary detection of files loaded from zip files. The editor will now prompt before trying to open .class files from jar files.
  • Update Keybindings page for Previewer window to have the correct name.
  • GRAPHS:
  • Fixed an issue with graphs taking the shortcut key from an editor while in split view.
  • PYTHON PARSER:
  • Changed database entity information to make checksum part of uniquename for an entity be based on unix style file names.
  • Changed database entity information to make uniquename for an entity not be based on line number within a file.
  • SCHEDULER:
  • Fixed an issue with Scheduled Activities not using the “Run every X Minutes” setting correctly.
  • STRICT PARSER:
  • Fixed worker process crash on #include_next directive found by searching project headers.
  • Fixed resolve of methods in Objective-C categories.
  • TOOLS:
  • Added Understand::Gui::sync(entity) to perl api.
  • UPERL:
  • Add documentation for freetext command to Perl API.

New in Understand 4.0 Build 777 (Apr 28, 2015)

  • CSHARP PARSER:
  • Fixed bug where the essential complexity was incorrect for some routines with goto statements inside try-catch-finally statements. Also, in the control flow graph for these routines, duplicate deferred-goto links are no longer displayed.
  • FORTRAN PARSER:
  • Made changes to add dimension text to variable type text.
  • Fixed a bug where an include inside an interface block caused a syntax error.
  • GENERAL:
  • Change C++ Class Names editor style to include all tag type names (struct, union, and enum).
  • Added a Previewer window (View->Previewer) that is basically an editor window that can be synced. The window can also be set to be used by default when going to a reference, and has it’s own history. Also, made view information (hotkey or menu click) trigger a sync.
  • Added an application-wide color scheme panel under tools->options->user interface->application styles. Changed windows such as find in files results and the analysis log to follow the application style rather than have specific settings. Users can match the application styles to current editor settings:
  • hiding the vertical headers in the manage architectures tables since they don’t contain any information and appear bright against dark backgrounds.
  • changing explore entities initial window to be the alternate row color instead of yellow so that it doesn’t clash with dark backgrounds.
  • set row indentation for tree views and alternating row colors for other views through the style sheet so that it applies to everything.
  • GRAPHS:
  • Added a right click menu option to show legend for graphs with custom styling (architecture dependency graphs, cluster call graphs, and relationship graphs).
  • Improve graph search to better handle newlines caused by wrapped text. Also, improve graph search highlighting for regular expression searches and cluster control flow graphs to highlight the correct number of characters in the correct location.
  • Made cluster control flow graph node backgrounds and default node foregrounds follow editor style when styled labels is on.
  • Added an include virtual edges option for call/callby relationship graphs. Unlike cluster call graphs, relationship graphs only show virtual edges as a different color if set to do so under tools->options->graphs.
  • LICENSING:
  • Update to Floating license server to use older maintenance licenses before newer ones.
  • Updated the “Thank you for your purchase” message to be less confusing when displaying maintenance expiration days.
  • SCRIPTS:
  • Fix Visio format in _export_graphics.pl script.
  • STRICT PARSER:
  • Enabled option to ignore directory names in include directives.

New in Understand 4.0 Build 774 (Apr 10, 2015)

  • STRICT:
  • Fixed worker process crash on invalid global allocation function declaration.

New in Understand 3.1 Build 771 (Mar 26, 2015)

  • CODECHECK:
  • Updated MISRA 2008 rules 3-9-2, 7-1-1, 7-1-2, 9-3-3 and their All Check counter parts to be more accurate.
  • COMMANDLINE:
  • Fixed bug in und add -exclude flag where wild cards were expanded instead of being assigned to the directory exclude field.
  • GENERAL:
  • Disabled tooltips in editors that don't have focus.
  • GRAPHS:
  • Fixed error in cluster call graphs where going from Aggregate by Arch to Aggregate by something not an arch, and then back to aggregate by original arch did not work.
  • Fixed error in cluster call graphs where collapsing the parent of the root node drew the root node anyway as a parentless node.
  • Fixed error in saving architecture cluster call graphs where graph saved an entity as the root instead of the arch.
  • Added Uml Sequence Diagrams (graph also available from API)
  • Fixed error in cluster call graphs where file clusters vanished upon expansion when aggregating by an architecture.
  • PROJECT:
  • Removed prompt to close all open editor windows when project portability settings change. Fixed failure to update editor window state after files open in an editor are added to the project by rescan.
  • SEARCH:
  • Fixed failure to load relative and named root paths in the replace-in-files preview window.
  • Fixed failure to launch find-in-files from find results window.
  • UPERL:
  • Fixed metrics treemap generation from Python and Perl APIs.

New in Understand 3.1 Build 770 (Mar 23, 2015)

  • GRAPHS:
  • Fix issue with butterfly graph not showing virtual function calls.
  • REPORTS:
  • Report Config – Fixed a crash in Und by removing the persistent dialog box that prompted users before the first time removing report directories.
  • WEB PARSER:
  • For web php, fixed bug where trait alias definitions that did not give a new name caused an unnamed entity to be created.
  • For web php, made changes to handle expression parsing modifications from 5.4.
  • Added IB and graphic support for php trait uses.

New in Understand 3.1 Build 767 (Feb 25, 2015)

  • ADA PARSER:
  • Fixed problem with references to overloaded enumeration literals in the same context in which they were declared.
  • GRAPHS:
  • Flesh out attributes and operations in the UML class diagram to show parameters and types.
  • INFOBROWSER:
  • Fixed possible crash after analyze when viewing some unresolved files in the information browser.
  • STRICT PARSER:
  • Fixed failure to resolve file entities included with relative directory names whose case doesn’t match the case of the file on disk.
  • WEB PARSER:
  • For web Javascript, made change to allow non-standard syntax where a get or set declaration has a single statement instead of a function body.
  • For web Javascript, added Javascript 6 object and array destructuring in formal parameter lists.
  • For web Javascript, added support for the array spread operator in an argument list.

New in Understand 3.1 Build 764 (Feb 10, 2015)

  • CODECHECK:
  • Updated MISRA 2008 rule 16-0-7 and MISRA 2004 rule 19.11 and All Check script undefinedMacroIdentifiersShallNotBeUsed.upl to ignore macros used within inactive code.
  • GENERAL:
  • Speed up right click menu on files.
  • GRAPHS:
  • Fixed crash in certain uperl plugin uses of $ent->filerefs()
  • PROJECT:
  • Fix context menu selection in project browser.
  • WEB PARSER:
  • For web Javascript, made changes to handle Javascript 6 ‘yield’ statements.

New in Understand 3.1 Build 763 (Feb 4, 2015)

  • CODECHECK:
  • Update MISRA 2008 rule 6-2-2, MISRA 2004 rule 13.3 and All Check script testingEqualityInFloatingPointValues.upl to function properly in both fuzzy and strict parser.
  • C PARSER:
  • Missing Includes search issue fixed.
  • FUZZY PARSER:
  • Fix error recently introduced in fuzzy parser when handling comments in macro calls.
  • GRAPHS:
  • Fixed failure to show some graphs on 32-bit Linux.
  • REPORTS:
  • Added links from annotated html files to referenced generic subroutines. Also, fixed bug where links from annotated files to dictionary were not correct when 'Index by method name' option was off.
  • STRICT PARSER:
  • Fixed reference kind of tentative definitions. One of the tentative definitions is now nominated as the 'define' reference when no other definition exists in the translation unit.
  • WEB PARSER:
  • For web Javascript, added support for Javascript 6 arrow functions.
  • For web Javascript, allow Javascript 6 generator function* syntax.

New in Understand 3.1 Build 762 (Jan 27, 2015)

  • CODECHECK:
  • Updated MISRA 2008 rule 6-5-1 and All Check script forLoopShallContainASingleLoopCounter.upl to be more accurate.
  • Updated MISRA 2008 rule 7-1-1 and All Check script unmodifiedVariablesShallBeConst.upl to be more accurate. Removed potentialConst.upl as this check is now obsolete.
  • Updated MISRA 2004 rule 14.4 and All Check script noGotoStatements.upl to be faster.
  • Updated All Check script externalLinkageShallBeDeclaredInAHeaderFile.upl to be more accurate.
  • ENTITY LOCATOR:
  • Added a history with forward and backward buttons to the entity locator.
  • GENERAL:
  • Fixed crash when activating some items from the Window menu with the keyboard on Windows.
  • Better support all platforms when updating versions from within Understand.
  • Fixed bug in duplicating architectures.
  • GRAPHS:
  • Fixed a crash in architecture dependency graphs with selected entities that occurred after analyze.
  • JAVA PARSER:
  • Fixed crash in parsing some lambda expressions.
  • SEARCH:
  • Include Search verifies that only directories are searched.
  • STRICT PARSER:
  • Fixed kind of static functions with the static specifier on a declaration but not the definition.
  • UND:
  • Added support for the -iframework flag in CMake compile command import.
  • VHDL PARSER:
  • Fixed file relative name calculation in projects with VHDL enabled.
  • WEB PARSER:
  • For web Javascript, added support for some Javascript 6 features (array decomposition in var declaration).

New in Understand 3.1 Build 758 (Dec 24, 2014)

  • CODECHECK:
  • Updated MISRA 2008 rule 8-3-1 and All Check sript overridingVirtualFunctionShallNotChangeDefaults.upl to handle more cases.
  • Updated noMoreThanOneBreakOrGotFuzzy.upl, noMOreThanOneBreakOrGotoStrict.upl and allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to only function on C and C++ files.
  • ECLIPSE PLUGIN:
  • Change call and call by graphs to show 3 levels.
  • FORTRAN PARSER:
  • Fixed bug where using a keyword as a kind parameter on a literal caused a syntax error.
  • Fixed bug where use of a function name as an argument within the function was recorded as a 'call ptr' instead of a 'use'.
  • Fixed bug where passing string literals as macro arguments caused invalid syntax errors.
  • GENERAL:
  • Fixed spurious warning for missing C# references in relative and named root projects. Allow the opportunity to cancel the import of C# reference list files when any of the references are found to be invalid.
  • INSTALLER:
  • Add a message to the installer redirecting Windows XP users to the appropriate download.
  • JAVA PARSER:
  • Made change to optionally count Javadoc comments preceding entities in the CountLine, CountLineComment, and RatioCommentToCode metrics.
  • LICENSE SERVER:
  • Updated License Server Application for Mac issues.
  • LICENSING:
  • Updated Understand License GUI when adding a SDL license to always show the Licensee email address field.
  • Fixed almd crash on Mac.
  • SEARCH:
  • Fixed failure to restore instant search and find-in-files results window in drawered mode.
  • TOOLS:
  • Added a keybinding for explore entity. When multiple explorations are available, display a menu like edit companion files.
  • WEB PARSER:
  • Fixed some problems with dependency diagrams.

New in Understand 3.1 Build 757 (Dec 17, 2014)

  • FORTRAN PARSER:
  • Fixed bugs in c style preprocessor macro definitions and usage where macro definitions continued over more than one line caused syntax errors and where use of predefined macros such as ‘__LINE__’ in a macro definition caused syntax errors.
  • GENERAL:
  • Fixed regression in adding workspace tabs alphabetically.
  • On windows, make companion files case insensitive.
  • INSTALLER:
  • Fix os x certificate.
  • JAVA PARSER:
  • Fixed bug where a trailing comma in an array initializer in an annotation caused a syntax error.
  • For Java, fixed bug where a call to a static generic method with explicit type arguments caused a syntax error in some contexts.
  • TOOLS:
  • Fix issue in und when line started with “.

New in Understand 3.1 Build 742 (Oct 10, 2014)

  • Commandline:
  • In und, added a remove option for all lists except filetypes (because you can’t remove from that anyway). So, for example, you can now use -languagesremove C++ to just remove c++.
  • General:
  • Added the ability to remove specific items from the recent projects and recent files list under Tools->Options->User Interface->Lists.
  • Included graph windows in editor history.
  • Graphs:
  • On ClusterGraphSettingsPage, fixed the drop down menus for node and arrow shape so that you don’t have to click away in order to get the Apply button to become enabled.
  • Help:
  • Update understand documentation.
  • Licensing:
  • Fixed issues with the License Dialog not allowing the user to checkout a license if at first all licenses are taken and then one frees up.
  • Fixed a heartbeat issue when Understand tries to use an invalid server in a Linux license file.