Subject: New CLISP version

From: haible (Bruno Haible)
Date: Fri, 7 Jan 94 19:25:59 +0100

Once more, there is a new version of CLISP at the usual place:
ma2s2.mathematik.uni-karlsruhe.de:/pub/lisp/clisp/source .

Excerpt from the change log:

Important note
--------------

* Changed bytecode format. All .fas files generated by previous CLISP versions
  are invalid and must be recompiled.

User visible changes
--------------------

* X3J13 votes <186> and <31> are implemented: the Common Lisp Condition System.
  New macros
    DEFINE-CONDITION, IGNORE-ERRORS, HANDLER-CASE, HANDLER-BIND,
    RESTART-CASE, WITH-RESTARTS, WITH-SIMPLE-RESTART, RESTART-BIND,
    WITH-CONDITION-RESTARTS,
  new types
    RESTART, CONDITION, SERIOUS-CONDITION, ERROR, PROGRAM-ERROR, CONTROL-ERROR,
    ARITHMETIC-ERROR, DIVISION-BY-ZERO, FLOATING-POINT-OVERFLOW,
    FLOATING-POINT-UNDERFLOW, CELL-ERROR, UNBOUND-VARIABLE, UNDEFINED-FUNCTION,
    TYPE-ERROR, PACKAGE-ERROR, STREAM-ERROR, END-OF-FILE, FILE-ERROR,
    STORAGE-CONDITION, WARNING,
    SIMPLE-CONDITION, SIMPLE-ERROR, SIMPLE-TYPE-ERROR, SIMPLE-WARNING,
  new functions
    MAKE-CONDITION, SIGNAL, COMPUTE-RESTARTS, FIND-RESTART, INVOKE-RESTART,
    INVOKE-RESTART-INTERACTIVELY, ABORT, CONTINUE, MUFFLE-WARNING, STORE-VALUE,
    USE-VALUE, INVOKE-DEBUGGER, RESTART-NAME,
    ARITHMETIC-ERROR-OPERATION, ARITHMETIC-ERROR-OPERANDS, CELL-ERROR-NAME,
    TYPE-ERROR-DATUM, TYPE-ERROR-EXPECTED-TYPE, PACKAGE-ERROR-PACKAGE,
    STREAM-ERROR-STREAM, FILE-ERROR-PATHNAME, SIMPLE-CONDITION-FORMAT-STRING,
    SIMPLE-CONDITION-FORMAT-ARGUMENTS,
  new variables
    *BREAK-ON-SIGNALS*, *DEBUGGER-HOOK*.
  See impnotes.txt for details. Thanks to David Gadbois who wrote most of this.

* X3J13 vote <40> is partially implemented: New variable *PRINT-READABLY*.

* X3J13 vote <34> is implemented: Arrays and packages may now appear as
  constants in compiled code.

