1

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

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

我想我正在寻找的命令是这样的:(asdf:reload-systems)

4

1 回答 1

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
* 

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

有关详细信息,请参阅文档

于 2017-02-15T08:28:15.527 回答