Common lisp 让asdf加载目录中的所有文件

Common lisp 让asdf加载目录中的所有文件,common-lisp,asdf,Common Lisp,Asdf,有没有一种方法可以让asdf加载目录中的所有文件(*.lisp),而不用在.asd文件中全部命名?在目录或文件名规范中使用通配符是行不通的。有人能帮忙吗?请看: 然后,调用每个文件 但是,你也可以这样做: CL-USER> (loop for f in * collect `(:file ,(pathname-name f))) ((:file "a") (:file "b")) 然后,您可以将其复制到.asd文件中,以便您的依赖关系更加明确。您可以使用ASDF的“包推断系统”扩展名:。

有没有一种方法可以让asdf加载目录中的所有文件(*.lisp),而不用在.asd文件中全部命名?在目录或文件名规范中使用通配符是行不通的。有人能帮忙吗?

请看:

然后,调用每个文件

但是,你也可以这样做:

CL-USER> (loop for f in * collect `(:file ,(pathname-name f)))
((:file "a") (:file "b"))

然后,您可以将其复制到.asd文件中,以便您的依赖关系更加明确。

您可以使用ASDF的“包推断系统”扩展名:。为此,您必须遵守目录和文件命名约定,但它(表面上)更接近于用其他语言组织这些内容的方式


不过,我必须承认,我更喜欢asd文件中的显式布局,因为它将系统、包和文件的概念清晰地分开。

asdf存储库附带了一个asdf/contrib/wild-modules.lisp扩展名,可以实现您所说的功能。我仍然使用包推断系统

CL-USER> (loop for f in * collect `(:file ,(pathname-name f)))
((:file "a") (:file "b"))