Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Pascal Costanza <pc-99OXBJU6cIpeoWH0uzbU5w <at> public.gmane.org>
Subject: Re: library configuration
Newsgroups: gmane.lisp.cl-pro
Date: Tuesday 28th June 2011 17:38:00 UTC (over 5 years ago)
On 28 Jun 2011, at 17:49, Zach Beane wrote:

> Faré  writes:
> 
>>> I am looking for a portable way to specify configuration for a library
>>> before/during loading with ASDF2.  It would be sufficient if the user
>>> could specify an ALIST (or something similar) somewhere and I could
read/
>>> use it when the library is loaded.  Does ASDF2 have a "standard"
>>> mechanism for library config files (eg where they are, how to handle
them
>>> etc), or should I use something else?  I thought of using *features*,
but
>>> I need actual values instead of merely checking for the presence of
>>> symbols.
>>> 
>> ASDF (1 or 2) does not handle C libraries. Extensions to ASDF do.
> 
> The question is not about C libraries, but how to express and manage
> configuration options that must be initialized before the library is
> built.
> 
> I think the answer for ASDF is "there is no way to express or manage any
> library configuration decisions."
> 
> Hunchentoot also has this issue regarding building with SSL, and manages
> it by checking for :hunchentoot-no-ssl in cl:*features*. For a
> non-boolean option, that's not a workable approach.

One could use a global variable that stores one's own configuration option,
for example as a plist or alist. This would have to be in the
common-lisp-user package, and theoretically clashes with other such
variables. However, this is not substantially worse than potential clashes
of keyword symbols in *features*. Just use a name that is unlikely to be
used by others (for example, by using the ASDF/package name with an
-OPTIONS suffix, or some such).

boundp is your friend to check whether the variable is actually defined,
which could either yield a warning, or assume default options.

Pascal

--
Pascal Costanza
The views expressed in this email are my own, and not those of my employer.
 
CD: 3ms