Subject: Re: Sharp with exports in defpackage??
From: rpw3@rpw3.org (Rob Warnock)
Date: Tue, 28 Feb 2006 05:16:00 -0600
Newsgroups: comp.lang.lisp
Message-ID: <9N2dnXhJxr5trZnZRVn-pA@speakeasy.net>
Christophe Rhodes  <csr21@cam.ac.uk> wrote:
+---------------
| rpw3@rpw3.org (Rob Warnock) writes:
| > Another reason to use symbols [whether uninterned or keyword]
| > instead of "NAME" strings is to avoid problems when the user
| > is running with a non-standard READTABLE-CASE mode. When symbols
| > such as #:name are typed in in lowercase, they'll "do the right
| > thing" regardless of whether (READTABLE-CASE *READTABLE) is the
| > CLHS default :UPCASE or the increasingly-popular-when-doing-FFI
| > :INVERT mode. Whereas "NAME" breaks in the latter case...
| 
| No it doesn't.
+---------------

Ouch! You're right. I didn't look carefully enough at *when* casing
got done in this example [in the reader, of course]. And DEFPACKAGE
takes string-designators for all its input symbol arguments anyway,
so they're already in "the right case".

Hmmm... I recall very vaguely from some of the discussions around
here in the past about case-sensitivity that there was a reason for
preferring to use uninterned or keyword symbols over strings, so as
to be more-or-less immune to the READTABLE-CASE, but at the moment
I can't seem to recall the specific situation where this arose.

Mea culpa. "Never mind..."


-Rob

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