Fwd: Introspecting source registry

Faré fahree at gmail.com
Sun Jun 7 15:44:27 UTC 2015


On Sun, Jun 7, 2015 at 6:09 AM, Mark Evenson <evenson at panix.com> wrote:
> With asdf-3.1.4, how do I introspect the current state of source
> registry configuration?  I need to debug a remote user's ASDF
> configuration on a machine which I don't have access to, so I would like
> to have ASDF output the current source registry configuration search
> state.  Problematically, the behavior documented in section 8.1 doesn't
> seem to be working as described on the user's machine.  And this
> behavior seemingly changes between "patch level" ASDF releases
> especially on marginal platforms like Windows, digging up the "correct"
> version of the manual isn't so easy either.
>
> [1]:
> https://common-lisp.net/project/asdf/asdf.html#Controlling-where-ASDF-searches-for-systems
>
> The contents of ASDF/SOURCE-REGISTRY:*SOURCE-REGISTRY* provides a
> hashtable of systems that ASDF has located, but doesn't help me figure
> out where ASDF *might* have searched for things.  For output
> translations the return value of (ASDF:INITIALIZE-OUTPUT-TRANSLATIONS)
> gives me enough information for output translations, so it would be nice
> to have something equivalent for the source registry.  Since I suppose
> that all of the behavior specified in section 8.1 is not easily
> transcribed as a s-expr, my request may not be trivial to implement, but
> in lieu of some similar mechanism, I am really having problems with
> debugging ASDF behavior in a particular instance.
>
> Additionally, what is the behavior of ASDF when the $XDG_* environment
> variables are not set, as is seemingly the case on a stock Windows
> environment?  Are these configuration steps just skipped?
>
1- Look for asdf::*source-registry-parameter* which will tell you what
ultimate overrides were used, if any.
2- Follow the trail of items in asdf::*default-source-registries*.
  So first, an environment variable CL_SOURCE_REGISTRY, then a
configuration file ~/.config/common-lisp/source-registry.conf (beware:
may be relocated via XDG, and will be somewhere else on Windows), and
the corresponding .conf.d/ directory, then a hierarchy of system
directories. It can be somewhat convoluted, so everyone gets a chance
to tweak the configuration (lisp implementation packager, system
administrator, local administrator, user). But usually, no one uses
any of these mechanisms except the user.

You're using asdf-3.1.4. Its documentation should be what's online
right now, but is also in the release branch of our git repo.

NB: are you on Windows? Things suck more on Windows, and are going to
change in slightly incompatible ways with asdf 3.1.5 (hopefully making
them suck a bit less).

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Welfare: when you love strangers so much you're willing to have government
steal money from another stranger to help them out.



More information about the asdf-devel mailing list