frink

What: Frink - Source code formatter

 Where: https://catless.ncl.ac.uk/Programs/Frink/
        https://catless.ncl.ac.uk/pub/frink-2.2.2p4.tar.gz
 Description: Program to prettify (like the indent command) your Tcl/Tk
        program.  Frink can format, minimize and/or obfuscate your Tcl code.
        It can take some forms of your code and convert it to use message
        catalogs (used for internationalization).  It applies a variety
        of heuristics to the code to try to detect possible errors.
        Supports only vanilla tcl - not extensions such as tclX, itcl, etc.
        Does however recognize namespace and interp commands.
        Check the first URL on a regular basis for updates.
        Does not permit commercial use.
        Currently at version 2.2.2p4, with an ancient 2.3.1 alpha also available at the above ftp site.
 Updated: 06/2001
 Contact: mailto:[email protected]  [Lindsay F. Marshall]

This tool by Lindsay Marshall does Static syntax analysis.

See also "debugging" in general.

Frink makes a brief appearance in a UnixReview.com column in April 2002 [L1 ].


Note: Be very careful using frink to reformat your source code. Double check the frink results against the original source. It messes up your code every once and a while.


Question: What flags do you find most useful when using frink to check for errors/warnings?

Answer:

 frink -HJ source.tcl

although I sometimes use

 frink -JF FFFFE source.tcl

to turn off a warning for the construct variable $varname PT

LV I use frink -J -U -H to give me a LOT of possible issues; by the time I've checked them all (and I have run the code through tclchecker), I am ready to move on to looking at algorithm problems...


Peter Newman 25 April 2004: The frink web site doesn't seem to have any Windows Binaries. But there's one in the ASED Tclkit/Starpack. Just download and SDX unwrap that.

EKB 16 April 2005: Another Windows binary is available at http://tclsoap.sourceforge.net/dom-packages.html . (v2.1.5)

17 Feb 2006: http://folk.ntnu.no/tyridal/dist/frink-2.2.2-w32.zip


LV What are your preferences for frink pretty printing arguments?


CGM An unrelated "calculating tool and programming language" going by the same name is described at http://futureboy.homeip.net/frinkdocs/