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