;;; -*- 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 ;; See commit message and GitHub#502, GitHub#501 for the reason ;; for this dedicated sbcl muffling. #+sbcl :around-compile #+sbcl (lambda (thunk) (handler-bind (((and warning (not style-warning)) (lambda (c) (format *error-output* "~&~@<~S: ~3i~:_~A~:>~%" (class-name (class-of c)) c) (muffle-warning c)))) (let ((sb-ext:*on-package-variance* '(:warn t))) (funcall thunk)))) :components ((:file "slynk-match") (: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-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 (with-standard-io-syntax (read-from-string "slynk::init")))) ;;; 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")))