Ошибка происходит от read
, когда он пытается проанализировать всю форму progn
, и видит asdf:
префикс пакета .
. Вы должныload asdf
перед читатель видит код с префиксом пакета asdf:
и load slynk
перед вы используете префикс :slynk
, вДругими словами, передавайте ваши progn
формы в Lisp один за другим (как вы говорите в своем PS).
Другой способ - поместить все внутри вашего progn
в Отдельный файл и загрузите его.Вы также хотели бы сделать переменные "20180708.712"
и 4007
, например,
(defvar *sly-version* "20180708.712")
(defvar *slynk-port* 4007)
(load "load-and-start-slynk.lisp")
и load-and-start-slynk.lisp
:
(load "/home/user/asdf.lisp")
(format t "~% Loaded ASDF")
(push (concatenate 'string "/home/user/.emacs.d/elpa/sly-"
*sly-version* "/slynk/")
asdf:*central-registry*)
(format t "~% Added SLYNK path to ASDF:*CENTRAL-REGISTRY*")
(asdf:load-system :slynk)
(format t "~% Loaded ASDF system")
(slynk:create-server :port *slynk-port* :dont-close t)
(format t "~% Created SLYNK server on port ~D" *slynk-port*)
(setq slynk:*use-dedicated-output-stream* nil)
(format t "~% Set *USE-DEDICATED-OUTPUT-STREAM* to NIL")
PS.Просто чтобы показать, как злоупотреблять силой Лиспа, вот как сделать то, что вы пытаетесь сделать:
(defun load-and-start-slynk (port version)
(load "/home/user/asdf.lisp")
(format t "~% Loaded ASDF")
(push (concatenate 'string "/home/user/.emacs.d/elpa/sly-" version "/slynk/")
(symbol-value (find-symbol "*CENTRAL-REGISTRY*" '#:asdf)))
(format t "~% Added SLYNK path to ASDF:*CENTRAL-REGISTRY*")
(funcall (find-symbol "LOAD-SYSTEM" '#:asdf) :slynk)
(format t "~% Loaded ASDF system")
(funcall (find-symbol "CREATE-SERVER" '#:slynk) :port port :dont-close t)
(format t "~% Created SLYNK server on port ~D" port)
(setf (symbol-value (find-symbol "*USE-DEDICATED-OUTPUT-STREAM*" '#:slynk)) nil)
(format t "~% Set *USE-DEDICATED-OUTPUT-STREAM* to NIL"))
Делать не сделай это.