Next: , Previous: , Up: Technical Notes   [Contents][Index]

A.1 Configuration

Some aspects of Clon’s behavior can be configured before the library is actually loaded. Clon stores its user-level configuration (along with some other setup parameters) in another ASDF system called ‘net.didierverna.clon.setup’ (and the eponym package). In order to configure the library (I repeat, prior to loading it), you will typically do something like this:

(require "asdf")
(asdf:load-system :net.didierverna.clon.setup)
(net.didierverna.clon.setup:configure <option> <value>)
Function: configure KEY VALUE

Set KEY to VALUE in the current Clon configuration.

Out of curiosity, you can also inquire the current configuration for specific options with the following function.

Function: configuration KEY

Return KEY’s value in the current Clon configuration.

Currently, the following options are provided.


This option is only useful if you use Slime, and mostly if you plan on hacking Clon itself. The library provides indentation information for some of its functions directly embedded in the code. This information can be automatically transmitted to (X)Emacs when the ASDF system is loaded if you set this option to t. For this to work, there are two things to do first in your (X)Emacs session:

  1. set the Slime variable slime-enable-evaluate-in-emacs to t,
  2. and load the clon Emacs Lisp library. This library is part of the distribution and installed in a standard Emacs Lisp directory by ‘make install’.

If you’re interested to know how this process works, I have described it in the following blog entry:


Some non-ANSI features of Clon require external functionality that may not be available in all contexts. Normally, Clon should autodetect this and switch to so-called restricted mode at build-time (see Non-ANSI Features). If Clon has failed to autodetect the problem (in which case I would like to know), or if for some reason, you explicitly want to disable those features, you may set the :restricted configuration option to t. Another way to do it, without even bothering with configuration is to just use the ‘net.didierverna.clon.core’ system instead of the regular one.


This option is only used by the ABCL port. Dumping Executables, provides more information on its use.

Next: , Previous: , Up: Technical Notes   [Contents][Index]