4

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.

Hellseher
  • 286
  • 2
  • 10

2 Answers2

5

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" ...)
coredump
  • 37,664
  • 5
  • 43
  • 77
  • Do you have a link to doc for `(asdf:registered-systems)` there is nothing in manual https://common-lisp.net/project/asdf/asdf.html#Function-and-Class-Index – Hellseher Sep 28 '18 at 18:59
  • 1
    @Hellseher I updated the answer, sorry the function is undocumented AFAIK. – coredump Sep 28 '18 at 19:38
1

Also, you can use to have a convenient search through all quickdist's systems, lookup their documentation and dependencies:

http://quickdocs.org

Alexander Artemenko
  • 21,378
  • 8
  • 39
  • 36
  • Thanks, I aware of that source. I'm just building up my tool box of build it functions/variables for studding projects and learning CL. dnf/apt/dpkg/rpm etc. utils for packages on GNU/Linux distributions – Hellseher Sep 28 '18 at 20:52