Hi,
I just committed support for package-local nicknames in abcl. This follows the lead of sbcl and lets you introduce short, meaningful nicknames ("XML" for "COM.WHATEVER.FOO.XML-PARSER") in your own packages without fear of package (nick)name collisions.
Here's the example from Nikodemus' documentation:
(defpackage :bar (:intern "X")) (defpackage :foo (:intern "X")) (defpackage :quux (:use :cl) (:local-nicknames (:bar :foo) (:foo :bar))) (find-symbol "X" :foo) ; => FOO::X (find-symbol "X" :bar) ; => BAR::X (let ((*package* (find-package :quux))) (find-symbol "X" :foo)) ; => BAR::X (let ((*package* (find-package :quux))) (find-symbol "X" :bar)) ; => FOO::X
This puts :package-local-nicknames on *features*; I had to increase the fasl version since %defpackage got a new parameter.
Cheers,
Rudi
Thats great!
Thanks a lot for addressing the problem many developers want to be solved. And thanks for coordinating with other implementations!
Best regards, - Anton
01.03.2013, 15:31, "Rudolf Schlatte" rudi@constantly.at:
Hi,
I just committed support for package-local nicknames in abcl. This follows the lead of sbcl and lets you introduce short, meaningful nicknames ("XML" for "COM.WHATEVER.FOO.XML-PARSER") in your own packages without fear of package (nick)name collisions.
Here's the example from Nikodemus' documentation:
(defpackage :bar (:intern "X")) (defpackage :foo (:intern "X")) (defpackage :quux (:use :cl) (:local-nicknames (:bar :foo) (:foo :bar))) (find-symbol "X" :foo) ; => FOO::X (find-symbol "X" :bar) ; => BAR::X (let ((*package* (find-package :quux))) (find-symbol "X" :foo)) ; => BAR::X (let ((*package* (find-package :quux))) (find-symbol "X" :bar)) ; => FOO::X
This puts :package-local-nicknames on *features*; I had to increase the fasl version since %defpackage got a new parameter.
Cheers,
Rudi
armedbear-devel mailing list armedbear-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
armedbear-devel@common-lisp.net