Subject: New version of old CLISP

From: haible (Bruno Haible)
Date: Tue, 4 Apr 95 15:23:53 +0200

A new version of my current personal source of CLISP is at the usual place,
in ma2s2.mathematik.uni-karlsruhe.de:/pub/lisp/clisp/source-haible/.

Change log since 1 January 1995:

4 April 1995
============

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

* The initial value of *PACKAGE* can be specified by a command line option.

* X3J13 vote <6> is implemented: New place ROW-MAJOR-AREF.

* X3J13 vote <126> is implemented: New function DELETE-PACKAGE.

* X3J13 vote <14> is implemented: Closing a synonym stream does not close
  its constituent stream.

* Foreign language interface for C and ANSI C. New package FFI. New macros
  FFI:DEF-C-TYPE, FFI:DEF-C-VAR, FFI:DEF-C-CALL-OUT, FFI:DEF-C-CALL-IN,
  FFI:DEF-C-ENUM, FFI:DEF-C-STRUCT, FFI:DEF-CALL-OUT, FFI:DEF-CALL-IN,
  FFI:ELEMENT, FFI:DEREF, FFI:SLOT, FFI:CAST, FFI:TYPEOF, FFI:SIZEOF,
  FFI:BITSIZEOF.
  This currently works only on Unix and only with the CPUs
  i386/486/586, m680x0, Mips, SPARC, DEC Alpha, HP-PA, RS/6000.
  Warning: (COMPILE-FILE "filename.lsp") now overwrites the file "filename.c".

* New macros MUFFLE-CERRORS and APPEASE-CERRORS. During their execution,
  continuable errors are handled by the function CONTINUE. MUFFLE-CERRORS
  does this silently, APPEASE-CERRORS prints the error as a warning.

* New macro EXIT-ON-ERROR. During its execution, non-continuable errors
  cause CLISP to exit with error status.

* The function ED, when asked to edit a non-existent file, now creates that
  file instead of signalling an error.

* When a non-absolute pathname is specified for the -o command line option
  (destination file of a compilation), it is interpreted as relative to the
  current directory, not relative to the source file of the compilation.

* The readline library now uses the last column of the screen if the terminal
  is an xterm, for example. Work done by Chet Ramey.

* Fixed two bugs in the LOOP macro: FOR-AS-ACROSS clauses could result in AREF
  signalling an out-of-bounds error at the end of the vector. Initialisations
  for FOR-AS-= clauses could be executed in the wrong order.

* Fixed a bug in the compiler which caused LOAD-TIME-VALUE forms to be
  evaluated at compile time.

* Fixed a bug in the debugger: Choosing a restart Rnnn always invoked the
  last restart listed, not the chosen one.

* Fixed a bug: (CLOSE *TERMINAL-IO*) signals an error again.

* On DOS and OS/2, the Lisp reader now treats Ctrl-Z as whitespace.

* The -I command line option now tells the readline library to handle the Tab
  character as normal self-inserting character.

* Unix version only: DISASSEMBLE can display machine instructions, provided
  that GNU gdb is present.

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

* Updated support for EMX.

* Fixed a bug which caused a preprocessor error on SunOS and OSF/1.

* Small fixes for Sinix and SCO.

* Removed support for Coherent.

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

* Generational garbage collection now also works on IRIX 5.2.

* Generational garbage collection and support for immutable objects don't
  exclude each other any more.

* Speed up the bytecode interpreter by about 2%.

* Miscellaneous documentation updates.

                    Bruno Haible
                    [email-masked]