ASDF Best Practices
Faré
fahree at gmail.com
Sat Apr 1 06:33:38 UTC 2017
On Sat, Apr 1, 2017 at 1:54 AM, Mark Evenson <evenson at panix.com> wrote:
> On 4/1/17 06:27, Faré wrote:
>> I've started an ASDF Best Practices document as a response to all the
>> ugly stuff I saw while debugging backward incompatibilities introduced
>> by ASDF 3.3. It is currently in my plan branch:
>>
>> https://gitlab.common-lisp.net/asdf/asdf/blob/plan/doc/best_practices.md
>
> Very cool, and a needed resource to get some idea of the state of Faré's
> brain.
>
> One thing I learned from reading this document is that my use of symbols
> to name and refer to ASDF systems is probably wrong, as it contradicts
> the best practice of using strings for system identity. I like using
> symbols because
>
> (asdf:defsystem democracry
> :depends-on (civil-society press/freedom)
> …
>
> looks much less cluttered than
>
> (asdf:defsystem "capitalism"
> :depends-on ("profit/increasing" "internal-contradictions")
> …
>
> While I can see problems stemming from what package the "democracry"
> symbol gets interned within, I assume that ASDF:DEFSYSTEM goes to great
> lengths to ensure that it is processed in a reasonable manner to guard
> against such problems, therefore system designators as symbols should be
> more or less the same as system designators as strings. Using strings
> as system designators seems to work fine with asdf-3.2.0.
>
> Just to be clear, could someone please illuminate my understanding here
> a bit: why are strings a better practice than symbols here?
>
Symbols work fine. It's just that they are not *canonical*; so it's
not obviously clear that underneath, ASDF them will reduce them to a
lower-case string; or that :SRc srC and "src" are the same thing. The
consing and interning saved by using strings is probably minor in
comparison.
It's a style issues. Others may disagree with my rule. That's a shame,
but as long as they have themselves a good set of principes, that's
their problem.
More information about the asdf-devel
mailing list