我在depl处使用 (asdf:load-system "app" :force t)
来处理一个包含某些软件包定义的ASD文件,并且(asdf:defsystem "app" ...)
指定文件:组件:组件。加载后,卧式位于:Cl-user软件包中。您如何改为将替补最终以其他包裹的形式结合起来。在各个地方(例如,ASD或组件)添加(包装:my-pkg)尚未工作。
软件包在加载或编译操作期间更改不更改替补的当前软件包。在正常使用中,这将非常烦人。系统也不会用软件包对应1比1,因此可能没有具有相同名称的软件包,并且系统可能具有多个软件包。但是,为了开发便利,您可以将一个函数添加到Init-File(SBCL的~/.sbclrc
),该功能将系统加载并将*PACKAGE*
设置为相同名称的软件包。例如,
(require :asdf) ;Quicklisp also requires ASDF, so you could put this after its init too
(defun l (system-name)
(asdf:load-system system-name)
(setf *package* (find-package system-name)))
该功能将在CL-USER
-Package中。由于这仅用于开发使用,因此可以进行交互处理不存在的系统或软件包的错误。请注意,您应该使用名称而不是字符串的关键字来调用它,或者在调用FIND-PACKAGE
之前的名称。