* X3J13 vote <90> is implemented: FUNCTIONP on symbols and conses now always
  returns NIL. The type FUNCTION is disjoint from SYMBOL and CONS.
  (COERCE object 'FUNCTION) is implemented.
  Warning: Old style calls like
    (FUNCTIONP object)
  may need to be converted to
    (OR (FUNCTIONP object)
        (SYMBOLP object)
        (AND (CONSP object) (EQ (CAR object) 'LAMBDA))
    )
  This fixes a CLOS bug: (TYPEP object 'FUNCTION) wasn't equivalent to
  (TYPEP object (FIND-CLASS 'FUNCTION)).

* Two new debugger commands Break+ and Break- permit to set resp. remove
  breakpoints at specified EVAL or APPLY frames.

* Warnings and errors produced by COMPILE-FILE are now accompanied by
  source line number information.

* The sub-char passed as second argument to read dispatch macros is now
  exactly the first non-digit read from the stream. Previously it was its
  upper-case equivalent.

* DEFPACKAGE now accepts an option (:DOCUMENTATION doctring).

* DIRECTORY now accepts a keyword argument :CIRCLE. If it is non-NIL,
  the directory search for ".../" and "**/" wildcards on Unix avoids endless
  loops that may result from symbolic links.

* The variable *LOAD-PATHS* in the Unix versions of config.lsp now uses
  "~/" (the home directory at run time) instead of #"~/" (the home directory
  at installation time). Thanks to Gabor Herr.

* Unix and OS/2 versions: New dangerous functions MAKE-PIPE-IO-STREAM,
  RUN-SHELL-COMMAND and RUN-PROGRAM.

* Unix version only:
  The command shell used by MAKE-PIPE-...-STREAM is now always /bin/sh; the
  environment variable SHELL is only used as interactive shell.
  Fixed a race condition in the functions EXECUTE, MAKE-PIPE-INPUT-STREAM,
  MAKE-PIPE-OUTPUT-STREAM that caused the child process to fail mysteriously.

* Attacks such as  (DO-ALL-SYMBOLS (S) (UNLESS (CONSTANTP S) (SET S NIL)))
  no longer crash CLISP.

* Fixed a CLOS bug: DEFCLASS failed to signal an error if several direct slots
  had identical names.

* Fixed a bug in the reader: When reading hash tables which contain #n#
  references, the hash codes must be recomputed after resolving the
  references. Thanks to Marcus Daniels.

* Fixed a bug in the printer: Printed representations with two different
  #1= definitions could result when PRINT-OBJECT methods were called while
  *PRINT-CIRCLE* was true. Thanks to Marcus Daniels.

Portability
-----------

* Fixed five bugs in the number crunching routines that appeared on
  64-bit processors or in combination with the WIDE tagging scheme.

* More support for 64-bit processors like DEC Alpha.

* Added support for NeXT running NeXTstep 3.1. Thanks to Marcus Daniels.

* Added support for Amiga 3000 running AMIX Unix. Thanks to Michel Loi.

* Fixed a problem with Ctrl-C on HP-UX. Thanks to Gabor Herr.

* Added support for HP9000/300 running HP-UX. Thanks to Gabor Herr.

* Added support for WATCOM C 9.5 on DOS.

* Amiga version: Tolerate memory outside the 27-bit addressable range.

* Remove support for the Atari ST assembly language version CLISP1.

Other modifications
-------------------

* Added some documentation of the GNU readline library.

* Changed the default memory size back from 2.5 megabytes to 2 megabytes.

* Miscellaneous documentation updates.

CLISP now compiles and runs on
* microcomputers:
  * Atari ST/TT
  * Amiga 500-4000
  * DOS
  * MS Windows 3.1
  * OS/2 2.0
* Unix workstations:
  * PC, Linux
  * PC, USL SVR4
  * Sun4, SunOS 4 or 5
  * HP9000/800, HP-UX
  * SGI Mips, Irix 4 or 5
  * DEC Alpha AXP, OSF 1.3
  * DECstation 5000, Ultrix 4.2
  * IBM RS/6000, AIX 3.2
  * M88000
  * Sun386, SunOS 4
  * Sun3, SunOS 4 (?)
  * HP9000/300, HP-UX or NetBSD
  * Apple MacII, A/UX (?)
  * Amiga 3000, Amiga Unix 2.1
  * NeXT, NeXTstep 3.1
  * PC, 386BSD or NetBSD
  * PC, Coherent 4.0
  * Atari ST/TT, MiNT (?)

New binaries have been built for:
   Sun4, SunOS 5.2           982055 Dec  3 sun4-sunos52/clisp.tar.z

Binaries have been rebuilt for the following architectures:
   Linux                    1128826 Jan  7 linux/clisp-english.tar.z
   Linux                    1134023 Jan  7 linux/clisp-deutsch.tar.z
   DEC Alpha AXP, OSF 1.3   1379905 Dec  5 decalpha-osf/clisp.tar.z
   Amiga 500-4000            536424 Dec 11 amiga/CLisp-931211-Part1-high.lha
   Amiga 500-4000            542329 Dec 11 amiga/CLisp-931211-Part1-low.lha
   Amiga 500-4000            532023 Dec 11 amiga/CLisp-931211-Part2.lha

                    Bruno Haible
                    [email-masked]