gpt4 book ai didi

common-lisp - 如何将所有函数和包声明包含在一个名为 all.lisp 的文件中,用于 asdf 包推断系统

转载 作者:行者123 更新时间:2023-12-02 03:25:28 24 4
gpt4 key购买 nike

因此,在 package-inferred-system 扩展的第 6.5 节中的 asdf 手册/文档中,该示例使用 all.lisp 文件来确定包(我/我们假设它将包含所有函数和包信息对于相应的子目录)。

我想知道的是,在这个 all.lisp 文件中包含所有函数和包声明的“正确”方法是什么。我是否会做一些事情,比如在 all.lisp 文件中包含该子目录的所有函数声明,然后在 asdf 文件中使用 register-system-packages 函数。或者我可以省略 all.lisp 文件,让编译器从文件中推断包(但我是否必须对添加到该系统的每个文件使用 register-system-packages 函数)。

我只是想知道更多关于使用该系统的细节以及向系统添加新文件时必须进行的文件和声明。

对于问题的不透明性,我们深表歉意;我似乎无法掌握这个系统的细节

最佳答案

1- 在 lisp-interface-library/*/all.lisp 中查看它是如何完成的, 使用 uiop:define-package及其 :use-reexport条款。

例如参见 pure/all.lisp :


(uiop:define-package :lil/pure/all
(:nicknames :pure)
(:import-from :lil/interface/all)
(:use :closer-common-lisp)
(:mix :fare-utils :uiop :alexandria)
(:use-reexport
:lil/interface/base
:lil/interface/eq
:lil/interface/order
:lil/interface/group
:lil/pure/empty
:lil/pure/collection
:lil/pure/iterator
:lil/pure/map
:lil/pure/set
:lil/pure/alist
:lil/pure/tree
:lil/pure/hash-table
:lil/pure/fmim
:lil/pure/encoded-key-map
:lil/pure/queue
:lil/pure/iterator-implementation
:lil/pure/map-implementation
:lil/pure/set-implementation
:lil/pure/alist-implementation
:lil/pure/tree-implementation
:lil/pure/hash-table-implementation
:lil/pure/fmim-implementation
:lil/pure/encoded-key-map-implementation
:lil/pure/queue-implementation
))

2- 最近,我建议使用需要 asdf 3.1 而不要使用 asdf-package-system。对于最大的向后不兼容性,使用

#-asdf3.1 (error "<my system> requires ASDF 3.1 or later. Please upgrade your ASDF.")

然后在你的 defsystem , :class :package-inferred-system

3- 我没有密切关注这个论坛。 ASDF 问题可以在 asdf-devel 上找到更快的答案邮件列表。

关于common-lisp - 如何将所有函数和包声明包含在一个名为 all.lisp 的文件中,用于 asdf 包推断系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30608100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com