LINUX.ORG.RU
Ответ на: комментарий от archimag

Понятно. В виндовсе сломано, т.е. ставится, при запуске sbcl из консольки оно работает, а при запуске SLIME даёт нулевой эффект, т.е. QL «не найдено» на любую команду. В убунте после перезапуска sbcl сообщение:

debugger invoked on a SIMPLE-ERROR in thread #<THREAD «initial thread» RUNNING
{AACA749}>:
Not an absolute pathname: #P"~/.clc/systems/"

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
0: [TRY-RECOMPILING] Recompile impl and try loading it again
1: [RETRY ] Retry Loading component: («quicklisp» «impl»).
2: [ACCEPT ] Continue, treating
Loading component: («quicklisp» «impl») as having been
successful.
3: [CONTINUE ] Ignore error and continue processing userinit file «/home/reaper/.sbclrc».
4: [ABORT ] Skip rest of userinit file «/home/reaper/.sbclrc».
5: Skip to toplevel READ/EVAL/PRINT loop.
6: [QUIT ] Quit SBCL (calling #'QUIT, killing the process).

(ASDF::RESOLVE-ABSOLUTE-LOCATION-COMPONENT #P"~/.clc/systems/")[:EXTERNAL]
0] 6
;
; compilation unit aborted
; caught 1 fatal ERROR condition
reaper@UVB:~$

Reaper ★★
() автор топика
Ответ на: комментарий от Reaper

В винде я запускаю ql ручками:

CL-USER> (load "C:/Users/david/quicklisp/setup.lisp")
T
CL-USER> (in-package :ql)
#<PACKAGE "QUICKLISP-CLIENT">
QL> 
dave ★★★★★
()
Ответ на: комментарий от Reaper

> В виндовсе сломано, т.е. ставится, при запуске sbcl из консольки оно
> работает, а при запуске SLIME даёт нулевой эффект, т.е. QL «не
> найдено» на любую команду.

Как запускается SBCL? У SBCL есть параметры --sysinit и --userinit, в которых можно настроить конфигурационные файлы. В конфиге по умолчанию должно быть так:

#;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                       (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

Этот код можно заменить на более «надёжный»

#-quicklisp (load #P"/path/to/quicklisp/quicklisp/setup.lisp")

Соответственно, вместо «/path/to» нужно указать реальный путь до каталога с quicklisp.

> Not an absolute pathname: #P"~/.clc/systems/"

Какая версия SBCL? Поддержка относительных путей появилась там совсем недавно.

archimag ★★★
()

в винде у SBCL(и CCL тоже, как минимум) сломан enough-namestring, поэтому при add-to-init-file добавляется неправильный путь(не учитываются логические диски)

я об этом Заку говорил, но он никаких workaround не добавил пока.

Лечится все это добавлением буквы диска, на котором лежит quicklisp:

;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (pathname "d:/path-to-quicklisp/setup.lisp")))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

Остальное все работает. И SLIME нормально работает на винде в т.ч.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.