Versions


RSM Version History


As a service to our users, we provide a complete version history of Resource Standard Metrics. We strive to create the highest quality software and appreciate any feedback users may have about our products. Many of the features in RSM were influenced by either custom additions for end users or suggestions for which we saw a mutual benefit to the product.

Version 7.75
- Fixed Capability to capture function parameters with embedded compiler 
directives
- Fixed Non-ANSI functions with parameter identification
- Fixed false positive of quality notice 2 for C Sharp generic functions
- Added the following lines to the rsm_macro.cfg file to adapt to C Sharp
specific language construct # Csharp specific
{typeof
typeof Version 7.71 - Added documentation to -w"create detailing absolute paths are required - Fixed false positive for function when using try/catch Version 7.70 - Moved from software maintenance support model to Shrinkwrap/Upgrade model
where a purchase of a major version of software (7.xx) includes use of
maintenance
releases (.xx). All new features will be provided in next major version where licensed users can upgrade at a 75% savings.
- Enhanced Network Licenses to Unlimited Users - Fixed issue when assignment used in for loop incrementation Version 7.65 - Ran Valgrind, resolved all memcheck issues - Pre-Compiled Linux versions under Fedora 9, GCC 4.3 - Fixed issue with return emitting Notice 35 - Updated copyrights to 2009 Version 7.64 - Added <line>#</line> to XML function tag - Fixed issue with Notice 53, false positive for predeclared class - Fixed issue with #region where label contains accents and apostrophes - Fixed false positive for Notice 35 in Csharp - Fixed issue with Notice 55, Csharp collection initializer - Fixed issue with operator= and if scope notice 22 - Fixed issue Notice 15 for sequential friend classes Version 7.63 - Fixed issue with public data notice on .NET Class syntax in CSharp - Fixed issue with virtual destructor notice emitted for nested struct - Fixed issue with function parameters and parameter templates - Fixed issue for Notice 51 and a catch block - Fixed issue with array initializers and scope depth Version 7.62 - Fixed issue with name ::name in function name resolution Version 7.61 - Refactored progress status for commandline = OFF, output file = ON - Fixed recursive descent issue in Linux and Unix Version 7.60 - Changed RSM trial to 20 files to enable more effective educational and
evaluation usage - Added rsm.cfg option to reorder notice/line in text quality notices for code
editors - Added support for nested namespaces and packages - Added QN 57 and 58 for RSM skip lines and RSM skip quality token match - Added RSM CFG option to reorder QN single line notices to Line Number the
Quality Number - Fixed issue of multiple return when a delegate is returning from a function - Fixed erroneous QN 24 for C files when #error uses a C++ keyword - Fixed -ur option to remove user name from user log (See Forums FAQ for rsm.log) - Fixed issue under Windows where GetUserName now returns unicode instead of
ansi characters - Fixed error under Windows where files can begin with nonprintable control
characters - Fixed parsing error for class<T, Y> with embedded space Version 7.50 - Refactored CSV output for -fa and -o - Refactored the function list report -l - Added RSM installation for servers presentation to documentation - Added the Windows DECLARE_DYNAMIC macro to rsm_macro.cfg
- Added Skip Line Counts from RSM skip tokens - Added Quality Notice 56 for sequential breaks - Added RSMCFGHOME Environment variable to point to config files - Fixed Quality Notice 50 to be ignored within an enumerator - Fixed break within switch notice 44 detection - Fixed buffer overrun with long text report banners - Fixed Linux error for "Too Many Open Files" using -r - Fixed assignment with in an if condition for Java (>) - Fixed Erroneous Notice 35 with a function ends func(){}; - Fixed issue with workfile names failing if terminated with \r Version 7.41 - Maintenance Release - Fixed issue with unmatched XML Key <characters_percent> - Fixed issue with buffer overrun for function parameters causing stability
issue in 7.30+ Version 7.40 - Added -xNOWRAP to disable name wrapping in a report - Added stability and optimization enhancements - Added percent complete when using an output file - Added file and function averages to the -Td report - Added new color definitions for HTML reports in rsm.cfg - Added Java @ syntax to parser - Added Linux 64 Bit compilation to linux distribution - Various maintenance updates Version 7.30 - Added Quality Notice 55 for watching scope depth. - Added Hyperlinks in HTML reports so that files open in new browser tab/window - Added -fm report for class methods and attributes annotation, HTML and Text - Added function parameter line to function reports to identify overloaded
methods - Added -Tv Report to detail metrics including whitespace, blank link percent
and many other miscellaneous metrics. - Added -Tv and -v to XML reports for access to other metrics not present in
other reports. Suggest using the XSL feature to create your customer reports. - Fixed -wd diff workfiles so that filenames are limited to 255 for Windows &
Linux - Removed date/size file line from csv output using rsm.cfg file: rsm.cfg setting: # Show file dates when displaying file metrics. Show file date and size : No - Escaped c++ templates syntax to be xml compliant - Adapted files with @ not to be assumed a clearcase file without a second @ - Removed floor function and replaced with cast to int for no dependence on math lib, 64 bit "compatibility" now in Linux Wintel Distributions - Fixed issue where "_" would not show in UDQN messages Version 7.20
- Added option to rsm.cfg for using LLA differential when file size exceeds the file size for LCS diffential algorithm and the OS 32 bit limit - Added Support for C# Version 3.0 "where" key word - Minor maintenance issues Version 7.10 - Added PCRE 7.00 library - Added XML reports DTDs and XSDs to -X documentation - Added public const, and delegate for no public data Notice 35 - Added Notice 50 check for literal 0, configurable in rsm.cfg - Added Notice 51 for no comment preceding a function block - Added Notice 52 for no comment preceding a class block - Added Notice 53 for no comment preceding a struct block - Added Notice 54 for no comment preceding an interface block - Added compound loc and comment lines to baseline differentials - Fixed -ws report showing incorrect line types - Fixed CSharp generics issue with XML format
- Fixed CSharp issue with comments from embedded array Version 7.00 - Added XML reports with -X for all -T and -Wx reports Example -X -O"C:\test.xml" -Td -u"File XSL D:\tmp\Td_example_output.xsl" -F"C:\tmp\new_files.lst" This assume you have created an XSL file D:\tmp\Td_example_output.xsl Using your browser, open the xml file which will create a custom HTML file. An XML tutorial can be found at: http://www.w3schools.com/xml/default.asp An XSL tutorial can be found at:
http://www.w3schools.com/xsl/xsl_languages.asp - Added XSL translations for XML Reports using the -u"File XSL path/file" for user custom XSL reports - Added -Td report for total file detail summary reports - Added -kd for enabling descending sort for reports, the default is acending - Added -k7 to -k10 for various sorting methods for -Td option - Changed CSV report switch from -A to -C to match the csv purpose. This now aligns to -H for html, -X for xml file. - Added an indication for UDQN start and stop in the match string when using -xUDQNSHOW. This feature is intended to be designed into testing match
locations for UDQNs in future releases. It now provides diagnostics for
your search test strings similar to the tool M2RegX. - Added incremental segmentation of extremely large length files for baseline differentials using the longest common sequence algorithm. Previous versions
would convert to the Linear-Look-ahead algorithm. Now all files regardless of
 size will be processed with the LCS algorithm. - Added rsm.cfg options to define special tokens to skip sections of code in a
file for machine generated code identified with special tokens. This feature
will allow you to skip machine generated code when it is wrapped by special
code tokens. Reference the rsm.cfg file after running RSM version 7.0. RSM Code Skip Start Token : RSM_IGNORE_BEGIN RSM Code Skip End Token : RSM_IGNORE_END RSM Code Quality Skip Start Token : RSM_IGNORE_QUALITY_BEGIN RSM Code Quality Skip End Token : RSM_IGNORE_QUALITY_END Activate RSM code skip tokens : Yes - Added RSMLICHOME to point to a specific license file path/file locations,
while RSMHOME can point to the RSM exe and config files. This feature will
enable the RSM license file to be hosted an a UNIX server while running the
RSM windows exe program. - Added parser upgrade to parse special syntax of: name :: func - Modified function ChangeCase for True64 compiler warnings - Fixed issue for inheritance tree metrics when using wild card input - Fixed else if issue with QN 22 Version 6.94 - Added feature to allow RSM to skip processing sections of a source file
between text strings RSM_IGNORE_BEGIN to RSM_IGNORE_END. Example // RSM_IGNORE_BEGIN Some source code which RSM does not process, count or analyze. // RSM_IGNORE_END - Added feature to allow RSM Quality analysis to skip processing of source code
between text strings RSM_IGNORE_QUALITY_BEGIN to RSM_IGNORE_QUALITY END. All
RSM processing between these two tokens is enabled except for RSM quality
notice analysis. Example // RSM_IGNORE_QUALITY_BEGIN Some source code which RSM processes except for quality notices. // RSM_IGNORE_QUALITY END - Added a setting for the rsm.cfg file to ignore public C# events # Reference Quality Notice No. 35 # Ignore public data events for the C# language Ignore C# public data events : Yes - Add Quality Notice 50 to the rsm.cfg file to detect a quality notice when, Assignment of a literal value to a variable. Symbolic constants make code more maintainable and understable. - Maintenance issues, fixed multiple switch counts, fixed global static assignment parse and UDQN macro names for function and class scope. Version 6.92 - Added user requested feature for function, class, etc., hyperlinks for HTML
reports. - Added a page title to all reports when the -S switch is used, enable Wizard
functionality. - Added LOC metrics averages per file for all files and languages - Enhanced parser for old style K&R C used in Linux Kernel - Created metrics reports for popular open source projects.
Version 6.90
- General maintenance release for minor issues. - Added full support for file pattern filters in command line, recursive and file list input modes. - Fixed issue with C Sharp parser for syntax: [SomeSetting(true)] class SomeClass - Fixed issue for work file extraction when work files have the same name in different locations. - Fixed issue in calculation of Notice 46 for minimum function blank line
percent. Version 6.88 - Added switch -fd for cyclomatic complexity detailed reporting - Added foreach for C# cyclomatic complexity - Added file name pattern filters to enable the filtering of source code files based on a specific name pattern. Enables the filtering of gui or generated code if the file names have a specific pattern like; .gui. or .generated. etc. File name pattern filter support has been added to the RSM configuration (rsm.cfg)file and the RSM Wizard. Support for file lists only. - Added a user configurable report banner which is displayed on the top and
bottom of the report. The banner is set in the RSM configuration
file (rsm.cfg). Version 6.86 - Added notice 48 for function with no lloc - Added configuration parameter for minimum function LOC for content analysis - Added notice 49 for function with null or blank parameters - Added configuration parameter for minimum class/struct LOC for content
analysis - Added UDQN includes to the user defined quality notice configuration file - Added HTML escapes to user UDQN summary and notice strings - Added RSM configuration file automatic upgrade from older versions - Fixed bug when using #pragma inline=force yielding no function name - Reworked case-default and break check and added default required break flag - Fixed bug in setting and testing multiple flags for a UDQN Version 6.84 - Maintenance release of very rare issues - Fixed issue when diff file line count squared is greater than 32 bit limit. - Fixed nested #else brace count Version 6.82 - Added 2006 Copyright - Added else option to cyclomatic complexity calculation, default is OFF for
McCabe compliancy - Fixed issue for cyclomatic complexity for inlined functions using &&. - Added support for .NET 2003 and 2005 project and solution files, use -F
proj.sln - Windows binary recompiled under Visual Studio 2005- Linux binary recompiled
under Red Hat Fedora Core 3, linked compatible to all linux Version 6.80 - Added UDQN File name to the -hn report - Added PCRE 6.4 Parser to RSM and RSM Regx - Added enhancements to C# parser for @"\" syntax - Added enhancements to parsers for embedded nested strings - Added enhancement to parser for when a EOF completes the last line without a
end of line Version 6.72 - Added the capability to determine file types from complex versioned ClearCase
files. - Fixed an issue with multiline class inheritance specifications and embedded
comments Version 6.71 - Under some conditions work diff files could not be located depending on where the work file originated. Added a more robust search algorithm to locate the work dif files relative to the work file. Version 6.70 - IMPORTANT - For these new features you will have to regenerate a new rsm.cfg file. Execute: rsm -y > rsm.cfg - Added the Longest Common Sequence (LCS) algorithm to baseline line metrics differentials. This algorithm is the basis for GNU Diff and WinMerge. RSM enhances the differential analysis by adding the ability to sense the semantic differences of a comment, line of code or logical line of code change. - Some users were inventing their own file extensions for C++ and Java and
requested the ability of specifying specific file extensions for specific
languages. This feature has been added to the rsm.cfg file. - File and function, class, struct content metrics has been separated so that Quality Notice limites can be specified for the file and (function, class, or
struct). - A new intrinsic Quality Notice has been added for blank line count in the file
  and function, class or struct. - The rsm.cfg file (regenerated, see above) has been reorganized for clarity of purpose for quanity notices. - Added the User Defined Quality notice for Not Checked Flags and End of file emittance. The file rsm_udqn.cfg contains an example of how to set these options for the checking of key strings within a file and emit a notice when
they do not occur. Version 6.63 - Fixed issues in UNIX/Linux when processing -wd mode and using relative work file names where dif files could not be found. Version 6.62 - Modified the metrics differential report such that when using the -wd option, equal code lines are accumulated to show the equality or "reuse" between baselines. This report no longer displays differences for function count, quality notice or complexity as these metrics are derived only for the non -wd mode or for code size differentials. Version 6.61 - Modified the diff algorithm to ignore End of Line EOL differences and ASCII non-printable control characters. Enables DOS and UNIX transparency for file differences. Version 6.60 - Added C# to the intrinsic RSM language Set - Added User Defined Quality Notices (UDQN) using Perl Compatible Regular Expressions create unlimited code quality analysis, see configuration - Enhanced the RSM code differential algorithm - Added option -x"UDQNSHOW" to show the loaded UDQNs - Adapted C++ parser for #define macro var=data syntax for function name
identification - Added logical indicator to the -d deterministic mode - Added Quality Notice 45 for unbalanced new and Delete counts - Fixed other files counter - Fixed Else If Scope Notice Bug 9/6/2004 Version 6.52 - wW switch has been deprecated as it is not compatible with the RSm Wizard and its functionality is duplicated by the -wx switch. - Removed Adminstrator from the Licensed User check. - Clean up of minor report format issues. Version 6.51 - Fixed erroneous syntax error message for -w and -F compound options. Version 6.50 - Major version change for the unification of switch, option and compound option operatioms. All switches and options are now structured in a consistent manner enabling them to be placed on tbe command line in any order. Switches: Alway start with a dash i.e. -c -o -a Options: Immediately follow a switch and are a single character or number i.e. -fa -k3 -M4 Compound Options: Immediately follow a switch as an attribute string delimited in quotation marks. These strings have specific syntax, reference the on-line manual. i.e. -O"outputfile.txt" -w"create c:\basedir" -r"h,cpp c:\basedir" - Changed the -wc to be a compound option where the syntax is now -w"create c:\baseline direcory" where the user specifies baseline directory. - Format change for -r switch: -r"ext,ext,ext,... directory" - Format change for -O switch: -O"filename.ext" - Format change for -F switch: -F"filelist.ext" - Format change for -wx switch: -w"x oldwork.dat, newwork.dat" - Added Directory Subtotals when using -F file list input option. Each directory specified will be subtotaled for metrics. Version 6.42 - Fixed case insensitivity with Windows work diff files - Fixed scoping rules for Notice 22 relative to else keyword Version 6.41 - Added program executable permissions to mkdir when using -wd - Added case insensitivity to work diff file path names Version 6.40 - Added new feature to perform source code change differentials. New work file report, glossary and options -wD -wd -ws -wv This feature is additional to the existing RSM capability to perform baseline size metrics differentials. Reference the following white paper for detailed information. Baseline Metrics Differentials - Added Language Profile to the reports - Added Show file date and size to the configuration file - Added Error message when work files reversed in time - Added status progress indicator when reading files and for code differential processing, settings are controlled in the RSM configuration file. - Modified HTML output to be xHTML compliant output - Fixed -wf dat for when a file does not exist, create work file. - Comma separated user log for import into spreadsheets - Portability changes to enable compilation under gcc in Mac OS - Added Eclipse integration to the users manual Version 6.30 - Added RSM Wizard Activation to software license - Added new license encoding, if your are updating to this version and have current maintenance, email support@msquaredtechnologies.com to get a new license file. - Fixed NonWindows License Error Message
- Updated Java parser Version 6.27 - Fixed scoping rules and function identification when using unbalanced braces
in preprocessor directives for C and C++ - Added Microsoft .NET C++ compatible parser - Fixed Nested Switches for break notice outside scope - Added Line Wrap to Command and Config - Fixed termination of HTML reports - Added ATL_NO_VTABLE to rsm_macro - Added -A -Tp to CSV Reports Version 6.21 - Fixed buffer overrun for command options greater than 80 characters - Moved Quality notice 22, Scope error to functional analysis -n -fa Version 6.20 (No Version Change) - Added Visual Studio 6, Visual Studio .NET and JBuilder 8
integration to the documentation Version 6.20 - Added Windows installer to the Windows products - Added command line information to the beginning of reports - Added environment variable expansion to -F list files - Added language metric to summary loc metrics - Added -x NOCONFIG No configuration file reporting in output" - Added -x NOCOMMAND No command line reporting in output" - Added -TL Language Metrics Totals Only - Added -fa function analysis - Added -fp function point conversion from LOC Metrics - Add # lines to verbose - Add \ continuation lines to verbose Version 6.10 - Added the capability in the rsm.cfg file to allow end users to use individual RSM configuration files. This option uses the -u parameter in the following syntax -u "File cfg my.cfg" and must be enabled in the rsm.cfg file that is collocated with the rsm.lic file thus allowing tool administrators to turn the option on or off. Enable user defined configuration files : No - Added customization parameters to the rsm.cfg file to allow the end user to determine which language branching construct contributes to the cyclomatic complexity metric. Include 'function call' in cyclomatic complexity: Yes Include 'while' in cyclomatic complexity : Yes Include 'for' in cyclomatic complexity : Yes Include 'switch' in cyclomatic complexity : No Include 'case' in cyclomatic complexity : Yes Include 'if' in cyclomatic complexity : Yes Include '?' inlined if in cyclomatic complexity : Yes Include 'goto' in cyclomatic complexity : Yes Include '||' or 'or' in cyclomatic complexity : Yes Include '&&' or 'and' in cyclomatic complexity : Yes - The end user can now customize the metrics that are included in the baseline metrics differential report by using the default rsm_workdiff.cfg file or a user defined configuration file by using the -w "File cfg my_work.cfg" option. The following metrics have been added to the baseline metrics differential report. Function Counts Interface Complexity Overall Complexity Quality Notice Counts RSM can now be configured using the rsm_workdiff.cfg file or a user defined configuration file so that removed files from the baseline can contribute positively or negatively to the overall baseline metrics. LOC_COUNT ON - ELOC_COUNT ON - LLOC_COUNT ON - COMMENT_LINE_COUNT ON - BLANK_LINE_COUNT ON - PHYSICAL_LINE_COUNT ON - FUNCTION_COUNT ON - CYCLOMATIC_COMPLEXITY ON - INTERFACE_COMPLEXITY ON - TOTAL_COMPLEXITY ON - QUALITY_NOTICE_COUNT ON - ELOC_PERCENT_DIFF ON - - Added definitions to the rsm.cfg file for user defined definitions of work minutes per hour, work hours per day, labor shifts per day and work days per week. These parameters are used to determine programmer productivity for the metrics baseline differential report. Work Seconds per Hour : 3600 Work Hours per Shift : 8 Work Shifts per Day : 1 Work Days per Week : 5 Work Hours per Man Day : 8 Work Hours per Man Week : 40 Work Hours per Man Month : 160 Work Hours per Man Year : 1960 - The following options have been added for customizing the output of the metrics differential report. - Added -wb for showing productivity basis parameters - Added -we to not process equal files in the differential report - Added -w "File cfg path\file" for user defined baseline line metrics
differential report configuration - Added -w "File dat path\file" for user defined baseline line metrics
differential report output data file - Added -wg for a glossary of the terms used in the differential report - Added -wm to not process modified files in the differential report - Added -wn to not process new files in the differential report - Added -wp for productivity estimate based upon the metrics differential - Added -wr to not process removed files in the differential report - Added the capability for file input in the recursive descent mode to skip specific named directories. These option are in the rsm.cfg file. a new rsm.cfg file can be created with these new option by using the rsm -hc > rsm.cfg syntax. The end user specifies a comma delimited list of directory names. Do not process these local directories : Yes Local directory names not processed : sccs,cvs,rcs,test,svn - Added the maintenance date and build date to the program header - Embedded TABS in strings are ignored for quality notice reports Version 6.0 - Modified the eLOC calculation to account for comments on the same line as a standalone brace or parenthesis. - Activated sort keys (-k) for metrics differential reports - Added M2 Launcher and M2 Information to the distribution as free support utilities. - Parser enhancement for identifying missing scope for the "do" key word. - Complete Extensive Regression Testing and code testing across Windows 2000, Solaris 8 and Red Hat 7.1 - Major functionality and Code Baseline Enhancements - RSM, by default, no longer sorts by entity name, this now must be specified using the -k option. This increases performance of the product. - RSM parser algorithms enhanced for stability and speed. Performance increase of general parsing is increased by 12%. - Modified User Interface, collapsing menus and adding additional functionality. Effected Options, -A -h -k -R -T -w Added Menus Options: -wd, -wf -Tw - Inheritance tree calculations modified to handler di-cyclic graphs of multiple inheritance. - Added configuration File option to performs: Relative work file locations (default). Include or Not Equal Files in Work differential files. - Reworked template scoping for highly complex template syntax - Unified formatting of class template and function template lines - Added new class and interface acquisition algorithm - Reformatted inline methods - Formatted Template lines - Added active struct metrics similar to class metrics - Updated Help Text - Changed license decryption algorithm (requires new licenses for users with maintenance, email support) Version 5.59 - Added command line error indication - Updated Visual Studio DSW/DSP parser for relative projects - Fixed allocation of functions to nested classes when the nested classes did not exist in a namespace - Removed the class header line from the class metrics to match the metrics for the function. Metrics begin at scope and end at scope, inclusive. Version 5.58 - Copyright updates and parser table updates Version 5.57 - New Visual Studio Workspace and Project reader - Enhanced user interface when using the -O mode - Maintenance release for anomalous operation Version 5.56 - Added progress meter when using -O for file output - Maintenance fix for MS specific syntax Version 5.55 - Bug fix for Java adjacent C comments of the form /* *//* */ Version 5.54 - Added the capability to turn off file extension checks for RSM processing thus allowing RSM to process any file via the RSM.cfg file. However, RSM is designed to process C, C++ and Java compilable files. Performance with other files like script, SQL and HTML is undefined and unsupported. Version 5.53 - Bug fix for function names when the prolog is in the following form and there are non-printable ASCII characters following the function name. This has been shown to be an issue with tool generated source code. void foo ( ... Version 5.52 - Added sorting by state (new, modified, equal, removed) for metrics differential report. Version 5.51 - Fixed a bug in parsing the MS Visual Studio .dsw file - Enhanced the metrics differential report by adding a state profile Version 5.50 - Added the -O option to route RSM output to a file. - Added quality notice #43, Identifies the use of the keyword 'continue' within the source code. - Added quality notice #44, identify the use of the keyword 'break' outside of the 'switch' block. - Added the capability to read the MS Visual Studio DSW and DSP files associated with the VC++ workspace. RSM processes all source active in the workspace. - Added virtual function count to the -v report. - File listings from -RL are left justified, removing leading spaces - Fixed bug where ?? in code would yield ? quality notice Version 5.40 - Added the configuration file rsm_macro.cfg for user defined macro definitions that may show up in the code without a declaration for the macro. - Modified parser to recognize case (1): syntax - Modified parser to ignore macros after the function name - Added Total Quality Notice Summary List - Add the capability to create the inheritance tree from the class specifications with metrics - Quality notice for maximum depth of inheritance tree - Quality notice for maximum number for derived child classes - Quality notice when multiple inheritance is encountered - Added -D option where -Dt removes tabs from source code and -Dd append carriage returns to source code to create a DOS file, conversely -Du removes carriage returns from source code thus creating UNIX files. - Added the capability of processing a list of directories and files from a text files. Version 5.34 - Bug fix for namespace total classes in the CSV output. No Version Change - Added Kawa Integration and Code Analysis information to the user documentation. Version 5.33 - Maintenance release: Added Support for the Microsoft keyword __declspec(..). Version 5.32 - Maintenance release: Enhanced C++ parser for Microsoft specific macro syntax in class files. Version 5.31 - Maintenance release: Fixed minor bug in compile date calculation. Enhanced C++ parser to adapt to embedded template syntax, thus providing correct metrics for C++ classes which contain std::map, etc.. Version 5.30 - Added -TL mode for Totals Only with no listings of functions etc.. - Added Notice for Maximum Functions per Class - Added Hyperlinks for File names in Totals mode - Fixed bug for disabling Notice #38 - Expanded Capability for nested classes from 8 to 64 Version 5.22 - Under the Windows operating system, file names are not case sensitive. The default configuration file has been set to this setting. - File extension case insensitivity is now supported. rsm -r h,cpp will retrieve file with H,h,CPP and cpp extensions - Fixed a bug under NT and Windows 2000 where the work files were not being written to the local directory. Version 5.20 supports an explicit directory for creating work files. - Fixed bug where elipsis (...) were being captured as a notice in the catch(...) syntax. Version 5.21 - Added the -Rd option to stop recursion at the specified -r folder. This option will allow the end user to process metrics from Windows folders which contain spaces in their names. As the Windows Shell terminal cannot parse correctly folder names with spaces, the end user must user the modified 8.3 file name or use the -r option of RSM which directly opens the directory Version 5.20 - Added Visual Studio Interactive Mode - Quality Notices can be interactive when RSM is integrated as a MS Visual Studio Tool. A simple click will open the file and place the cursor at the line where the quality notice occurred. - Quality Notice Format Visual Studio Interactive Format Summary Format Standard Verbose Format - Additional Quality Notices Notice for public data within a class Notice for protected data within a class Notice for exception handling within a function Notice for the clause 'using namespace' Notice when a class definition is located within a function. Notice when a class contains a pointer to data Notice when a class with virtual methods does have a virtual destructor - Class Metrics Counts for public, protected and private attributes Counts for public, protected and private methods Identification of Inheritance Base Classes Metrics are calculated for nested classes - Comma Separated Variable Format Output MS Excel Import capability - Project Metrics File Metrics Namespace/Package Metrics Interface Metrics Class Metrics Functional Metrics Code Differential Metrics - New Total Only Reports Quality Notice Single Line Summary Quality Profile Work File Report Output can be limited by using the Totals mode with work files, thus limiting extensive output. Work files can be extracted to CSV output. - Configuration Options Wrap long names of files, namespaces, classes and functions. Specify the path location of work files Version 5.10 - Change -A option to create CSV format output for MS Excel Import Version 5.0 - Native Windows Compilation with Visual Studio 6.0 SP3 - Visual Studio Tool Integration - Updated Runtime Options - Extensive Update to Reporting - Update to be compliant with McCabes Cyclomatic complexity - Java Compliant with Package.Class.Function support - Support Namespace, Class and Function Summaries sorted by name, LOC, eLOC, lLOC and Complexity - Added many new quality notices - Completely configurable through rsm.cfg - Added User log administration functions - Added Class nesting capability - Many Many new features. Version 4.20 - Added a user log - Reformatted On-Line manual No version change - Added rsm.dll with no source changes - New manual revision Version 4.15 - Fixed a bug for brace count notice when closing a file. This check is to insure that all scope is closed. Version 4.14 - Added a quality notice for the use of void *. - fixed a bug where a quality notice was emitted when comparing file comment and white space below 10%. Version 4.13 - Added notices when code is not compilable by matching braces or parenthesis when file processing is complete. - Fixed a bug when a C macro is defined within a function causing the function not to be emitted. Version 4.12 - ANSI C++ namespace is now active for class specification and implementation metrics. Version 4.11 - Expanded programs capability to handle very large code tokens equal to the length of the maximum line length relative to the operating system. - Added 1999 in the copyright date range. Version 4.10 - Added "namespace" as a active scope in the class and function identification. - Fixed bug in calculating estimation factors based on flow complexity. Version 4.07 - Software license with maintenance can run any version of RSM up to the software maintenance date. This will allow users with software maintenance to download and use the latest RSM from our web site. - Fixed minor bug where a non-ANSI function was reported for an array declaration and initialization which spans multiple lines. Version 4.06 - Modified cyclomatic complexity metric to match McCabe's definition by including "for" loops into the metrics, but added a configuration parameter to prevent for loops from being included in the cyclomatic complexity. - Added a new license file format for allowing those users with software maintenance to directly download the latest version from the web without the license version check. Version 4.05 - Added a configuration setting for RSM to create relative HTML hyperlinks. The default setting is for RSM to create literal file names for HTML hyperlinks. - Fixed a bug introduced which ignored non-ANSI function headers. Version 4.04 - Modified parser to make blank lines in C style comments to be represented as blank lines and not count as comment lines. - Added configuration settings for the maximum line length and maximum function name length quality checks. Version 4.03 - Added HTML documentation to the base distribution. Text files, except for readme.txt, are eliminated. Enhanced parser to address minor parsing issues for single line functions. Version 4.02 - Visual C++ editor does not place end of line characters at the end of the last line in a source file. When the last line of code contains one character then an EOF instead of an EOL + EOF (end of line and end of file), RSM would miss the last character assuming it was a single '\n'. RSM now examines the last character of each line to ensure that an editor properly terminated each line and parses the source code accordingly. - Fixed Java compatibility for assignments of arrays within class data structures. - Fixed RSM trying to open txt, htm or html files from some shell interpreters using wild card arguments. - Enhanced Java source code parsing. Version 4.01 - Fixed a bug in the HTML hyperlinks for relative file names like (./foo/star.cpp). - Fixed a bug in the HTML hyperlinks for NT Version 4.00 - Added HTML reports with color and hyperlinks to code. - Enhanced complexity metrics to include functional interface complexity which is the measure of input parameters and return state. - Added metrics differential percent by file. - Added estimation metrics from eloc and function metrics which mirror function point estimation. - Metrics per class and class implementation. - Added a license file for distributions called rsm.lic. - Added configuration file called rsm.cfg. - Reformatted reports. Version 3.06 - Added Notice for embedded classes. Version 3.05 - Added support for Java files and initialization in class specifications consistent with Java grammar. - Modified parser constructs for Java. Version 3.00 - Added functionality for NT 4.0 long filename. - Upgraded parser functionality. - Added expanded template and class metric support. - Added work files for metrics differentials. - Added comment extraction for documentation export. Version 2.70 - Fixed a MSDOS anomaly when a file contains only a single carriage return. Rearranged function reports to be easier to read. Version 2.60 - Added enum counts to identify the enumeration use in the code. General cleanup and commenting of source code in preparation for next version. Version 2.52 - Structure counts now reflect actual data definitions, not the use of the key word "struct". This matches the use of the "class" keyword, where "class" identifies a data structure not a declaration. Version 2.51 - Fixed minor grammar error in 1 notice. - Function summary reports physical lines instead of logical lines. Version 2.50 - Added more informative help - Changed the configuration query to match help structure - Added recursive descent of directories with the -r option. - Added full C++ keyword checking for C files. - Added -T mode for simple grand total output Version 2.41 - Fixed minor bug in parser for function names. Version 2.40 - Minor formatting fixes Version 2.31 - Fixed comparative complexity to only reflect the comparisons in the if and while conditions. Version 2.30 - Enabled Long File Names for Windows 95. - Long file names for NT will be enabled in release 3.0 of RSM ( Fall 97 ) do to the 32 FAT of NT. - Added read from filelist capability with the -F option. Version 2.21 - Removed bitwise operations from comparison complexity measurements. Comparison complexity now indicate the complexity of the tests which Version 2.20 - Added class line emission and fixed some spelling errors. Version 2.17 - Add -i switch to report class names. Version 2.16 - Improved parsing algorithm for class names. Version 2.15 - Improved parsing algorithm for function names. Version 2.14 - Fixed a slight bug where on Solaris, passing rsm - or rsm -v with no file name caused a segv. Version 2.13 - Added the terse report for automated processing - Changed logic complexity to be compliant with McCabe Cyclomatic complexity. Version 2.12 - Fixed spelling and help messages - Fixed bug in getting the function name - Fixed removal of whitespace for preprocessor directives Version 2.11 - Added the "?" operator for quality notices Version 2.10 - Added getopt for full Unix switch compliance Version 2.02 - Fixed minor formatting bugs Version 2.01 - Fixed ) = for beginning of keyword/functions - Fixed paren count for scope determinations Version 2.0 - Added function counts and metrics - Added file counts - Restructured output and parameters - Added variable output - Added memory alloc/dealloc counts - Added notices for common quality concerns - Added query for quality notices - Added functional and file complexity Version 1.6 - Added metrics for _exit() and abort() Version 1.4 - Correct statement count to compensate for the 2 semicolons in a for loops. Version 1.3 - Added goto keyword - Added exit function - Changed output format Version 1.2 - Added the check mode, added the current format with key words. Version 1.1 - Added a new parser and a few keywords Version 1.0 - Official Commercial Release - Determined line counts