Comment 8 for bug 1307180

Revision history for this message
Faré (fahree) wrote :

I'm not sure what you're requesting exactly. This function SYSDEF-PACKAGE-SYSTEM-SEARCH is an essential part of ASDF/PACKAGE-SYSTEM. It can't be removed from 3.1 without breaking this new facility.

For compatibility with 3.0.3, systems that depend on the package-system facility use :defsystem-depends-on (:asdf-package-system) which ought to provide this compatibility, including registering said function ASDF/PACKAGE-SYSTEM:SYSDEF-PACKAGE-SYSTEM-SEARCH. Is that not working? I just tested a minute ago, and it worked fine for me.

Are you actually requesting the asdf/package-system facility to be removed from 3.1? I would very much like it to remain, and I'm sure so do drewc and nyef, and possibly other users I don't know of.

You should be able to keep running quicklisp-controller with ASDF 3.0.3; when introspecting a package-system, the asdf-package-system extension will have been loaded by the defsystem form based on the :defsystem-depends-on declaration.

If you want to fully support these systems, my first comment explains how to do it:

0- use load-asd to load each relevant .asd file

1- detect systems that were defined, check if any of them is of type package-system. If you don't want to rely on either asdf 3.1 or asdf-package-system being always loaded, you can use
   (uiop:if-let (ps (uiop:find-symbol* :package-system :asdf/package-system nil)) (typep system ps))

2- if so, scan for all .lisp files under that hierarchy that are all lowercase and add them to the system list, using e.g. the **/*.lisp pattern, or something similar to asdf::collect-sub*directories-asd-files if you want to exclude duplicates from source control on an old _darcs/ or .svn/ checkout or similar.

3- for each of them the files you found, register a secondary package-system, and query its dependencies.

If you don't want to fully support these systems, you should be able to survive by collapsing them under their primary-system-name.

I don't understand how this SYSDEF-PACKAGE-SYSTEM-SEARCH is otherwise interfering with quicklisp-controller.