работа с asdf системой в заданном окружении
В каком то смысле это продолжение темы "sb-ext:save-lisp-and-die и зависимости" только теперь в контексте slime.
Суть проблемы в том что когда slime запускает свой процесс то значение *default-pathname-defaults* равно c:\emacs-23.1\lisp\
Соответственно в этом случае код из sbclrc который оперирует относительными путями (был в теме "sb-ext:save-lisp-and-die... ") не может разобраться, что к чему т.к в c:\emacs-23.1\lisp\ нет нужных директорий. Это в принципе не страшно т.к можно сделать для него отдельный файл инициализации с абсолютными путями, но если в коде системы где есть попытка открыть файл приблизительно в таком виде "lisp.bmp" тоже ничего не найдется (он ищет в c:\emacs-23.1\lisp\lisp.bmp хотя должен брать эту картинку из загруженной системы).
В доке по slime обозначена возможность указать переменную окружения по средством :env,
я это сделал вот так:
(setq slime-lisp-implementations
'(
(sbcl ("sbcl.exe" "--load" "C:/LISPS/1.0.29/slime-init.lisp") :env ("SBCL_HOME=C:/LISPS/1.0.29/"))
(ecl ("C:/LISPS/ecl/ecl2.exe"))
))
Но это к сожалению ничего не изменило.
Отсюда вопрос как вообще правильно организовывать работу с asdf системой когда требуется соблюдение относительности путей (например у меня в нутри sbcl она лежит в site/test_system)?
По дозреваю, что тут уже и нужен удаленный swank-сервер? или я, страшно намудрил с настройкой просто?
[#]
Да я все таки, что-то намудрил т.к позже у меня все заработало)
Но все равно было бы интересно узнать как правильнее организовывать работу (точнее как общепринято) стоит ли его располагать внутри директории site или держать в произвольном месте но на каждый модуль делать отдельный файл инициализации?