Reevaluating UIOP:DEFINE-PACKAGE does not resolve conflicting local-nicknames
If I uiop:define-package
with a local nickname p
standing for protest/protocol
, and then evaluate the same uiop:define-package
but with a local nickname p
standing for protest/base
, the local nickname is not modified, and instead a compilation error is signaled:
Cannot add P as local nickname for PROTEST/BASE in TAGBODY-SCAFFOLD: already
nickname for PROTEST/PROTOCOL.
--> PROGN EVAL-WHEN PROG1
==>
(LET ((#:G0
(FUNCALL 'UIOP/PACKAGE:ENSURE-PACKAGE '#:TAGBODY-SCAFFOLD :NICKNAMES
'NIL :DOCUMENTATION 'NIL :USE '(#:CL) :SHADOW '(#:VARIABLE)
:SHADOWING-IMPORT-FROM ...)))
(PROGN
(SETF (SB-IMPL::PACKAGE-SOURCE-LOCATION #) (SB-C:SOURCE-LOCATION))
#:G0))
This means that uiop:define-package
does not remove old local nicknames before attempting to add new ones.