━━━━━━━━━━━━━━━━━━━━━━━━ PLN CDR DRAFT: ISSUE 4 Gleefre ━━━━━━━━━━━━━━━━━━━━━━━━ 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.