- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我经常使用包,导出的符号经常更改它们的名称。当我尝试重新编译包时,我收到如下警告:
package.lisp:3:1:
warning:
MY-PROJECT also exports the following symbols:
(OLD-SYMBOL1 OLD-SYMBOL2 OLD-SYMBOL3)
See also:
Common Lisp Hyperspec, DEFPACKAGE [:macro]
SBCL Manual, *ON-PACKAGE-VARIANCE* [:variable]
--> EVAL-WHEN
==>
(SB-IMPL::%DEFPACKAGE "MY-PACKAGE" '("KE") 'NIL 'NIL 'NIL '("CL") 'NIL
'NIL '("NEW-EXPORTED-SYMBOL1" "NEW-EXPORTED-SYMBOL2") '("MY-PROJECT") 'NIL
...)
我知道我可以使用 (unintern 'old-symbol1)
向系统发出我不想再使用该符号的信号。然而,当有很多重命名时,这变得非常乏味。
我的问题是:
1) 是否可以自动向 sbcl
或 emacs
发送信号到 unintern
旧的/以前导出的符号?
2) 如果不是 - 是否可以在变量中获取所有“旧”符号?
我对 2) 的计划是将键绑定(bind)到 (apply #'unintern *old-symbols*)
最佳答案
将变量 *on-package-variance*
设置为列表 (:error t)
将在重新定义包时给出错误而不是警告。错误将有重新启动 DROP-THEM
以取消导出符号。
你可以添加
(setf *on-package-variance* '(:error t))
到您的 ~/.sbclrc
以在启动 SBCL 时始终设置它。
关于common-lisp - 重命名导出符号的批量 `unintern`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39817934/
我经常使用包,导出的符号经常更改它们的名称。当我尝试重新编译包时,我收到如下警告: package.lisp:3:1: warning: MY-PROJECT also exports the
Common lisp 有一些我无法理解的地方。 假设我正在编写一个与此类似的宏: (defmacro test-macro () (let ((result (gensym)))
“interned”和“uninterned”符号之间有什么区别。是只有 Racket 有未驻留的符号,还是其他方案或 lisp 方言也有它们? 最佳答案 当且仅当它们具有相同的名称时,内部符号才是e
有好几次我遇到过 uninterned symbols 的概念,但我并不完全清楚它们是什么。 有没有办法实习一个用(make-symbol)创建的符号? 我可以在不实习的情况下为符号赋值吗? 是否可以
在 screen cast 中在 Common List 上,作者使用 uninterned 符号作为包名和导出。 (defpackage #:foo (:use :cl) (:export
我是一名优秀的程序员,十分优秀!