`uiop/package:define-package` 和 `defpackage` 之间的区别?

Difference between `uiop/package:define-package` and `defpackage`?

在带有 ASDF 的 Common Lisp 中,uiop/package 中的 define-packagedefpackage 宏有什么区别?

UIOP 的条款更多。

https://common-lisp.net/project/asdf/uiop.html#UIOP_002fPACKAGE

define-package supports the following keywords: use, shadow, shadowing-import-from, import-from, export, intern -- as per cl:defpackage.

那些是相同的。但是文档字符串的其余部分介绍了更多:recyclemixreexport

我使用了 reexport 这使得以下操作更容易:您不想完全 use 包 A(例如,Alexandria)。您想要导入几个符号(很简单,使用 import-from),并且您还想导出它们(也很简单,使用 export)。但在这样做时,你必须写两次符号。 reexport 保存重复。

我听到有人抱怨 defpackage 在某些情况下无法重新加载包,define-package 工作正常,但我没有遇到这种情况。