Hi, I'm trying to find all the systems that use a particular subclass of system. The goal is that through that mechanism they signal/register themselves as modules of another system. In order to list all such modules I though map-systems would do the trick: (remove-if #'null (let (results) (asdf:map-systems (lambda (system) (when (stumpwm-module-p system) (setf results (cons system results))))) results)) However it appears map-systems only works on when the system *definition* has been loaded (is that the proper term?). Is there a way to load all the system definitions in asdf's path? (That is according to *source-registry* and *central-registry*) Cheers, Javier -- "I object to doing things that computers can do." — Olin Shivers
Is there a way to load all the system definitions in asdf's path? (That is according to *source-registry* and *central-registry*)
You can try to iterate over: 1- the central-registry, using directory to identify all .asd files in there that haven't been defined by previous entries. 2- the source-registry, consulting the *source-registry* table after having initialized it, once again, shadowing entries previously defined. Now, there may be arbitrary *system-definition-search-functions* that define yet more systems. There may be preloaded systems, for instance, some of them immutable. There may also be plenty of secondary systems as defined by e.g. package-inferred-system, or any other clever sysdef search function. package-inferred-system in particular means that any .lisp file under a package-inferred-system is potentially its own system. So, there you go. If you do it, put the code in github! —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org "To speak algebraically, Mr. M. is execrable, but Mr. G. is (x+1)ecrable." — Edgar Alan Poe
participants (2)
-
Faré
-
Javier Olaechea