1.1 Summary of software changes Several major changes are required to allow Liquid Common Lisp to support international character sets. The following summary introduces the required changes and the motivation for them; these changes are discussed in detail later in this guide.
- Liquid Common Lisp supports double-byte character data.
- To accommodate multibyte characters, Liquid Common Lisp supports double-byte character data. Double-byte character data can be read from and written to files and saved in strings. A double-byte character is considered one character object so that it can be treated in the same manner as single-byte characters. For efficiency, single-byte character streams and strings can be used when double-byte character data are not needed.
- This change requires modifications to the data type hierarchy, including the introduction of specialized subtypes of characters and strings. The new data types are described in Chapter 2, "Data Types and Type Specifiers".
- In addition, Liquid Common Lisp includes new functions to construct and access characters and strings. These functions are described in Chapter 3, "Using Characters and Strings".
- Stream and I/O operations support multiple character sets.
- To support multiple character sets, stream and I/O operations must allow user programs to specify which of several possible external character encoding schemes is being used, and Lisp must correctly map the character data from the external codes to the character objects.
- Liquid Common Lisp now provides a default encoding scheme and allows you to specify different encoding schemes when a file is opened. This change requires the addition of new variables as well as new keyword arguments to the Common Lisp function
open. These changes are described in Chapter 3, "Using Characters and Strings".
- Character objects of type
character retain bits and font attributes as implementation-defined character attributes.
- The Character Subcommittee of X3J13 has dropped the bits and font attributes of characters from the Common Lisp standard; instead, characters can have implementation-defined character attributes. All types, functions, and constants that handle bits and font attributes have been removed from the Common Lisp specification; the existing character-handling functions can accept implementation-defined character attributes as constrained by Common Lisp: The Language, 2nd edition, by Guy L. Steele, Jr. (hereafter referred to as CLtL2).
- To minimize the disruption caused by this change, Liquid Common Lisp will retain bits and font attributes as an extension to Common Lisp. Character objects can have bits and font attributes. The new character data type
augmented-character has been added, which is equivalent to
character except for character I/O operations. Specifically, when
augmented-character is specified as the value of the
:element-type keyword argument to
open and to
make-lisp-stream, bits and font attributes of the character are preserved; for all other element types, bits and font attributes are ignored.
- The new type specifier and changes to character-handling operations are described in Chapter 3, "Using Characters and Strings".
International Character Sets - 9 SEP 1996
Generated with Harlequin WebMaker