Products, the Universe and Everything

The Riverblade Developer's Blog

Beth demonstrating Visual Lint at the ACCU Conference 2008  Anna taking part in a discussion panel at the European Software Conference 2007 

Welcome to our developer's blog. We hope that this forum provides an insight into us, our products and how we develop them. Please feel free to write to us if you have anything to add to any of the posts here.

Current Entries | Archives |


LintProject Pro 2.5.3.24 has been released
Monday, January 14, 2013

The following changes are included in this build:

  • Fixed a bug which prevented the output from LintProjectPro from being redirected to a file.
     
  • If Visual Lint is installed, a -i directive for its "Tools\PC-lint\lnt" folder (if any) will be added to the PC-lint command line. This allows .lnt files distributed with Visual Lint to be used within the PC-lint analysis configuration without the need to copy them to the PC-lint installation folder.
     
  • Added support for CodeGear C++ Builder XE3 project files.
     
  • Generated PC-lint analysis command lines now include a -i directive for the "lnt" folder within the PC-lint installation folder (which contains the indirect files supplied with PC-lint) as well as the root folder. As a result, indirect files located within this folder need no longer be copied to the parent folder when selected for use in a std.lnt file [from Visual Lint 4.0.0.190].
     
  • Added the ability to read project settings from NMake and GNU Make makefiles embedded with within Eclipse or Visual Studio (VS2002-VS2012) projects using Microsoft, Intel or GCC based compilers [from Visual Lint 4.0.0.189].
     
  • Added support for Atmel Studio 6 solutions and projects [from Visual Lint 4.0.0.189].
     
  • Optimised the analysis of files with a large volume of analysis results [from Visual Lint 4.0.0.187].
     
  • Quotes are now stripped from preprocessor definitions before writing them to PC-lint project indirect (project.lnt) files [from Visual Lint 3.5.9.191].
     
  • Path delimiters are now normalised when reading solution and workspace files. This fixes a bug where an externally generated Visual Studio solution file failed to be read in the Visual Studio plug-in because the path delimiters it used did not match those reported by the Visual Studio COM interfaces [from Visual Lint 3.5.9.191].
     
  • The Eclipse .cproject file parser now correctly reads the name of the project from the corresponding .project file [from Visual Lint 3.5.8.188].
     
  • Added support for the "PrecompiledHeaderThrough" attribute in Visual C++ 2002-2008 project (.vcproj) files [from Visual Lint 3.5.7.186].
     
  • If a "PrecompiledHeaderThrough" attribute is not present in a Visual C++ 2002-2008 project (.vcproj) file for the file which generates the precompiled header, the inferred filename of the precompiled header is now checked against the header files which actually exist [from Visual Lint 3.5.7.186].
     
  • Added support for Visual Studio 2012 projects [from Visual Lint 3.5.6.184].
     
  • Fixed a bug in the handling of "excluded from build" properties in Eclipse/CDT (.cproject) project files [from Visual Lint 3.5.6.184].
     
  • Added support for Green Hills Eclipse projects [from Visual Lint 3.5.6.184].
     
  • Analysis results produced by PC-lint which contain a line with an erroneous '{' character immediately preceding the source file path are now parsed correctly [from Visual Lint 3.5.4.180].
     
  • PC-lint -D directives corresponding to preprocessor definitions whose value contains spaces are now quoted before being written to project.lnt indirect files [from Visual Lint 3.5.4.180].
     
  • The Visual C++ 2010 project (.vcxproj) file parser can now parse constructs of the form $([System.IO.Path]::GetPathRoot($(MSBuildProjectDirectory))) [from Visual Lint 3.5.4.180].
     
  • If an issue within the analysis results produced by PC-lint cannot be parsed, the resulting internal error will now be allocated an issue ID of 1299 rather than 0 [from Visual Lint 3.5.4.180].
     
  • Fixed a bug in the parsing of additional include properties in Visual Studio 2010 project (.vcxproj) files [from Visual Lint 3.5.3.178].
     
  • Fixed a bug in the parsing of Visual C++ "ExcludedFromBuild" properties [VS2002/2003/2005/2008/2010] [from Visual Lint 3.5.1.172].
     
  • Fixed a bug in the parsing of .vcxproj (Visual Studio 2010) and .cbproj (CodeGear C++) project files files containing user macros [from Visual Lint 3.5.1.172].
     
  • Added support for the MSBuild reserved property $(MSBuildThisFileDirectory) in the parsing of .vcxproj (Visual C++ 2010) and .cbproj (CodeGear C++) project files [from Visual Lint 3.5.1.172].
     
  • Fixed a bug in the expansion of Eclipse build variables [from Visual Lint 3.5.1.172].
     
  • If the active platform is x64 or Itanium, platform specific preprocessor symbols (e.g. _M_X64, _M_IA64, _WIN64, _AMD64_, _M_AMD64 and _IA64_) are now automatically included in the analysis configuration. As a result, they no longer need to be specified in std.lnt to analyse codebases for the Itanium and x64 platforms using PC-lint (in fact the same std.lnt file used for Win32 can be used without modification) [from Visual Lint 3.5.0.171].
     
  • PC-lint integer and pointer size directives (e.g. -si4 -sp4) are now written to project indirect files automatically based on the active platform (e.g. "-si4 -sp4" for Win32 and "-si4 -sp8" for x64) [from Visual Lint 3.5.0.171].
     
  • Added the "CSV" export format [from Visual Lint 3.5.0.171].
     
  • Added support for the Eclipse/CDT build variables ${ProjName}, ${ProjDirPath} and ${WorkspaceDirPath) [from Visual Lint 3.5.0.170].
     
  • Minor changes to HTML report stylesheets [from Visual Lint 3.5.0.167].
     
  • If a PC-lint environment file is not specified within the analysis configuration, a -width(0) directive is now injected into the generated command lines to assist in parsing the raw PC-lint output [from Visual Lint 3.0.0.144].
     

