[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New version of CLISP



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