;;; -*- lisp -*- (in-package :asdf) ;; ASDF system definition for loading the Slynk server independently ;; of Emacs. ;; ;; Usage: ;; ;; (push #p"/path/to/this/file/" asdf:*central-registry*) ;; (asdf:load-system :slynk) ;; (slynk:create-server :port PORT) => ACTUAL-PORT ;; ;; (PORT can be zero to mean "any available port".) ;; Then the Slynk server is running on localhost:ACTUAL-PORT. You can ;; use `M-x sly-connect' to connect Emacs to it. ;; ;; This code has been placed in the Public Domain. All warranties ;; are disclaimed. (defsystem :slynk :serial t :components ((:file "slynk-backend") ;; If/when we require ASDF3, we shall use :if-feature instead #+(or cmu sbcl scl) (:file "slynk-source-path-parser") #+(or cmu ecl sbcl scl) (:file "slynk-source-file-cache") #+clisp (:file "xref") #+(or clisp clozure clasp) (:file "metering") (:module "backend" :serial t :components (#+allegro (:file "allegro") #+armedbear (:file "abcl") #+clisp (:file "clisp") #+clozure (:file "ccl") #+cmu (:file "cmucl") #+cormanlisp (:file "corman") #+ecl (:file "ecl") #+lispworks (:file "lispworks") #+sbcl (:file "sbcl") #+clasp (:file "clasp") #+scl (:file "scl") #+mkcl (:file "mkcl"))) #-armedbear (:file "slynk-gray") (:file "slynk-match") (:file "slynk-rpc") (:file "slynk") (:file "slynk-completion") (:file "slynk-apropos"))) (defmethod perform :after ((o load-op) (c (eql (find-system :slynk)))) (format *debug-io* "~&SLYNK's ASDF loader finished.") (funcall (read-from-string "slynk::init"))) #+sbcl (defmethod operate :around ((o load-op) (c (eql (find-system :slynk))) &key &allow-other-keys) (let ((asdf:*compile-file-failure-behaviour* :warn) (sb-ext:*on-package-variance* '(:warn t))) (call-next-method))) ;;; Contrib systems (should probably go into their own file one day) ;;; (defsystem :slynk/arglists :depends-on (:slynk) :components ((:file "../contrib/slynk-arglists"))) (defsystem :slynk/fancy-inspector :depends-on (:slynk) :components ((:file "../contrib/slynk-fancy-inspector"))) (defsystem :slynk/package-fu :depends-on (:slynk) :components ((:file "../contrib/slynk-package-fu"))) (defsystem :slynk/mrepl :depends-on (:slynk) :components ((:file "../contrib/slynk-mrepl"))) (defsystem :slynk/trace-dialog :depends-on (:slynk) :components ((:file "../contrib/slynk-trace-dialog"))) (defsystem :slynk/profiler :depends-on (:slynk) :components ((:file "../contrib/slynk-profiler"))) (defsystem :slynk/stickers :depends-on (:slynk) :components ((:file "../contrib/slynk-stickers"))) (defsystem :slynk/indentation :depends-on (:slynk) :components ((:file "../contrib/slynk-indentation"))) (defsystem :slynk/retro :depends-on (:slynk) :components ((:file "../contrib/slynk-retro")))