Posted by Anna at 16:09 | Get Link

 

Visual Lint 4.0 has been released
Tuesday, January 8, 2013

Well, it's done - the first public build of Visual Lint 4.0 was uploaded to our website this morning:

As of today, Visual Lint 4.0 replaces Visual Lint 3.5 as the current supported Visual Lint version. Customers with active priority support, floating and site licence subscriptions should already have received updated licence keys for the new version, and upgrades for Visual Lint 1.x, 2.x and 3.x per user licences should become available in our online store shortly. Pricing is unchanged from the previous version.

If you have purchased any full per-user Visual Lint licences since early October, your licence keys are already v4.x compatible so can start using the new version of the software right now without any need to upgrade. If you have purchased any upgrade licences during the same period, you will shortly receive new Visual Lint 4.x compatible licence keys.

Full details of the changes in this version are as follows:

 

Host Environments:
  • Added the standalone Visual Lint application (VisualLintGui) to the installer as an optional component. In addition to the project types supported by the existing Visual Studio or Eclipse plug-ins, VisualLintGui can also analyse projects for environments such as CodeGear C++ Builder for which a dedicated Visual Lint plug-in is not currently available.
     
  • Added support for x64 builds of Eclipse to the Eclipse plug-in.
     
  • Added support for Visual Studio 2012 themes to the Visual Studio plug-in.
     
  • Added support for Atmel Studio 6 to the Visual Studio plug-in. Note that the plug-in is not yet registered with this development environment by the installer, so this must be done manually. Atmel Studio 6 projects can also be analysed using both VisualLintConsole and VisualLintGui.
     
  • Added support for CodeGear C++ Builder XE3 (.cbproj) project files.
     
Installation:
  • Added the ability to install a licence key from a (Unicode or ANSI) text file containing the new licence key during the installation process. This allows licence keys containing non-ANSI characters to be deployed during a silent installation.
     
  • Removed the obsolete "Getting Started Guide".
     
  • Added several custom PC-lint indirect files (including support files for CodeGear C++ Builder, Atmel/AVR Studio and the library "tuning" indirect file lib-rb-win32.lnt) and their dependencies to the installer. Generated PC-lint command lines automatically include a -i directive referencing this folder, so you should not need to copy the installed files to your PC-lint installation folder to make use of them.
     
  • Visual Lint now includes a subset of the indirect files from the PC-lint distribution by kind permission of Gimpel Software. Visual Lint injects a -i directive for the folder containing these files onto the command line, so that any indirect files not present within your PC-lint installation will be found there instead. To override the behaviour of any file within this folder, save a customised copy within your PC-lint installation and PC-lint will use it in preference.
     
  • Updated the manifest in the installer to fix the "This program may not have installed correctly" Windows 7 bug and specify that administrative privileges are required for installation.
     
