PLN CDR draft: Issue 4
1. Issue 4 (Local nicknames of the package being defined)
1.1. Description
It is not clear whether local nicknames of the package being defined should
affect make-package or defpackage.
1.2. Examples
(defpackage #:foo-a (:use) (:export #:x)) (defpackage #:foo-b (:use) (:export #:x)) (defpackage #:bar (:local-nicknames (#:foo-a #:foo-b) (#:foo-b #:foo-a)) (:use #:foo-a)) (package-name (symbol-package 'bar::x)) ; => "FOO-A" (sbcl, ccl, acl, abcl, clasp, lispworks) ; => "FOO-B" (ecl)
1.3. Current behavior
sbcl, ccl, acl, abcl, lispworks: Nothing is affected.
ecl:
:use, :import-from and :shadowing-import-from clauses are affected.
clasp:
:local-nicknames clause is affected by local nicknames introduced by
previous :local-nicknames clauses.
1.4. Proposal NO-EFFECT
Local nicknames of the package being defined must not affect any of the defpackage
clauses (:use, :local-nicknames, :import-from, :shadowing-import-from).
The keyword argument :local-nicknames to make-package must not affect the
:use keyword argument either.