Re: Case-sensitivity goals, policy and implementation



Raymond> Look, there's the readtable-case implementation of :invert
Raymond> for gcl!  All gcl needs now is the logic to do the right
Raymond> thing for :invert and print-case :upcase.  :-)

I understand that your preference is towards using the system-supplied
readtable-case. I'd like to point out that we will not be able to
implement (over-)smart case-coercion, eg upcase a symbol name only if
that will match an existing symbol. This could be considered a benefit:-)

ole> (I still think *PACKAGE* should be explicit)

Raymond> Everything in maxima is in the maxima package.  If we ever get
Raymond> multiple packages, we'll have to examine this.

I'd like to think of *PACKAGE* as the default for for the lisp system
proper, and blindly overloading it for the Maxima reader/parser is
likely to cause confusion. I think Maxima should have it's own special
variable *MAXIMA-PACKAGE* for this purpose, it's own readtable and a
special variable *MAXIMA-READTABLE* bound to it.

ole> BTW, I'm wondering about a possible bug in IMPLODE1 - it seems to call
ole> INTERN repeatedly with the same string *STRING-FOR-IMPLODE*, modifying
ole> the string between each call? As I understand the Hyperspec, the
ole> consequences are indefined...

Raymond> Yes, you're right.  These changes will at least fix that problem.

Good!

Ole