重新加载组件列表

时间:2017-02-14 09:40:04

标签: common-lisp asdf

这是我的工作流程:我的emacs中有一个正在运行的REPL,我创建了一个新系统。当我尝试使用(asdf:test-system :system)测试系统时出现Component :SYSTEM not found错误。当然,当我重新启动lisp图像时,会找到该组件。

我的问题是:我可以向ASDF发信号通知~/common-lisp/目录中有新系统吗?

我想我要找的命令就像:(asdf:reload-systems)

1 个答案:

答案 0 :(得分:2)

清除配置在加载系统时有效。希望这也适用于测试它们:

* (asdf:load-system :test)

debugger invoked on a ASDF/FIND-SYSTEM:MISSING-COMPONENT in thread
#<THREAD "main thread" RUNNING {1001E0E533}>:
  Component :TEST not found

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

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Retry ASDF operation.
  1: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
  2: [ABORT                        ] Exit debugger, returning to top level.

((:METHOD ASDF/OPERATE:OPERATE (SYMBOL T)) ASDF/LISP-ACTION:LOAD-OP :TEST) [fast-method]
0] 

使用restart #1 可以在此处运行。但你也可以自己做:

* (asdf:clear-configuration)

NIL
* (asdf:load-system :test)

T
* 

请注意,默认情况下仅支持来自ASDF 3.1.2的~/common-lisp/路径,您可能需要检查哪个版本是您的。

详情see the documentation