Configuration:
  • Split the Configuration Wizard "Select Files" page into separate pages for std.lnt and options.lnt.
     
  • Changed the default extension for Solution/Project Analysis Configuration (.vloptions) files to .vlconfig. Where a .vloptions file already exists, it will of course be used in preference for backward compatibility.
     
  • Added the ability to read project settings from NMake and GNU Make makefiles embedded with within Eclipse or Visual Studio projects using Microsoft, Intel or GCC based compilers. If it is not possible to read these properties (e.g. if the makefile requires components which are not available), they will be read from the parent project file where possible instead. [Eclipse, VS2002/2003/2005/2008/2010/2012]
     
  • Added support for preprocessor undefines in Eclipse/CDT project (.cproject) files.
     
  • Generated PC-lint analysis command lines now include a -i directive for the "lnt" folder within the PC-lint installation folder (which contains the indirect files supplied with PC-lint) as well as the root folder. As a result, indirect files located within this folder will no longer be copied to the parent folder when selected for use in a std.lnt file via the Configuration Wizard.
     
  • Added the Configuration Wizard "PC-lint Warning Level" page to allow the PC-lint warning level (-w<n>) to use in newly created std.lnt files to be defined.
     
  • Replaced the Configuration Wizard "Select PC-lint Configuration Files" page with dedicated pages for compiler, library and author options indirect files.
     
  • Added a mechanism to allow the Configuration Wizard to determine which PC-lint indirect files should be included by default within new std.lnt files created by the wizard. The selection is context sensitive based on the project type.
     
  • PC-lint std.lnt indirect files generated by the Configuration Wizard now include comments to describe the purpose of what each directive within the file.
     
  • The Configuration Wizard now offers a default filename for new PC-lint std.lnt files.
     
Analysis:
  • Visual Lint now sets the priority of background analysis tasks directly rather than relying solely on the command line options of the corresponding analysis tool to do so. As a result, analysis tasks for tools such as CppCheck (which do not have a -background or equivalent option) now correctly run at a lower priority than previously, making the IDE more responsive.
     
  • Optimised the analysis of files with a large volume of analysis results.
     
  • When a project with a precompiled header file located outside of the project root is analysed using PC-lint, a -i directive for the folder containing it is now automatically included on the generated command line. This allows PC-lint to correctly locate the precompiled header file.
     
  • Project (e.g. "$(ConfigName)") and system (e.g. "%HOMEDRIVE%") environment variables can now be used in custom analysis options.
     
  • The source file pathnames reported in PC-lint per-project analysis are now fully qualified rather than relative pathnames.
     
User Interface:
  • The About Box now shows the build platform (x86 or x64) as well as the build version.
     
  • Added the ability to enable/disable inline highlighting of code elements referenced in reported analysis issues as well as customise the colours used. Note that: 1) enabling/disabling inline highlighting will not currently take effect in a given editor window until it has been reopened, and 2) changes in the colours will not currently take effect until the environment is restarted. [VS2002/2003/2005/2008/2010/2012] [Visual Lint Enterprise Edition]
     
  • Visual Lint 4.0 builds now show the corresponding version of the Visual Lint online help following installation.
     
  • Updated the icon for the "View Analysis History" button in the Analysis Status Display to reflect that used for the Analysis History Display.
     
  • Added command bitmaps to menus where appropriate.
     
  • Updated the appearance of selected items within the Displays, Options and Configuration Wizard. This change takes effect when Visual Lint is run on themed Windows Vista/Server 2008/7 systems; on unthemed, Windows Server 2003 and Windows XP systems the previous appearance is still used.
     
  • Icons in the analysis results shown within the Analysis Results Display are now greyed along with the text while the analyis of a displayed file is in progress.
     
  • "Stale" and "Incomplete" projects/files are now shown in the Analysis Status Display with greyscale icons to match the text colour.
     
  • Tweaked the category icons used in the displays slightly. Also updated the default icons and colour scheme for Internal and Fatal Error issues.
     
  • The background of icons in list controls (e.g. in the Analysis Status Display) is now painted to match the row background colour when running with visual styles under Windows Vista or later.
     
  • Added the ability to display analysis trends to the Analysis Status Display. The trends available include: since last analysis, over a specified time interval and since a specified date.
     
  • Updated the contents of Analysis Status Display infotips to include details of the issue IDs identified and changes in the number of issues.
     
  • Added infotips to the Analysis History Display giving details of changes in the number of issues in each analysis results set as well as details of the issue IDs identified.
     
  • The text and background colour of rows within the Analysis History Display history list now matches those used within the other displays.
     
  • Removed the "unchanged" and "no issues" trend icons from the Analysis History Display for consistency with the trend icons in the Analysis Status Display.
     
  • Added "Copy Infotip Text" commands to the Analysis Status, Results and History Display context menus to allow the text displayed when hovering over the list control to be copied to the clipboard.
     
  • VisualLintConsole now appends a "(+/-x)" suffix to the text displayed when the analysis of a file or project completes if the issue count has changed since the previous analysis.
     
  • The button controls within the Analysis Status and Results Displays now paint their backgrounds correctly after a theme or system colour change.
     
  • The contents of Analysis Status Display infotips are now truncated at 80 characters per line to prevent unintended line wrapping.
     
  • Added an option to determine whether Visual Lint should use the colour scheme of the host IDE where possible. The option is enabled in Visual Studio 2005 onwards. [VS2005/2008/2010/2012]
     
  • Added a "Configure for..." combobox to the Config Wizard "Analysis Tools" page to allow users of VisualLintGui to select the toolchain they wish to configure it for. The new controls are hidden when Visual Lint is hosted within Visual Studio, Eclipse etc.
     
  • Renamed the "Order" column in the Analysis Status Display as "No.".
     
  • If an explicit selection has not been made in the Analysis Results Display (e.g. via the "File" combobox) the analysis results for the first file in the current project will be displayed.
     
  • The Analysis Results Display now greys issue text and icons for stale files.
     
  • Removed unnecessary updates of the "File" combobox in the Analysis Results Display.
     
  • Revised the titles of several Configuration Wizard pages for consistency.
     
  • Added an option to the "Displays" options page to allow new blog posts on the Riverblade website to be automatically displayed (using the internal browser in the environment where possible) when Visual Lint starts. The schedule is programmable, with the default check for new posts being every 7 days.
     
