Subject: Re: strings and characters
From: Erik Naggum <erik@naggum.no>
Date: 2000/03/16
Newsgroups: comp.lang.lisp
Message-ID: <3162232362158363@naggum.no>

* Barry Margolin <barmar@bbnplanet.com>
| Isn't (array character (*)) able to contain all character objects?

  no.  specialized vectors whose elements are of type character (strings)
  are allowed to store only values of a subtype of type character.  this is
  so consistently repeated in the standard and so unique to strings that
  I'm frankly amazed that anyone who has worked on the standard is having
  such a hard time accepting it.  it was obviously intended to let strings
  be as efficient as the old string-char concept allowed, while not denying
  implementations the ability to retain bits and fonts if they so chose.

  an implementation that stores characters in strings as if they have null
  implementation-defined attributes regardless of their actual attributes
  is actually fully conforming to the standard.  the result is that you
  can't expect any attributes to survive string storage.  the consequences
  are _undefined_ if you attempt to store a character with attributes in a
  string that can't handle it.

  the removal of the type string-char is the key to understanding this.

#:Erik