mcna/ironclad — comment on commit 5baab70edbf71bf58f7ae1b629af5daf11033669
File:  line 0
By hanshuebner:

On Sun, Dec 18, 2011 at 4:17 PM, Nathan Froyd

wrote:
> OK, then, so before, we had:
>
> (intern (format nil "blahblah/UPPERCASE"))
>
> and after your patch we have:
>
> (intern (format nil "blahblah/~A" '#:uppercase))
>
> and after reading your description, my understanding is that both of these forms will wind up interning the symbol with name "blahblah/UPPERCASE".

This is true for Lisps running in normal, ANSI-compliant modes. In
Allgro CL's "modern" mode, though, the reader preserves the case of
symbols. Thus, :Foo would be eq to :|Foo| and distinct from :foo or
:FOO. By not putting the static string parts of interned symbols into
strings, but into uninterned symbols, ANSI compliant lisps will
transform the symbol into upper case and ACL in "mordern" mode will
preserve its case, resulting in all-lowercase symbols (all CL symbols
and everything else is written in lowercase in Allegro CL, so they're
in lower case).

I know how sucky this is, and in fact I'm trying to move our project
away from modern mode. Nevertheless, the patch should be good if
anyone is ever forced into "modern" mode for some reason.

Thanks!
Hans