There are good functions I use to study Common Lisp projects:
CL-USER> (list-all-packages)
CL-USER> (describe (asdf:find-system "asdf"))
How to list all systems know for asdf
, quicklisp
or sbcl
?
I've tried to dig it from documentation but did not find it yet.
All systems registered in ASDF:
(asdf:registered-systems)
I found that one by typing asdf:systems
and letting auto-completion suggests a name. The symbol is exported, so it is fair game. Apparently it is undocumented.
Quicklisp has a notion of distributions, dists.
(ql-dist:all-dists)
Each dist has different versions (http://blog.quicklisp.org/2011/08/going-back-in-dist-time.html):
(ql-dist:available-versions (ql-dist:dist "quicklisp"))
Each dist provides systems:
(ql-dist:provided-systems (ql-dist:dist "quicklisp"))
Each system has a release, you can list all releases:
(ql-dist:provided-releases (ql-dist:dist "quicklisp"))
Conforming implementation have a list of *MODULES*
, which is useful notably for systems that are available as built-ins by your implementation; for SBCL:
CL-USER> (require 'sb-mpfr)
("SB-MPFR" "SB-GMP")
CL-USER> *modules*
("SB-GMP" "SB-MPFR" ...)