(ASDF 3)是否可以递归地在子目录中加载系统?

杜马

我知道使用:modules,但是什么时候嵌套系统呢?相对于一些未知的用户目录,假设我具有以下结构:

foo/
-foo.asd
-bar/
--bar.asd

例如,在使用Git子模块时,可能会出现这种情况。我应该如何配置(defsystem)调用以foo.asd将其bar作为依赖项加载,而无需修改树本身之外的配置文件foo/或不要求对foo/树本身进行特定放置感觉应该很简单。

2020年2月3日:从@斯万的答案,这听起来像我的问题是真的'如何动态地保证foo/bar/双方进入*source-registry*ASDF手册让我觉得这应该做的伎俩:

(asdf:initialize-source-registry 
  '(:source-registry 
    (:tree "«absolute-path-to-foo»/")
    :inherit-configuration))

尽管我还没有看到这种用法的示例。

2020年3月26日:上面的技术似乎很好用,所以我要解决这个问题。ASDF 3非常好。

斯万特

ASDF不在乎.asd文件的相对位置ASDF系统及其依赖项与文件/目录结构完全正交,而对任何源版本控制均无视。

它只是在几个位置查找.asd文件。然后,每个这样的文件都可以包含系统的定义。它通常会递归到配置的文件夹中,因此.asd通常也会在git子模块中找到任何文件。

然后,.asd从文件的位置开始相对于文件内部的组件定义进行定义

在您的示例中,如果:depends-on ("bar")"foo"系统提供一个选项,则无论它在哪里bar.asd(只要它在ASDF可以找到的地方),它都可以工作

如果您有多个版本的库,则需要更多的了解。如果您同时使用“ foo”和“ bar”,而又有稳定版本的“ bar”,例如在quicklisp dist中,则可能会发生这种情况。然后查找顺序开始起作用,但是通常您的“个人”目录优先于“系统”目录,因此同样可以使用要获得更多控制权,您可能需要研究qlot

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ASDF加载可选组件

tmux不加载asdf配置

ASDF系统配置变量?

ASDF正在太多目录中搜索库

如何使ASDF停止尝试加载不存在的文件?

我可以(asdf:load-system:foo),但是asdf仍然抱怨'“ foo”没有指定软件包'

如何确保每次加载系统时ASDF都加载动态外部库?

ASDF输出重定向

Hive是否可以递归地进入子目录而无需分区或编辑hive-site.xml?

父目录的fsync是否可以保证所有递归子目录的元数据同步?

为什么“ asdf” .replace(/.*/ g,“ x”)==“ xx”?

为什么“ asdf” .replace(/.*/ g,“ x”)==“ xx”?

如何获取asdf的版本作为版本

对单个文件使用ASDF的:around-compile

asdf erlang 无法在 macOS 上编译

从子目录递归读取文件,并使用s3或本地文件系统中的spark

仅在网站的子目录中加载内容脚本

如何在子目录中加载模板

如何从Symfony2的子目录中加载模板?

PHP网站-在子目录中加载样式表

有没有一种方法可以递归地搜索嵌套的子目录并在每个子目录上执行命令?

“字段列表”中的未知列“ASDF”...但“ASDF”是一个值

递归列出子目录

Makefile子目录递归

递归地将根目录中的子目录展平并保持一级子目录结构

如何递归grep并忽略子目录的子目录?

s3的spring-integration-aws是否可以复制存储桶子目录?

“下载kerl”后,在Ubuntu上通过asdf安装Erlang失败

无法在MAC OSX Mojave上安装asdf erlang