[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
New version of CLISP
- To: clisp-list@ma2s2.mathematik.uni-karlsruhe.de, AI.Repository@cs.cmu.edu, friedman@gnu.ai.mit.edu
- Subject: New version of CLISP
- From: Bruno Haible <haible@ilog.fr>
- Date: Mon, 5 May 1997 20:14:31 +0200 (MET DST)
Hi all,
Marcus Daniels and Joerg Hoehle and Peter Burwood and me and many others
together have made a new release of CLISP. It's at the usual place,
ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/clisp/source/.
Binaries for i386-linuxelf are in /pub/lisp/clisp/binaries/i386-linux-elf/.
Here is the list of changes since my 1996-07-22 version. All known and
reproduceable bugs are fixed, and most of Marcus Daniels' work has been
integrated.
3 May 1997
==========
User visible changes
--------------------
* X3J13 vote <182> is now fully implemented: A LET/LET*/COMPILER-LET binding
specification may now be a list of length 1, without initial value.
Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
* X3J13 vote <78> is now fully implemented: FLET, LABELS, MACROLET establish
an implicit BLOCK.
* X3J13 vote <100> is implemented: Hash tables with test function EQUALP.
* X3J13 vote <131> is partially implemented: #P reader macro for pathnames.
* The MULTIPLE-VALUE-BIND macro no longer allows lists as variable
specifications, only symbols.
Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
* DEFCLASS which changes a class is now allowed and generates a warning.
Since UPDATE-INSTANCE-FOR-REDEFINED-CLASS is not supported, it is your
responsibility to not use the old instances afterwards.
Suggested by Brian Dennis <xjam@CS.Berkeley.EDU> and Tobias Kunze
<tkunze@cmsgia.Stanford.EDU>.
* The TIME macro now outputs to *TRACE-OUTPUT* instead of *STANDARD-OUTPUT*.
Thanks to Nathan Sidwell <nathan@bristol.st.com>.
* When the argument of the function TRANSLATE-LOGICAL-PATHNAME is a string,
it is now interpreted as a logical pathname string. Previously, it was
coerced to a pathname through the function PATHNAME, yielding a physical
pathname.
* CLISP now supports more than the three predefined user-interface languages.
New macros DEFLANGUAGE, DEFINTERNATIONAL, DEFLOCALIZED. New function
LOCALIZED. The macros ENGLISH, DEUTSCH, FRANCAIS now work only for strings.
Removed the macro LANGUAGE-CASE.
The implementation uses the GNU gettext library. Thanks to Ulrich Drepper
and Marcus Daniels.
* New user-interface language ESPANOL.
Thanks to Carlos Linares Lo'pez <clinares@delicias.dia.fi.upm.es> who has
translated about 55% of CLISP's messages to Spanish.
* EQUALP now descends structures (but not CLOS instances!) on all platforms,
as requested by X3J13 vote <71>.
* The EXIT-ON-ERROR macro now also exits when a Ctrl-C interrupt occurs.
Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>.
* The initial value of *LOAD-PATHS* on Unix is now (#"./" "~/lisp/**/")
instead of (#"./" #"./**/" "~/**/"). To be customized in config.lsp.
* New variable *LOAD-COMPILING*, which provides the default value for the
:COMPILING keyword of function LOAD. The initial value of *LOAD-COMPILING*
can be specified by a command line option.
* Fixed a bug: (VALUES-LIST '()) often returned one value.
Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
* Fixed a bug in the compiler: When optimizing (OR T form), the compiler
could abort with an error message.
Thanks to Nathan Sidwell <nathan@bristol.st.com>.
* Fixed a bug in the DEFSTRUCT macro which caused the compiler to issue
an error message when compiling a structure definition containing a slot
with a constant, non-NIL initializer.
Thanks to Matthias Lindner <lindner@forwiss.uni-erlangen.de>.
* Fixed a bug in the DEFCLASS macro which caused DEFCLASS and DEFINE-CONDITION
to reject the :DOCUMENTATION class option.
Thanks to Don Cohen <donc@isi.edu>.
* Fixed a bug: The use of type specifiers of the form
(FUNCTION argument-types result-type)
within THE, ETHE, LOOP and DEFSTRUCT forms could lead to errors.
Thanks to Marty Shannon <mshannon@i-2000.com>.
* Fixed two bugs in the DRIBBLE function: After calling (DRIBBLE pathname)
followed by (DRIBBLE), *DEBUG-IO* referred to an unwritable stream.
Calling (DRIBBLE pathname) from within a break loop caused some of the
output to be logged twice.
* Fixed a bug in the expansion of deeply nested backquotes.
Thanks to S. Wotherspoon <spoon@hilbert.maths.utas.edu.au>.
* Fixed a bug in the LOOP macro: Stepping for FOR-AS-= clauses
(LOOP ... {FOR|AS} var = form1 THEN form2 ...) could be executed in the
wrong order if form1 is constant and form2 is non-constant.
Thanks to Russell Senior <seniorr@teleport.com>.
* Fixed a bug in /= : When called with more than two arguments, only the
first two arguments were compared; the remaining arguments were ignored.
Thanks to J. V. Needham <jv@rdk840.dfci.harvard.edu>.
* Fixed a bug in EQUAL and EQUALP: displaced strings were not compared
correctly.
* Fixed a bug in EXPT: For x a (COMPLEX RATIONAL) and y = m/2^n, (EXPT X Y)
actually returned x ^ (m/2^(n+32)) instead of x ^ (m/2^n).
* Fixed a bug in TRUENAME on Unix: If "aa.bb" is a symbolic link to "cc",
(TRUENAME "aa.bb") returned "cc.bb" instead of "cc".
* Fixed a bug in the management of add-on modules: On some platforms,
GC in memory images containing add-on modules always crashed.
* Fixed a bug in the generational GC on i386, rs6000, alpha: In some cases,
FFI objects in memory could cause the first "small" garbage collection to
fail.
Thanks to Dr. Werner Fink <werner@suse.de>.
* Fixed a bug in the printing routine for SOCKET-SERVER objects.
Thanks to Alexey Goldin <goldin@spot.uchicago.edu> and Marcus Daniels.
Portability
-----------
* The core of CLISP can now be compiled with a C++ compiler if no C compiler
is available (without readline library, FFI or modules).
* Added support for Mips processors in 64-bit mode.
* Updated support for Linux 2.0.
* Support for immutable objects now works on Linux/ELF. It did already work
on Linux/a.out.
* Updated Amiga support. Thanks to Joerg Hoehle <Joerg.Hoehle@gmd.de>.
* Updated Acorn support. Thanks to Peter Burwood <clisp@arcangel.dircon.co.uk>.
* Updated OS/2 support. Thanks to Joerg Diederich <J_Diederich@herlab.ruhr.de>.
* Updated support for Solaris/x86. Thanks to Marty Shannon <mjs@tiaa-cref.org>.
* Fixed a bug which could cause the readline completion to dump core on HP-UX.
* Fixed a bug relating to the read-eval-print loop's return point on some
platforms. Thanks to Peter Burwood <clisp@arcangel.dircon.co.uk>.
* Removed an incompatibility between SPARC/Sun4 and UltraSPARC memory images.
Found by Martin Ginkel <ginkel@iik.cs.uni-magdeburg.de>.
* Removed support for AmigaOS versions < 2.04.
Other modifications
-------------------
* New "makemake" option --with-wide causes normal and wide-mode binaries to
be built and distributed simultaneously. New command-line option -W
for choosing the wide-mode binaries instead of the normal binaries.
* On Unix, "clisp" is now an executable instead of a shell script.
* "clisp" can now be called with a Lisp file as argument. The remaining
arguments will be passed to the Lisp program in the variable *ARGS*.
On Unix, you can thus make Lisp programs executable by putting
"#!/usr/local/bin/clisp" in the first line and doing a "chmod a+x".
* The read-eval-print loop now calls FORCE-OUTPUT after outputting the prompt.
Thanks to Joerg Hoehle <Joerg.Hoehle@gmd.de>.
* Support for immutable objects now also works in the WIDE tagging scheme.
* Reduced the startup time by 20-30%.
The "clispsh" package is now obsolete, you can use "clisp" itself as
Lisp program interpreter. See section 99.8 of impnotes.txt for details.
Enjoy!
Bruno