Guile-Lint

Guile-Lint checks syntax and semantics in a Guile program or module.

The aim is to pick up common errors before a program is run, like unbound variables or bad special forms. It's not a substitute for a test suite, but it's good for code that's hard to exercise or still under rapid development. (Caution: Guile-Lint executes some of the code under test, so don't run it on an untrusted program.)

Guile-Lint is free software (free as in freedom), published under the terms of the GNU General Public License (v3 or up).

Read more in the manual (32k, html).

Download version 14 here, as a bzipped tar source file or a Debian package.

The present status is "works quite nicely as far as it goes", with some known limitations on complicated macros or too much dynamic setup stuff. It's unlikely to go much further. Checking while reading doesn't allow much inference about the possible values taken by variables or the argument types or return types of application functions. A better way would be more like a simulated "eval" that threw off a long list of calls made and variables set which could be analysed at the end, but that would be a near complete rewrite.

This page Copyright 2005, 2006, 2007, 2008, 2009, 2011, 2013, 2014, 2015, 2016, 2017, 2020 Kevin Ryde, except for the GPLv3 logo which is Copyright Free Software Foundation and used here in accordance with its terms.