Commands:
  • Added "Select All" and "Select None" commands to the Analysis Results Display context menu.
     
  • Added keyboard shortcuts to "Select All" (Ctrl+A) and "Select None" (Esc) commands in the Analysis Status, Results and Statistics Display context menus.
     
  • Added "Select All" (Ctrl+A) and "Select None" (Esc) commands to the Analysis History Display context menu.
     
Bug Fixes:
  • Fixed a bug in the marker implementation which manifested in a "An exception has been encountered. This may be caused by an extension" message box when hosted in Visual Studio 2012 RC.
     
  • The "Background Analysis" command in the Visual Studio Solution Explorer now acts on all selected items rather than just the first one.
     
  • Fixed a bug which could case a "Warning: Unable to queue file for analysis" message to appear in the Status View when background analysis was enabled on a file which had up to date analysis results.
     
  • The Analysis Results Display "All files" view now excludes analysis results for files which are stale or excluded unless the corresponding "Include stale/excluded files within analysis metrics" option is active.
     
  • Fixed a bug in the Visual Studio plug-in which could cause the platform of the active solution configuration to be read incorrectly if the configuration contained active projects of more than one platform. [VS2005/2008/2010/2012]
     
  • Modified the startup sequence of the Visual Studio plug-in when hosted in Visual Studio 2005 or 2008 to match that used in later versions rather than that used in Visual Studio .NET 2002 and 2003.
     
  • Fixed a bug which could cause the contents of the Analysis Results Display to be refreshed incorrectly when an issue in a header file was double clicked.
     
  • When a CodeGear C++ (.cbproj) project file is parsed, the "Base" configuration (if any) is now hidden so that it cannot be used as an analysis target.
     
  • If the host IDE for a particular version of a CodeGear C++ (.cbproj) project file is not installed, a later one (if available) will now be referenced for analysis purposes instead.
     
  • Fixed a bug in the Eclipse and Visual Studio plug-ins which could cause code editor markers for issues without fully qualified pathnames to fail to appear.
     
  • Fixed a bug which caused legacy Eclipse/CDT project (.cdtproject/.cdtbuild) project files to be loaded in place of newer .cproject files.
     

Notwithstanding the long list of changes above, there are plenty of changes (e.g. updated report templates) that we unfortunately didn't get a chance to put into this build. We will be going back to those tasks over the next few months, and those for which it is practical to do so will of course be back-ported from our development branch to Visual Lint 4.0.

We welcome any feedback you can offer us on the new version.


Posted by Anna at 12:37 | Get Link