diff -r 509e4801c378 -r 22878952f6e2 srcanamdw/codescanner/release_notes.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srcanamdw/codescanner/release_notes.txt Thu Feb 18 12:29:02 2010 +0530 @@ -0,0 +1,498 @@ +# ################################################################# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +# * Neither the name of Nokia Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.# +# +# ################################################################# + +Nokia CodeScanner Command Line Tool Release Notes +================================================= + +Version 2.1.4 +============= +- Copyright changes done. + +Version 2.1.3 +============= +- Updated the function parser in CodeScanner to improve check for +leaving functions called in non-leaving functions. There should +be less false positives now. + + +Version 2.1.2 +============= +- Added new IAD rule to check flag usage. IA must not use R&D flags +nor feature flags via preprocessor statements in the source code. +This means bldvariant.hrh and productvariant.hrh should not be used. +This new rule is set to low severity in the "Other" category by +default. It can be configured by adding a script element +in the configuration file. +Example : + + + + + + +- Added new IAD rule to check Central Repository usage. IA cannot +assume that the Central Repository is set up fully. This means the +return value of CRepository::get() cannot be ignored. +This new rule is set to low severity in the "Other" category by +default. It can be configured by adding a script +element in the configuration file. +Example : + + + + + + +- Added new IAD rule to check customizable icons. Due to device +customization requirements, IA must not remove any customization +done by the variant team. This means IA cannot include customizable +icons. +This new rule is set to low severity in the "Other" category by +default. It can be configured by adding a +script element in the configuration file. Names of icons can be +specified in the element. +Example : + + + + iconA.bmp|iconB.svg|iconC + + + + + +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 + + + +More information on the syntax of this new element can be found in +the document "CodeScanner_XML_ConfigFile_Spec.doc". + +- 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 commands embedded in comments. The command has the +following format : + 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 the function parser in CodeScanner to filter out constant +initialization. + +- 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.