Add section header comments
Add compilation support
Remove full path from verbose output
This is a small Common Lisp script that can be used as a template.
To try it, first install SBCL, GNU CLISP, or ECL for your
distribution, e.g., run
apt install sbcl or
dnf install sbcl as
Then, as a normal user, run:
git clone -q --recursive https://git.sr.ht/~fitzsim/cl-starter-script && \ ./cl-starter-script/start.lisp --help
and you should see:
Usage: start.lisp [-h|--help] [-v|--verbose] [-l|--level LEVEL] [-o|--output FILE] [REST] Common Lisp script Available options: -h, --help print this help text -v, --verbose verbose output -l, --level LEVEL run at LEVEL -o, --output FILE output to FILE Change.
You can compile the script:
cd ./cl-starter-script ./compile.lisp ./start --help
and you should see:
Usage: start [-h|--help] [-v|--verbose] [-l|--level LEVEL] [-o|--output FILE] [REST] Common Lisp script Available options: -h, --help print this help text -v, --verbose verbose output -l, --level LEVEL run at LEVEL -o, --output FILE output to FILE Change.
If anything doesn't work, complain by filing a todo.
The package name is derived from the file name. To start customizing just rename the scipt:
mv start.lisp myscript.lisp ln -sf myscript.lisp compile.lisp
Template for a small Common Lisp utility script.
Meant to be renamed and hacked up.
Runnable from the command line.
Loadable in a REPL.
SBCL, GNU CLISP and ECL support, so far.
Compilation support for SBCL and GNU CLISP.
Self-contained within the recursive checkout directory.
Runnable without an Internet connection after the first Git clone.
Command line option parsing support provided by unix-opts.
Experiment with no :use at all, not even :common-lisp. Interesting, but in practice :use :cl and remove cl: prefixes.
These are tried in order, from fastest to slowest. A cold run results
from first removing the implementation's ASDF cache, for example by
~/.cache/common-lisp/, then running:
A warm is the same command after everything is cached.
|Implementation||Version||Cold Run (seconds)||Warm Run (seconds)|
|GNU CLISP||2.49.93+ (2018-02-18)||1.159||0.871|
Check out cl-launch which unfortunately is not widely packaged by distros.
Also look at Roswell as another potential basis for Common Lisp scripting and lots more.
A great introduction to Common Lisp; explains ASDF and Quicklisp better than anything else I've read:
This PDF fosters a practical understanding of Common Lisp packges. I haven't found it available as a web page:
The Complete Idiot’s Guide to Common LispPackages
Refer to this page to set up a Common Lisp environment on a new machine: