这是我的工作流程:我的emacs中有一个正在运行的REPL,我创建了一个新系统。当我尝试使用(asdf:test-system :system)
测试系统时出现Component :SYSTEM not found
错误。当然,当我重新启动lisp图像时,会找到该组件。
我的问题是:我可以向ASDF发信号通知~/common-lisp/
目录中有新系统吗?
我想我要找的命令就像:(asdf:reload-systems)
答案 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/
路径,您可能需要检查哪个版本是您的。