패키지를 많이 사용하며 내 보낸 기호는 종종 이름을 변경합니다. 나는 패키지를 다시 컴파일 할 때 나는이 같은 경고를 얻을 :이름이 바뀐 수출 기호에 대한 벌크`unintern '
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) 자동 unintern
이전/이전에 내 보낸 문자에 sbcl
또는 emacs
에 신호를 할 수 있습니까?
2) 그렇지 않은 경우 변수에 "오래된"기호를 모두 가져갈 수 있습니까?는
2에 대한 나의 계획은) 당신이 문자 unitern 할 생각하지 않는 키를 (apply #'unintern *old-symbols*)
'* on-package-variance *'를'(list : warn nil : error t)'(변수에 대한 설명 참조)로 설정하면 기호를 삭제할 수있는 옵션이 생깁니다. – jkiiski
이것은 올바른 방향 인 것으로 보이지만 여전히 작동하게 만들 수는 없습니다. 나는': warn '을'nil'으로,': error'를'nil'으로 설정하려고 시도했습니다 ... 어떤 제안도 환영합니다 ... – tsikov
': error t'을 설정해야합니다. 그렇지 않으면 다시 시작하지 않습니다. – jkiiski