asdf-package-system is an
ASDF-extension (pre-3.1) whereby every file is its own system, and starts with a
defpackage from which dependencies are deduced.
ASDF 3.1 now includes package-inferred-system
which supports quick-build and faslpath's style of one-package-per-file. This stub is present for backward compatibility with systems that were trying to
use this feature with ASDF 3.0.
To use asdf-package-system, see the example from lisp-interface-library: at the top of your hierarchy, say foo.com, you'd have a file foo.com.asd that contains:
(in-package :asdf)
#-asdf3 (error "LIL requires ASDF 3 or later. Please upgrade your ASDF.")
(defsystem :foo.com
:description "Software from foo.com"
:class :package-system
:defsystem-depends-on
#.(unless (find-class :package-system nil) '(:asdf-package-system))
:depends-on (:foo.com/bar/all)
:in-order-to ((test-op (load-op :foo.com/test/all)))
:perform (test-op (o c) (symbol-call :foo.com/test/all :test-suite)))
(register-system-packages :foo.com/bar/all '(:foo-bar))
(register-system-packages :closer-mop
'(:c2mop :closer-common-lisp :c2cl :closer-common-lisp-user :c2cl-user)) The latter declarations tell asdf-package-system that package foo-bar is to be found in system foo.com/bar/all, and package closer-common-lisp is to be found in system closer-mop.
Then, in bar/all.lisp, you'd have a file that starts with
(uiop:defpackage :foo.com/bar/all
(:nicknames :foo-bar)
(:use :cl :cl-ppcre :uiop)
(:use-reexport :foo.com/bar/utilities :foo.com/bar/frob :foo.com/bar/main)) And ASDF would detect that it depends on the packages that it uses, while uiop:defpackage would import all the symbols from the given packages and reexport them, but use those from cl, cl-ppcre and uiop without reexporting.
obsolete