rename-package
rename-package Function
Syntax:
rename-package package new-name &optional new-nicknames → package-object
Arguments and Values:
package—a package designator .
new-name—a package designator .
new-nicknames—a list of string designators. The default is the empty list.
package-object—the renamed package object.
Description:
Replaces the name and nicknames of package. The old name and all of the old nicknames of package are eliminated and are replaced by new-name and new-nicknames.
The consequences are undefined if new-name or any new-nickname conflicts with any existing package names.
Examples:
(make-package ’temporary :nicknames ’("TEMP")) → #<PACKAGE "TEMPORARY">
(rename-package ’temp ’ephemeral) → #<PACKAGE "EPHEMERAL">
(package-nicknames (find-package ’ephemeral)) → ()
(find-package ’temporary) → NIL
(rename-package ’ephemeral ’temporary ’(temp fleeting))
→ #<PACKAGE "TEMPORARY">
(package-nicknames (find-package ’temp)) → ("TEMP" "FLEETING")
See Also:
make-packageExpanded Reference: rename-package
Basic Usage: Renaming a Package
rename-package replaces the name and nicknames of a package. The old name ceases to work.
(make-package "ALPHA" :use '())
(rename-package "ALPHA" "BETA")
==> #<PACKAGE "BETA">
(find-package "BETA")
==> #<PACKAGE "BETA">
(find-package "ALPHA")
=> NIL
Renaming with New Nicknames
The optional third argument provides new nicknames, replacing any existing ones.
(make-package "ORIGINAL-RP" :nicknames '("ORIG") :use '())
(package-nicknames "ORIGINAL-RP")
=> ("ORIG")
(rename-package "ORIGINAL-RP" "REPLACEMENT" '("REPL" "RPL"))
==> #<PACKAGE "REPLACEMENT">
(package-nicknames "REPLACEMENT")
=> ("REPL" "RPL")
;; Old name and nickname are gone
(find-package "ORIGINAL-RP")
=> NIL
(find-package "ORIG")
=> NIL
;; New nickname works
(find-package "REPL")
==> #<PACKAGE "REPLACEMENT">
Renaming Removes Old Nicknames When None Are Supplied
If the nicknames argument is omitted, all old nicknames are removed.
(make-package "HAS-NICKS" :nicknames '("HN") :use '())
(rename-package "HAS-NICKS" "NO-NICKS-NOW")
(package-nicknames "NO-NICKS-NOW")
=> ()
Package Object Identity Is Preserved
The package object is the same before and after renaming.
(let ((pkg (make-package "BEFORE-RP" :use '())))
(rename-package pkg "AFTER-RP")
(eq pkg (find-package "AFTER-RP")))
=> T