GNU CLISP 2.30 release

2.30 (2002-09-15)

User visible changes

* CLISP does not come with GNU libiconv anymore. The most important
encodings are built-in anyway, and CLISP can use the GNU libc 2.2
iconv and a GNU libiconv when it is independently installed.

* CLISP does not come with GNU gettext anymore. This is a separate
package and should be installed separately, if you wish to use i18n.

* CLISP does not come with GNU readline anymore, because, starting with
version 4.3, readline supports multibyte characters out of the box.

* CLISP does not come with GNU libsigsegv anymore. This means that in
certain cases of infinite recursion, the C stack overflow will not be
properly detected and will result in a segfault instead of an error.
You are urged to download and install GNU libsigsegv from
<> or
before configuring CLISP.

* Strings can now hold UCS-4 characters, instead of only UCS-2 characters.
CHAR-CODE-LIMIT increased from 65536 to 1114112.

* Added a new module - "oracle": an interface to the Oracle ODBMS.
Thanks to John K. Hinsdale <>.

* New user variable CUSTOM:*PARSE-NAMESTRING-DOT-FILE* controls
how the file names starting with a dot are parsed.
By default, it is set to :NAME in config.lisp,
so #P".clisprc" is now #S(PATHNAME :NAME ".clisprc").
To get the old result of #S(PATHNAME :TYPE "clisprc"),
set this variable to :TYPE.
This is an incompatible change.
See <> for details.

* New user variable CUSTOM:*TRACE-INDENT* controls TRACE output indentation.
See <> for details.

keyword argument.
See <> for details.

keyword arguments.
See <> for details.

* You can now shutdown a socket for input or output separately
See <> for details.

now contain strings, not pathnames.
See <> for details.

* EXT:GETENV now returns all of the OS environment as an alist
when its argument is omitted or NIL.
See <> for details.

* When configured with --with-export-syscalls,
several new functions are available:
POSIX:STREAM-LOCK provides an interface to flock(2);
POSIX:COPY-FILE provides an interface to link(2)/symlink(2)/rename(2),
(in addition to the usual file copy);
POSIX:DUPLICATE-HANDLE provides an interface to dup(2)/dup2(2).
Thanks to Marco Baringer for COPY-FILE and DUPLICATE-HANDLE.
See <> for details.

* You can now control the CLISP exit code better by passing a
non-negative integer to EXT:EXIT.
See <> for details.

* Russian translations of the user interface messages have been added.
Thanks to Arseny Slobodjuck <>.

* When built with readline, CLISP will DESCRIBE the current function
when you hit TAB after a #\Space.

* MAKE-ENCODING now checks whether the iconv charset is valid, and
signals an error if it is invalid unless given the :IF-DOES-NOT-EXIST
NIL argument.

* New debugger command Quit (:q) aborts to the top-level read-eval-print
loop immediately, saving you typing :a several times.

* When CUSTOM:*PARSE-NAMESTRING-ANSI* is non-NIL, do not accept symbols
as pathname designators.
See <> for details.

* COMPILE-FILE no longer clobbers an existing *.c file when the Lisp
file being compiled does not contain any FFI forms.
See <> for details.


* Improved accuracy of some transcendental functions, e.g., now
(EXPT -5.0 2.0) return #C(25.0 0.0).

* Fixed a bug: Conversion from bytes to string did not work for the encoding

* Fixed a bug in compiling duplicate keyword arguments.

* Fixed the (destructuring-bind (&key (x x)) ...) bug.

* Wide-mode -W backward compatibility option is now gone
(defunct since 1998-09-09). This permits colons in memory image file
names (necessary on Cygwin).

* CLISP on Cygwin now understands native pathnames like "c:/gnu/clisp/"
by translating them internally to "/cygdrive/c/gnu/clisp/".
CLISP on Win32 now understands Cygwin pathnames like "/cygdrive/c/gnu/clisp/"
by translating them internally to "c:/gnu/clisp/".
You can disable this by setting CUSTOM:*DEVICE-PREFIX* to NIL.
See <> for details.

* Readline is now used properly on Cygwin.

* DIR-KEY now works on Cygwin.


* CLISP now works on SPARC/Linux with glibc 2.2 when built with SAFETY=3.

Posted by Sam Steingold 2002-09-17