next up previous contents
Next: File System interface Up: Improvements in Common Previous: Streams

Input/Output

Printing of floating point numbers by the print  function now follows the Common Lisp standard. This means floating point numbers always contain a decimal point and are generally printed with around 18 digits on a system with 64-bit double precision floating point numbers. This insures that printed numbers can be read back in to produce essentially identical values (slightly more digits would be needed to insure absolute equality).

This change may produce output that some find to unreadable. It would be good to be able to control the number of digits used for floating point printing. At present there is a back door mechanism: the variable *float-format*  can be set to a C format string, which will then be used. The old printing approach is equivalent to setting this variable to "%g". I do not know how to implement such an option portably in Common Lisp and I am not sure how important it is, since all model summaries and things like print-matrix  use format . If this turns out to be useful and important, I will change the mechanism to use a Common Lisp format string instead of a C one.

Several new print and read control variables are now used. These are

Two nonstandard variables are also used. If *print-symbol-package*  is non- nil , all symbols are printed with package qualifiers. The variable *readtable-case*  can be used to set the case of the readtable.

The readtable case should be part of the readtable; this will probably be changed to comply with Common Lisp .

The functions read , read-char , read-byte , and read-line  now support eof-error-p arguments.

The reader now uses the keyword package as the default package while processing a features expression specified with the #+ or #- read macros. This means that #+fred and #+:fred are equivalent. The standard symbols in the *features*  list have been changed to keyword symbols.

The format  function has been changed to handle the ~ E , ~ F , and ~ G  directives in accordance with the Common Lisp \ specification. A number of format directives have been added. The new format directives are

Very minimal implementations of the following functions have been added:



next up previous contents
Next: File System interface Up: Improvements in Common Previous: Streams



Luke Tierney
Wed Feb 26 05:25:18 CST 1997