Home What's New in FortranLint Home


Core and GUI Enhancements
Command Line See the changelog for core details.
- Adds Fortran 2008 intrinsics, enumerations, and IMPORT
- Per-line suppression of Flint messages with magic comments (more below)
- Enhacements to filtflint for large projects (see below)
- Cyclomatic complexity v(G) and number of statements for each procedure in your program!

GUI See this screengrab of the new GUI.
- Snapshot window shows color-coded status, number of errors, trands
- Hyperlinked cyclomatic complexity data in Statistics report
- Filter results for just files of interest

Per-line message suppression
This release implements magic comments, which allow you to disable a message(s)
on a line-by-line basis. This is surgical precision compared to -O on the command
line, which eliminates the specified message everywhere in the program.

Format of a magic comment (C, c, or * may be used instead of ! at start):

!FLINT -O<msg_num>[, msg_num2, ...] ! Optional commentary
Location of a magic comment: Immediately above the sourceline reported by Flint as the cause of the associated
error message. No intervening blank lines or comments.

Enabling magic comment processing: There are two approaches; specify one on the command line:

flint -MmagicCom  ...  # enable magic comments
flint -MmagicShow ...  # enable and output informational message to stderr. Implies magicCom
Example: The following comment disables messages #480 and 482 on line 37 of a Fortran file:
!FLINT -O480,482 ! OK to suppress these messages. Reviewer: Tom Smith, 5-Apr-23
      Y1 = X1 * 2
We then run
flint -MmagicShow ng_ptr1.f
which results in the suppression of messages on Line 37 and provides the informational message to stderr
that the suppression occurred for just X1 and Y1, while the same messages occur for X2 and Y2:
ng_ptr1.f
=== Skipping msg #480 due to magic comment for line 37 of ng_ptr1.f

*******************************************************************************
   Subroutine FOO                       File ng_ptr1.f            Line 17
   
>         Y2 = X2 * 2
>              ^
ng_ptr1.f:FOO line 38:
Usage  ERROR #480- local pointer based variable X2 is referenced but never set.
=== Skipping msg #482 due to magic comment for line 37 of ng_ptr1.f
   
>         Y2 = X2 * 2
>         ^
ng_ptr1.f:FOO line 38:
Usage  WARNING #482- local pointer based variable Y2 is set but never referenced.

Save time on large projects!
Many Fortran projects have large, stable bases of source, and changes are made to just a couple files
at a time. Now you can review those changed files in the context of the entire program without viewing
the details for the entire sourcebase!

Example: A large quantum chemistry solver consists of 330 files and 65 MB of source code.
Flint's initial run, which included our compete cross reference and call tree, took only 15 seconds yet
generated is 1,553,276 lines of output - the equivalent of 65 novels! (Sidebar: Why was the analysis so large?)

Filtering only for two UUT files, the size drops to only 3140 lines - a novella - but you get the full global
information that is only possible if running against the entire sourcebase.

Doing it is easy: You run Flint for all the reports you want, then call program filtflint. See an example here.
A whitepaper describing this process is forthcoming. For now, check the filtflint's help listing by typing

filtflint -?
at a command prompt, or contact us here. Pure 64-bit build!
Flint now has a 100% pure 64-bit build for Windows, Linux, and Mac. Download the command line or
GUI version with "x64" in the name on the Downloads page. FREE demo with no key requirement!

Some points of note:
1a. Flint/Linux requires glibc_2.14 or later. As this dates back to 2011, we feel it a safe compromise.
1b. Flint/mac was built under Mojave, and we are not able to test on different versions of MacOS.
      Notify us if this build doesn't work for you.
2. The xlint source level browser is fully deprecated and will not be available with this release,
     but remains available and supported with the 32-bit version.
3. If either of these conditions are an issue for you, let us know, and proceed with the legacy version.
4. Both 32- and 64-bit versions will be maintained for the foreseeable future. 32-bit builds are now by request only.

Get notified your license is expiring
Flint license expiration can often be tied to the original installation date, not the day annual maintenance
is expiring, which can be frustrating for some customers. To assist, Cleanscape now provides a utility
that can tell you when your license is set to expire - and even email you!

The program is called elmalert. To see the current status onscreen, type

elmalert64 -v 07
More advanced features to check out would be -x (number of days prior to expiration to get an alert)
and -m (email the alert); these are shown in the last example on the manpage.

The utility is in the latest x86_64 distros below; to download the utility (64-bit) and the manpage,
click here.


Other recent news:
- Latest on Flint GUI
- Latest capability in Flint core
- Latest FAQ

Note: Version 7 contains a demo version which does not require a key! This means easier
installation and instant access for our evaluation users. Once you purchase, you simply run script
ConvertToFull - no need for another download! - for full access to all analysis results, but requires
an activation key.