Subject: Re: acl keyword package nickname weirdness
From: rpw3@rpw3.org (Rob Warnock)
Date: Fri, 02 Jul 2004 06:24:57 -0500
Newsgroups: comp.lang.lisp
Message-ID: <VoqdnTrGB8GU23jdRVn-jg@speakeasy.net>
Christophe Rhodes  <csr21@cam.ac.uk> wrote:
+---------------
| Barry Margolin <barmar@alum.mit.edu> writes:
| >  Kenny Tilton <ktilton@nyc.rr.com> wrote:
| >> Whassup with ACL? Any rationale for that?
| >
| > It simplifies parsing keywords.  Given a token like :FOO, it splits it 
| > into the parts before and after the colon, which are "" and "FOO" 
| > respectively.  Then it does (find-package <part-before>), which expects 
| > it to be the name or nickname of a package.  Giving the keyword package 
| > a nickname of "" means that it doesn't have to be treated as a special 
| > case by the parser.
| 
| But it also changes the parse of tokens like ||:FOO, which I think
| it's harder to argue that intentional.
+---------------

Note that CMUCL-18e behaves like ACL in this regard:

	> (find-package nil)

	NIL
	> (find-package "")

	#<The KEYWORD package, 0/2 internal, 1701/2061 external>
	> (package-nicknames *)

	("")
	> '||:FOO

	:FOO
	> (symbol-package '||:FOO)

	#<The KEYWORD package, 0/2 internal, 1702/2061 external>
	> 


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607