# HG changeset patch # User stechong # Date 1239042257 18000 # Node ID fa6dad8ac6cc7b62c074fa54c27548ba38d45209 # Parent 75a4de1978bc2925707f250c67ddf237cbfd09bb Updated CodeScanner release notes for v2.1.2 diff -r 75a4de1978bc -r fa6dad8ac6cc core/com.nokia.carbide.cpp.codescanner/Tools/release_notes.txt --- a/core/com.nokia.carbide.cpp.codescanner/Tools/release_notes.txt Fri Apr 03 14:26:42 2009 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,426 +0,0 @@ -Nokia CodeScanner Command Line Tool Release Notes -================================================= - -Version 2.1.1 -============= -- Added support for user-defined rules. This can be done by -adding a element to the configuration file. -Example : - - - - myOwnRule - CMyOwnClass - h - low - My CodeScanner rule targeting CMyOwnClass - Locate definition of CMyOwnClass - - - -Please refer to the document "CodeScanner XML Configuration File -Specification" (CodeScanner_XML_ConfigFile_Spec.doc) for more -information on this new element. - -- When scanning with low severity rules, CodeScanner now -generates informative messages instead of warnings when the -StdOut output format is selected. - -- Added support to disable individual error/warning via -CodeScanner command embedded in comments. The format of this -command : - codescanner(::)+ -Example : -void CTestCase::Foo() -{ - array->At(a); // codescanner::accessArrayElementWithoutCheck - User::Leave(KErrNone); /* codescanner::LeaveNoError */ -} -A complete list of CodeScanner rule names can be found in the -document "CodeScanner_Rules.doc". - -- Added new rule to check whether Cancel() function is called -in active object's destructor. -Cancel() should always be called in active object's destructor -to cancel an outstanding request if there is one. If there is -no request pending then Cancel() just does nothing, but if we -do not call Cancel() when having an outstanding request a panic -will be raised. -This new rule is set to low severity in the "Coding Standards" -category by default. It can be configured by adding a - script element in the configuration -file. -Example : - - - - - - -- Updated active object checking rule to ignore After() from -RTimer type member variables. - -- Updated to skip excluded folders specified in configuration file -when generating component summary reports. - - -Version 2.1.0 -============= -- Previously CodeScanner has been distributed as a single-file -executable which packs all the DLLs and library modules it needed -into an archive attached to itself. During runtime, it creates a -directory (_MEI) in the user's temp directory, and extract -these files there. When execution is complete, it recursively -removes the entire directory it created. -Unfortunately the cleanup process sometimes fail. So over time -user's temp directory can be littered with these directories, -which can cause CodeScanner to fail if it tries to reuse a -directory that was created from a previous run. -To address this problem, we separated all these modules from -CodeScanner.exe and shipping them "as is". This change should be -transparent from user's point of view, except when copying -CodeScanner to other locations on user's system. - -- Updated configuration file format to allow passing arguments -to CodeScanner. One can now add an element to the -configuration file with one or more of the following -child elements : - - specify additional directory/file to scan - (html|xml|std) - specify output format - - url to lxr site - - lxr version - (on/off) - create time-stamped output directory -Example: - - - C:\Testing\CodeScanner_Tests\Bug_6393\Includes - html|xml - http://s60lxr/source/ - S60_3_2_200736 - on - - - -- Added new rule to check stack-based resource objects not put -on the cleanup stack. -If a stack-based resource object is not put on the cleanup stack -with CleanupClosePushL() or CleanupResetAndDestroyPushL(), and -a leaving function or ELeave is called, a memory leak occurs. -CodeScanner occasionally gives false positives for this issue. -Individual cases should be investigated. -This new rule is set to low severity in the "Code Review" -category by default. It can be configured by adding a - script element in the configuration -file. -Example : - - - - - - -- Added new rule to check inheritance order of M and C classes. -If a C class inherits first from an M class and then a C class, -a panic can occur when trying to pop a CBase pointer pointing -to such a class from the cleanup stack when in fact a pointer -pointing to the first predecessor, the mixin class, was popped -instead. -This new rule is set to high severity in the "Can Panic" -category by default. It can be configured by adding a - script element in the configuration file. -Example : - - - - - - -- Updated rule for L-functions that cannot leave. It is now -possible to specify functions to be ignored by this rule in the -configuration file. This is done by adding a -element to the script element. -Example: - - - - RunL - - - - -- Updated description of rule for badly-named enum members. - -- Updated NULL equality check rule to ignore pointer comparisons -with NULL inside various __ASSERT_XXX() macros. - -- Removed duplicate rule for hard-coded external drive letters. -There is now only 1 rule that check for this problem and it is -a low severity rule in the Coding Standard category. - -- Improved rule for accessing array element by [] without -checking range. - - -Version 2.0.9 -============= -- Updated check for Open() to allow assignment of return value on -a different line. -Example : - TInt error = - myFile.Open(); - - -Version 2.0.8 -============= -- Updated check for C class not inheriting from another C class. -It is now possible to specify C class that does not inherit from -another C class in the configuration file. This is done by adding -a element to the script element. -Example : - - CLogger|CKeypadData - - -- Updated check for ignored Open() return value. -It is now possible to specify object or class with Open() method -that does not return any value in the configuration file. -This is done by adding an element to the - script element. For a local variable, one can specify -either the type or variable name in the element. -For other types of object, one should specify the object name in -the element. -Example: - - CKeyStore|iKeyStore|lKeyStore - - -- Fixed a bug where some scripts cannot be disabled from the -configuration file. - - -Version 2.0.7 -============= -- Updated standard console output to include severity level and -category information in the error/warning messages. - -- Incorporated Psyco module to improve scanning performance. Please -refer to the document "MIT license.txt" for licensing info. - - -Version 2.0.6 -============= -- Updated check for CleanupStack::Pop(AndDestroy)() to ignore -CleanupStack::Pop(TInt, TAny*) and -CleanupStack::PopAndDestroy(TInt, TAny*) - -- Updated check for Open() to allow handler of return value on a -different line. -Example : - User::LeaveIfError( - myFile.Open()); - -- Updated check for At() to ignore timer objects. -Example : - TTime now; - iTimer.At(iStatus, now); - -- Improved handling of scanning of code with #ifdef/#else/#endif -preprocessor commands. CodeScanner sometimes can be confused by -code surrounded by these preprocessor commands, e.g. generating -warnings on member variable deleted incorrectly, even when it -happens inside a destructor. This has been fixed. - - -Version 2.0.5 -============= -- Added new option to specify additional source directory/file : -"-i " -- specify additional directory/file to scan -Example : codescanner -i C:\resources -i C:\includes - C:\sources C:\results - - -Version 2.0.4 -============= -- Updated HTML generation to use '/' instead of '\' when generating -links; this change is needed for Mozilla Firefox compatibility. - -- Added new option to toggle creation of time-stamped directory for -results : -"-t on/off" -- create a time-stamped directory for results; default - is on -Example : codescanner -t off C:\sources C:\results - -- Added new option to configure output format of results: -"-o html|xml|std" -- specify output format : HTML, XML or StdOut; - default output format is HTML -Multiple output formats can be specified at the same time. -Example : codescanner -o xml,html C:\sources C:\results - -- Updated configuration file format to allow user setting the -category and severity of scripts individually. Each element -contains one or more Script elements, each of which corresponds to a -CodeScanner rule. Each Script element has the following attributes: -enable (boolean) – specifies whether a script is enabled by CodeScanner. -severity (string) – specifies the severity level of a script. -category (string) – specifies the category of a script. -Example : - - - - - - - - - -Version 2.0.3 -============= -- Updated HTML generation so that links with the '#' character can be -opened by Mozilla Firefox correctly. - -- Added new options to generate links to LXR server instead of local -file system. The new options are : -"-x" -- specify URL of LXR site -"-r" -- specify LXR version - -Example : codescanner -x http://some.lxr.server/sources/ -r S60_3_2_12 -C:\sources C:\results - -Once scanning is completed, the results will point to the remote -LXR server instead of the local "C:\sources" folder. -*****This new feature has been contributed by James Uther of Nokia***** - - -Version 2.0.2 -============= -- Updated HTML generation so that source file links can be opened by -Mozilla Firefox. - -- Improved handling of function parameter list spanning multiple lines. -Example : -void CMenuBar::MyMenu (const HBufC* a, - const TDesC& b) -{ ... } - -- Improved handling of TRAP block spanning multiple lines. -Example : - TRAPD( - err, - WaitDialogL(aErrorCode) - ); - -- Updated handling of NULL equality check to allow comparison with NULL -in return statement. -Example : - return (ptr != NULL); - -- Updated handling of hard-coded numbers so that '2' is no longer -considered a 'magic number'. - - -Version 2.0.1b -============== -- When checking for leaving functions called in non-leaving functions, -Cases where macros are used for class declarations are now filtered out. -Example : -NONSHARABLE_CLASS(CMyClass) : public CActive -{ ... } - -- When generating individual component report, text containing HTML tags -(eg. , ) are now cleaned up before written to file. This -prevents unintended text formatting. - -- Corrected spelling mistake in usage info. - - -Version 2.0.0a -============== -- This is the first development release of Nokia's version of CodeScanner CLI. -Our goals for this release are to : -1) support feature-functions available in Mobile Innovation's CodeScanner v 1.11 -2) address reported issues - -The following are known issues from CodeScanner v 1.11 : -1) CodeScanner output is not entirely compatible with Mozilla Firefox. -For security reasons, Mozila Firefox and Mozilla Suite do not allow links to -local files (and directories). This includes linking to files on the hard drive, -on mapped network drives, and those accessible via UNC paths. -2) CodeScanner treats 2 as a ‘magic number’. In User Interface code, '2' is -often used to calculate offsets and should not always be replaced by variable. -3) CodeScanner does not ignore CleanupStack::Pop() without parameters -if CleanupClosePushL() or similar utility is used. -4) CodeScanner flags all use of #if in .h files irrespective of context. - -Licensing Notes -=============== -CodeScanner is built with Python 2.5.1 but does NOT use any of the following -files or modules : -python2.5-2.5.1/Lib/test/decimaltestdata/abs.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/add.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/base.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/clamp.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/compare.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/decimal128.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/decimal32.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/decimal64.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/divide.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/divideint.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/inexact.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/max.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/min.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/minus.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/multiply.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/normalize.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/plus.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/power.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/quantize.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/randomBound32.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/randoms.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/remainder.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/remainderNear.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/rescale.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/rounding.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/samequantum.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/squareroot.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/subtract.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/testall.decTest -python2.5-2.5.1/Lib/test/decimaltestdata/tointegral.decTest -/Demo/curses/tclock.py python2.5-2.5.1/Modules/expat/ascii.h -python2.5-2.5.1/Modules/expat/asciitab.h -python2.5-2.5.1/Modules/expat/expat.h -python2.5-2.5.1/Modules/expat/expat_external.h -python2.5-2.5.1/Modules/expat/iasciitab.h -python2.5-2.5.1/Modules/expat/latin1tab.h -python2.5-2.5.1/Modules/expat/utf8tab.h -python2.5-2.5.1/Modules/expat/xmlparse.c -python2.5-2.5.1/Modules/expat/xmlrole.c -python2.5-2.5.1/Modules/expat/xmlrole.h -python2.5-2.5.1/Modules/expat/xmltok.c -python2.5-2.5.1/Modules/expat/xmltok.h -python2.5-2.5.1/Modules/expat/xmltok_impl.c -python2.5-2.5.1/Modules/expat/xmltok_impl.h -python2.5-2.5.1/Doc/html/about.dat -python2.5-2.5.1/Doc/html/stdabout.dat -python2.5-2.5.1/Modules/expat/pyexpatns.h -python2.5-2.5.1/Lib/robotparser.py -python2.5-2.5.1/Lib/ctypes/macholib/README.ctypes -python2.5-2.5.1/Lib/wsgiref.egg-info - -Please refer to the document "python 2_5_1 licenses.txt" for licensing info. - - -This version of CodeScanner is intended for Nokia internal use only. - -Please report any problems found to : -support.carbide@nokia.com - - -Stephen Chong -Nokia Corporation -stephen.chong@nokia.com