What's New In Cleanscape FortranLint

Version 7.0 Last update: 6-Oct-09

● An external tool, usescan, is provided to allow Flint users to run component tests, defined as a subset of the source files comprising the program. In this manner, users may test only those files they themselves are responsible for, potentially saving considerable time setting up the project and running the analysis.

Given a set of input files and directories to search, usescan will locate the other source files necessary to successfully analyze the input files. It does this by looking for USE or INCLUDE (or #include) statements within the input source files, then recursively searching additional files until all USE and INCLUDE targets are resolved.

In the GUI, this function is enabled by selecting Component Test on the Lint Analysis tab. NOTE: This function can be time and resource consuming, so be sure to uncheck it for large projects if its functionality is not required.

● NEW GUI REPORT: USE HIERARCHY. Display the USE module hierarchy rooted at each calling subprogram. Note that items in normal color (black in this case) are missing their module definitions and can’t be hyperlinked. In such case, try adding Component Test analysis on the Lint Options tab.

● NEW GUI REPORT: INCLUDE TREE. Display the inclusion of header files from either Fortran INCLUDE lines or preprocessor #include directives.

● An external tool, seteditor, has been added to your Cleanscape program’s ‘bin’ subdirectory. Instead of having to request adding an editor via Cleanscape, simply double-click the program and follow the instructions for the three popups. In Unix/Linux, the setup is command-line interactive. Restart the Cleanscape GUI, and your editor will be in the dropdown list on the Reports tab! Newly added editors are stored in file myeditor.lst in $HOME (Unix) or C++lint’s ‘main’ subdirectory (Windows).

● To use hyperlinking:

1. Install and use one of these editors (or add your own – see seteditor above), which support external calls with line numbers:

Borland CodeWright Starbase CodeWright

Crimson Editor Epsilon Programmer's Editor

Emacs GWD Text Editor

GVim MultiEdit

TextPad UltraEdit

Visual SlickEdit Visual Studio .NET 2003*

Visual Studio 6* Visual Studio 2005*

Visual Studio 2008* Visual C++ 2008 Express*

Elvis Nedit (nc)

Emacs Pico *

Jed * Vi *

Joe * Vim *

Nano * Xemacs

* Visual Studio IDEs and text-based Unix editors are not easily controlled via external tools; in all cases, a new instance of the IDE/editor will be started with each link click.

2. Select the editor from the "External Editor" dropdown on the Reports tab in the lower left frame of the GUI.

3. The editor's location may be modified as necessary using the Locate button.

4. Flint: Use "Freeform" as the cross-reference type (also on the Reports tab).

● The GUIs may now be installed and run anywhere.

For command line operation, the Windows installer automatically creates environment variables and adds them to PATH; note you will need to close/restart any command prompts for this to take effect. On Unix/Linux, you still need to set environment variables to run the command line products (FLINTHOME for Flint, CSIHOME for Lplus, and IPTLINT for C++lint, each set to the appropriate ‘main’ subdirectory) and then add them to PATH.

● The default file extension for the Add File dialog can now be specified in the .ini file associated with the product. For instance, setting Default Add File filter = .F in flint.ini will default to files with that extension in the Add Files dialog.

● Section 508 (keyboard-only GUI control) has been implemented: the keyboard accelerator for any supported GUI element is underlined. Functionality and keyboard shortcuts are documented in the GUI manual located in the doc subdirectory.

● Right-click on any filename in the Project window and the file will open in the previously selected External Editor. Also, a tooltip balloon provides the full filename; if the filename doesn't fit the window, the last 40 or so characters are shown and an ellipsis starts the filename.

● A "template" project file containing the settings - but not the filenames – of the GUI session is automatically saved upon exit, then loaded at next GUI start if neither project filename nor -blank are specified.

● A list of up to 9 recent projects is retained and may be loaded from File - Recent Projects.

● The user may now set the maximum report size. The default file size is 10000000 characters. The new value specified by the user must be an integer.

WARNING: An abort may occur if you do not have adequate memory / swap space to load all the reports under your Windows system! Since 10MB represents *2000* single-spaced, typed pages, we urge you to contact support@cleanscape.net to optimize your report sizes in lieu of this option.

● The max report size and/or a .csi file may be specified at the end of the GUI icon command, or at the end of the command to start the GUI if from a command line, e.g.,

flintgui 12500000 ~/myproj.csi &

Adding the full path to and the .csi extension of a Cleanscape .csi file will cause that project to be loaded on GUI startup. This can also be appended to the desktop shortcut on Windows (Properties, append to end of Target string as shown in example to right).

● If no .csi file is specified at startup, Flint loads the "template project" described earlier. To prevent the template from loading, add -blank to the startup.

● Users can now specify font preferences via the flint.ini file located in the ‘main’ subdirectory ($HOME if Unix/Linux).
NOTE: file flint.ini has been updated in version 7.0 and will overwrite any existing version. On Unix/Linux, the user’s local copy in $HOME is backed up first to flint.ini.orig; on Windows, the installer warns you before overwriting so you can back up beforehand.

● Online help updated to capture these changes.

● Seamonkey has been added to the list of browsers searched for if running on *nix.

● A number of bug fixes, cleanups, and control enhancements.