Sorry in advance for not exactly answering your question, but out of curiosity, what would 'conditionally included' entail exactly?

I ask because I've had trouble in the past where I erroneously used #+/#- in order to conditionalize a dependency - eg. define this function if some feature was loaded.
But I ran into two problems. Specifically, stale FASLs:
I had loaded my code after having loaded library X which I conditionally relied on (again via #+/#-).
But on another boot of my lisp image, I did not load library X and got subsequent errors loading the asdf system because the  FASLs were 'stale' in a way ASDF did not know about. 

BTW See ASDF's `:if-feature` option.

Good luck


On Wed, May 18, 2022 at 5:49 AM Didier Verna <didier@didierverna.net> wrote:

  Hi there,

until now, I had a tendency to split a library into several systems
(more or less without thinking much) as soon as such or such feature was
conditional (e.g. depending on CFFI availability, thread support, etc.).

Now I realize that in many cases, a conditionally included module or
component would suffice, and so I'm starting to think that maybe I
should do that, unless it makes sense for the conditional part to be
loaded sort of standalone, independently from the rest, in which case a
subsystem is more appropriate.

So my question is: WDYT, is there a general recommendation about this?

Thanks.

--
Resistance is futile. You will be jazzimilated.

Lisp, Jazz, Aïkido: http://www.didierverna.info



--
Wilfredo Velázquez-Rodríguez