История изменений
Исправление den73, (текущая версия) :
Мой вариант работает всегда, а твой только в том случае, если asdf не загружен ранее (например, в образ лиспа)
Нет, твой тоже работает не всегда - я приводил пример, когда не сработает.
Но в целом спасибо за замечания! Теперь этот кусок кода выглядит так:
(assert (null (find-package :uiop)))
(require :uiop)
(defconstant *clcon-uiop-user-cache-override* #P"c:/clcon/fasl-cache/asdf/")
(setf uiop:*user-cache* *clcon-uiop-user-cache-override*)
(require 'asdf)
(defun check-output-translations-ok ()
"Call it now and once again at the end of loading to ensure that fasls are placed to a right place"
(assert (equalp (asdf:apply-output-translations "c:/aaa.bbb")
(merge-pathnames "c/aaa.bbb" *clcon-uiop-user-cache-override*))))
(check-output-translations-ok)
....
;и в конце ещё раз
(check-output-translations-ok)
Исходная версия den73, :
Мой вариант работает всегда, а твой только в том случае, если asdf не загружен ранее (например, в образ лиспа)
Нет, твой тоже работает не всегда - я приводил пример, когда не сработает.
Но в целом спасибо за замечания! Теперь этот кусок кода выглядит так:
(assert (null (find-package :uiop)))
(require :uiop)
(defvar *clcon-uiop-user-cache-override* #P"c:/clcon/fasl-cache/asdf/")
(setf uiop:*user-cache* *clcon-uiop-user-cache-override*)
(require 'asdf)
(defun check-output-translations-ok ()
"Call it now and once again at the end of loading to ensure that fasls are placed to a right place"
(assert (equalp (asdf:apply-output-translations "c:/aaa.bbb")
(merge-pathnames "c/aaa.bbb" *clcon-uiop-user-cache-override*))))
(check-output-translations-ok)
....
;и в конце ещё раз
(check-output-translations-ok)