From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!ossa.telenet-ops.be!nmaster.kpnqwest.net!nreader3.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: [not so] basic package question References: <3CC0C3D8.C76B0F00@interaccess.com> <4lmbi5q1f.fsf@beta.franz.com> <3CC7D09E.42A2AC89@setf.de> <3CC860AB.547EA4A5@setf.de> Mail-Copies-To: never From: Erik Naggum Message-ID: <3228767928477880@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 41 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 25 Apr 2002 23:58:48 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader3.kpnqwest.net 1019779128 193.71.199.50 (Fri, 26 Apr 2002 01:58:48 MET DST) NNTP-Posting-Date: Fri, 26 Apr 2002 01:58:48 MET DST Xref: archiver1.google.com comp.lang.lisp:32329 * Kent M Pitman | This is just not a difficult problem. | SUGGESTION: JUST DON'T USE NON-PORTABLE STUFF. This is the wrong response to the situation. It is often necessary to use non-portable stuff to get the job done. It is not even sufficient to say "non-standard", because many interesting things are not standardized. To make this as precise as possible, I think the most _accurate_ term should be "anti-standard" or "counter-standard". If the standard mandates something, do it that way. If no standard mandates something, do it any way you want. | There is simply no good programming need for non-portable naming. It is | a contrived problem. I actually disagree on this. The problem is very real: When you set up a case sensitive reader, and that _is_ an option in the standard, the only way to type lower-case symbol names and get the standard symbols is to use :invert, which only inverts monocase symbol names. This means that (symbol-name ) may be exactly what you want, or the inverted version of what you want if it happened to be monocase. The only option is to use some other function than symbol-name to retrieve the name of the symbol, and then you need some other function than intern to make a new symbol, which effectively inverts it before calling the regular intern. This is an annyoing waste. As a user-code programmer, the only solution is to make your own abstraction for symbols, which leads to messy interaction with other systems. As a systems-code programmer, you should instead provide the necessary features and facilities to choose a lower-case _view_ of the standard symbols and their names. This is what I have been working with. In any case, the _actual_ internal symbol name is immaterial as long as cl:intern and ecl:symbol-name both work with upper-case symbol names for the common-lisp-package. What it _actually_ is underneath should not concern anyone: that is _not_ what the standard mandates. /// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief. Post with compassion: http://home.chello.no/~xyzzy/kitten.jpg