属:解锁包裹
Genera: Unlocking a Package
没有关于 Whosebug 的 Genera 主题,但我想我会抓住机会,世界上使用它的(可能)5 个人之一可能会在这里;尝试没有坏处。
我已经 运行 遇到这样的情况,我正在使用的一些系统使用漂亮的打印,这在 Genera 上没有实现。通过使用漂亮打印的前身 XP,我设法解决了我自己系统中的问题。查看 xp-code.lisp
中的代码并将其与 CCL 中的代码进行比较,很明显 CCL 从哪里获得其漂亮的打印功能。
一个解决方案,现在被证明是不合适的,是有一个顶级评估,它执行 (xp::install :package my-package)
并从重新定义警告中恢复。问题是当其中一个第三方系统被编译时,他们也抱怨没有实现漂亮的打印功能,所以我不得不在这些其他想要漂亮打印的软件包中安装 XP。
真正需要做的是将 XP 安装在 common-lisp
软件包中,因为所有这些其他系统都将 :use :cl
并期望拥有功能齐全的漂亮打印系统。
但这并不容易; CL
包被锁定,每个 XP 符号需要多次确认和类型 'yes',才能将其放入 CL 包。 External-only Packages and Locking
的文档表明:
To set up an external-only package, it can be temporarily unlocked and
then the desired set of symbols interned in it
但没有说 如何 解锁包裹,而且文档检查器也没有出现太多。
我也不得不停下来想知道我是不是找错了树。 XP 是为 Genera 编写的,并且在平台代码中有条件化。使用 install
函数安装应该不难;我想知道我是否遗漏了一些明显的东西。
有没有人知道如何解锁 CL
软件包,或者在 Genera 中安装 XP 的正确方法?包含的 XP 说明似乎已过时。
我想通了:
(zl:setf (si:pkg-locked (find-package :cl)) nil)
然后您就可以随心所欲地使用 CL
包了。请注意,没有包限定符的 setf
可能是 cl:setf
,这与 zl:setf
完全不同,不会起作用。
没有关于 Whosebug 的 Genera 主题,但我想我会抓住机会,世界上使用它的(可能)5 个人之一可能会在这里;尝试没有坏处。
我已经 运行 遇到这样的情况,我正在使用的一些系统使用漂亮的打印,这在 Genera 上没有实现。通过使用漂亮打印的前身 XP,我设法解决了我自己系统中的问题。查看 xp-code.lisp
中的代码并将其与 CCL 中的代码进行比较,很明显 CCL 从哪里获得其漂亮的打印功能。
一个解决方案,现在被证明是不合适的,是有一个顶级评估,它执行 (xp::install :package my-package)
并从重新定义警告中恢复。问题是当其中一个第三方系统被编译时,他们也抱怨没有实现漂亮的打印功能,所以我不得不在这些其他想要漂亮打印的软件包中安装 XP。
真正需要做的是将 XP 安装在 common-lisp
软件包中,因为所有这些其他系统都将 :use :cl
并期望拥有功能齐全的漂亮打印系统。
但这并不容易; CL
包被锁定,每个 XP 符号需要多次确认和类型 'yes',才能将其放入 CL 包。 External-only Packages and Locking
的文档表明:
To set up an external-only package, it can be temporarily unlocked and then the desired set of symbols interned in it
但没有说 如何 解锁包裹,而且文档检查器也没有出现太多。
我也不得不停下来想知道我是不是找错了树。 XP 是为 Genera 编写的,并且在平台代码中有条件化。使用 install
函数安装应该不难;我想知道我是否遗漏了一些明显的东西。
有没有人知道如何解锁 CL
软件包,或者在 Genera 中安装 XP 的正确方法?包含的 XP 说明似乎已过时。
我想通了:
(zl:setf (si:pkg-locked (find-package :cl)) nil)
然后您就可以随心所欲地使用 CL
包了。请注意,没有包限定符的 setf
可能是 cl:setf
,这与 zl:setf
完全不同,不会起作用。