Visual Lint can now be used with VS2005 Intel C++ compiler 9.1 projects (even with the buggy automation interface implementation in this version, which prevented Visual Lint 1.5 from working with this combination of IDE and compiler).
Improved the responsiveness of the user interface by moving a number of analysis event handlers from the UI thread to worker threads. Various consequential changes to thread locking and synchronisation logic. [220.127.116.11]
Added support for additional command line options of the form -I "folder path" within Visual C++ project files. [18.104.22.168]
Added support for Visual Studio variable $(WebDeployPath) in .vcproj project files. [22.214.171.124]
Added support for "AdditionalOptions" within inherited property sheet (.vsprops) files. [VS2002/2003/2005/2008/2010][126.96.36.199]
Added support for Intel C++ Compiler 11.0 projects, which use a different project file format to previous versions. [188.8.131.52]
Added support for PC-lint 9.00 (a PC-lint 9.00 message database is now included in all installations, and the appropriate message database is used based on the active PC-lint version).
Optimised the solution loading process to eliminate unnecessary parsing of analysis results files. [Visual Lint Professional and Enterprise Editions]
Added message 829 ("A +headerwarn option was previously issued for header 'Symbol'") to the PC-lint 8.00 message database.
PC-lint analysis results generated without an environment file (i.e. no env-vc*.lnt file) can now be parsed correctly. [184.108.40.206]
PC-lint project indirect files generated by previous versions of Visual Lint will now be automatically re-generated when the project is loaded. [220.127.116.11]
If the PC-lint options.lnt file is not located in the PC-lint installation folder, a -i directive for the folder in question is now automatically added to the command line (before that for the installation folder) so that references to local indirect files are resolved correctly. [18.104.22.168]
Updated the PC-lint 9.0 message database to include changes (messages 83 and 457) and new messages (1084-1085, 1096-1111 and 1574) included in the updated msg.txt file for PC-lint 9.00d. [22.214.171.124]
Added Visual Lint Enterprise Edition to support more detailed analysis customisation and reporting for enterprise customers. Among the features included in the Enterprise Edition are far more detailed reports, a new Analysis History Display and advanced configuration options such as the ability to preprocess project.lnt files and store analysis configurations directly with each project rather than with the enclosing solution.
Trial installations and development builds now report the effective product edition they are running under.
The use of Intel C++ Compiler projects now requires a Professional Edition licence.
The installer now searches for the PC-lint installation folder. If it cannot be found, a warning page is now shown during the installation process.
Added a "Select Product Edition" page to the installer. This allows the initial effective product edition to be set within the trial period. Once set, the effective product edition can be changed at any time during the trial period.
Added a prerequisites page to the installer to inform the user that a valid PC-lint installation is required, and offer them the choice of whether to search for it.
Once a PC-lint installation has been located by the installer, a registry key identifying it will now be written so that subsequent installations will not need to repeat the same search.
Added checkboxes to the uninstaller to allow the user to determine whether Visual Lint configuration information and commands should be removed on uninstallation.
Updated the Getting Started Guide, readme file etc.
Re-themed the installer and Configuration Wizard. [126.96.36.199]
Updated the version of TeeChart8.ocx packaged within the installer. [188.8.131.52]
The PC-lint 9.00 installation folder registry key (if available) is now used as the default PC-lint installation folder path (this already happens for PC-lint 8.00).
Added the ability to distribute .vloptions files on a per project basis Advanced Solution Analysis Configuration dialog. [Visual Lint Enterprise Edition]
Added support for an optional project.lnt preprocessing step at solution level to the Advanced Solution Analysis configuration dialog. [Visual Lint Enterprise Edition]
Added a "Find it for me" button to the Configuration Wizard "Select PC-lint installation folder" page in the Configuration Wizard.
The Configuration Wizard now performs a check on the new configuration to ensure that all indirect files it references are available, and not duplicated on the command line. If any errors are located, it will attempt to correct them. Note that this operation occurs silently and does not at present provide any user feedback. [184.108.40.206]
Updated the configuration file (platforms.xml) used for environment variable expansion for embedded platforms (Smartphone/Pocket PC 2003, Windows Mobile 5.0 SDK and Windows Mobile 6 SDK). [220.127.116.11]
Updated Platforms.xml with new platform names for Smartphone and Pocket PC SDK. [18.104.22.168]
When an include folder mismatch in the global std.lnt configuration file is detected, Visual Lint can now prompt, automatically update the include folder directives in the file or ignore the discrepency. [22.214.171.124]
Solution and project analysis configuration (.vloptions) files generated by Visual Lint are now formatted in a human readable form. [126.96.36.199]
Backward relative (i.e. beginning with "..\") paths are now supported in .vloptions (Visual Lint analysis options) files. [Visual Lint Professional and Enterprise Editions][188.8.131.52]
Added a "Show files in the lnt subfolder" checkbox to the "Configure Std.lnt" page in the Configuration Wizard. This control allows the user to specify whether indirect files located only in the lnt folder within the PC-lint installation should be shown, or whether only those files which the PC-lint installer copied to the instation folder itself should be visible. The option is automatically selected if no suitable indirect files are found in the installation folder). [184.108.40.206]
Revised the layout of the Configuration Wizard "Select Files" page to make it more obvious that the filename controls apply to both "Create a new configuration file" and "Use an existing configuration file" options. [220.127.116.11]
When a header file is saved, any implementation files which directly or indirectly include it will now be marked as stale (assuming include file tracking is enabled. [Visual Lint Professional and Enterprise Editions]
Added the ability to specify an alternate version of PC-lint when analysing a specific solution. [Visual Lint Enterprise Edition]
Added basic support (/I and/D directives, as well as response files containing them) for additional command line parameters [VS2002/2003/2005/2008].
Improved Visual Studio environment variable handling. In particular, the Visual C++ automation interfaces are no longer used to expand environment variables during project loading and the generation of project.lnt files. If any environment variables cannot be expanded, they are now converted to the operating system form ("%varname%") prior to being written to the project.lnt file.
Per file additional includes are now supported during whole project analysis. Note however that once defined there is no way to undefine them for the following files.
The contents of the global wrap-up during whole project analysis are now distributed to the affected files [Visual Lint Professional Edition].
Added support for distributed code analysis using the IncrediBuild XGE Interfaces Extension Package. [Visual Lint Enterprise Edition][18.104.22.168]
When a file is added/removed from a project, the type of the file is now checked in order to determine whether it should be analysed. [22.214.171.124]
If IncrediBuild 3.32 or later is installed distributed analysis tasks are now shown in the internal IDE Build Monitor and are identified by the filename alone rather than filename and internal task ID. [Visual Lint Enterprise Edition][126.96.36.199]
When the IDE is started, the version of the Xoreax Grid Engine Console (if installed) is now displayed in the "Visual Lint Status" pane in the Output Window. [188.8.131.52]
Any IncrediBuild analysis tasks which complete with errors or warnings will now be coloured red and yellow respectively in the IncrediBuild Build Monitor (note that colouring warnings in this way requires IncrediBuild 3.32 Build 930 or later) Visual Lint Enterprise Edition]. [184.108.40.206]
When a "stop" command is issued to xgconsole (the IncrediBuild XGE executable) it is now echoed to the "Visual Lint Status" pane in the Output Window. [220.127.116.11]
When an IncredBuild control task is shutdown, it no longer attempts to process any outstanding analysis results - ensuring that the shutdown completes faster. [18.104.22.168]
Minor changes to the way IncrediBuild analysis tasks are queued. [Visual Lint Enterprise Edition][22.214.171.124]
If the std.lnt file is not located in the PC-lint installation folder, a PC-lint -i directive for the folder in question is now automatically added to the command line (before that for the installation folder) so that references to local indirect files are resolved correctly. [126.96.36.199]
If exception handling (/GX) is enabled in a Visual C++ project, _CPPUNWIND will now automatically be defined in generated PC-lint project indirect files. [188.8.131.52]
Added the Analysis History Display, which shows (in graphical and list form) the analysis history of a specified file, project or the entire solution. [Visual Lint Enterprise Edition]
When a solution is loaded, the initial stage (project preload) no longer involves reading the project files. As a result, the Analysis Status Display is populated faster on large solutions.
Added a "Product Edition" page to the Options dialog to allow the active product edition (Free, Standard, Professional etc.) to be set by the user during the Trial period. In consequence, the "product edition" controls have been removed from the "Diagnostics" page.
Added a new "Issue Counts by Category" view (bar/pie chart) to the Analysis Results Display [Visual Lint Professional Edition].
Added a new "Issue Counts by No." view (bar/pie chart) to the Analysis Results Display. [Visual Lint Enterprise Edition]
Moved the Solution and Project Lint configuration property pages from the Options Dialog to their own property sheet (accessed via a dedicated command).
Added a "Report" button to the Analysis Results Display. [Visual Lint Professional and Enterprise Editions]
Added a chart colour property to issue categories, for use by charting displays.
Added a "Free Trial" button to the Registration Dialog if a key for a previous version of the software is detected.
Revised issue category icons.
Added icons to the "Project", "File" and "Filter" controls in the Analysis Results Display, Analysis Status Display and Analysis History Display.
Added an "Uninstall Licence" button to the Options dialog "Registration" page.
When a solution is loaded which contains only one project in which background analysis is enabled, the Analysis Status Display will now automatically display the appropriate project.
Improved the 8 bit "Analyse Current File" command image used under VC6, eVC4, VS2002 and VS2003 to match the 24 bit image used in VS2005 and VS2008.
Added a mailing list prompt.
Removed obsolete Analysis Status Display options.
Added the full product name to product related prompts.
Added an option to the "Visual C++" Option page to allow the environment indirect file (env-vc8.lnt etc.) to be specified. By default, Visual Lint will now attempt to use the appropriate file for the host IDE, but if this cannot be located it will select a compatible alternative if available. [184.108.40.206]
Improvements to the Registration Dialog to make it more obvious which previous key (or keys) should be entered to validate an upgrade key. [220.127.116.11]
When the IDE is started, the number of logical processors detected is now displayed in the "Visual Lint Status" pane in the Output Window. [18.104.22.168]
The "Auto-select project" option in the Analysis Status Display is now persistent. In addition, if this option is active when a solution is loaded the display will now automatically reflect the contents of the active window. [22.214.171.124]
The "View" control in the Analysis Results Display is now persistent. [126.96.36.199]
Version information for IncrediBuild is shown in the "Visual Lint Status" pane in the Output Window if the active product edition is Visual Lint Enterprise Edition. [188.8.131.52]
The default subject text in email enquires from the About Box now includes details of the active product edition. [184.108.40.206]
Added a "Delete Analysis Results" command to the Solution Explorer context menu at project and file level [VS2002/2003/2005/2008].
Added a context menu to the Analysis Status Display. In consequence, the "One click activate" style of the Display is now optional, and off by default.
The context menu in the Analysis Results Display now shows lint issues with a single reference on the top level of the menu rather than within a "Go To Reference" submenu.
If the "Delete Analysis Results" command fails, a warning will now be displayed and written to the "Visual Lint Status" pane in the Output Window. Similarly, if the task dialog informing the user that Visual Lint has not yet been configured fails (this has been seen intermittently on one of our test systems), the Configuration Wizard will now be displayed automatically. [220.127.116.11]
Added a "Copy | Issue Text Only" command to the Analysis Results Display context menu. This is identical to the existing "Copy" command (now renamed "Copy | Full (with Source File Info)" but omits the source file information. [18.104.22.168]
Revised the format of Solution Analysis Reports. These now include a summary section (all Visual Lint editions), charts of issue count by category and message and a breakdown showing which projects and files are generating which issues [the latter in Visual Lint Enterprise Edition]. Note that the report schema is not backward compatible to Visual Lint 1.5; please contact us if you have a report stylesheet you need converting to the new format.
Increased the minimum and default report refresh intervals from 1s to 10s and 10s to 60s respectively.
Added options to allow reports to be generated to a user defined location rather than with the analysis results under the solution root folder. [Visual Lint Professional and Enterprise Editions][22.214.171.124]
Increased the minimum report update interval to 60s, and modified the "Auto Refresh Reports" function to guard against repeated calls at short intervals under high CPU loading conditions. [126.96.36.199]
Charts generated as part of HTML reports are now saved as .bmp and then converted to .png using GDIplus, as the lpng.dll used by TeeChart8.ocx to perform this function natively seems to have issues with DEP on Windows Server 2008 and Windows Vista. [188.8.131.52]
File reports are no longer autogenerated as each analysis task completes. [184.108.40.206]
The Visual C++ automation interfaces are no longer used to parse project file details (a cached read of the project file is perfomed instead). As a result, Visual Lint is now less vulnerable to flaws in the Visual C++ automation interfaces.
Corrected a bug in the handling of solution folders within the automation interface [VS2005 and VS2008].
Improvements to the way add-in toolbars are managed in Visual C++ 6.0 and eMbedded Visual C++ 4.0. In particular, the add-in toolbar is now automatically renamed to "Visual Lint" after creation when hosted under Visual C++ 6.0 and eMbedded Visual C++ 4.0.
When a custom category is removed, the issues assigned to it are now correctly ressigned to their default categories. [Visual Lint Professional and Enterprise Editions]
Added default font face/size values for the Output Window configuration in case VC6 or eVC4 doesn't have them in the registry.
Removed a duplicated balloon tip on trial version startup.
Fixed a bug in the handling of project specific environment variables. [220.127.116.11]
Additional include folder specifications delimited by commas (rather than the more usual semicolons) are now handled correctly while generating PC-lint project indirect files. [18.104.22.168]
Section links in the HTML report templates now work with Firefox. [22.214.171.124]
The "Issue Count by Cateory" and "Issue Count By No" views in the Analysis Results Display are now hidden for registered users who do not have access to them (this prevents unwanted elevation prompts which can interfere with keyboard access). [126.96.36.199]
Visual Studio environment variables defined in terms of each other are now expanded correctly. [188.8.131.52]
The analysis completed percentage shown in the Analysis Status Display now excludes stale files. This prevents status oddities such as "Partial (100%)". [184.108.40.206]
Minor corrections to the file save handing code using the include file dependency tracker. [220.127.116.11]
Fixed a control misalignment in the "Visual C++" options page. [18.104.22.168]
Fixed a bug in the VC6/eVC4 project file reader which could cause the UNICODE preprocessor directive to fail to be defined if _UNICODE was already present. [22.214.171.124]
Fixed a potential crash when a project is removed from a solution. [126.96.36.199]
Fixed a bug in the "View Analysis Results" context menu command in the Analysis Status Display which manifested itself in Visual C++ 6.0 and eMbedded Visual C++ 4.0. [188.8.131.52]
Fixed a bug in the handing of project additional command line options which could cause an infinite loop while writing PC-lint project indirect files in some circumstances. [184.108.40.206]
Fixed an intermittent crash on shutdown in Visual Studio 2008. [220.127.116.11]
Removed "Unexpected exception during solution load" message boxes in the retail build (they were originally intended for diagnostic use, and should have been removed before now). The information they contain is still logged within the "Visual Lint Status" pane in the Output Window. [18.104.22.168]
The VC6/eVC4 add-in toolbar creation hook now correctly identifies toolbars in German editions of the IDE. [22.214.171.124]
The "CreateToolbar" registry flag is now always reset regardless of whether the add-in toolbar renaming hook succeeds. This prevents repeated creation of toolbars in some localised versions of Visual C++ 6.0 and eMbedded Visual C++ 4.0. [126.96.36.199]
If Visual Lint is unloaded under Visual C++ 6.0 or eMbedded Visual C++ 4.0 analysis tasks are now shut down correctly and add-in toolwindows are now correctly detached and closed before unloading the add-in. [188.8.131.52]
If the Visual Lint add-in is loaded by the development environment while a solution is open, Visual Lint will now correctly recognise the contents of the solution. [184.108.40.206]
Prevented an unnecessary analysis queue regeneration operation when a file is removed from a project. [220.127.116.11]
Fixed a bug in the expansion of additional include folders during the generation of PC-lint project indirect files.[18.104.22.168]
Fixed a bug in the handling of per-file preprocessor symbols during the generation of PC-lint project indirect files. [22.214.171.124]
Added a check to the project indirect file writer to filter out newlines within project additional options, as these can cause PC-lint to crash if they are encountered in an indirect file. [126.96.36.199]
Fixed a potential crash when an IncrediBuild analysis task is deleted. [188.8.131.52]
Removed a duplicated status message from the "Visual Lint Status" pane when a manual analysis operation is performed. [184.108.40.206]
The Analysis History Display is no longer updated during the progress of each analysis task, as doing so can significantly increase the loading on the UI thread. [220.127.116.11]
The display filter control in the Analysis Status Display is now correctly initialised prior to a solution being opened. [18.104.22.168]
The name of the active configuration is now cached internally, removing the need for repeated calls into the Visual Studio automation interfaces to read it during the loading process. [22.214.171.124]
Visual Lint no longer uses the Visual Studio automation model to determine whether a file is open when analysis completes - instead previous document opened/closed events are used instead for efficiency. [126.96.36.199]
Fixed a potential crash in the Analysis Status Display. [188.8.131.52]
Fixed a bug in the generation of project indirect files using PC-lint under Visual C++ 6 and eMbedded Visual C++ 4.0 (other IDEs and direct generation of these files by Visual Lint are unaffected). [184.108.40.206]
Fixed a bug in the detection of the Visual Assist X "Va View" under Visual C++ 6.0 and eMbedded Visual C++ 4.0. [220.127.116.11]
Added a missing WM_DESTROY handler to the chart control used in the Analysis Results Display. Likewise, TeeChart interface helper objects are no longer held open throughout the lifetime of a reporter object (these are potential fixes for an intermittent crash in TeeChart8.ocx seen on shutdown of Visual Studio 2008). [18.104.22.168]
Corrected the category totals and sort order in the "Issue Count by Project" section of the HTML solution report template. [22.214.171.124]
Added the "mark of the web" to HTML reports to avoid the "active content" warning from the browser when a Visual Lint generated report is opened on the local filesystem. [126.96.36.199]
When a Visual C++ project file containing comma delimited preprocessor definitions (the IDE uses semicolons) is read, the corresponding definitions in the generated PC-lint project indirect file will now be correctly semicolon delimited (this fixes an analysis error when definitions of the form SYMNAME=, are encountered in the project.lnt file). [188.8.131.52]
Fixed a bug which was preventing yellow warning bars from appearing in the IncrediBuild Build Monitor. [Visual Lint Enterprise Edition][184.108.40.206]
System folders such as "$Recycle.Bin" are no longer searched for the PC-lint executable during installation or from the Configuration Wizard. [220.127.116.11]
The lib-ole.lnt indirect file is no longer shown on the "Configure std.lnt" page of the Configuration Wizard as it is automatically included by co-mscxx.lnt. [18.104.22.168]
Fixed a potential deadlock in the interactions between the "Delete Analysis Results" command and the IncrediBuild task scheduler. [Visual Lint Enterprise Edition][22.214.171.124]
Fixed a bug in the PC-lint project indirect file writer which could cause paths such as "..\..\Folder" to be incorrectly resolved. [126.96.36.199]
Fixed a bug in the PC-lint project indirect file writer which could cause paths such as "Folder1\Folder2\..\Folder3" to be incorrectly resolved. [188.8.131.52]
Fixed a bug which would cause a crash if a project file containing files of the form "\\filename.ext" was encountered. [184.108.40.206]
Fixed a bug in the PC-lint analysis results parser which could cause a reference line in a specific walk to be parsed as an analysis issue - leading to an erroneous fatal error in the analysis results. [220.127.116.11]
Fixed a bug in the parsing of analysis results returned by IncrediBuild. [Visual Lint Enterprise Edition][18.104.22.168]
Fixed a bug in the Analysis Results Display which caused the "Categories" control to be configured incorrectly on start-up [Visual Lint Standard and Professional Editions]. [22.214.171.124]
Project configurations which inherit Intermediate and Output Directory values within .vsprops files are now correctly handled. [VS2002/2003/2005/2008/2010][126.96.36.199]
Guarded against malformed -i directives (e.g. /I"Path) in Visual C++ response files. [188.8.131.52]
Corrected the handling of .vsprops files whose location is defined via configuration specific Visual Studio environment files (e.g. "$(SolutionDir) Common_Sources\Win\CompileOptions\$(ConfigurationName)Plugin.vsprops"). [184.108.40.206]
Fixed a bug which was preventing Intel C++ Compiler support from working in Visual Lint Enterprise Edition. [220.127.116.11]
Fixed a bug in the "Delete Analysis Results" menu command in the Solution Explorer. [18.104.22.168]
Modified the IncrediBuild version checking code for compatibility with IncrediBuild 3.4. [22.214.171.124]
If hosted under VS2008 and running on XP, new installations no longer create a linked window frame to contain the Analysis Status, Results and Message Lookup Displays. This avoids a recently identified shutdown crash which appears to be specific to this combination of operating system and development environment. [126.96.36.199]
Visual C++ 2008 project (.vcproj) files created using the "Create Project from Existing Code" wizard are now parsed correctly. Such project files are created with UTF-8 encoding instead of the usual Windows-1252, and it seems that MSXML does not correctly support loading an XML stream with a UTF-8 byte-order mark from a Unicode string. [188.8.131.52]
When a PC-lint issue without an associated source line number is displayed in the Analysis Results Display, the line number is now shown as blank rather than 0. [184.108.40.206]
Local analysis tasks now only report progress when the scheduler is not busy performing other tasks. This should improve performance on n-core high performance systems with "noisy" codebases. [220.127.116.11]
Visual Studio automation model interface pointers are now cached in the context of the calling thread. This reduces the use of the Global Interface Table, and hence simplifies thread synchonisation. [18.104.22.168]
Fixed a potential crash when a project file containing an environment variable defined in terms of itself is encountered. [22.214.171.124]
Fixed a bug in the "Goto Reference" context menu command in the Analysis Results Display which could cause it to perform the wrong action. [126.96.36.199]
Fixed a potential deadlock when the "Excluded from build" property of a file is changed in an unregistered installation. [188.8.131.52]
Fixed a potential deadlock if a file analysis task was stopped while signalling completion to the scheduler. [184.108.40.206]
Corrected a couple of minor bugs in the evaluation of project environment variables. [220.127.116.11]
The Analysis Status Display now reports project status as "Complete" if there are excluded files in the project but all other files have been analysed. [18.104.22.168]
If the IDE include paths differ in case only (as will be the case if KB971092 has been installed), an "Include Folder Mismatch" warning will no longer be displayed. [22.214.171.124]
Fixed a bug in the analysis results parser which was causing Internal Errors in the range 200-299 to be incorrectly categorised as Fatal Errors. [126.96.36.199]
Fixed a bug in the Analysis Status Display which could cause the add-in to become unresponsive. [188.8.131.52]
Fixed a potential crash when a project was unloaded. [184.108.40.206]
Fixed a bug which was preventing the "for-loop compliance" property of Intel C++ Compiler projects from being read correctly. [220.127.116.11]
The "OK" button in the registration key dialog is now disabled until a key has been entered. [18.104.22.168]
Fixed a bug in the parsing of quoted preprocessor symbols within project files. [22.214.171.124]
Fixed a bug which could cause the "Intermediate Files" folder of a project to be incorrectly expanded on the command line. [126.96.36.199]
Fixed a potential crash in the Analysis Status Display. The crash manifested on some installations when a solution was loaded. [188.8.131.52]
XBox 360 project configurations are now interpreted correctly. [VS2002/VS2003/VS2005/VS2008][184.108.40.206]
"Excluded from Build" properties in VC6/eVC4 project files are now read correctly. [220.127.116.11]
Corrected a grammatical error in the "Visual Lint Prerequisites" page within the installer. [18.104.22.168]
The "Copy -> Issue Item Text Only" command on the Analysis Results Display context menu is now correctly disabled when no issues are selected. [22.214.171.124]
Fixed a bug in the project file reader which caused Visual Studio inherited property sheet (.vsprops) files referenced via relative paths of the form "\foldername\filename.ext" to be located incorrectly. [126.96.36.199]
Fixed a bug in the IncrediBuild interfacing task which could cause no threads to be allocated for analysis results processing on single core machines. [188.8.131.52]
Added support for the new "ShowSourceInOutput" attribute introduced in IncrediBuild 3.50 in the XGE XML interfaces used by Visual Lint to perform grid analysis tasks. As the introduction of this new attribute is a breaking change (omitting it results in changed behaviour which prevents Visual Lint from cross referencing analysis results for individual tasks back to the initiating objects), this change is required if grid analysis is to be run with IncrediBuild 3.50 onwards. [184.108.40.206]