1
;;; swank-asdf.el -- ASDF support
3
;; Authors: Daniel Barlow <dan@telent.net>
4
;; Marco Baringer <mb@bese.it>
5
;; Edi Weitz <edi@agharta.de>
7
;; License: Public Domain
12
(defslimefun operate-on-system-for-emacs (system-name operation &rest keywords)
13
"Compile and load SYSTEM using ASDF.
14
Record compiler notes signalled as `compiler-condition's."
17
(apply #'operate-on-system system-name operation keywords))))
19
(defun operate-on-system (system-name operation-name &rest keyword-args)
20
"Perform OPERATION-NAME on SYSTEM-NAME using ASDF.
21
The KEYWORD-ARGS are passed on to the operation.
23
\(operate-on-system \"SWANK\" \"COMPILE-OP\" :force t)"
24
(with-compilation-hooks ()
25
(let ((operation (find-symbol operation-name :asdf)))
26
(when (null operation)
27
(error "Couldn't find ASDF operation ~S" operation-name))
28
(apply #'asdf:operate operation system-name keyword-args))))
30
(defun asdf-central-registry ()
31
asdf:*central-registry*)
33
(defslimefun list-all-systems-in-central-registry ()
34
"Returns a list of all systems in ASDF's central registry."
35
(mapcar #'pathname-name
37
(loop for dir in (asdf-central-registry)
38
for defaults = (eval dir)
40
nconc (mapcar #'file-namestring
42
(make-pathname :defaults defaults
49
(defslimefun list-all-systems-known-to-asdf ()
50
"Returns a list of all systems ASDF knows already."
51
;; ugh, yeah, it's unexported - but do we really expect this to
52
;; change anytime soon?
53
(loop for name being the hash-keys of asdf::*defined-systems*
56
(defslimefun list-asdf-systems ()
57
"Returns the systems in ASDF's central registry and those which ASDF
59
(nunion (list-all-systems-known-to-asdf)
60
(list-all-systems-in-central-registry)