1User visible changes
2--------------------
3
4* FFI: DEF-CALL-OUT and DEF-C-VAR now accept the :GUARD argument (rfe#21).
5  See <http://clisp.org/impnotes/dffi.html#def-call-out> for details.
6
7* Use of the LOOP macro with a syntax that has an implementation-dependent
8  interpretation (cf. ANSI CL 6.1.1.4) now triggers a warning.
9
10* Some old functions that have been deprecated for 10+ years have been removed:
11      SOCKET-SERVER-PORT: use SERVICE instead,
12      TYPE-EXPAND-1: use TYPE-EXPAND instead,
13      FOREIGN-ADDRESS-NULL: use NULL instead,
14      DELETE-DIR: use DELETE-DIRECTORY instead,
15      MAKE-DIR: use MAKE-DIRECTORY instead,
16      RENAME-DIR: use RENAME-DIRECTORY instead.
17
18* Bug fixes:
19  + Better UNICODE handling in the regexp module (bug#691).
20  + DIRECTORY matches like PATHNAME-MATCH-P (bug#724).
21  + Fixed a compiler bug that could lead to a "Compiler bug!!" error.
22    <https://gitlab.com/gnu-clisp/clisp/issues/14>
23
24
252.50 branch, not yet released
26=============================
27
28Important notes
29---------------
30
31* All .fas files generated by previous CLISP versions are invalid and
32  must be recompiled (this was made necessary by the fix to bug#561).
33  Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this.
34  See <http://clisp.org/impnotes/loadfile.html> for details.
35
36Portability
37-----------
38
39This is the first release since 2.33.2 that is supported on a wide range
40of platforms:
41
42  Operating system | CPU/ISA        | ABIs
43  -----------------+----------------+--------------------------------
44  Linux            | x86_64         | 64-bit, 32-bit (i386), x32
45  Linux            | i386           | i386
46  Linux            | ARMv5..ARMv7   | arm, armhf
47  Linux            | ARM64          | 64-bit, 32-bit (arm)
48  Linux            | mips 32-bit    | o32
49  Linux            | mips 64-bit    | 64-bit, n32, o32
50  Linux            | PowerPC 32-bit | 32-bit
51  Linux            | PowerPC 64-bit | 64-bit ELFv2, 64-bit, 32-bit
52  Linux            | RISC-V 64-bit  | 64-bit (lp64d)
53  Linux            | S/390 32-bit   | 32-bit
54  Linux            | S/390 64-bit   | 64-bit, 32-bit
55  Linux            | SPARC 32-bit   | 32-bit
56  Linux            | SPARC 64-bit   | 64-bit, 32-bit
57  Linux            | alpha          | alpha
58  Linux            | ia64           | 64-bit
59  Linux            | HPPA           | 32-bit
60  Linux            | m68k           | m68k
61  GNU/Hurd         | i386           | i386
62  GNU/kFreeBSD     | x86_64         | 64-bit
63  GNU/kFreeBSD     | i386           | i386
64  FreeBSD          | x86_64         | 64-bit
65  FreeBSD          | i386           | i386
66  FreeBSD          | ARM64          | 64-bit
67  DragonFly        | i386           | i386
68  NetBSD           | x86_64         | 64-bit
69  NetBSD           | i386           | i386
70  NetBSD           | SPARC 32-bit   | 32-bit
71  OpenBSD          | x86_64         | 64-bit
72  OpenBSD          | i386           | i386
73  Mac OS X         | x86_64         | 64-bit, 32-bit (i386), PowerPC
74  Mac OS X         | PowerPC 32-bit | 32-bit
75  AIX 7            | POWER 64-bit   | 64-bit, 32-bit
76  HP-UX 11         | HPPA 64-bit    | 64-bit, 32-bit
77  HP-UX 11         | IA64           | 64-bit, 32-bit
78  IRIX 6.5         | MIPS 64-bit    | n32, o32
79  Solaris 10, 11   | x86_64         | 64-bit, 32-bit (i386)
80  Solaris 10       | SPARC 64-bit   | 64-bit, 32-bit
81  Haiku            | i386           | i386
82  Minix 3          | i386           | i386
83  Windows 10       | x86_64         | Linux/x86_64 (WSL)
84  Windows          | x86_64         | Cygwin 64-bit, Cygwin 32-bit
85  Windows          | i386           | Cygwin 32-bit
86
87The Foreign Function Interface (FFI) is now supported as well, on all of these
88platforms (except HP-UX), through libffcall-2.1.
89
90User visible changes
91--------------------
92
93Incompatible changes
94....................
95
96* On Max OS X the value of *PATHNAME-ENCODING* is set to UTF-8 and cannot
97  be changed because Mac OS X pathnames are UTF-8 strings, not byte sequences.
98  See <http://clisp.org/impnotes/encoding.html#path-enc> for details.
99
100* Module WILDCARD has been removed.
101  Functions WILDCARD:MATCH and WILDCARD:WILDCARD-MATCHER are deprecated
102  in favor of POSIX:FNMATCH and POSIX:FNMATCH-MATCHER.
103  See <http://clisp.org/impnotes/syscalls.html#wildcard> for details.
104
105* Module REGEXP:
106
107  + Function REGEXP:REGEXP-EXEC no longer accepts :BOOLEAN argument; use
108    :RETURN-TYPE 'BOOLEAN instead.
109    See <http://clisp.org/impnotes/regexp.html#re-regexp-exec> for details.
110
111* Module RAWSOCK:
112
113  + Function RAWSOCK:CONVERT-ADDRESS now returns byte vectors instead of
114    integers.
115    See <http://clisp.org/impnotes/rawsock.html#rawsock-convert-address>
116    for details.
117
118Improvements
119............
120
121* Mixing &OPTIONAL and &KEY in the same lambda list is a bad design
122  and now triggers a STYLE-WARNING during compilation.
123  See <http://clisp.org/impnotes/compilation.html#key-optional> for details.
124
125* Redefinition warnings are now of type STYLE-WARNING.
126  Some CLOS warnings are now of type STYLE-WARNING.
127  See <http://clisp.org/impnotes/evaluation.html#suppress-check-redef>
128  and <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-warn>
129  for details.
130
131* FFI now converts REALs to FLOATs automatically as necessary.
132
133New customizations
134..................
135
136* New user variable CUSTOM:*MODULE-PROVIDER-FUNCTIONS* allows user to
137  influence behavior of REQUIRE.
138  See <http://clisp.org/impnotes/require.html#module-providers> for details.
139
140* The readline-based completion facility is now more customizable.
141  See <http://clisp.org/impnotes/terminal.html#readline-extend> for details.
142
143New features
144............
145
146* New declaration DYNAMICALLY-MODIFIABLE disables GF-ALREADY-CALLED-WARNING.
147  See <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-gf-dynamically-modifiable>
148  for details.
149
150* Function EXT:STREAM-HANDLES returns the OS file handles for the stream.
151  It has been present since 2.36 in package SOCKET but was not documented.
152  See <http://clisp.org/impnotes/socket.html#so-handles> for details.
153
154* To help distributors distribute memory images of clisp applications in
155  package repositories, clisp has three new command-line options:
156  $ clisp [-K linking-set] -memfile-hash
157    Prints the hash code of the mem file binary interface.
158  $ clisp [-K linking-set] -memfile-hash-of mem-file
159    Prints the hash code of the mem file binary interface that was used to
160    create this mem-file.
161  $ clisp [-K linking-set] -memfile-compatible mem-file
162    Returns 0 or 1, depending whether this mem-file is compatible with the
163    linking-set or not.
164  See <http://clisp.org/impnotes/image.html#images-in-distros> for how to use
165  these options.
166
167Modules
168.......
169
170* New module ASDF (based on the upstream version 3.2.0) provides a system
171  definition facility. See <http://clisp.org/impnotes/asdf.html> for details.
172
173* Module SYSCALLS:
174
175  + New function POSIX:FILE-TREE-WALK calls nftw().
176    See <http://clisp.org/impnotes/syscalls.html#file-tree-walk> for details.
177
178  + New function POSIX:GETDATE calls getdate().
179    See <http://clisp.org/impnotes/syscalls.html#getdate> for details.
180
181  + New macro POSIX:WITH-SUBPROCESSES temporarily enables SIGCLD so that
182    functions POSIX:WAIT, LINUX:wait and LINUX:waitpid work (bug#592).
183    See <http://clisp.org/impnotes/syscalls.html#with-subprocesses> for details.
184
185  + Function POSIX:USAGE now accept an optional argument and returns a
186    single value.
187    See <http://clisp.org/impnotes/syscalls.html#usage> for details.
188
189* Module berkeley-db now supports Berkeley-DB 5.1.
190  (Older versions are, of course, still supported).
191  See <http://clisp.org/impnotes/berkeley-db.html> for details.
192
193* Module pari now supports PARI 2.9.3 and most of the interface
194  functions are generated automatically.
195  See <http://clisp.org/impnotes/pari.html> for details.
196
197Bug fixes
198.........
199
200  + Fix documentation strings handling for structs (bug#561).
201  + Fix SCREEN behavior when the window is resized.
202  + Pass the top-level configure arguments --build= & --host=
203    to the module configures (bug#566).
204  + Fix PROBE-PATHNAME behavior on win32 and on open file streams (bug#570).
205  + Fix handling of huge byte arrays on 64-bit platforms (bug#571).
206  + Fix LOADing corrupt FAS files (bug#578).
207  + Fix interaction of *DEFAULT-PATHNAME-DEFAULTS* with REQUIRE (bug#579).
208  + Correctly bind *LOAD-PATHNAME* in LOAD (bug#584).
209  + Fix OS:FILE-INFO on files with corrupt times (bug#581).
210  + Make wrong keyword argument a STYLE-WARNING in the presence of
211    :ALLOW-OTHER-KEYS T (bug#588).
212  + Fix LOOP mixing WITH & Hash Table FOR (bug#585);
213    avoid destructuring null patterns (bug#414);
214    detect incomplete FOR clauses (bug#572);
215    check whether DO clauses are compound forms (bug#711);
216    warn on REPEAT before FOR (bug#604).
217  + Fix SOCKET-CONNECT with non-0 timeout (bug#587).
218  + Reduce consing in HANDLER-BIND et al (bug#582).
219  + Implement :NO-HANG and :INTERACTIVE in WRITE-BYTE-SEQUENCE for all
220    sequences, not just byte vectors (bug#586).
221  + Fix protocol argument handling in POSIX:SERVICE (bug#596).
222  + Fix (SETF (VALUES (VALUES) ...) ...) (bug#597).
223  + Fix handling properties with "format=32" in NEW-CLX on 64-bit
224    machines (bug#598); handle more host families in XLIB:ACCESS-HOSTS.
225  + Do not ignore user-supplied print methods for user-defined
226    SIMPLE-CONDITIONs (bug#605).
227  + Better argument checking of FUNCALL on LAMBDA (bug#603).
228  + All truenames now have non-NIL version component (bug#606).
229  + Fix OS:FILE-STAT on very large files (bug#626).
230  + Fix error that occurred when constructing the dispatch code of generic
231    functions with a method that specializes on SEQUENCE (bug#628).
232  + Improve dotted list detection in APPLY (bug#636).
233  + Signal TYPE-ERROR in LOGICAL-PATHNAME-TRANSLATIONS on invalid
234    logical host as per ANSI (bug#638).
235  + Fix run-time error reporting in compiled FORMAT calls (bug#631).
236  + Fix symlink to directory handling (bug#625).
237  + PCRE-EXEC returns character positions instead of byte positions.
238  + Fix COMPILE-FILE-PATHNAME logical pathname handling (bug#677).
239  + Streams returned by MAKE-STREAM may be passed to TRUENAME (bug#679).
240  + Do not signal the CLOS:GF-ALREADY-CALLED-WARNING on Gray streams.
241  + Improve consistency in declaration handling (bug#702).
242  + Package locks are checked by DECLARATION and DEFTYPE (bug#701).
243  + Allow spaces in file names of clisp scripts (bug#699).
244  + Fix a problem with non-ASCII characters in file names on Windows (#10).
245
246
2472.49 (2010-07-07)
248=================
249
250User visible changes
251--------------------
252
253* New command line option -disable-readline lets working around bugs and
254  incompatibilities between readline CLISP was built against and the
255  library actually installed.
256  See <http://clisp.org/impnotes/clisp.html#opt-norl> for details.
257
258* FFI:OPEN-FOREIGN-LIBRARY now accepts the :REQUIRE argument.
259  See <http://clisp.org/impnotes/dffi.html#dffi-open-lib> for details.
260
261* New user variable CUSTOM:*USER-LIB-DIRECTORY* is respected by REQUIRE
262  and used by "clisp-link install".
263  Dynamic modules are now the default build option.
264  See <http://clisp.org/impnotes/require.html> and
265  <http://clisp.org/impnotes/clisp-link.html> for details.
266
267* Function RENAME-FILE now accepts :IF-EXISTS argument which determines
268  the action when the destination exists, unless, of course, *ANSI* is T.
269  See <http://clisp.org/impnotes/file-func.html#rename-file> for details.
270
271* The replacement value entered by the user in STORE-VALUE and USE-VALUE
272  restarts is now EVALuated.
273
274* The old user variable CUSTOM:*PRINT-CLOSURE* now controls interpreted
275  closure output too (RFE#42). This is a tricky feature, read up!
276  See <http://clisp.org/impnotes/multi-rep.html#pr-closure>.
277
278* Module readline now supports readline 6.1.
279  (Older versions are, of course, still supported).
280  See <http://clisp.org/impnotes/readline-mod.html> for details.
281
282* Module pcre now supports pcre 8.01.
283  (Older versions are, of course, still supported).
284  See <http://clisp.org/impnotes/pcre.html> for details.
285
286* Module libsvm does not come with the upstream sources anymore, install
287  locally and pass --with-libsvm-prefix to the top-level configure instead.
288  All upstream versions up to 2.91 are supported.
289  See <http://clisp.org/impnotes/libsvm.html> for details.
290
291* Module berkeley-db now supports Berkeley-DB 4.8.
292  See <http://clisp.org/impnotes/berkeley-db.html> for details.
293
294* Module postgresql now supports PostgreSQL 8.4.
295  (Older versions are, of course, still supported).
296  See <http://clisp.org/impnotes/postgresql.html> for details.
297
298* Module pari has been updated to support both 64 & 32 bit platforms
299  with and without GMP.
300  See <http://clisp.org/impnotes/pari.html> for details.
301
302* New functions OS:VERSION-COMPARE et al call strverscmp.
303  See <http://clisp.org/impnotes/syscalls.html#strverscmp> for details.
304
305* Functions POSIX:ERRNO and POSIX:STRERROR use errno and strerror() on
306  all platforms; use OS:LAST-ERROR and OS:FORMAT-MESSAGE for
307  windows-specific functionality.
308  See <http://clisp.org/impnotes/syscalls.html#errno> for details.
309
310* OS errors are now reported using strerror() or FormatMessage(), not
311  internal error tables (RFE#46).
312
313* Bug fixes:
314  + Do not eliminate function calls which are advertised to have
315    exceptional situation in unsafe code (bug#534).
316  + Fix an internal error in DECLAIM on bad OPTIMIZE quality (bug#532).
317  + CLEAR-INPUT now clears the EOF condition on file streams (bug#536).
318  + When quitting on a signal, never enter the debugger (bug#520).
319  + Respect :FULL T in DIRECTORY :WILD-INFERIORS (bug#548).
320  + Handle TWO-WAY-STREAM and ECHO-STREAM correctly by
321    (SETF STREAM-EXTERNAL-FORMAT) (bug#555).
322  + Fix unbuffered output pipe stream initialization (bug#556).
323
324* ANSI compliance:
325  + Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER: use the
326    CL Condition System for compiler diagnostics.
327  + STREAM-ELEMENT-TYPE on empty CONCATENATED-STREAMs now returns NIL
328    because nothing can be read from such streams (bug#552).
329
330
3312.48 (2009-07-28)
332=================
333
334User visible changes
335--------------------
336
337* Multiple threads of execution are now experimentally supported
338  (not ready for prime time yet).
339  Thanks to  Vladimir Tzankov <vtzankov@gmail.com>.
340  See <http://clisp.org/impnotes/mt.html> for details.
341
342* Module libsvm has been upgraded to the upstream version 2.89.
343  See <http://clisp.org/impnotes/libsvm.html> for details.
344
345* Module Berkeley-DB now supports Berkeley DB 4.7.
346  (older versions 4.* are, of course, still supported).
347  See <http://clisp.org/impnotes/berkeley-db.html> for details.
348
349* Module readline now supports readline 6.0.
350  (older versions 5.* are, of course, still supported).
351  See <http://clisp.org/impnotes/readline-mod.html> for details.
352
353* Passing :EXECUTABLE 0 to EXT:SAVEINITMEM results in an executable
354  image which delegates processing of all the usual CLISP command line
355  options to the :INIT-FUNCTION.
356  See <http://clisp.org/impnotes/image.html> for details.
357
358* Driver clisp accepts "-b" to print the installation directory.
359  See <http://clisp.org/impnotes/clisp.html#opt-printlibdir> for details.
360
361* Add file clisp.m4 so that the packages which use CLISP can check
362  whether it is properly installed and has the required version.
363
364* POSIX:COPY-FILE now accepts :METHOD :HARDLINK-OR-COPY.
365  See <http://clisp.org/impnotes/syscalls.html#copy-file> for details.
366
367* New function POSIX:WAIT calls waitpid or wait4.
368  See <http://clisp.org/impnotes/syscalls.html#wait> for details.
369
370* New function EXT:TRIM-IF removes leading and trailing matches.
371  See <http://clisp.org/impnotes/seq-func-ext.html#trim-if> for details.
372
373* New user command "LocalSymbols" (abbreviated ":ls").
374  See <http://clisp.org/impnotes/repl.html#debugger-main-deb-step>
375  for details.
376
377* Commands "add" and "create" replace "add-module-set", "add-module-sets" and
378  "create-module-set" in clisp-link.
379  See <http://clisp.org/impnotes/modules.html#clisp-link> for details.
380
381* Bug fixes:
382  + Better support of :START and :END arguments in NEW-CLX (bug#499).
383  + Fix LOAD-LOGICAL-PATHNAME-TRANSLATIONS when *LOAD-PATHS* contains
384    wild pathnames (introduced in 2.47) (bug#504).
385  + Module NEW-CLX now has the XLIB:QUEUE-EVENT function,
386    implemented by Philippe Brochard <hocwp@free.fr>.
387  + Extend the domain of LOG to larger BIGNUMs and RATIOs (bug#222).
388  + Avoid a segfault on (EXPT <HUGE> <HUGE>) (bug#525).
389  + Fix interaction of finalizers and weak objects (bug#334).
390
391* ANSI compliance:
392  + Implement the ANSI (IGNORE #'FUNCTION) declaration.
393
394
3952.47 (2008-10-23)
396=================
397
398User visible changes
399--------------------
400
401* New module DBUS interfaces to the D-Bus message bus system.
402  See <http://clisp.org/impnotes/dbus.html> for details.
403
404* New function EXT:PROBE-PATHNAME can figure out whether the existing
405  pathname refers to a file or a directory.
406  See <http://clisp.org/impnotes/files.html#probe-path> for details.
407
408* New function EXT:CANONICALIZE lets you easily canonicalize a value
409  before processing it.
410  See <http://clisp.org/impnotes/macros3.html#canonicalize> for details.
411
412* New user variable CUSTOM:*REOPEN-OPEN-FILE* controls CLISP behavior
413  when opening an already open file.
414  See <http://clisp.org/impnotes/open.html#reopen> for details.
415
416* New SETFable function OS:FILE-SIZE extends FILE-LENGTH to pathname
417  designators and lets you change file size.
418  See <http://clisp.org/impnotes/syscalls.html#file-size> for details.
419  New function OS:USER-SHELLS returns the list of legal user shells.
420  See <http://clisp.org/impnotes/syscalls.html#user-shells> for details.
421  New SETFable functions OS:HOSTID and OS:DOMAINNAME.
422  See <http://clisp.org/impnotes/syscalls.html#hostid> for details.
423
424* Module readline has been upgraded to readline 5.2
425  (older versions 5.0 and 5.1 are, of course, still supported).
426  See <http://clisp.org/impnotes/readline-mod.html> for details.
427
428* LOAD now uses DIRECTORY only for wild *LOAD-PATHS* components, thus
429  speeding up the most common cases and preventing the denial-of-service
430  attack whereas CLISP would not start if a file with a name
431  incompatible with *PATHNAME-ENCODING* is present in USER-HOMEDIR-PATHNAME.
432
433* ROOM now prints some GC statistics and returns the same values as GC.
434  See <http://clisp.org/impnotes/environment-enq.html#room> for details.
435
436* New user variable CUSTOM:*HTTP-LOG-STREAM* controls EXT:OPEN-HTTP logging.
437  See <http://clisp.org/impnotes/macros3.html#http-log-stream> for details.
438
439* Bug fixes:
440  + Comparison of floats and rationals never underflows (bug#485).
441  + When failing to convert a huge LONG-FLOAT to a RATIONAL, signal an
442    ARITHMETIC-ERROR instead of blowing the stack (bug#486).
443  + Restored TYPECODES g++ compilation (bug#297), which allowed fixing
444    a few GC-safety bugs.
445  + Fixed a segfault when signaling some UNBOUND-VARIABLE errors in some
446    interpreted code on MacOS X (introduced in 2.46) (bug#489).
447    Thanks to Vladimir Tzankov <vtzankov@gmail.com>.
448  + Fixed input after switching a :DOS stream to binary (bug#490).
449  + Support circular objects in EQUAL and EQUALP hash-tables (bug#493).
450  + Avoid C namespace pollution (bug#498).
451  + Fix timeout precision in NEW-CLX (bug#503).
452
453* ANSI compliance:
454  + The sets of declaration and type names are disjoint.
455  + FLET, LABELS and MACROLET respect declarations.
456
457
4582.46 (2008-07-02)
459=================
460
461User visible changes
462--------------------
463
464* CLISP built natively on 64-bit platforms (i.e., with 64-bit pointers)
465  now has :WORD-SIZE=64 in *FEATURES*.
466  See <http://clisp.org/impnotes/features.html> for details.
467
468* Module syscalls now offers OS:ERRNO and OS:STRERROR (for the sake of
469  FFI modules).
470  See <http://clisp.org/impnotes/syscalls.html#errno> for details.
471
472* Modules MIT-CLX and NEW-CLX export a new macro XLIB:WITH-OPEN-DISPLAY.
473
474* Module netica has been upgraded to the Netica C API version 3.25 (from 2.15).
475  See <http://clisp.org/impnotes/netica.html> for details.
476
477* Module libsvm has been upgraded to the upstream version 2.86.
478  See <http://clisp.org/impnotes/libsvm.html> for details.
479
480* Bug fixes:
481  + Work around the absence of tgamma on solaris (bug#473).
482  + Avoid a rare segfault on SIGHUP (bug#470).
483  + Improve module portability to systems with non-GNU make (bug#476).
484  + Fix GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE (bug#477).
485  + Fix the remaining bugs in special bindings in evaluated code on
486    TYPECODES (64-bit) platforms.
487  + Fix SOCKET:SOCKET-CONNECT with timeout to a dead port (bug#482).
488
489
4902.45 (2008-05-15)
491=================
492
493Important notes
494---------------
495
496* All .fas files generated by previous CLISP versions are invalid and
497  must be recompiled.  This is because the Just-In-Time Compiled code is
498  kept with the closures.
499  Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this.
500  See <http://clisp.org/impnotes/loadfile.html> for details.
501
502User visible changes
503--------------------
504
505* The top-level configure option --build has been replaced by --cbc
506  (Configure/Build/Check) to avoid conflict with the standard autoconf option.
507
508* Experimental Just-In-Time Compilation of byte-compiled closures is now
509  done using GNU lightning (this is a configure-time option).
510  Thanks to Yann Dauphin <yann-nicolas.dauphin@polymtl.ca>.
511
512* New command-line option -lp adds directories to *LOAD-PATHS*.
513  See <http://clisp.org/impnotes/clisp.html#opt-load-paths> for details.
514
515* New function FFI:OPEN-FOREIGN-LIBRARY allows pre-opening of shared libraries.
516  See <http://clisp.org/impnotes/dffi.html#dffi-open-lib> for details.
517
518* New macro EXT:COMPILE-TIME-VALUE allows computing values at file compilation.
519  See <http://clisp.org/impnotes/macros3.html#compile-time-value> for details.
520
521* New function FFI:FOREIGN-POINTER-INFO allows some introspection.
522  See <http://clisp.org/impnotes/dffi.html#fptr-info> for details.
523
524* Versioned library symbols are now accessible via the :VERSION argument of
525  DEF-CALL-OUT and DEF-C-VAR.
526  Thanks to Kaz Kylheku <kkylheku@gmail.com>.
527  See <http://clisp.org/impnotes/dffi.html#def-call-out> for details.
528
529* New functions GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE have
530  been added for portability reasons.
531  Suggested by Anton Vodonosov <avodonosov@yandex.ru>.
532  See <http://clisp.org/impnotes/gray.html#st-rd-seq> for details.
533
534* New user variable CUSTOM:*SUPPRESS-SIMILAR-CONSTANT-REDEFINITION-WARNING*
535  controls whether the redefinition warning is issues when the new
536  constant value is visually similar to the old one.
537  See <http://clisp.org/impnotes/defconstant.html#defconstant-similar>
538  for details.
539
540* REPL commands can now accept arguments.
541  See <http://clisp.org/impnotes/repl.html> for details.
542
543* Updated the postgresql module to PostgreSQL 8.3.
544  See <http://clisp.org/impnotes/postgresql.html> for details.
545
546* Module syscalls now interfaces to <stdio.h> (for the sake of FFI modules).
547  See <http://clisp.org/impnotes/syscalls.html#stdio> for details.
548  There are others additions there also, but they are too numerous to
549  be enumerated here.
550
551* Bug fixes:
552  + Fix handling of quoted objects by READ-PRESERVING-WHITESPACE (bug#445).
553  + Fix rectangle count in NEW-CLX XLIB:SET-GCONTEXT-CLIP-MASK (bug#index.php?func=detail&aid=1918017&group_id=1355&atid=101355).
554  + Fix argument handling in NEW-CLX XLIB:QUERY-COLORS (bug#461).
555  + Fix compilation on systems not supporting returning void (bug#449).
556  + Fix TANH floating point overflow for large floats (bug#407).
557  + Avoid extra aggressive bignum overflow reporting in READ (bug#455).
558  + Improved floating point number formatting. (bug#419, bug#456)
559  + COMPILE no longer discards MACRO doc strings (bug#465).
560  + Improved accuracy of LOG on complex numbers (bug#463).
561  + Fix COERCE for compound float result-types (bug#467).
562  + Fix $http_proxy parsing (bug#471).
563  + Fix LISTEN on buffered streams when the last character was
564    CRLF (bug#472).
565  + Cross-compilation process has been restored to its former glory,
566    thanks to the valiant and persistent testing by
567    Vladimir Volovich <vvv2@users.sourceforge.net>.
568    (bug#457, bug#458, bug#459, bug#460)
569
570
5712.44.1 (2008-02-23)
572===================
573
574User visible changes
575--------------------
576
577* Bug fixes:
578  + Add a workaround against a gcc 4.2.x bug (bug#428).
579  + Fix error in compilation of floatparam.c during configuration with gcc 4.3
580    snapshots (bug#428).
581
582
5832.44 (2008-02-02)
584=================
585
586User visible changes
587--------------------
588
589* CLISP does not come with GNU libffcall anymore.
590  This is now a separate package and should be installed separately.
591  Pass --with-libffcall-prefix to the top-level configure if it is not
592  installed in a standard place.
593  Option --with-dynamic-ffi is now replaced with --with-ffcall.
594
595* CLOS now issues warnings of type CLOS:CLOS-WARNING.
596  See <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-warn>
597  for details.
598
599* The AFFI (simple ffi, originally for Amiga) code has been removed.
600
601* Speed up list and sequence functions when :TEST is EQ, EQL, EQUAL or EQUALP.
602
603* Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to
604  EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY,
605  respectively, for consistency with EXT:PROBE-DIRECTORY,
606  EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY.
607  The old names are still available, but deprecated.
608
609* The :VERBOSE argument to SAVEINITMEM defaults to a new user variable
610  *SAVEINITMEM-VERBOSE*, initial value T.
611  See <http://clisp.org/impnotes/image.html> for details.
612
613* Bug fixes:
614  + Fix FRESH-LINE at the end of a line containing only TABs (bug#426).
615  + PPRINT-LOGICAL-BLOCK no longer ignores
616    *PRINT-PPRINT-DISPATCH-TABLE* (bug#427).
617  + BYTE is now a full-fledged type (bug#433).
618  + Fix linux:dirent definition in the bindings/glibc module (bug#417).
619  + Symbolic links into non-existent directories can now be
620    deleted (bug#435).
621  + DIRECTORY :FULL on directories now returns the same information as
622    on files (bug#436).
623  + CLISP no longer hangs at the end of a script coming via a pipe
624    ("clisp < script.lisp" or "cat script | clisp") (bug#437).
625  + When *CURRENT-LANGUAGE* is incompatible with *TERMINAL-ENCODING*,
626    CLISP no longer goes into an infinite recursion trying to print
627    various help messages (bug#438).
628  + Fix the "Quit" debugger command (bug#327).
629  + Repeated terminating signals kill CLISP instantly with the correct
630    exit code (bug#441).
631  + Stack inspection is now safer (bug#347).
632  + Errors in the RC-file and init files are now handled properly (bug#411).
633  + Avoid the growth of the restart set with each image save (bug#443).
634  + Handle foreign functions coming from the old image which cannot be
635    validated (bug#310).
636  + Fix signal code in bindings/glibc/linux.lisp (bug#418).
637
638
6392.43 (2007-11-18)
640=================
641
642User visible changes
643--------------------
644
645* Infrastructure:
646  + Top-level configure now accepts a new option --vimdir which specifies
647    the installation directory for the VIM files (lisp.vim).
648    The default value is ${datadir}/vim/vimfiles/after/syntax/.
649    Thus, lisp.vim is now installed by "make install", and should
650    be included in the 3rd party distributions.
651  + Top-level configure now always runs makemake, and makemake no longer is
652    a "user-level" command; do not run it unless you know what you are doing.
653    This brings the CLISP build process in compliance with the GNU standards.
654  + We now use gnulib-tool to sync with gnulib (not really user visible,
655    but a major infrastructure change).
656
657* Portability:
658  + Support for ancient systems with broken CPP have been dropped.
659    This includes AIX 4.2, Coherent386, Ultrix, MSVC4, MSVC5.
660  + NeXT application (GUI) code has been removed. Plain TTY is still supported.
661
662* Module Berkeley-DB now supports Berkeley DB 4.5 & 4.6.
663
664* Bug fixes:
665  + FORCE-OUTPUT breakage on MacOS X when stdout is not a terminal (bug#421).
666  + Fixed *PRINT-PPRINT-DISPATCH* binding in WITH-STANDARD-IO-SYNTAX (bug#425).
667
668
6692.42 (2007-10-16)
670=================
671
672User visible changes
673--------------------
674
675* New module gtk2 interfaces to GTK+ v2 and makes it possible to build
676  GUI with Glade.
677  Thanks to James Bailey <dgym.bailey@gmail.com> for the original code.
678  See <http://clisp.org/impnotes/gtk.html> for details.
679
680* New module gdbm interfaces to GNU DataBase Manager.
681  Thanks to Masayuki Onjo <masayuki.onjo@gmail.com>.
682  See <http://clisp.org/impnotes/gdbm.html> for details.
683
684* A kind of Meta-Object Protocol for structures is now available.
685  See <http://clisp.org/impnotes/defstruct-mop.html> for details.
686
687* Module libsvm has been upgraded to the upstream version 2.84.
688  See <http://clisp.org/impnotes/libsvm.html> for details.
689
690* NEW-CLX module now supports Stumpwm <http://www.nongnu.org/stumpwm/>.
691  Thanks to Shawn Betts <sabetts@vcn.bc.ca>.
692  New NEW-CLX demos: bball bwindow greynetic hanoi petal plaid recurrence from
693  <http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/gui/clx/clx_demo.cl>.
694  New NEW-CLX demo: clclock based on <http://common-lisp.net/~crhodes/clx>.
695  New function XLIB:OPEN-DEFAULT-DISPLAY from portable CLX.
696
697* Function EXT:ARGLIST now works on macros too.
698  See <http://clisp.org/impnotes/evaluation.html#arglist> for details.
699
700* Macro TRACE has a new option :BINDINGS, which is useful to share data
701  between PRE-* and POST-* forms.
702  See <http://clisp.org/impnotes/debugger.html#trace> for details.
703
704* Macro FFI:DEF-C-TYPE can now be called with one argument to define an
705  integer type.
706  See <http://clisp.org/impnotes/dffi.html#def-c-type> for details.
707
708* New function EXT:RENAME-DIR can be used to rename directories.
709  See <http://clisp.org/impnotes/dir-func.html#rename-dir> for details.
710
711* Functions FILE-LENGTH and FILE-POSITION now work on unbuffered streams too.
712  See  <http://clisp.org/impnotes/file-pos.html> for details.
713
714* Bug fixes:
715  + Fixed EXT:LETF to work with more than one place (bug#413).
716  + Fixed rounding of long floats [even+1/2] (bug#376).
717  + Fixed stdio when running without a TTY, e.g., under SSH (bug#378).
718  + ANSI compliance: PPRINT dispatch is now respected for nested
719    objects, not just the top-level (bug#339, bug#382).
720  + Fixed print-read-consistency of strings containing #\Return characters
721    (manifested by COMPILE-FILE) (bug#373).
722  + Fixed "clisp-link run" (bug#332).
723  + Fixed ATANH branch cut continuity (bug#324).
724  + Reset the function lambda expression when loading a compiled
725    file (bug#383).
726  + DOCUMENTATION set by SETF is now preserved by COMPILE (bug#384).
727  + LISTEN now calls STREAM-LISTEN as per the Gray proposal (bug#387).
728  + IMPORT into the KEYWORD package does not make a symbol a constant
729    variable (bug#391).
730  + DEFPACKAGE code was executed during non top-level compilation (bug#389).
731  + Fixed format error message formatting (bug#336).
732  + Fixed *PPRINT-FIRST-NEWLINE* handling (bug#314).
733  + Improved hash code generation for very large bignums and for long lists
734    (bug#208, bug#255).
735  + Some bugs related to UNICODE-16 & UNICODE-32 (bug#366,
736    bug#399, bug#400).
737  + All exported defined symbols are now properly locked (bug#410).
738  + Berkeley-DB module no longer fills up error log file (bug#416).
739  + New-clx now supports 64-bit KeySym (bug#420).
740
741
7422.41 (2006-10-13)
743=================
744
745User visible changes
746--------------------
747
748* New module libsvm interfaces to <http://www.csie.ntu.edu.tw/~cjlin/libsvm>
749  and makes Support Vector Machines available in CLISP.
750  See <http://clisp.org/impnotes/libsvm.html> for details.
751
752* FASTCGI:GETENV is now compatible with EXT:GETENV and can return the
753  entire environment as an alist.
754
755* The same internal interface now handles FFI forms DEF-CALL-OUT and
756  DEF-C-VAR regardless of the presence of the :LIBRARY argument.
757  (:LIBRARY NIL) is now identical to omitting the :LIBRARY argument.
758  The default for the :LIBRARY argument is set by
759  FFI:DEFAULT-FOREIGN-LIBRARY per compilation unit.
760  See <http://clisp.org/impnotes/dffi.html#dffi-default-lib> for details.
761
762* Bug fixes:
763  + DOCUMENTATION on built-in functions was broken on some
764    platforms (bug#369).
765  + Fixed FFI callbacks, broken since the 2.36 release.
766  + Fixed the way the top-level driver handles the "--" option terminator.
767  + Fixed COMPILE of APPLY in LABELS for local function (bug#372).
768
769
7702.40 (2006-09-23)
771=================
772
773Important notes
774---------------
775
776* All .fas files generated by previous CLISP versions are invalid and
777  must be recompiled.  This is because DOCUMENTATION and LAMBDA-LIST are
778  now kept with the closures.
779  Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this.
780  See <http://clisp.org/impnotes/loadfile.html> for details.
781
782User visible changes
783--------------------
784
785* Infrastructure
786  + Top-level configure now accepts a new option --elispdir which specifies
787    the installation directory for the Emacs Lisp files (clhs.el et al).
788    The default value is ${datadir}/emacs/site-lisp/.
789    Thus, clhs.el at al are now installed by "make install", and should
790    be included in the 3rd party distributions.
791  + Top-level configure now accepts variables on command line, e.g.,
792    ./configure CC=g++ CFLAGS=-g
793
794* Function PCRE:PCRE-EXEC accepts :DFA and calls pcre_dfa_exec() when
795  built against PCRE v6.  See <http://clisp.org/impnotes/pcre.html>.
796
797* New functions RAWSOCK:IF-NAME-INDEX, RAWSOCK:IFADDRS.
798  See <http://clisp.org/impnotes/rawsock.html>.
799
800* When the OPTIMIZE SPACE level is low enough, keep function
801  documentation and lambda list.
802  See <http://clisp.org/impnotes/declarations.html#space-decl>.
803
804* Bug fixes:
805  + Make it possible to set *IMPNOTES-ROOT-DEFAULT* and *CLHS-ROOT-DEFAULT*
806    to local paths, as opposed to URLs (bug#344).
807  + Fix the evaluation order of initialization and :INITIALLY forms in
808    then extended LOOP (bug#351).
809  + Do not allow non-symbols as names of anonymous classes (bug#354).
810  + REINITIALIZE-INSTANCE now calls FINALIZE-INHERITANCE (bug#353).
811  + Fix the RAWSOCK module on big-endian platforms (bug#355).
812  + PRINT-OBJECT now works on built-in objects (bug#337).
813  + ADJUST-ARRAY signals an error if :FILL-POINTER is supplied and non-NIL
814    but the non-adjustable array has no fill pointer, as per ANSI (bug#360).
815  + MAKE-PATHNAME no longer ignores explicit :DIRECTORY NIL (thanks to
816    Stephen Compall <s11001001@users.sourceforge.net>) (bug#363).
817  + Executable images now work on ia64 (thanks to Dr. Werner Fink
818    <werner@suse.de>).
819  + MAKE-PATHNAME on win32 now handles correctly directories that start
820    with a non-string (e.g., :WILD) (bug#364).
821  + SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL had do-not-resolve-p
822    inverted since 2.37.
823  + Set functions with :TEST 'EQUALP were broken on large lists (bug#368).
824
825
8262.39 (2006-07-16)
827=================
828
829User visible changes
830--------------------
831
832* SAVEINITMEM now accepts :SCRIPT argument that disables interpreting
833  the first positional argument as the script name; and :DOCUMENTATION
834  argument that is printed by the new -help-image command line option.
835  See <http://clisp.org/impnotes/image.html> and
836  <http://clisp.org/impnotes/clisp.html#opt-help-image> for details.
837
838* FFI:UINT64 and FFI:SINT64 are now compatible with C's long long type.
839
840* Stack overflow detection and recovery finally work fine on Unix.
841  Libsigsegv is required for this, on all platforms (including MS-Windows).
842  CLISP should neither exit nor crash under infinite recursion.
843  If your distribution has CLISP compiled without libsigsegv, report
844  the missing feature to its maintainer.
845  Note that libsigsegv 2.4 is required, there are bugs in libsigsegv 2.3!
846
847* It is now possible to specify the default method-combination of a generic
848  function, to be used when the DEFGENERIC form does not specify the
849  :METHOD-COMBINATION explicitly, through a default initarg specification
850  for the :METHOD-COMBINATION keyword on the generic function class.
851
852* Readline completion works with non 1:1 terminal encodings, e.g. UTF-8.
853
854* WITH-KEYBOARD works with the terminal even when SLIME hijacks *TERMINAL-IO*.
855
856* I/O operations on Win32 are now much faster.
857
858* New functions: POSIX:FFS, POSIX:PATHCONF.
859
860* Infrastructure:
861  + Top-level configure now accepts a new option --with-gmalloc to use the
862    GNU malloc implementation instead of the one supplied by libc.
863    You may need it on older HP-UX and newer OpenBSD systems.
864    See file unix/PLATFORMS for more information.
865  + The value of the environment variable CFLAGS is respected by configure.
866
867* Bug fixes:
868  + SOCKET:SOCKET-SERVER :INTERFACE now behaves as documented.
869  + EXT:READ-BYTE-NO-HANG and SOCKET:SOCKET-STATUS used to hang on
870    buffered binary sockets.
871  + Allow DESTRUCTURING-BIND (a . b) with circular and dotted lists.
872  + ADJUST-ARRAY of zero length adjustable string now works.
873  + TIME now reports correct results when the heap grows over 4GB.
874  + RAWSOCK functions now handle :START/:END arguments correctly.
875  + BDB:DBC-GET now accepts :READ-COMMITTED and :READ-UNCOMMITTED.
876  + POSIX:GROUP-INFO and POSIX:USER-INFO now handle errors correctly.
877
878* Portability:
879  + Support DragonFly BSD.
880
881
8822.38 (2006-01-24)
883=================
884
885User visible changes
886--------------------
887
888* SAVEINITMEM can create standalone executables.
889  Thanks to Frank Buß <fb@frank-buss.de> for the idea.
890  SAVEINITMEM also accepts :NORC argument to disable RC-file loading.
891  See <http://clisp.org/impnotes/image.html> for details.
892
893* POSIX:SYSLOG no longer recognizes "%m" and other formatting instructions.
894  For your safety and security, please do all formatting in Lisp.
895
896* Fixed the OPEN :IF-EXISTS :APPEND bug introduced in 2.37.
897
898* Fixed a crash on woe32 in opening files with names longer than MAX_PATH.
899
900* Module Berkeley-DB now supports Berkeley DB 4.4.
901
902
9032.37 (2006-01-02)
904=================
905
906User visible changes
907--------------------
908
909* Signal a continuable error when an already opened file is opened again,
910  unless both streams are read-only.
911
912* SOCKET-SERVER now accepts :BACKLOG and :INTERFACE arguments.
913  The first (optional) argument should be the port number or NIL.
914  Use (SOCKET-SERVER NIL :INTERFACE SOCKET) instead of (SOCKET-SERVER SOCKET).
915  Thanks to Tomas Zellerin <zellerin@gmail.com>.
916  See <http://clisp.org/impnotes/socket.html#sose> for details.
917
918* EXT:HTTP-PROXY now uses the environment variable "http_proxy", like
919  curl does, not "HTTP_PROXY", to avoid confusing it with CGI arguments.
920
921* OPEN :DIRECTION :OUTPUT now creates write-only handles and treats
922  named pipes correctly.
923
924* Fixed EXT:SETENV on non-POSIX systems (woe32 and BSD derivatives).
925
926* Fixed a bug in EXT:! on 64-bit platforms.
927  Thanks to Dr. Werner Fink <werner@suse.de>.
928
929
9302.36 (2005-12-04)
931=================
932
933User visible changes
934--------------------
935
936* Infrastructure:
937  + Top-level configure now accepts the option --enable-maintainer-mode
938    that affects autoconf-related Makefile targets.  The default value
939    is determined based on the presence of the CVS directories.
940  + When libsigsegv is not found, print instructions on getting/building
941    libsigsegv and bail out; override with --ignore-absence-of-libsigsegv.
942  + When --with-dynamic-ffi is supplied, but the FFI fails to build, abort.
943  + When --with-readline is supplied, but GNU readline is not found, abort.
944  + makemake no longer checks with_module_* variables.
945
946* New function EXT:OPEN-HTTP and macro EXT:WITH-HTTP-INPUT.
947  See <http://clisp.org/impnotes/macros3.html#open-http> for details.
948
949* New declaration EXT:NOTSPECIAL undoes the effects of DEFVAR and DEFCONSTANT.
950  See <http://clisp.org/impnotes/declarations.html#notspec-decl>
951  for details.
952
953* Function EXT:CLHS is now deprecated in favor of DESCRIBE, which can now
954  point your web browser to the ANSI CL and CLISP-specific documentation.
955  See <http://clisp.org/impnotes/debugger.html#describe>
956  for details.
957
958* FFI modules can now take advantage of autoconf feature detection.
959  See <http://clisp.org/impnotes/dffi.html#ffi-guard> for details.
960
961* New FFI macro FFI:DEF-C-CONST.
962  See <http://clisp.org/impnotes/dffi.html#def-c-const> for details.
963
964* New charset BASE64 encodes arbitrary byte sequences with strings of
965  printable ASCII characters (4 characters per 3 bytes).
966  See <http://clisp.org/impnotes/encoding.html#base64> for details.
967
968* New module readline offers some advanced readline and history features.
969  It is a BASE module and is available when both FFI and readline are present.
970
971* SOCKET:SOCKET-SERVICE-PORT is now deprecated in favor of OS:SERVICE.
972  See <http://clisp.org/impnotes/syscalls.html#service> for details.
973
974* New SETF-able functions POSIX:GETUID, POSIX:GETGID, POSIX:GETEUID,
975  POSIX:GETEGID.
976  New functions POSIX:GROUP-INFO and POSIX:STRING-TIME.
977  Function POSIX:USER-DATA is renamed to POSIX:USER-INFO.
978  See <http://clisp.org/impnotes/syscalls.html> for details.
979
980* New NEW-CLX demo: koch.lisp draws fractal snowflakes.
981  Implemented XLIB:SET-MODIFIER-MAPPING, XLIB:KEYSYM->KEYCODES,
982  XLIB:ACCESS-HOSTS, XLIB:ADD-ACCESS-HOST, XLIB:REMOVE-ACCESS-HOST,
983  XLIB:CHANGE-KEYBOARD-CONTROL, XLIB:CHANGE-KEYBOARD-MAPPING,
984  XLIB:KEYBOARD-MAPPING, XLIB:KEYSYM-NAME, XLIB:KEYCODE->CHARACTER,
985  XLIB:SHAPE-EXTENTS, XLIB:SHAPE-RECTANGLES, XLIB:DEFAULT-KEYSYM-INDEX.
986  Use MAP instead of ELT for sequence access in NEW-CLX.
987
988* ANSI CL compliance issues:
989  + DEFPACKAGE options :SHADOWING-IMPORT-FROM, :USE, :IMPORT-FROM
990    accept package designators, not just package names.
991  + ENCODE-UNIVERSAL-TIME is now the perfect inverse for DECODE-UNIVERSAL-TIME.
992
993* The command line option -v now affects *LOAD-ECHO* also.
994  See <http://clisp.org/impnotes/clisp.html#opt-verbose> for details.
995
996* When a CLISP process is killed, clean-up is always executed.
997
998* DEFCLASS now permits user-defined :ALLOCATION arguments.
999
1000* Fixed (FUNCTION-LAMBDA-EXPRESSION #'(SETF FOO)) on compiled functions.
1001
1002* Fixed re-exporting symbols from POSIX to EXT.
1003
1004* Fixed module rawsock on platforms with non-trivial struct sockaddr layout.
1005  Functions that take a BUFFER argument, also take :START and :END arguments.
1006  Renamed RAWSOCK:LISTEN to RAWSOCK:SOCK-LISTEN to avoid a conflict with CL.
1007  New functions RAWSOCK:PROTOCOL, RAWSOCK:NETWORK, RAWSOCK:GETADDRINFO,
1008  RAWSOCK:GETNAMEINFO.
1009  See <http://clisp.org/impnotes/rawsock.html> for details.
1010
1011* Fixed module postgresql logging behavior.
1012
1013* Fixed clisp.h generation to conform to the internal definitions.
1014
1015
10162.35 (2005-08-29)
1017=================
1018
1019User visible changes
1020--------------------
1021
1022* SOCKET:SOCKET-STREAM-SHUTDOWN does not call CLOSE anymore,
1023  just shutdown(2) - as it has always been documented.
1024  It now also works on raw sockets, thus RAWSOCK:SHUTDOWN has been removed.
1025  See <http://clisp.org/impnotes/socket.html#sost-shut> and
1026  <http://clisp.org/impnotes/rawsock.html> for details.
1027
1028* When the command line option -E receives an invalid encoding,
1029  ISO-8859-1 is used instead. [It was ASCII (for *FOREIGN-ENCODING*) or
1030  UTF-8 (for all other encodings) before.]
1031  Rationale: this is a 1:1 that corresponds to CLISP CODE-CHAR/CHAR-CODE
1032  and avoids spurious errors in DIRECTORY on startup.
1033
1034* New function EXT:COMPILED-FILE-P - checks whether the file is a
1035  CLISP-compiled file with a compatible bytecode format.
1036  See <http://clisp.org/impnotes/compiled-file-p.html> for details.
1037
1038* New functions EXT:CHAR-INVERTCASE, EXT:STRING-INVERTCASE and
1039  EXT:NSTRING-INVERTCASE invert case of characters and strings.
1040  See <http://clisp.org/impnotes/char-case.html#char-invertcase> and
1041  <http://clisp.org/impnotes/string-misc.html#string-invertcase> for details.
1042
1043* New function POSIX:STREAM-OPTIONS calls fcntl(2).
1044  See <http://clisp.org/impnotes/syscalls.html#fcntl> for details.
1045
1046* Explicitly close all possible file descriptors before exec().
1047
1048* Danish translations of the user interface messages have been added.
1049  Thanks to Dennis Decker Jensen <dennisdjensen@tiscali.dk>.
1050
1051
10522.34 (2005-07-20)
1053=================
1054
1055Important notes
1056---------------
1057
1058* All .fas files generated by previous CLISP versions are invalid and
1059  must be recompiled.  This is caused by the addition of MOP, the DEFSETF
1060  fixes, and the TRANSLATE-PATHNAME and MAKE-HASH-TABLE enhancements.
1061  Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this.
1062  See <http://clisp.org/impnotes/loadfile.html> for details.
1063
1064* The name of the Run-Control file has changed from '_clisprc' to
1065  '.clisprc' on all platforms.
1066  If you are using woe32, please rename your Run-Control file.
1067
1068* Modules i18n, regexp, and syscalls are now present even in the base
1069  linking set.  Do not pass, e.g., "--with-module=regexp" to configure.
1070
1071User visible changes
1072--------------------
1073
1074* The CLOS MetaObject Protocol is supported:
1075  + New class METAOBJECT.
1076  + Classes:
1077    New classes
1078      STANDARD-READER-METHOD, STANDARD-WRITER-METHOD, FORWARD-REFERENCED-CLASS.
1079    New functions
1080      ENSURE-CLASS.
1081    New generic functions
1082      CLASS-DIRECT-SUPERCLASSES, CLASS-PRECEDENCE-LIST, CLASS-DIRECT-SLOTS,
1083      CLASS-SLOTS, CLASS-DIRECT-DEFAULT-INITARGS, CLASS-DEFAULT-INITARGS.
1084    New customizable generic functions
1085      For class creation:
1086        ENSURE-CLASS-USING-CLASS, VALIDATE-SUPERCLASS,
1087        COMPUTE-DIRECT-SLOT-DEFINITION-INITARGS,
1088        COMPUTE-CLASS-PRECEDENCE-LIST, COMPUTE-EFFECTIVE-SLOT-DEFINITION,
1089        COMPUTE-EFFECTIVE-SLOT-DEFINITION-INITARGS, COMPUTE-SLOTS,
1090        COMPUTE-DEFAULT-INITARGS, READER-METHOD-CLASS, WRITER-METHOD-CLASS.
1091      For notification about subclasses:
1092        CLASS-DIRECT-SUBCLASSES, ADD-DIRECT-SUBCLASS, REMOVE-DIRECT-SUBCLASS.
1093  + Generic Functions:
1094    New classes
1095      FUNCALLABLE-STANDARD-CLASS, FUNCALLABLE-STANDARD-OBJECT.
1096    New functions
1097      ENSURE-GENERIC-FUNCTION, SET-FUNCALLABLE-INSTANCE-FUNCTION,
1098      COMPUTE-EFFECTIVE-METHOD-AS-FUNCTION.
1099    New generic functions
1100      GENERIC-FUNCTION-NAME, GENERIC-FUNCTION-METHODS,
1101      GENERIC-FUNCTION-METHOD-CLASS, GENERIC-FUNCTION-LAMBDA-LIST,
1102      GENERIC-FUNCTION-METHOD-COMBINATION,
1103      GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER, GENERIC-FUNCTION-DECLARATIONS.
1104    New customizable generic functions
1105      ENSURE-GENERIC-FUNCTION-USING-CLASS, COMPUTE-DISCRIMINATING-FUNCTION,
1106      COMPUTE-APPLICABLE-METHODS, COMPUTE-APPLICABLE-METHODS-USING-CLASSES.
1107  + Methods:
1108    New generic functions
1109      METHOD-FUNCTION, METHOD-GENERIC-FUNCTION, METHOD-LAMBDA-LIST,
1110      METHOD-SPECIALIZERS, ACCESSOR-METHOD-SLOT-DEFINITION.
1111    New functions
1112      EXTRACT-LAMBDA-LIST, EXTRACT-SPECIALIZER-NAMES.
1113  + Method-Combinations:
1114    New generic function
1115      FIND-METHOD-COMBINATION.
1116    New customizable generic function
1117      COMPUTE-EFFECTIVE-METHOD.
1118  + Slot-Definitions:
1119    New classes
1120      SLOT-DEFINITION, STANDARD-SLOT-DEFINITION,
1121      DIRECT-SLOT-DEFINITION, STANDARD-DIRECT-SLOT-DEFINITION,
1122      EFFECTIVE-SLOT-DEFINITION, STANDARD-EFFECTIVE-SLOT-DEFINITION.
1123    New generic functions
1124      SLOT-DEFINITION-NAME, SLOT-DEFINITION-INITFORM,
1125      SLOT-DEFINITION-INITFUNCTION, SLOT-DEFINITION-TYPE,
1126      SLOT-DEFINITION-ALLOCATION, SLOT-DEFINITION-INITARGS,
1127      SLOT-DEFINITION-READERS, SLOT-DEFINITION-WRITERS,
1128      SLOT-DEFINITION-LOCATION.
1129    New customizable generic functions
1130      DIRECT-SLOT-DEFINITION-CLASS, EFFECTIVE-SLOT-DEFINITION-CLASS.
1131  + Specializers:
1132    New classes
1133      SPECIALIZER, EQL-SPECIALIZER.
1134    New generic functions
1135      SPECIALIZER-DIRECT-GENERIC-FUNCTIONS, SPECIALIZER-DIRECT-METHODS.
1136    New functions
1137      EQL-SPECIALIZER-OBJECT, INTERN-EQL-SPECIALIZER.
1138    New customizable generic functions
1139      ADD-DIRECT-METHOD, REMOVE-DIRECT-METHOD.
1140  + Slot access:
1141    New generic functions
1142      SLOT-VALUE-USING-CLASS, (SETF SLOT-VALUE-USING-CLASS),
1143      SLOT-BOUNDP-USING-CLASS, SLOT-MAKUNBOUND-USING-CLASS.
1144    New functions
1145      STANDARD-INSTANCE-ACCESS, FUNCALLABLE-STANDARD-INSTANCE-ACCESS.
1146  + Dependent object notification:
1147    New functions
1148      MAP-DEPENDENTS.
1149    New customizable generic functions
1150      ADD-DEPENDENT, REMOVE-DEPENDENT, UPDATE-DEPENDENT.
1151  See <http://clisp.org/impnotes/mop-chap.html> for details,
1152  and <http://clisp.org/impnotes/mop-clisp.html> for a list
1153  of differences between CLISP and "The Art of the Metaobject Protocol".
1154  *FEATURES* now contains :MOP.
1155
1156* CLISP now supports programming with case sensitive symbols. This is the
1157  default when CLISP is started with the new command line option "-modern".
1158  See <http://clisp.org/impnotes/package-case.html> and
1159  <http://clisp.org/impnotes/clisp.html#opt-modern> for details.
1160
1161* Several new datatypes that manage weak references:
1162    WEAK-LIST, WEAK-AND-RELATION, WEAK-OR-RELATION,
1163    WEAK-MAPPING, WEAK-AND-MAPPING, WEAK-OR-MAPPING, WEAK-ALIST.
1164  New functions
1165    - for WEAK-LIST:
1166      MAKE-WEAK-LIST, WEAK-LIST-P, WEAK-LIST-LIST, (SETF WEAK-LIST-LIST),
1167    - for WEAK-AND-RELATION:
1168      MAKE-WEAK-AND-RELATION, WEAK-AND-RELATION-P, WEAK-AND-RELATION-LIST,
1169    - for WEAK-OR-RELATION:
1170      MAKE-WEAK-OR-RELATION, WEAK-OR-RELATION-P, WEAK-OR-RELATION-LIST,
1171    - for WEAK-MAPPING:
1172      MAKE-WEAK-MAPPING, WEAK-MAPPING-P, WEAK-MAPPING-PAIR, WEAK-MAPPING-VALUE,
1173      (SETF WEAK-MAPPING-VALUE),
1174    - for WEAK-AND-MAPPING:
1175      MAKE-WEAK-AND-MAPPING, WEAK-AND-MAPPING-P, WEAK-AND-MAPPING-PAIR,
1176      WEAK-AND-MAPPING-VALUE, (SETF WEAK-AND-MAPPING-VALUE),
1177    - for WEAK-OR-MAPPING:
1178      MAKE-WEAK-OR-MAPPING, WEAK-OR-MAPPING-P, WEAK-OR-MAPPING-PAIR,
1179      WEAK-OR-MAPPING-VALUE, (SETF WEAK-OR-MAPPING-VALUE),
1180    - for WEAK-ALIST:
1181      MAKE-WEAK-ALIST, WEAK-ALIST-P, WEAK-ALIST-TYPE, WEAK-ALIST-CONTENTS,
1182      (SETF WEAK-ALIST-CONTENTS), WEAK-ALIST-ASSOC, WEAK-ALIST-RASSOC,
1183      WEAK-ALIST-VALUE, (SETF WEAK-ALIST-VALUE).
1184  See <http://clisp.org/impnotes/weak.html> for details.
1185
1186* You can create formatting streams of class EXT:FILL-STREAM.
1187  See <http://clisp.org/impnotes/fill-stream.html> for details.
1188
1189* SUBTYPEP can determine subtype relationship and type equivalence much better
1190  than it could before.
1191
1192* When *PRINT-READABLY* is true, symbols are now printed with package marker
1193  and vertical bars.
1194
1195* ANSI CL compliance issues:
1196  + Issue <DECLARATION-SCOPE:NO-HOISTING> is implemented: The scope of
1197    declarations that do not apply to bindings, such as free SPECIAL, NOTINLINE
1198    or OPTIMIZE declarations, includes only the body forms and no longer
1199    includes the initforms of the LAMBDA/LET/LET*/MULTIPLE-VALUE-BIND bindings.
1200  + Vectors of element type NIL are now strings in all aspects. But the type
1201    BASE-STRING does _not_ include vectors of element type NIL.
1202  + TYPE-OF now returns STANDARD-CHAR instead of CHARACTER when possible.
1203  + The type COMPILED-FUNCTION no longer encompasses generic functions.
1204  + TYPE-OF now returns COMPILED-FUNCTION or STANDARD-GENERIC-FUNCTION instead
1205    of FUNCTION when possible.
1206  + The space character is printed as "#\ " if CUSTOM:*PRINT-SPACE-CHAR-ANSI*
1207    is true.
1208  + The #<PACKAGE KEYWORD> no longer has the nickname "". The syntax :FOO for
1209    keywords still works, but is now special cased in the reader.
1210  + Class redefinition with DEFCLASS no longer modifies the previous class if
1211    it doesn't have a "proper name".
1212  + Class redefinition with DEFCLASS removes accessor methods that have been
1213    installed through the previous DEFCLASS definition of the same class.
1214  + Generic function redefinition with DEFGENERIC removes methods that have
1215    been installed through the previous DEFGENERIC definition of the same
1216    function.
1217  + The set of qualifiers allowed for methods that are combined with a method
1218    combination defined through the short form of DEFINE-METHOD-COMBINATION
1219    now includes the name of the method combination instead of the operator.
1220  + FIND-METHOD now gives an error if the list of specializers has a wrong
1221    length.
1222  + ARRAY-TOTAL-SIZE-LIMIT, ARRAY-DIMENSION-LIMIT, ARRAY-RANK-LIMIT are now
1223    fixnums.
1224  + SHORT-FLOATs whose absolute value is an integer in the range between 10^5
1225    and 10^7 are now printed with full precision.
1226  + Operations combining rational and floating-point numbers now return a
1227    floating-point result if CUSTOM:*FLOATING-POINT-RATIONAL-CONTAGION-ANSI*
1228    is true. When the mathematical result in a situation is rational, a
1229    warning is issued if CUSTOM:*WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION* is
1230    true.
1231  + Class redefinition with DEFCLASS now updates existing instances as
1232    specified.
1233  + An ABORT restart is now always installed.
1234  + UPDATE-INSTANCE-FOR-DIFFERENT-CLASS does the required argument checking.
1235  + Passing invalid initialization arguments to MAKE-INSTANCE and similar
1236    now generates a PROGRAM-ERROR instead of just an ERROR.
1237  + Documentation strings are now attached to class objects, not just to
1238    their name.
1239  + Arrays with total array size 0 are printed in a lossy way if
1240    CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI* is true and *PRINT-READABLY* is false.
1241  + Allow () to match NIL in destructuring lambda lists.
1242  + Documentation strings at a place where only declarations and forms are
1243    allowed now give a warning, not an error.
1244  + LAST, BUTLAST and NBUTLAST check their list argument for circularity.
1245  + Different LOAD-TIME-VALUE forms that are EQUAL but not EQ are no longer
1246    coalesced by COMPILE-FILE.
1247  + DEFSETF lambda-lists now support &ENVIRONMENT.
1248  + DEFSETF lambda-lists are no longer destructuring lambda-lists.
1249  + NAMESTRING no longer accepts an optional second argument.
1250  + SETF of VALUES now uses only the first value of each subform.
1251  + SPECIAL declarations of variables are now correctly respected inside
1252    macro expanders defined through MACROLET within the declaration's scope.
1253  + (EXPORT NIL), (UNEXPORT NIL), (IMPORT NIL), (SHADOWING-IMPORT NIL),
1254    (SHADOW NIL) are now nops.
1255  + An attempt to create a condition from an invalid condition designator now
1256    always results in a TYPE-ERROR being signalled.
1257  + The reader's errors are now of type READER-ERROR when they should be.
1258  + READ-DELIMITED-LIST now returns NIL when *READ-SUPPRESS* is true.
1259  + Printing of multidimensional arrays now respects *PRINT-LEVEL*.
1260  + As required by 19.2.3, *DEFAULT-PATHNAME-DEFAULTS* is merged into
1261    pathnames before accessing the file system.
1262  + LOGICAL-PATHNAME now gives an error if the argument string does not
1263    contain a host specification.
1264  + The PRINT-UNREADABLE macro prints extraneous spaces if
1265    CUSTOM:*PRINT-UNREADABLE-ANSI* is true.
1266  + In the #n= and #n# reader syntax, the integer n may now be larger than
1267    7 digits.
1268  + IN-PACKAGE forms with constant arguments are no longer executed by the
1269    compiler if they occur in a non-null lexical environment.
1270  + COMPILE-FILE now always returns the TRUENAME of its output file.
1271  + GET-SETF-EXPANSION now accepts NIL as the environment argument to
1272    mean null lexical environment
1273  Thanks to Paul F. Dietz <dietz@dls.net> and his ANSI compliance
1274  suite, which helped detect some of these deficiencies.
1275  Thanks to Yuji Minejima <ggb01164@nifty.ne.jp> and his ANSI compliance
1276  suite, which helped detect some of these deficiencies.
1277
1278* Global error handlers can now be installed and removed using
1279  EXT:SET-GLOBAL-HANDLER, EXT:WITHOUT-GLOBAL-HANDLERS,
1280  and -on-error command line option.
1281  See <http://clisp.org/impnotes/restarts.html#global-handler> and
1282  <http://clisp.org/impnotes/clisp.html#opt-on-error> for details.
1283
1284* TRANSLATE-PATHNAME and TRANSLATE-LOGICAL-PATHNAME accept a new keyword
1285  argument :ABSOLUTE which makes them convert their return values to
1286  absolute pathnames.
1287  See <http://clisp.org/impnotes/filename-misc.html#translate-pathname> and
1288  <http://clisp.org/impnotes/filename-misc.html#translate-logpath> for details.
1289
1290* New function EXT:ABSOLUTE-PATHNAME.
1291  See <http://clisp.org/impnotes/filename-misc.html#absolute-pathname> for details.
1292
1293* New function EXT:ELASTIC-NEWLINE and new FORMAT directive "~.".
1294  See <http://clisp.org/impnotes/elastic-newline.html>
1295  and <http://clisp.org/impnotes/print-formatted.html#format-dot> for details.
1296  Through this function, CLISP no longer produces spurious blank lines when
1297  a program uses the convention of printing a #\Newline before each line.
1298
1299* TRACE has a new option :MAX-DEPTH, that is useful to avoid infinite
1300  recursions in the tracer.
1301  See <http://clisp.org/impnotes/debugger.html#trace> for details.
1302
1303* The function LENGTH and a few other sequence functions now signal a
1304  TYPE-ERROR when a circular list has been given as argument.
1305
1306* Function UPGRADED-COMPLEX-PART-TYPE is now as precise as possible.
1307  See <http://clisp.org/impnotes/num-concepts.html#ucpt> for details.
1308
1309* In non-interactive batch mode, *ERROR-OUTPUT* now uses the system's
1310  standard error stream, instead of the standard output stream.
1311
1312* The macros MUFFLE-CERRORS, APPEASE-CERRORS and EXIT-ON-ERROR now treat
1313  CONTINUE restarts which require interactive user intervention like other
1314  restarts. Only non-interactive CONTINUE restarts are silently invoked.
1315
1316* LOAD :OBSOLETE-ACTION can now also be :COMPILE to automatically
1317  recompile the obsolete *.fas file.
1318  LOAD can now ignore erroneous forms using SKIP and STOP restarts.
1319  See <http://clisp.org/impnotes/loadfile.html> for details.
1320
1321* References from within macros defined through MACROLET to variables or
1322  functions defined in the lexical environment outside the MACROLET form
1323  now signal an error. Previously, this resulted in undefined behavior.
1324
1325* The FFI recognizes the c-type declaration (FFI:C-POINTER <c-type>) to
1326  handle references without conversion to/from Lisp structures.
1327  See <http://clisp.org/impnotes/dffi.html#c-pointer> for details.
1328
1329* The FFI variable FFI:*FOREIGN-ENCODING* can now be a multibyte encoding.
1330  The warning "*FOREIGN-ENCODING*: reset to ASCII" at startup is gone.
1331
1332* New FFI constructor functions FFI:FOREIGN-VARIABLE and FFI:FOREIGN-FUNCTION,
1333  more operators are now exported (FFI:FOREIGN-VALUE, FFI:PARSE-C-TYPE).
1334  See <http://clisp.org/impnotes/dffi.html#dffi-make-var>
1335  and <http://clisp.org/impnotes/dffi.html#dffi-make-func> for details.
1336
1337* FFI macro FFI:C-LINES can now be used to fine-tune
1338  initialization and finalization.
1339  See <http://clisp.org/impnotes/dffi.html#c-lines> for details.
1340
1341* New FFI function FFI:CLOSE-FOREIGN-LIBRARY can be used to unload a library.
1342  See <http://clisp.org/impnotes/dffi.html#dffi-close-lib> for details.
1343
1344* New FFI low-level accessor FFI:MEMORY-AS.
1345  See <http://clisp.org/impnotes/dffi.html#memory-as> for details.
1346
1347* Foreign functions and variables can now be documented using the
1348  :DOCUMENTATION option to FFI:DEF-CALL-OUT and FFI:DEF-C-VAR.
1349
1350* Buffered streams now are suitable for interactive streams. It is no longer
1351  necessary to use :BUFFERED NIL to avoid blocking in various situations.
1352
1353* Function EXT:READ-BYTE-SEQUENCE takes a new keyword argument :INTERACTIVE.
1354  See <http://clisp.org/impnotes/bulk-io.html#rd-by-seq> for details.
1355
1356* Methods on GRAY:STREAM-READ-BYTE-SEQUENCE and GRAY:STREAM-WRITE-BYTE-SEQUENCE
1357  now need to accept a second optional argument.
1358
1359* The possible values of the :WEAK argument of MAKE-HASH-TABLE are changed:
1360  Use :KEY-AND-VALUE instead of :EITHER, :KEY-OR-VALUE instead of :BOTH now.
1361
1362* The :LIBRARY option argument to EXT:DEF-CALL-OUT and EXT:DEF-C-VAR is now
1363  evaluated (i.e., it can now be a variable) and may take a value of
1364  :DEFAULT and :NEXT in addition to being a string as before.
1365  See <http://clisp.org/impnotes/dffi.html#def-c-var> and
1366  <http://clisp.org/impnotes/dffi.html#def-call-out> for details.
1367
1368* New user variable CUSTOM:*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*
1369  allows using the shortest package (nick)name as the symbol prefix.
1370  See <http://clisp.org/impnotes/sym-pack-prefix.html#pr-sym-pack-prefix>
1371  for details.
1372
1373* The user commands can now be extended using CUSTOM:*USER-COMMANDS*.
1374  See <http://clisp.org/impnotes/repl.html#user-commands> for details.
1375
1376* Initialization and finalization of the CLISP process can now be
1377  augmented with CUSTOM:*INIT-HOOKS* and CUSTOM:*FINI-HOOKS*.
1378  See <http://clisp.org/impnotes/custom-init-fini.html#init-hooks> and
1379  <http://clisp.org/impnotes/custom-init-fini.html#fini-hooks> for details.
1380
1381* SET functions (like UNION et al) are now much faster on large lists.
1382
1383* The second, optional argument of EXT:SPECIAL-VARIABLE-P can no longer be T;
1384  please use (THE-ENVIRONMENT) instead.
1385
1386* New function EXT:FEATUREP - the run-time version of read-time #+/#-.
1387  See <http://clisp.org/impnotes/featurep.html> for details.
1388
1389* Bug fixes:
1390  + The interpreter no longer executes the body of (EVAL-WHEN (COMPILE) ...)
1391    forms.
1392  + Fixes to internationalized error messages.
1393  + When an interpreted INITIALIZE-INSTANCE method uses CALL-NEXT-METHOD with
1394    a modified argument list, MAKE-INSTANCE could in some cases initialize
1395    the new object three times instead of just once.
1396  + Fixed a compiler bug that could lead to incorrect code when a LAMBDA
1397    with SPECIAL-declared optional variables was compiled inline and the
1398    initforms of the optional variables depended on the values of the previous
1399    optional variables.
1400  + Passing a package as second argument of RENAME-PACKAGE led to an
1401    unjustified error.
1402  + Passing a displaced vector as argument to REVERSE could lead to an
1403    unjustified error.
1404  + FRESH-LINE did not work in some situations.
1405  + Fixed ATANH on complex numbers.
1406  + The macros EXT:LETF and EXT:LETF* now work correctly on symbol-macros.
1407  + Fixed a spurious crash of MULTIPLE-VALUE-SETQ in interpreted code.
1408  + Fixed a crash of (COPY-READTABLE NIL some-readtable).
1409  + Fixed a crash when using a hash-table as hash-table key.
1410  + Fixed a crash triggered by the READ-BYTE function on streams with
1411    element type ([UN]SIGNED-BYTE n), 24 < n < 32, on big-endian platforms.
1412  + Fixed a crash that occurred on glibc platforms when writing Unicode
1413    characters in the range #\U000E0000..#\U000E007F on a stream with an
1414    encoding other than UTF-8.
1415  + An invalid bignum could be returned by GET-INTERNAL-RUN-TIME on 64-bit
1416    platforms.
1417  + Third party code walkers can now handle HANDLER-BIND et al.
1418
1419* Woe32 distribution now comes with a binary driver clisp.exe.
1420  Do not copy it anywhere - create a shortcut to it instead!
1421  Use install.bat to automate shortcut creation.
1422
1423* (SOFTWARE-TYPE) now returns memory model information,
1424  valuable in bug reports.
1425
1426Modules
1427-------
1428
1429* New module matlab interfaces to <http://www.mathworks.com/products/matlab/>
1430  and allows complicated matrix computations.
1431  See <http://clisp.org/impnotes/matlab.html> for details.
1432
1433* New module rawsock offers low-level socket access.
1434  Thanks to Fred and Don Cohens.
1435  See <http://clisp.org/impnotes/rawsock.html> for details.
1436
1437* New module zlib interfaces to <http://www.zlib.org> and allows
1438  compression and uncompression of vectors.
1439  See <http://clisp.org/impnotes/zlib.html> for details.
1440
1441* New module i18n now contains the GNU gettext interface as well as
1442  other functionality for Lisp program internationalization.
1443  See <http://clisp.org/impnotes/i18n-mod.html> for details.
1444
1445* New module PARI interfaces to <http://pari.math.u-bordeaux.fr/>.
1446  See <http://clisp.org/impnotes/pari.html> for details.
1447
1448* Module syscalls is significantly expanded.
1449  See <http://clisp.org/impnotes/syscalls.html> for details.
1450
1451* Module Berkeley-DB is vastly expanded.
1452  See <http://clisp.org/impnotes/berkeley-db.html> for details.
1453  Added support for Berkeley DB 4.3.
1454
1455* Modules now have an exit function.
1456  See <http://clisp.org/impnotes/modules.html#modfini> for details.
1457
1458Portability
1459-----------
1460
1461* Heaps and memory images larger than 4 GB are now supported on 64-bit
1462  platforms.
1463
1464* Support files larger than 2 GB or 4 GB also on Windows.
1465
1466* Weak pointers now also work on platforms without mmap().
1467
1468* Weak hash tables now also work on platforms without mmap().
1469
1470* Dynamic modules now work on woe32 too.
1471
1472* On most 64-bit platforms, fixnums are now 49 bits wide (including the sign
1473  bit), instead of 33 bits wide.
1474
1475
14762.33.2 (2004-06-02)
1477===================
1478
1479Portability
1480-----------
1481
1482* Support for the Linux/x86 distributions called Redhat Fedora and Redhat
1483  Enterprise Linux.
1484
1485
14862.33.1 (2004-05-22)
1487===================
1488
1489User visible changes
1490--------------------
1491
1492* Bug fixes:
1493  + The return value of ASINH was always rounded to a SINGLE-FLOAT.
1494  + The return value of NSTRING-UPCASE, NSTRING-DOWNCASE, NSTRING-CAPITALIZE,
1495    WRITE-STRING, WRITE-LINE, when called with a displaced string as argument,
1496    was wrong.
1497  + Some cases of ,@ inside doubly-nested backquote led to an unjustified
1498    error.
1499
1500Portability
1501-----------
1502
1503* Improved portability for Solaris/SPARC64 in 64-bit mode.
1504
1505* Buildable with GCC-3.4.
1506
1507* Fixed a bug in (ASH x MOST-NEGATIVE-FIXNUM) on some platforms.
1508
1509* Fixed a bug in (SIGNUM negative-single-float) on 64-bit platforms.
1510
1511* Fixed a bug in (LOGAND fixnum bignum), (LOGNAND fixnum bignum),
1512  (LOGANDC2 fixnum bignum), (LOGANDC1 bignum fixnum) on some rare platforms.
1513
1514
15152.33 (2004-03-17)
1516=================
1517
1518Important notes
1519---------------
1520
1521* All .fas files generated by previous CLISP versions are invalid and
1522  must be recompiled.  Use CUSTOM:*LOAD-OBSOLETE-ACTION* to automate this.
1523  See <http://clisp.org/impnotes/loadfile.html> for details.
1524
1525User visible changes
1526--------------------
1527
1528* NO-APPLICABLE-METHOD, NO-PRIMARY-METHOD and NO-NEXT-METHOD now signal
1529  METHOD-CALL-ERROR or METHOD-CALL-TYPE-ERROR.
1530  See <http://clisp.org/impnotes/std-meth-combo.html#meth-call-err> for details.
1531
1532* New user variables CUSTOM:*APROPOS-MATCHER* and CUSTOM::*APROPOS-DO-MORE*
1533  make APROPOS more flexible in search and output.
1534  See <http://clisp.org/impnotes/debugger.html#apropos> for details.
1535
1536* New function EXT:MOD-EXPT efficiently computes the composition of MOD
1537  and EXPT on integers.
1538  See <http://clisp.org/impnotes/num-concepts.html#int-func-ext> for details.
1539
1540* New function EXT:ARGV returns the command line arguments passed to runtime.
1541  See <http://clisp.org/impnotes/environment-enq.html#argv> for details.
1542
1543* New generic function GRAY:STREAM-POSITION extends FILE-POSITION to
1544  Gray streams; FILE-POSITION now works with streams other than FILE-STREAMs.
1545  See <http://clisp.org/impnotes/gray.html> for details.
1546
1547* DEFINE-METHOD-COMBINATION and friends are now implemented.
1548  Thanks to James Anderson <james.anderson@setf.de>.
1549  This change obsoleted all compiled file.
1550
1551Portability
1552-----------
1553
1554* Improved portability for nearly all platforms: Linux, MacOS X, Solaris,
1555  Tru64, HP-UX, AIX, FreeBSD, NetBSD, OpenBSD, BeOS.
1556
1557* Removed Acorn RISCOS support.
1558
1559* Removed AmigaOS support.
1560
1561* Removed support for MSDOS and OS/2, using EMX.
1562
1563* Removed support for Borland C compiler on Win32.
1564
1565* Added FFI support for x86_64 (AMD64) Linux and PowerPC MacOS X.
1566
1567
15682.32 (2003-12-29)
1569=================
1570
1571User visible changes
1572--------------------
1573
1574* WRITE-BYTE-SEQUENCE now accepts :NO-HANG keyword argument.
1575  Thanks to Don Cohen <don-sourceforge@isis.cs3-inc.com>.
1576
1577* Support files larger than 2 GB or 4 GB on platforms with LFS
1578  (Large File Support).
1579
1580* New module Berkeley-DB interfaces to
1581  <http://www.sleepycat.com/docs/api_c/frame.html>
1582  and allows working with Berkeley DB databases.
1583  See <http://clisp.org/impnotes/berkeley-db.html> for details.
1584
1585* New module pcre interfaces to <http://www.pcre.org/> and
1586  makes Perl Compatible Regular Expressions available in CLISP.
1587  See <http://clisp.org/impnotes/pcre.html> for details.
1588
1589* Module syscalls now exports function POSIX:STAT-VFS.
1590  See <http://clisp.org/impnotes/syscalls.html> for details.
1591
1592* When the system C library provides a wildcard (fnmatch) implementation,
1593  it is used instead of the GNU wildcard distributed with CLISP
1594  when the CLISP wildcard module is built.
1595
1596* Prompt is now fully customizable by the user.
1597  CUSTOM:*PROMPT* is replaced with 5 variables.
1598  See <http://clisp.org/impnotes/prompt.html> for details.
1599
1600* Readline is now used properly on Cygwin/X11.
1601
1602* Command line interface: the initial verbosity level is controlled
1603  by the pair of mutually canceling options -q/-v.
1604  See <http://clisp.org/impnotes/clisp.html#opt-verbose> for details.
1605
1606
16072.31 (2003-09-01)
1608=================
1609
1610Important notes
1611---------------
1612
1613* All .fas files generated by previous CLISP versions are invalid and
1614  must be recompiled.  This is not as bad as it was before: the invalid
1615  files will be ignored and the sources will be loaded instead of
1616  signaling an error unless you set CUSTOM:*LOAD-OBSOLETE-ACTION*.
1617  See <http://clisp.org/impnotes/loadfile.html> for details.
1618
1619* All custom-written external modules must be updated to reflect
1620  changes in the C definitions, e.g. many C types were renamed to a
1621  trailing _t (subr_t, object_initdata_t) and LISPFUN takes an
1622  additional side-effect class (seclass) parameter.
1623
1624User visible changes
1625--------------------
1626
1627* Added a new module - "fastcgi": an interface to the FastCGI
1628  Web server CGI-compatible protocol (see http://www.fastcgi.com/)
1629  Thanks to John K. Hinsdale <hin@alma.com>.
1630  See <http://clisp.org/impnotes/fastcgi.html> for details.
1631
1632* External modules now work on win32 (when used with cygwin or mingw).
1633  See <http://clisp.org/impnotes/modules.html#mod-win32> for details.
1634
1635* DIRKEY is now a standard module: use `--with-module=dirkey'
1636  instead of `--with-dir-key' when configuring.
1637  See <http://clisp.org/impnotes/dir-key.html> for details.
1638
1639* SYSCALLS is now a standard module: use `--with-module=syscalls
1640  instead of `--with-export-syscalls' when configuring.
1641  See <http://clisp.org/impnotes/syscalls.html> for details.
1642
1643* New module netica interfaces to <http://norsys.com/netica_c_api.htm>
1644  and allows working with Bayesian belief networks and influence diagrams.
1645  See <http://clisp.org/impnotes/netica.html> for details.
1646
1647* READ-BYTE-SEQUENCE now accepts :NO-HANG keyword argument.
1648
1649* LOAD now takes an additional keyword argument :OBSOLETE-ACTION which
1650  specifies what to do with the obsolete .fas files.
1651  See <http://clisp.org/impnotes/loadfile.html> for details.
1652
1653* EXT:SPECIAL-VARIABLE-P now accepts a second optional ENVIRONMENT argument.
1654  See <http://clisp.org/impnotes/declarations.html#spe-var-p> for details.
1655
1656* You can now set socket options using new function SOCKET:SOCKET-OPTIONS.
1657  See <http://clisp.org/impnotes/socket.html#so-opt> for details.
1658  Suggested by Dave Richards <dave@synergy.org>.
1659
1660* SOCKET:SOCKET-STATUS now distinguishes between :EOF and :INPUT.
1661  Also, it does not have to cons up a fresh list even for multiple streams.
1662  See <http://clisp.org/impnotes/socket.html#so-status> for details.
1663
1664* CLISP character set now uses Unicode 3.2.
1665  See <http://clisp.org/impnotes/characters.html> for details.
1666
1667* DIRECTORY now accepts a new keyword argument :IF-DOES-NOT-EXIST which
1668  controls treatment of links pointing to non-existent files.
1669  It defaults to :DISCARD which is fully backward compatible.
1670  See <http://clisp.org/impnotes/dir-func.html#dir> for details.
1671
1672* DELETE-FILE no longer calls TRUENAME on its argument, which enables
1673  you to delete symbolic links.  This is an incompatible change.
1674  You can get the old behavior by doing (DELETE-FILE (TRUENAME path)).
1675  See <http://clisp.org/impnotes/file-func.html#del-file> for details.
1676
1677* DRIBBLE now works by redefining *TERMINAL-IO* instead of a host of
1678  i/o variables.  This allows DRIBBLE to be started and stopped in
1679  different break loops.
1680  See <http://clisp.org/impnotes/debugger.html#dribble> for details.
1681
1682* Weak hash tables can now remove key/value pairs when either or both
1683  are garbage collected.
1684  See <http://clisp.org/impnotes/make-hash.html> for details.
1685
1686* You can use (SETF WEAK-POINTER-VALUE) to change the object to which
1687  the given weak pointer point to.
1688  See <http://clisp.org/impnotes/weak.html> for details.
1689
1690* New macro EXT:DEFINE-HASH-TABLE-TEST allows user-defined hash table tests.
1691  See <http://clisp.org/impnotes/defhash.html> for details.
1692
1693* ANSI CL compliance issues:
1694  + MAPC, MAPCAR, MAPCAN, MAPL, MAPLIST, MAPCON now require their list
1695    arguments to be proper lists;
1696  + TAILP uses EQL, not EQ, to compare the sublists;
1697  + LOOP was fixed in many many ways, including
1698    - using ATOM as the end test for ON iteration,
1699    - returning the SUMs (and alike) of the specified type (if any),
1700    - checking that the THEREIS return value is not shadowed,
1701    - treating keyword IT in an inappropriate place as a variable,
1702    - signaling SOURCE-PROGRAM-ERROR errors at macroexpansion time,
1703    - not requiring the package argument for symbol iteration,
1704    - making local variables accessible in the INITIALLY clauses,
1705    - initializing accumulation variables after iteration variables
1706      to avoid shadowing,
1707    - using forward consing for APPEND/NCONC because REVAPPEND/NRECONC
1708      drop the last atom in dotted lists,
1709    - checking for duplicate variables in iteration clauses;
1710  + DOCUMENTATION is now a generic function;
1711  + implemented CHANGE-CLASS, UPDATE-INSTANCE-FOR-DIFFERENT-CLASS,
1712    MAKE-INSTANCES-OBSOLETE, UPDATE-INSTANCE-FOR-REDEFINED-CLASS, and
1713    ENSURE-GENERIC-FUNCTION;
1714  + DEFCLASS no longer requires that direct superclasses already exist;
1715  + sequence functions (MAP, LENGTH and such) no longer accept dotted lists
1716    and treat NULL as LIST of length 0 and CONS as LIST of positive length;
1717  + COERCE accepts CLOS class object as a type-spec (second argument) and
1718    coerces FLOAT to COMPLEX by returning a COMPLEX number;
1719  + DEFSTRUCT uses the slot name as is for the accessor when :CONC-NAME
1720    is NIL (i.e., does not intern the name in *PACKAGE*), and does not
1721    bind slot names in the arglist of keyword constructors;
1722  + MAPCAN and MAPCON now correctly handle functions returning ATOMs;
1723  + removed macro definition from GENERIC-FUNCTION;
1724  + APPEND, COPY-ALIST, REVAPPEND, NRECONC, PAIRLIS, GET, GETF,
1725    REMPROP, GET-PROPERTIES no longer accept dotted lists;
1726  + implemented arrays with ARRAY-ELEMENT-TYPE NIL;
1727  + implemented ANSI CL Issues <CONDITION-RESTARTS:PERMIT-ASSOCIATION>,
1728    <DEBUGGER-HOOK-VS-BREAK:CLARIFY>, <DOCUMENTATION-FUNCTION-BUGS:FIX>,
1729    <EXTERNAL-FORMAT-FOR-EVERY-FILE-CONNECTION:MINIMUM>,
1730    <IMPORT-SETF-SYMBOL-PACKAGE>, <SETF-FIND-CLASS:ALLOW-NIL>,
1731    <SUBTYPEP-ENVIRONMENT:ADD-ARG>, <THE-VALUES:RETURN-NUMBER-RECEIVED>,
1732    <ADJUST-ARRAY-NOT-ADJUSTABLE:IMPLICIT-COPY>;
1733  + EQUALP on HASH-TABLEs now correctly descends the structure;
1734  + macro definitions now respect the lexical environment;
1735  + more thorough lambda list matching check;
1736  + DEFINE-CONDITION now return the condition name;
1737  + a character is now accepted as a package designator.
1738  Thanks to Paul F. Dietz <dietz@dls.net> and his ANSI compliance
1739  suite, which helped detect some of these deficiencies.
1740
1741* FUNCTION-LAMBDA-EXPRESSION now always returns the correct function name.
1742  See <http://clisp.org/impnotes/misc-data.html#fle> for details.
1743
1744* CONSTANTP now detects many more constant forms.
1745  See <http://clisp.org/impnotes/declarations.html#constantp> for details.
1746
1747* The code walker has now a public interface: EXT:EXPAND-FORM.
1748  See <http://clisp.org/impnotes/code-walk.html> for details.
1749
1750* Renamed macro SPACE to EXT:TIMES because SPACE is an ANSI Common Lisp
1751  symbol without a macro definition.
1752  See <http://clisp.org/impnotes/debugger.html#time> for details.
1753
1754* New function EXT:XOR checks that exactly one of its arguments is non-NIL.
1755  See <http://clisp.org/impnotes/xor.html> for details.
1756
1757* New function EXT:MAKE-STREAM creates a stream out of a file descriptor
1758  and facilitates CGI scripting.
1759  See <http://clisp.org/impnotes/make-stream.html> and
1760  <http://clisp.org/impnotes/stream-eltype.html#bin-stdio> for details.
1761
1762* New function EXT:MODULE-INFO provides information about the CLISP
1763  modules that comprise the running image.
1764  See <http://clisp.org/impnotes/modules.html#modinfo> for details.
1765
1766* New generic function CLOS:CLASS-PROTOTYPE from MOP.
1767  See <http://clisp.org/impnotes/mop-classes.html#class-prototype> for details.
1768
1769* New generic functions CLOS:CLASS-FINALIZED-P and
1770  CLOS:FINALIZE-INHERITANCE from MOP.
1771  See <http://clisp.org/impnotes/def-class.html> for details.
1772
1773* New FFI functionality:
1774  + functions FFI:FOREIGN-ALLOCATE and FFI:FOREIGN-FREE and macros
1775    FFI:ALLOCATE-DEEP and FFI:ALLOCATE-SHALLOW permit heap allocation;
1776    see <http://clisp.org/impnotes/dffi.html#foreign-heap> for details;
1777  + functions FFI:FOREIGN-ADDRESS-UNSIGNED and FFI:UNSIGNED-FOREIGN-ADDRESS,
1778    see <http://clisp.org/impnotes/dffi.html#faddr-u> for details;
1779  + function FFI:FOREIGN-ADDRESS,
1780    see <http://clisp.org/impnotes/dffi.html#faddr> for details;
1781  + functions FFI:FOREIGN-POINTER and (SETF FFI:FOREIGN-POINTER),
1782    see <http://clisp.org/impnotes/dffi.html#fptr> for details;
1783  + macros FFI:C-VAR-ADDRESS, FFI:C-VAR-OBJECT and FFI:OFFSET,
1784    see <http://clisp.org/impnotes/dffi.html#offset> and
1785    <http://clisp.org/impnotes/dffi.html#c-var-addr>;
1786  + function (SETF FFI:VALIDP) invalidates foreign objects
1787    see <http://clisp.org/impnotes/dffi.html#validp> for details;
1788  + macros FFI:WITH-FOREIGN-STRING, and macro FFI:WITH-C-PLACE,
1789    see <http://clisp.org/impnotes/dffi.html#foreign-stack-string> and
1790    <http://clisp.org/impnotes/dffi.html#with-c-place>.
1791  Thanks to Jörg Höhle <hoehle@users.sourceforge.net>.
1792  + FFI:DEF-CALL-OUT and FFI:DEF-C-VAR now accept a :LIBRARY option which
1793    allows you to specify the dynamic library which contains the object.
1794    See <http://clisp.org/impnotes/dffi.html#def-call-out> and
1795    <http://clisp.org/impnotes/dffi.html#def-c-var>.
1796  + Introduced a bit of polymorphism: FFI:C-POINTER can be NIL and will
1797    be treated as NULL; NULL return value of type FFI:C-POINTER is
1798    returned as NIL.
1799    See <http://clisp.org/impnotes/dffi.html#c-pointer>.
1800  + You can now map between numeric and symbolic C enum values using
1801    functions FFI:ENUM-FROM-VALUE and FFI:ENUM-TO-VALUE.
1802    See <http://clisp.org/impnotes/dffi.html#def-c-enum>.
1803
1804* FFI does not output extern variable and function declarations unless
1805  you set FFI:*OUTPUT-C-VARIABLES* and/or FFI:*OUTPUT-C-FUNCTIONS* to T.
1806  Please use FFI:C-LINES to include the appropriate headers instead.
1807  See <http://clisp.org/impnotes/dffi.html#ffi-extern-output> for details.
1808
1809* Regexp module functions now support more options, e.g., :EXTENDED to
1810  use extended regular expressions, and do not rely on FFI.
1811  In particular, REGEXP:REGEXP-COMPILE now accepts keyword and not
1812  optional arguments (this is not backwards compatible).
1813  When the system library provides a regexp implementation,
1814  it is used instead of the GNU regexp distributed with CLISP.
1815  The number of subexpressions is now unlimited (the limit was 10).
1816  See <http://clisp.org/impnotes/regexp-mod.html> for details.
1817
1818* Unified modules postgresql632 and postgresql642 into postgresql.
1819  The postgresql module works with PostgreSQL 6 and 7 now.
1820
1821* Removed obsolete module linuxlibc5 and renamed module linuxlibc6 to glibc.
1822
1823* New module: bindings/win32 (highly incomplete, patches are welcome).
1824
1825* The BACKQUOTE reader has been reimplemented from scratch by
1826  Kaz Kylheku <kaz@ashi.footprints.net>.
1827
1828* New function EXT:MAKE-XTERM-IO-STREAM creates an input-output stream
1829  that uses a separate X terminal.  Unix platforms only.
1830  See <http://clisp.org/impnotes/syscalls.html#mk-xterm-io> for details.
1831
1832* Fixed a bug in PEEK-CHAR with non-NIL peek-type on ECHO-STREAMS.
1833
1834* Fixed a bug in FILE-POSITION after UNREAD-CHAR (or PEEK-CHAR).
1835
1836* Fixed a bug in bit operations on multi-dimensional arrays.
1837
1838* CLISP/MIT-CLX now compiles CLOCC CLUE/CLIO.
1839  See <http://clocc.sourceforge.net/clocc/src/gui/clue/> and
1840  <http://clisp.org/impnotes/modules.html#incmod-gui>.
1841
1842* CLISP/NEW-CLX on win32 with Cygwin X server compiles garnet.
1843  See <https://sourceforge.net/p/clisp/mailman/message/12561966/>.
1844
1845* Command line interface: allow multiple -x options.
1846  New options -repl <http://clisp.org/impnotes/clisp.html#opt-repl>
1847  and -v (--verbose) <http://clisp.org/impnotes/clisp.html#opt-verbose>.
1848
1849
18502.30 (2002-09-15)
1851=================
1852
1853User visible changes
1854--------------------
1855
1856* CLISP does not come with GNU libiconv anymore.  The most important
1857  encodings are built-in anyway, and CLISP can use the GNU libc 2.2
1858  iconv and a GNU libiconv when it is independently installed.
1859
1860* CLISP does not come with GNU gettext anymore.  This is a separate
1861  package and should be installed separately, if you wish to use i18n.
1862
1863* CLISP does not come with GNU readline anymore, because, starting with
1864  version 4.3, readline supports multibyte characters out of the box.
1865
1866* CLISP does not come with GNU libsigsegv anymore.  This means that in
1867  certain cases of infinite recursion, the C stack overflow will not be
1868  properly detected and will result in a segfault instead of an error.
1869  You are urged to download and install GNU libsigsegv from
1870  <ftp://ftp.gnu.org/pub/gnu/libsigsegv/> or
1871  <http://sourceforge.net/projects/libsigsegv/>
1872  before configuring CLISP.
1873
1874* Strings can now hold UCS-4 characters, instead of only UCS-2 characters.
1875  CHAR-CODE-LIMIT increased from 65536 to 1114112.
1876
1877* Added a new module - "oracle": an interface to the Oracle ODBMS.
1878  Thanks to John K. Hinsdale <hin@alma.com>.
1879
1880* New user variable CUSTOM:*PARSE-NAMESTRING-DOT-FILE* controls
1881  how the file names starting with a dot are parsed.
1882  By default, it is set to :NAME in config.lisp,
1883  so #P".clisprc" is now #S(PATHNAME :NAME ".clisprc").
1884  To get the old result of #S(PATHNAME :TYPE "clisprc"),
1885  set this variable to :TYPE.
1886  This is an incompatible change.
1887  See <http://clisp.org/impnotes/path-components.html#name-type-split> for details.
1888
1889* New user variable CUSTOM:*TRACE-INDENT* controls TRACE output indentation.
1890  See <http://clisp.org/impnotes/debugger.html#trace> for details.
1891
1892* SOCKET:SOCKET-ACCEPT and SOCKET:SOCKET-CONNECT now accept a :TIMEOUT
1893  keyword argument.
1894  See <http://clisp.org/impnotes/socket.html#timeout-k> for details.
1895
1896* SAVEINITMEM now accepts :START-PACKAGE, :VERBOSE, and :LOCKED-PACKAGES
1897  keyword arguments.
1898  See <http://clisp.org/impnotes/image.html> for details.
1899
1900* You can now shutdown a socket for input or output separately
1901  using SOCKET:SOCKET-STREAM-SHUTDOWN.
1902  See <http://clisp.org/impnotes/socket.html#sost-shut> for details.
1903
1904* CUSTOM:*SOURCE-FILE-TYPES* and CUSTOM:*COMPILED-FILE-TYPES*
1905  now contain strings, not pathnames.
1906  See <http://clisp.org/impnotes/loadfile.html> for details.
1907
1908* EXT:GETENV now returns all of the OS environment as an alist
1909  when its argument is omitted or NIL.
1910  See <http://clisp.org/impnotes/getenv.html> for details.
1911
1912* When configured with --with-export-syscalls,
1913  several new functions are available:
1914   POSIX:STREAM-LOCK provides an interface to flock(2);
1915   POSIX:COPY-FILE provides an interface to link(2)/symlink(2)/rename(2),
1916     (in addition to the usual file copy);
1917   POSIX:DUPLICATE-HANDLE provides an interface to dup(2)/dup2(2).
1918  Thanks to Marco Baringer for COPY-FILE and DUPLICATE-HANDLE.
1919  See <http://clisp.org/impnotes/syscalls.html> for details.
1920
1921* You can now control the CLISP exit code better by passing a
1922  non-negative integer to EXT:EXIT.
1923  See <http://clisp.org/impnotes/quit.html> for details.
1924
1925* New macros FFI:WITH-C-VAR and FFI:WITH-FOREIGN-OBJECT allow
1926  allocating C data on the stack.
1927  See <http://clisp.org/impnotes/dffi.html#foreign-stack> for details.
1928
1929* Russian translations of the user interface messages have been added.
1930  Thanks to Arseny Slobodjuck <ampy@ich.dvo.ru>.
1931
1932* When built with readline, CLISP will DESCRIBE the current function
1933  when you hit TAB after a #\Space.
1934
1935* MAKE-ENCODING now checks whether the iconv charset is valid, and
1936  signals an error if it is invalid unless given the :IF-DOES-NOT-EXIST
1937  NIL argument.
1938
1939* New debugger command Quit (:q) aborts to the top-level read-eval-print
1940  loop immediately, saving you typing :a several times.
1941
1942* When CUSTOM:*PARSE-NAMESTRING-ANSI* is non-NIL, do not accept symbols
1943  as pathname designators.
1944  See <http://clisp.org/impnotes/filename-misc.html#parsename> for details.
1945
1946* COMPILE-FILE no longer clobbers an existing *.c file when the Lisp
1947  file being compiled does not contain any FFI forms.
1948  See <http://clisp.org/impnotes/compilefile.html> for details.
1949
1950* Type COMPLEX now correctly uses UPGRADED-COMPLEX-PART-TYPE.
1951
1952* Improved accuracy of some transcendental functions, e.g., now
1953  (EXPT -5.0 2.0) return #C(25.0 0.0).
1954
1955* Fixed a bug: Conversion from bytes to string did not work for the encoding
1956  (MAKE-ENCODING :CHARSET CHARSET:UNICODE-32-LITTLE-ENDIAN
1957                 :INPUT-ERROR-ACTION :IGNORE).
1958
1959* Fixed a bug in compiling duplicate keyword arguments.
1960
1961* Fixed the (destructuring-bind (&key (x x)) ...) bug.
1962
1963* Wide-mode -W backward compatibility option is now gone
1964  (defunct since 1998-09-09).  This permits colons in memory image file
1965  names (necessary on Cygwin).
1966
1967* CLISP on Cygwin now understands native pathnames like "c:/gnu/clisp/"
1968  by translating them internally to "/cygdrive/c/gnu/clisp/".
1969  CLISP on Win32 now understands Cygwin pathnames like "/cygdrive/c/gnu/clisp/"
1970  by translating them internally to "c:/gnu/clisp/".
1971  You can disable this by setting CUSTOM:*DEVICE-PREFIX* to NIL.
1972  See <http://clisp.org/impnotes/filenames.html#device-prefix> for details.
1973
1974* Readline is now used properly on Cygwin.
1975
1976* DIR-KEY now works on Cygwin.
1977
1978Portability
1979-----------
1980
1981* CLISP now works on SPARC/Linux with glibc 2.2 when built with SAFETY=3.
1982
1983
19842.29 (2002-07-25)
1985=================
1986
1987User visible changes [this is a bug-fix/portability release]
1988--------------------
1989
1990* INSPECT: fixed bugs in HTML generation, Content-Length header,
1991  removing incorrect package on exit, help in nested inspect sessions.
1992
1993* COMPILE-FILE: fixed :VERBOSE NIL handling.
1994
1995* DESCRIBE: handles DIR-KEY now.
1996
1997* (LAMBDA () (DEFMETHOD ...)) now works.
1998
1999* Fixed RETURN-FROM in deep nesting.
2000
2001* Fixed crash on errors in module initialization.
2002
2003* COMPILER-MACROs can now expand to special forms.
2004
2005* EVAL-WHEN now distinguishes between COMPILE and :COMPILE-TOPLEVEL
2006  and between LOAD and :LOAD-TOLEVEL.
2007
2008Portability
2009-----------
2010
2011* CLISP now builds with GCC-3.1 out of the box.
2012
2013
20142.28 (2002-03-03)
2015=================
2016
2017Important notes
2018---------------
2019
2020* All .fas files generated by previous CLISP versions
2021  are invalid and must be recompiled.
2022
2023User visible changes
2024--------------------
2025
2026* ANSI CL functions MAKE-LOAD-FORM and MAKE-LOAD-FORM-SAVING-SLOTS
2027  are implemented.
2028
2029* ANSI CL pretty printer <http://clhs.lisp.se/Body/22_b.htm> is implemented.
2030  In particular,
2031    variables     *PRINT-LINES*, *PRINT-MISER-WIDTH*, *PRINT-PPRINT-DISPATCH*,
2032    macro         PPRINT-LOGICAL-BLOCK,
2033    local macros  PPRINT-EXIT-IF-LIST-EXHAUSTED, PPRINT-POP
2034    and functions PPRINT-DISPATCH, COPY-PPRINT-DISPATCH, SET-PPRINT-DISPATCH,
2035                  PPRINT-FILL, PPRINT-LINEAR, PPRINT-TABULAR, PPRINT-TAB,
2036                  PPRINT-NEWLINE, PPRINT-INDENT
2037  are implemented.
2038  See <http://clisp.org/impnotes/clpp.html> for details.
2039
2040* The functions WRITE and WRITE-TO-STRING now accept :LINES, :MISER-WIDTH
2041  and :PRINT-PPRINT-DISPATCH keyword arguments.
2042  This change requires recompilation of all .fas files.
2043
2044* Weak hash-tables are now supported.
2045  See <http://clisp.org/impnotes/make-hash.html> for details.
2046
2047* Support Cygwin's "/cygdrive/drive/path" pathname syntax on Win32.
2048
2049* New macro EXT:FCASE which allows specifying comparison function in CASE.
2050  See <http://clisp.org/impnotes/fcase.html> for details.
2051
2052* New user variable CUSTOM:*LOAD-LOGICAL-PATHNAME-TRANSLATIONS-DATABASE*.
2053  See <http://clisp.org/impnotes/filename-misc.html#load-lpt> for details.
2054
2055* Packages can now be locked and unlocked using EXT:PACKAGE-LOCK
2056  See <http://clisp.org/impnotes/pack-lock.html> for details.
2057
2058* CLISP now supports internationalized Lisp programs, via GNU gettext.
2059  Macros ENGLISH, FRANCAIS and DEUTSCH have been removed.
2060  See <http://clisp.org/impnotes/i18n.html> for details.
2061
2062* The UI language can now be changed dynamically,
2063  via symbol-macro *CURRENT-LANGUAGE*.
2064  See <http://clisp.org/impnotes/i18n.html> for details.
2065
2066* Fixed a bug: LDIFF now handles dotted lists correctly.
2067
2068
20692.27 (2001-07-17)
2070=================
2071
2072User visible changes
2073--------------------
2074
2075* EXT:GETENV is now setfable.
2076
2077* Hostname resolution is now optional in
2078  EXT:SOCKET-STREAM-PEER and EXT:SOCKET-STREAM-LOCAL.
2079
2080* EXT:SOCKET-STATUS now accepts SOCKET-SERVERs too
2081  and the direction of the checks can be specified.
2082
2083* Added install.bat for win32 installation.
2084
2085* ANSI CL compliance: more conformant pathname handling.
2086
2087* Speed up MEMBER &co when :TEST is EQ, EQL or EQUAL.
2088
2089* Optimize away local functions that are not used
2090  (much less consing in CLOS).
2091
2092* When built with readline, CLISP allows multi-line form editing.
2093  Use M-p and M-n to move between virtual lines.
2094
2095* Fixed handling of circular structs and pointers to functions in the FFI.
2096
2097* Fixed binary I/O for streams with element type longer than one byte,
2098  but not a whole number of bytes.
2099
2100
21012.26 (2001-05-23)
2102=================
2103
2104Important notes
2105---------------
2106
2107* The CLISP extensions have been moved from the CLtL1 package LISP to
2108  separate packages.
2109  If you rely on any of the CLISP extensions, you will need to make
2110  your packages use package EXT, which re-exports all exported symbols
2111  from all extension packages.
2112
2113* All .fas files generated by previous CLISP versions
2114  are invalid and must be recompiled.
2115
2116User visible changes
2117--------------------
2118
2119* "LISP" is now a nickname of the ANSI CL package COMMON-LISP.
2120  "USER" is now a nickname of the ANSI CL package COMMON-LISP-USER.
2121  Support for CLtL1 has thus been removed.
2122  For the benefit of package developers, *FEATURES* now contains :LISP=CL.
2123
2124* The *FEATURES* list now contains :ANSI-CL instead of :CLTL2 even when
2125  running without '-ansi' ANSI compatibility mode.
2126
2127* ANSI CL compliance: function UPGRADED-COMPLEX-PART-TYPE implemented.
2128
2129* ANSI CL compliance: macro HANDLER-BIND invokes all handlers
2130  for the condition, not just the first one.
2131
2132* ANSI CL compliance: CHAR does not check for FILL-POINTER, while ELT does.
2133
2134* ANSI CL compliance: FUNCTION-KEYWORDS returns 2 values.
2135
2136* ANSI CL compliance: COMPILED-FUNCTION is a subtype of FUNCTION.
2137
2138* ANSI CL compliance: implemented compiler macros.
2139
2140* Conforming to the ANSI CL issue CONSTANTP-ENVIRONMENT:ADD-ARG,
2141  CONSTANTP now takes an optional second argument.
2142
2143* RUN-SHELL-COMMAND and RUN-PROGRAM now accept a :WAIT argument.
2144
2145* The compiler now checks the signature of function calls
2146  for all functions, not just the inlined built-ins.
2147
2148
21492.25.1 (2001-04-06)
2150===================
2151
2152User visible changes [this is a bug-fix only release]
2153--------------------
2154
2155* ANSI CL compliance: INITIALIZE-INSTANCE accepts &KEY &ALLOW-OTHER-KEYS
2156  arguments.
2157
2158* Fixed a bug: a single value was sometimes returned by READ-LINE.
2159
2160* Fixed a bug: re-exporting inherited symbols resulted in them being
2161  reported as both external and inherited by WITH-PACKAGE-ITERATOR.
2162
2163* Fixed a bug: the full image and other images created with clisp-link
2164  exited on error instead of entering the debugger.
2165
2166* Fixed a bug: COMPILE-FILE-PATHNAME could return bad results when given a
2167  non-existent INPUT-FILE argument and an OUTPUT-FILE argument with
2168  non-NIL directory part.
2169
2170* Fixed --without-unicode build.
2171
2172
21732.25 (2001-03-15)
2174=================
2175
2176Important notes
2177---------------
2178
2179* The default extension of Lisp source files for CLISP is now ".lisp" instead
2180  of ".lsp". When both "foo.lisp" and "foo.lsp" exist, (LOAD "foo") will load
2181  "foo.lisp".
2182
2183* Changed bytecode format. All .fas files generated by previous CLISP versions
2184  are invalid and must be recompiled.
2185
2186User visible changes
2187--------------------
2188
2189* A new version numbering scheme is adopted.
2190
2191* If an error is signalled by a form supplied with the command-line
2192  option "-x", CLISP now exits with a non-zero status.
2193
2194* The pretty-printer does not print hanging parenthesis by default now.
2195  *PRINT-RPARS* now defaults to NIL and *PRINT-INDENT-LISTS* to 1, so
2196  that the lists are printed like in CLHS and CLtL.
2197
2198* New extension: directory access (win32 registry).
2199  See <http://clisp.org/impnotes/dir-key.html> for details.
2200
2201* Support UNC pathnames (\\host\dir\name.ext) on win32.
2202
2203* Support the SCREEN package on Win32. Thanks to Arseny Slobodjuck.
2204
2205* New functions CONVERT-STRING-FROM-BYTES and CONVERT-STRING-TO-BYTES.
2206
2207* Support for non-blocking binary I/O.
2208  New functions READ-BYTE-LOOKAHEAD, READ-BYTE-WILL-HANG-P, READ-BYTE-NO-HANG.
2209  New generic functions STREAM-READ-BYTE-LOOKAHEAD,
2210  STREAM-READ-BYTE-WILL-HANG-P, STREAM-READ-BYTE-NO-HANG.
2211
2212* CONCATENATED-STREAM-STREAMS now returns only the remaining streams,
2213  as per ANSI CL spec.
2214
2215* Implemented ANSI CL function INSPECT,
2216  and a function LISP:CLHS for access of Common Lisp HyperSpec.
2217
2218* Characters have now the same names as in Unicode 3.0, with space replaced
2219  by underscore.
2220
2221* ANSI CL compliance: CALL-NEXT-METHOD and NEXT-METHOD-P are now implemented
2222  as local functions, not local macros. It is now possible to call
2223  (APPLY #'CALL-NEXT-METHOD argument-list-of-unknown-length).
2224
2225* ANSI CL compliance: LOAD has a new keyword argument :EXTERNAL-FORMAT.
2226
2227* ANSI CL compliance: When an end-of-stream occurs, READ, READ-CHAR, PEEK-CHAR,
2228  READ-CHAR-NO-HANG, READ-LINE, READ-BYTE, READ-INTEGER, READ-FLOAT, called
2229  with arguments eof-error-p = NIL and without eof-value, now return NIL
2230  instead of #<END OF FILE>.
2231
2232* ANSI CL compliance: When LISP:*PARSE-NAMESTRING-ANSI* is non-NIL,
2233  PARSE-NAMESTRING parses strings with colons as logical pathnames.
2234
2235* New supported character sets in package CHARSET: GB18030, BIG5HKSCS.
2236
2237* Arguments passed to MAKE-PATHNAME with value NIL are not overridden by
2238  pathname slots in the :DEFAULTS argument any more.
2239
2240* STREAM-ELEMENT-TYPE of a TWO-WAY-STREAM or an ECHO-STREAM now depends on
2241  the stream's constituents. Previously, it was always (OR CHARACTER INTEGER).
2242
2243* Fixed a bug: REPLACE signalled an error if the source and destination
2244  sequences were the same and the source and destination ranges did not
2245  overlap.
2246
2247* Fixed a bug: A garbage collection during the execution of a foreign function
2248  callback caused a crash.
2249
2250* Fixed a bug: Calling READ-LINE on a stream already positioned at EOF caused
2251  a crash on 64-bit platforms.
2252
2253* Fixed a bug: For long-floats, (EQL x (- x)) returned true.
2254
2255* Fixed a bug: OPEN now returns NIL when the filename's directory does not
2256  exist and :IF-DOES-NOT-EXIST NIL was specified. Previously, an error was
2257  signalled except when :DIRECTION was :PROBE.
2258
2259* Fixed a bug: (subtypep 'fundamental-stream 'stream) returned NIL.
2260
2261Portability
2262-----------
2263
2264* Added support for IA-64 running Linux.
2265
2266* Added support for BeOS 5. Thanks to Alexis Rivera Rios <ahrivera@yahoo.com>.
2267
2268* Removed support for DOS. Not to worry, OS/2 and Win32 are still supported.
2269
2270
22712.24 (2000-03-06)
2272=================
2273
2274User visible changes
2275--------------------
2276
2277* New functions READ-FLOAT and WRITE-FLOAT.
2278
2279* Implemented ANSI CL macro WITH-COMPILATION-UNIT.
2280
2281* Unicode support: The pretty-printer and FORMAT ~T now handle non-spacing and
2282  double-width Unicode characters correctly. Pretty-printer slows down by 30%.
2283  New functions CHAR-WIDTH, STRING-WIDTH.
2284
2285* Fixed two bugs in TRANSLATE-PATHNAME: Substitution of "**" did not work.
2286  Substitutions without version into non-logical pathnames crashed.
2287
2288* Dutch translations of the user interface messages have been added
2289  Thanks to Tijs van Bakel <smoke@casema.net>.
2290
2291* When configured with --with-export-syscalls, :SYSCALLS is in *FEATURES*
2292  and functions POSIX:RESOLVE-IP-ADDR, POSIX:USER-DATA, POSIX:FILE-STAT,
2293  POSIX:SYSINFO, POSIX:RESOURCE-USAGE-LIMITS,
2294  as well as those libm.so functions which do not have a better
2295  counterpart in ANSI CL are available.
2296
2297* New supported character sets in package CHARSET: ISO-8859-16, KOI8-U,
2298  KOI8-RU, EUC-JP, SHIFT-JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1,
2299  EUC-CN, HZ, GBK, CP936, EUC-TW, BIG5, CP950, ISO-2022-CN, ISO-2022-CN-EXT,
2300  EUC-KR, CP949, ISO-2022-KR, ARMSCII-8, GEORGIAN-ACADEMY, GEORGIAN-PS,
2301  TIS-620, MULELAO-1, CP1133, VISCII, TCVN, UTF-16, UTF-7, MACINTOSH (as an
2302  alias for MAC-ROMAN).
2303
2304Other modifications
2305-------------------
2306
2307* Speed up some sequence functions when operating on vectors: MAKE-SEQUENCE,
2308  CONCATENATE, COPY-SEQ, COERCE, SUBSEQ, REPLACE, FILL, REVERSE, NREVERSE,
2309  REMOVE[-IF[-NOT]] with :START/:END, SUBSTITUTE[-IF[-NOT]] with :START/:END,
2310  SORT.
2311
2312* Speed up ADJUST-ARRAY.
2313
2314
23152.23 (1999-07-22)
2316=================
2317
2318User visible changes
2319--------------------
2320
2321* Added a new module - "postgresql": interface to the PostgreSQL ODBMS.
2322
2323* Implemented ANSI CL macro WITH-PACKAGE-ITERATOR.
2324
2325* Conforming to ANSI CL issue <ALLOCATE-INSTANCE:ADD>: New function
2326  ALLOCATE-INSTANCE.
2327
2328* Conforming to ANSI CL issue <GENERIC-FLET-POORLY-DESIGNED:DELETE>: The
2329  symbols GENERIC-FLET and GENERIC-LABELS are not exported from the
2330  COMMON-LISP package any more.
2331
2332* Conforming to ANSI CL issues <KEYWORD-ARGUMENT-NAME-PACKAGE:ANY> and
2333  <MULTIPLE-VALUE-SETQ-ORDER:LIKE-SETF-OF-VALUES>.
2334
2335* Conforming to ANSI CL Issue <MACRO-FUNCTION-ENVIRONMENT:YES>
2336  MACRO-FUNCTION now takes an optional second argument ENV.
2337
2338* When CLISP is invoked with an "-a" option, *features* contain :ANSI-CL.
2339
2340* Weak pointers are implemented. New functions MAKE-WEAK-POINTER,
2341  WEAK-POINTER-P, WEAK-POINTER-VALUE.
2342
2343* The function OPEN, when creating unbuffered file streams, now supports any
2344  of the following :ELEMENT-TYPEs: CHARACTER and ([UN]SIGNED-BYTE n), where n
2345  is a multiple of 8.
2346
2347* The functions
2348    MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM,
2349    SOCKET-ACCEPT, SOCKET-CONNECT
2350  accept a keyword argument :ELEMENT-TYPE. Possible values are types
2351  equivalent to CHARACTER or (UNSIGNED-BYTE n), (SIGNED-BYTE n), where n is
2352  a positive multiple of 8. Previously these functions returned streams whose
2353  element-type was (OR CHARACTER (UNSIGNED-BYTE 8)).
2354
2355* STREAM-ELEMENT-TYPE is SETFable. The element type of streams created by the
2356  functions MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM,
2357  MAKE-PIPE-IO-STREAM, SOCKET-ACCEPT, SOCKET-CONNECT can be modified, if the
2358  old and the new element type are compatible.
2359  (UNSIGNED-BYTE n) and (SIGNED-BYTE n) are compatible, and CHARACTER is
2360  compatible with ([UN]SIGNED-BYTE 8).
2361
2362* Character I/O can now be customized via encodings. A stream's external
2363  format is an encoding, and the symbol macros
2364    *DEFAULT-FILE-ENCODING*, *PATHNAME-ENCODING*, *TERMINAL-ENCODING*,
2365    *MISC-ENCODING*, FFI:*FOREIGN-ENCODING*, AFFI:*FOREIGN-ENCODING*
2366  contain user-settable encodings.
2367  Encodings can be obtained through the function MAKE-ENCODING, and as values
2368  of the constants
2369    CHARSET:UCS-2, CHARSET:UNICODE-16, CHARSET:UNICODE-16-BIG-ENDIAN,
2370    CHARSET:UNICODE-16-LITTLE-ENDIAN, CHARSET:UCS-4, CHARSET:UNICODE-32,
2371    CHARSET:UNICODE-32-BIG-ENDIAN, CHARSET:UNICODE-32-LITTLE-ENDIAN,
2372    CHARSET:UTF-8, CHARSET:JAVA, CHARSET:ASCII, CHARSET:ISO-8859-1,
2373    CHARSET:ISO-8859-2, CHARSET:ISO-8859-3, CHARSET:ISO-8859-4,
2374    CHARSET:ISO-8859-5, CHARSET:ISO-8859-6, CHARSET:ISO-8859-7,
2375    CHARSET:ISO-8859-8, CHARSET:ISO-8859-9, CHARSET:ISO-8859-10,
2376    CHARSET:ISO-8859-13, CHARSET:ISO-8859-14, CHARSET:ISO-8859-15,
2377    CHARSET:KOI8-R, CHARSET:MAC-ARABIC, CHARSET:MAC-CENTRAL-EUROPE,
2378    CHARSET:MAC-CROATIAN, CHARSET:MAC-CYRILLIC, CHARSET:MAC-DINGBAT,
2379    CHARSET:MAC-GREEK, CHARSET:MAC-HEBREW, CHARSET:MAC-ICELAND,
2380    CHARSET:MAC-ROMAN, CHARSET:MAC-ROMANIA, CHARSET:MAC-SYMBOL,
2381    CHARSET:MAC-THAI, CHARSET:MAC-TURKISH, CHARSET:MAC-UKRAINE,
2382    CHARSET:CP437, CHARSET:CP737, CHARSET:CP775, CHARSET:CP850, CHARSET:CP852,
2383    CHARSET:CP855, CHARSET:CP857, CHARSET:CP860, CHARSET:CP861, CHARSET:CP862,
2384    CHARSET:CP863, CHARSET:CP864, CHARSET:CP865, CHARSET:CP866, CHARSET:CP869,
2385    CHARSET:CP874, CHARSET:WINDOWS-1250, CHARSET:WINDOWS-1251,
2386    CHARSET:WINDOWS-1252, CHARSET:WINDOWS-1253, CHARSET:WINDOWS-1254,
2387    CHARSET:WINDOWS-1255, CHARSET:WINDOWS-1256, CHARSET:WINDOWS-1257,
2388    CHARSET:WINDOWS-1258, CHARSET:HP-ROMAN8, CHARSET:NEXTSTEP.
2389
2390* The functions
2391    OPEN, MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM, MAKE-PIPE-IO-STREAM,
2392    SOCKET-ACCEPT, SOCKET-CONNECT
2393  and the macro
2394    WITH-OUTPUT-TO-PRINTER
2395  accept a keyword argument :EXTERNAL-FORMAT. Possible values are encodings,
2396  such as returned by the function MAKE-ENCODING, the line terminator keywords
2397  :UNIX, :MAC, :DOS, and :DEFAULT. New function STREAM-EXTERNAL-FORMAT.
2398
2399* STREAM-EXTERNAL-FORMAT is SETFable. The external format of streams created
2400  by the functions OPEN, MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM,
2401  MAKE-PIPE-IO-STREAM, SOCKET-ACCEPT, SOCKET-CONNECT can be modified.
2402
2403* OPEN has a new keyword argument :BUFFERED. It determines whether the file
2404  stream returned is buffered or not. Possible values for it are NIL, T, or
2405  :DEFAULT. If it is :DEFAULT, buffered file streams will be returned for
2406  regular files and (on Unix) block-devices, and unbuffered file streams for
2407  special files.
2408
2409* The functions MAKE-PIPE-INPUT-STREAM, MAKE-PIPE-OUTPUT-STREAM,
2410  MAKE-PIPE-IO-STREAM, SOCKET-ACCEPT, SOCKET-CONNECT have a new keyword
2411  argument :BUFFERED. It determines whether the stream returned is buffered or
2412  not. Possible values for it are NIL, T, or :DEFAULT. :DEFAULT is equivalent
2413  to NIL.
2414
2415* New functions READ-INTEGER, WRITE-INTEGER which can be used to do binary I/O
2416  on streams with element-type (UNSIGNED-BYTE 8).
2417
2418* The Gray proposal <STREAM-DEFINITION-BY-USER> is implemented:
2419  New classes
2420    FUNDAMENTAL-STREAM,
2421    FUNDAMENTAL-INPUT-STREAM, FUNDAMENTAL-OUTPUT-STREAM,
2422    FUNDAMENTAL-CHARACTER-STREAM, FUNDAMENTAL-BINARY-STREAM,
2423    FUNDAMENTAL-CHARACTER-INPUT-STREAM, FUNDAMENTAL-CHARACTER-OUTPUT-STREAM,
2424    FUNDAMENTAL-BINARY-INPUT-STREAM, FUNDAMENTAL-BINARY-OUTPUT-STREAM.
2425  New generic functions
2426    STREAM-READ-CHAR, STREAM-UNREAD-CHAR, STREAM-READ-CHAR-NO-HANG,
2427    STREAM-PEEK-CHAR, STREAM-LISTEN, STREAM-READ-CHAR-WILL-HANG-P,
2428    STREAM-READ-CHAR-SEQUENCE, STREAM-READ-LINE, STREAM-CLEAR-INPUT,
2429    STREAM-WRITE-CHAR, STREAM-LINE-COLUMN, STREAM-START-LINE-P,
2430    STREAM-WRITE-CHAR-SEQUENCE, STREAM-WRITE-STRING, STREAM-TERPRI,
2431    STREAM-FRESH-LINE, STREAM-FINISH-OUTPUT, STREAM-FORCE-OUTPUT,
2432    STREAM-CLEAR-OUTPUT, STREAM-ADVANCE-TO-COLUMN,
2433    STREAM-READ-BYTE, STREAM-READ-BYTE-SEQUENCE,
2434    STREAM-WRITE-BYTE, STREAM-WRITE-BYTE-SEQUENCE.
2435  The functions CLOSE, OPEN-STREAM-P, STREAM-ELEMENT-TYPE are now generic
2436  functions.
2437  See <http://clisp.org/impnotes/gray.html> for details.
2438
2439* The macros FFI:DEF-C-CALL-OUT and FFI:DEF-C-CALL-IN now add an argument
2440  :LANGUAGE :STDC (means ANSI C) instead of :LANGUAGE :C (means old K&R C).
2441
2442* Conforming with ANSI CL, SIMPLE-CONDITION now has the initarg
2443  :FORMAT-CONTROL instead of :FORMAT-STRING. New function
2444  SIMPLE-CONDITION-FORMAT-CONTROL.
2445
2446* Conforming with ANSI CL, FILE-LENGTH and FILE-POSITION, when called on
2447  an unbuffered file stream, now return NIL instead of signaling an error.
2448
2449* Conforming with ANSI CL, MACROEXPAND and MACROEXPAND-1 now accept NIL as
2450  second argument, denoting the global environment.
2451
2452* Conforming with ANSI CL, the reader now signals an error of type
2453  READER-ERROR when trying to parse tokens like 35/000 or 1.5e1000,
2454  instead of DIVISION-BY-ZERO and FLOATING-POINT-OVERFLOW, respectively.
2455
2456* On Unix, calling OPEN on a block device now returns a buffered stream
2457  instead of an unbuffered stream.
2458
2459* On Unix, writing to a pipe created by MAKE-PIPE-OUTPUT-STREAM or
2460  MAKE-PIPE-IO-STREAM after the corresponding child process has exited
2461  now leads to an error message instead of terminating the CLISP process.
2462
2463* The generic function GENERIC-STREAM-LISTEN is replaced with
2464  GENERIC-STREAM-READ-CHAR-WILL-HANG-P.
2465
2466* The function XGCD now really always returns coefficients of smallest
2467  possible absolute value.
2468
2469* Fixed a interpreter bug: (let (x) (declare (special x)) ...) did not change
2470  the global value of x in interpreted mode.
2471
2472* Fixed a bug: On Win32, Ctrl-Z sometimes caused two levels of the read-eval-
2473  print loop to be aborted instead of just one.
2474
2475* Fixed a bug: READ-CHAR-SEQUENCE, when called on a string input stream,
2476  forgot to advance the pointer into the string.
2477
2478* Fixed a bug: WRITE-CHAR-SEQUENCE on Win32 failed to convert NL to CR/LF.
2479
2480* Fixed a bug: Calling (GET-DISPATCH-MACRO-CHARACTER disp-char sub-char) would
2481  crash, instead of returning NIL, if there is no macro-character function
2482  associated with sub-char after disp-char.
2483
2484* Fixed a bug: (CHECK-TYPE place typespec string) did not evaluate `string'.
2485
2486* Fixed a bug: Calling the function FINALIZE caused a crash during the next GC
2487  on many platforms.
2488
2489* Fixed a bug: Calling a generic function without any installed method
2490  resulted in an inappropriate error message, not a call to
2491  NO-APPLICABLE-METHOD.
2492
2493* Fixed a bug: Closing a SOCKET-SERVER twice, or using a closed SOCKET-SERVER
2494  could result in inappropriate error messages.
2495
2496* Fixed a bug: (format nil "~@D" 0) ==> "+0" now.
2497
2498Portability
2499-----------
2500
2501* Added support for SPARC running Linux.
2502
2503* Added support for Apple PowerPC running MacOS X Server (a.k.a. Rhapsody).
2504
2505* Improved support for m68k running Linux.
2506
2507* Added build instructions for Win32 using MSVC 6.0.
2508
2509Other modifications
2510-------------------
2511
2512* On Linux 2.2.x with glibc-2.1, Solaris, OSF/1 and Irix, stack overflow is
2513  now caught reliably. Previously, endless recursion in interpreted code could
2514  cause a crash in some cases.
2515
2516* Speed up the function DIRECTORY on Unix in some cases.
2517
2518* Speed up compiled calls to LDB, LDB-TEST, MASK-FIELD, DPB, DEPOSIT-FIELD.
2519
2520
25212.22 (1999-01-08)
2522=================
2523
2524Important note
2525--------------
2526
2527* Changed bytecode format. All .fas files generated by previous CLISP versions
2528  are invalid and must be recompiled.
2529
2530User visible changes
2531--------------------
2532
2533* Conforming to ANSI CL issue <SETF-MULTIPLE-STORE-VARIABLES:ALLOW>:
2534  multiple values in ASSERT, ROTATEF, SHIFTF &c.
2535
2536* Conforming to ANSI CL issue <SETF-OF-VALUES:ADD>: `values' can take
2537  multiple value places in setf &c.
2538
2539* The variable `*prompt-with-package*' is replaced with `*prompt*',
2540  which can be a function.
2541  See <http://clisp.org/impnotes/prompt.html> for details.
2542
2543* Conforming with X3J13 writeup <FUNCTION-TYPE:X3J13-MARCH-88>, an error
2544  is now signalled when a lambda expression (not a function) is passed to
2545  APPLY, FUNCALL, SETF SYMBOL-FUNCTION, EVERY, SOME, NOTEVERY, NOTANY,
2546  SET-MACRO-CHARACTER, SET-DISPATCH-MACRO-CHARACTER. The latter two now
2547  accept a symbol instead of a function.
2548
2549* X3J13 vote <103> = writeup <IN-PACKAGE-FUNCTIONALITY:MAR89-X3J13> is
2550  implemented: COMMON-LISP:IN-PACKAGE is now a macro. LISP:IN-PACKAGE retains
2551  the old semantics as a function.
2552  The syntaxes (IN-PACKAGE "FOO") and (IN-PACKAGE :FOO) work with both
2553  variations.
2554
2555* X3J13 vote <11> = writeups <CHARACTER-PROPOSAL:2>,
2556  <CHARACTER-LOOSE-ENDS:FIX>, <CHARACTER-VS-CHAR:LESS-INCONSISTENT-SHORT>,
2557  <JUN90-TRIVIAL-ISSUES:24>, <STANDARD-REPERTOIRE-GRATUITOUS:RENAME> are
2558  implemented: Characters do not have font and bits attributes any more.
2559  The following symbols are not exported from package COMMON-LISP any more:
2560     STRING-CHAR STRING-CHAR-P
2561     CHAR-FONT-LIMIT CHAR-BITS-LIMIT
2562     CHAR-CONTROL-BIT CHAR-META-BIT CHAR-SUPER-BIT CHAR-HYPER-BIT
2563     CHAR-BITS CHAR-FONT MAKE-CHAR INT-CHAR CHAR-BIT SET-CHAR-BIT
2564  MAKE-STRING and MAKE-STRING-OUTPUT-STREAM have a new keyword argument
2565  :ELEMENT-TYPE.
2566  New types BASE-CHAR, EXTENDED-CHAR, BASE-STRING, SIMPLE-BASE-STRING.
2567
2568* X3J13 writeup <SETF-METHOD-VS-SETF-METHOD:RENAME-OLD-TERMS> is implemented:
2569  New function GET-SETF-EXPANSION, new macro DEFINE-SETF-EXPANDER. The old
2570  symbols GET-SETF-METHOD-MULTIPLE-VALUE, GET-SETF-METHOD, DEFINE-SETF-METHOD
2571  are removed from package COMMON-LISP.
2572
2573* X3J13 writeups <READER-ERROR:NEW-TYPE> and <PARSE-ERROR-STREAM:SPLIT-TYPES>
2574  are implemented: New condition classes PARSE-ERROR and READER-ERROR.
2575
2576* X3J13 writeup <UNDEFINED-VARIABLES-AND-FUNCTIONS:COMPROMISE> is implemented:
2577  New condition class UNBOUND-SLOT. New function UNBOUND-SLOT-INSTANCE.
2578
2579* X3J13 writeups <COMMON-TYPE:REMOVE> and <COMPILER-LET-CONFUSION:ELIMINATE>
2580  are implemented: COMMONP and COMPILER-LET are not exported from package
2581  COMMON-LISP any more.
2582
2583* X3J13 vote <138> = writeup <PEEK-CHAR-READ-CHAR-ECHO:FIRST-READ-CHAR> is
2584  implemented: PEEK-CHAR does less side effects than READ-CHAR followed by
2585  UNREAD-CHAR would do.
2586
2587* X3J13 writeup <SHARPSIGN-PLUS-MINUS-PACKAGE:KEYWORD> is implemented:
2588  When looking up a feature symbol in *FEATURES*, the package is no longer
2589  ignored. All initial elements of *FEATURES* are now keywords. The reader
2590  binds *PACKAGE* to #<PACKAGE KEYWORD> during #+ and #-.
2591
2592* X3J13 writeup <SLOT-MISSING-VALUES:SPECIFY> is implemented: Some of the
2593  values of SLOT-MISSING are ignored, depending on context.
2594
2595* X3J13 writeup <WITH-OPEN-FILE-SETQ:EXPLICITLY-VAGUE> is implemented:
2596  Assigning the variable bound by the WITH-INPUT-FROM-STRING, WITH-OPEN-FILE,
2597  WITH-OPEN-STREAM, WITH-OUTPUT-TO-STRING macros generates a compiler warning.
2598
2599* X3J13 writeup <SEQUENCE-TYPE-LENGTH:MUST-MATCH> is implemented: The
2600  functions MAKE-SEQUENCE, COERCE, CONCATENATE, MAP, MERGE signal an error
2601  if the result type specifies a length inconsistent with the other arguments.
2602
2603* X3J13 writeup <SYMBOL-MACROS-AND-PROCLAIMED-SPECIALS:SIGNALS-AN-ERROR> is
2604  implemented: SYMBOL-MACROLET of special variables or constants now signals
2605  an error.
2606
2607* Conforming with X3J13 writeup <DOTTED-LIST-ARGUMENTS:CLARIFY>, the first
2608  argument of LDIFF may now be a dotted list.
2609
2610* PATHNAME-MATCH-P and TRANSLATE-PATHNAME now treat missing pathname
2611  components the same as wild ones.
2612
2613* Renamed function SOCKET-STREAM-PEER-HOST to SOCKET-STREAM-PEER. New
2614  functions SOCKET-STREAM-LOCAL and SOCKET-SERVER-HOST.
2615
2616* Conforming to ANSI CL, DEFSTRUCT with option :INCLUDE now does not define
2617  accessors which were already defined in a superclass DEFSTRUCT. This solves
2618  the problems that occur when using the same :CONC-NAME for the new and the
2619  inherited structure, without need for the DEFSTRUCT option :INHERIT.
2620
2621* The functions MAKE-BROADCAST-STREAM, MAKE-CONCATENATED-STREAM,
2622  MAKE-TWO-WAY-STREAM, MAKE-ECHO-STREAM now verify that their arguments are
2623  input streams or output streams, respectively.
2624
2625* The function EQUALP now ignores the element type of arrays and looks only
2626  at the array contents, as specified by ANSI CL.
2627
2628* The *FEATURES* list now contains the symbol CLTL2 instead of the symbol
2629  CLTL1.
2630
2631* The limit for file size of files that can be accessed by CLISP is increased:
2632  4 GB for character streams, 512 MB for integer streams. The previous limits
2633  were 16 MB for character streams, 2 MB for integer streams.
2634
2635* Fixed a bug: Calling the function INTERACTIVE-STREAM-P with a non-stream
2636  argument could cause a crash.
2637
2638* Fixed a bug in the LOOP macro: OF-TYPE was not supported in numeric
2639  accumulation clauses (COUNT/SUM/MAXIMIZE/MINIMIZE).
2640
2641* Fixed a bug in the LOOP macro: The FOR clauses FROM/TO/BY can now be given
2642  in any order.
2643
2644* Fixed a bug: (UPGRADED-ARRAY-ELEMENT-TYPE 'STANDARD-CHAR) returned T instead
2645  of STRING-CHAR.
2646
2647* Fixed a bug: The function CERROR signalled an error if more than two
2648  arguments were given and the second argument was a condition.
2649
2650* Fixed a bug: Hash tables with test #'EQUALP did not work correctly when the
2651  keys are characters, multi-dimensional arrays or pathnames.
2652
2653* The function VALUES-LIST now verifies that its argument is a proper list.
2654
2655* The function XGCD now in most cases (but not always) returns coefficients of
2656  smallest possible absolute value. Suggested by the LiDIA group.
2657
2658Portability
2659-----------
2660
2661Other modifications
2662-------------------
2663
2664
26652.21 (9 September 1998)
2666=======================
2667
2668Important note
2669--------------
2670
2671* Changed bytecode format. All .fas files generated by previous CLISP versions
2672  are invalid and must be recompiled.
2673
2674User visible changes
2675--------------------
2676
2677* The 16 MB memory size limit on 32-bit machines is gone. No need for
2678  wide-mode binaries any more. The "makemake" option --with-wide is not
2679  supported any more. The command-line option -W is supported for backward
2680  compatibility, but will be removed in the future.
2681
2682* New variables *WARN-ON-FLOATING-POINT-CONTAGION* and
2683  *FLOATING-POINT-CONTAGION-ANSI*.
2684
2685* New function PROBE-DIRECTORY which tests for the existence of a directory.
2686  Suggested by many people.
2687
2688* New FORMAT directives ~/ (ANSI standard) and ~! (a better alternative).
2689
2690* ANSI CL variable *PRINT-RIGHT-MARGIN* is implemented.
2691
2692* The functions WRITE and WRITE-TO-STRING take the :RIGHT-MARGIN key argument.
2693
2694* X3J13 writeup <TYPE-BOOLEAN> is implemented: New type BOOLEAN.
2695  Suggested by Sam Steingold.
2696
2697* X3J13 writeup <ARGUMENT-MISMATCH-ERROR-MOON:FIX> is implemented:
2698  Errors during function calls (too few arguments, too many arguments,
2699  invalid keyword arguments, odd number of keyword arguments, unrecognized
2700  keyword arguments) are now of type PROGRAM-ERROR.
2701
2702* X3J13 writeup <ENSURE-DIRECTORIES-EXIST> is implemented:
2703  New function ENSURE-DIRECTORIES-EXIST.
2704  Suggested by Pierpaolo Bernardi.
2705
2706* X3J13 writeup <ISO-COMPATIBILITY:ADD-SUBSTRATE> is implemented:
2707  The macro DEFINE-SYMBOL-MACRO is now exported from package COMMON-LISP.
2708  Suggested by Pierpaolo Bernardi.
2709
2710* X3J13 writeup <DISPLACED-ARRAY-PREDICATE> is implemented:
2711  New function ARRAY-DISPLACEMENT.
2712
2713* X3J13 writeup <CLASS-OBJECT-SPECIALIZER:AFFIRM> is implemented:
2714  Class objects can now be used as parameter specializer names (not only
2715  symbols and lists of the form (EQL object)).
2716
2717* X3J13 writeup <COMPILE-FILE-OUTPUT-FILE-DEFAULTS:INPUT-FILE> is implemented:
2718  When :OUTPUT-FILE is given to COMPILE-FILE or COMPILE-FILE-PATHNAME, missing
2719  pathname components are merged in from the input file pathname.
2720
2721* X3J13 writeup <COMPILE-FILE-PATHNAME-ARGUMENTS:MAKE-CONSISTENT> is
2722  implemented: COMPILE-FILE-PATHNAME accepts any keyword arguments.
2723
2724* X3J13 writeup <COMPUTE-APPLICABLE-METHODS:GENERIC> is implemented:
2725  COMPUTE-APPLICABLE-METHODS is now a generic function.
2726
2727* X3J13 writeup <CONDITION-SLOTS:HIDDEN> is implemented: Predefined condition
2728  types have their own private slot names.
2729
2730* X3J13 vote <57> = writeup <DEFSTRUCT-SLOTS-CONSTRAINTS-NAME:DUPLICATES-ERROR>
2731  is implemented: Different slots in a structure cannot have names whose
2732  SYMBOL-NAME are equal.
2733
2734* X3J13 writeup <CONS-TYPE-SPECIFIER:ADD> is implemented:
2735  New type specifier (CONS car-type cdr-type).
2736
2737* X3J13 writeup <DEFMACRO-BLOCK-SCOPE:EXCLUDES-BINDINGS> is implemented:
2738  The implicit BLOCK generated by DEFMACRO and DEFTYPE encloses only the
2739  body forms, not the forms occurring in the lambda list.
2740
2741* X3J13 writeup <DEFSTRUCT-COPIER:ARGUMENT-TYPE> is implemented:
2742  New function COPY-STRUCTURE.
2743
2744* X3J13 writeup <JUN90-TRIVIAL-ISSUES:9> is implemented:
2745  New classes GENERIC-FUNCTION, STRUCTURE-OBJECT, CLASS, METHOD. Removed
2746  the type STRUCTURE.
2747
2748* X3J13 writeup <EVALHOOK-STEP-CONFUSION:X3J13-NOV-89> is implemented:
2749  Do not export EVALHOOK, APPLYHOOK, *EVALHOOK*, *APPLYHOOK* from package
2750  COMMON-LISP any more.
2751
2752* X3J13 writeup <MACRO-DECLARATIONS:MAKE-EXPLICIT> is implemented: NOTINLINE
2753  declarations of macros having special compiler treatment are now respected.
2754
2755* X3J13 writeups <DEFSTRUCT-PRINT-FUNCTION-INHERITANCE:YES> and
2756  <DEFSTRUCT-PRINT-FUNCTION-AGAIN:X3J13-MAR-93> are implemented:
2757  DEFSTRUCT accepts an option :PRINT-OBJECT, similar to :PRINT-FUNCTION,
2758  and each of these options causes a method on PRINT-OBJECT to be installed.
2759
2760* X3J13 writeup <SPECIAL-FORM-P-MISNOMER:RENAME> is implemented: New function
2761  SPECIAL-OPERATOR-P. The function SPECIAL-FORM-P still exists, but its use
2762  generates a compiler warning.
2763
2764* X3J13 writeup <FLOATING-POINT-CONDITION-NAMES:X3J13-NOV-89> is implemented:
2765  New condition types FLOATING-POINT-INEXACT, FLOATING-POINT-INVALID-OPERATION.
2766
2767* Fixed a bug: Reading objects in #n# syntax into typed structure slots gave
2768  an error if the structure's constructor was not compiled.
2769  Reported by Sam Steingold.
2770
2771* BUTLAST and NBUTLAST are now ANSI CL compliant: They signal an error if the
2772  argument is a dotted list of length 0. (Stupid.)
2773
2774* The macro WITH-OUTPUT-TO-STRING is now ANSI compliant.
2775
2776* Added FFI support for NetBSD/m68k.
2777  Thanks to Jörn Clausen <joern@techfak.uni-bielefeld.de>.
2778
2779* Use of the deprecated functions GENTEMP and SET now generates a compiler
2780  warning.
2781
2782* Stricter syntax checking for DO and DO*.
2783
2784* When CLOS:CALL-NEXT-METHOD is called with arguments, it is now checked that
2785  the set of applicable methods is the same as for the original arguments, in
2786  interpreted code only.
2787
2788* The CLX documentation now also exists in HTML format.
2789  Thanks to Gilbert Baumann <unk6@rz.uni-karlsruhe.de>.
2790
2791* The normal read-eval-print loop does not call (CLEAR-INPUT *STANDARD-INPUT*)
2792  any more. This means that under X11, cut and paste of multiple lines into
2793  an xterm running clisp now works.
2794  Suggested by Sam Steingold.
2795
2796* When opening socket servers, ignore EADDRINUSE errors coming from other
2797  sockets, in TIME_WAIT or CLOSE_WAIT state, hanging around on the port.
2798  Suggested by Don Cohen.
2799
2800* Fixed a bug: When *PRINT-PRETTY* = T, (PRINC #\Newline) often caused two
2801  newline characters to be output instead of a single one.
2802
2803* Fixed a bug: The sequence type functions refused to handle sequence types
2804  of the form ([SIMPLE-]ARRAY eltype 1). SUBTYPEP returned wrong results
2805  for type specifiers of the form ([SIMPLE-]ARRAY eltype n).
2806
2807* Fixed a bug: GET-MACRO-CHARACTER on a dispatch macro character does not
2808  result in an error any more.
2809
2810* Fixed a bug in ECASE, ETYPECASE, CCASE, CTYPECASE.
2811  These macros now accept T and OTHERWISE as keys.
2812
2813* Fixed a bug: OPEN did not accept type specifiers defined by DEFTYPE as
2814  :ELEMENT-TYPE argument.
2815
2816* Fixed a bug in the LOOP macro: Forms containing REPEAT clauses were
2817  executed too often in the presence of FOR-= clauses.
2818
2819* Fixed a bug: The SPACE macro returned a list of the form's values, instead
2820  of the values themselves.
2821
2822* Fixed a bug, implement X3J13 writeup <PRINC-READABLY:X3J13-DEC-91>:
2823  When *PRINT-READABLY* = T, (PRINC string) caused the string to be output
2824  in double-quotes instead of literally.
2825
2826* X3J13 writeup <IGNORE-USE-TERMINOLOGY:VALUE-ONLY> is implemented:
2827  A "variable is used despite of IGNORE declaration" warning is not emitted
2828  any more for a variable that is only assigned to and not used for value.
2829  Suggested by Pierpaolo Bernardi.
2830
2831* Fixed a bug in function FILE-AUTHOR on Win32.
2832
2833* Fixed a bug: CLISP was unable to determine the user's homedir in
2834  certain (obscure) circumstances.
2835
2836* Do not warn anymore if someone modifies one of the standard generic
2837  functions of CL like PRINT-OBJECT and INITIALIZE-INSTANCE.
2838
2839Portability
2840-----------
2841
2842* Added AmigaOS support for the socket functions. It's not perfect, but
2843  sufficient for writing socket clients.
2844  Thanks to Jörg Höhle.
2845
2846* Port to Win32 using msvc5. (Previously only msvc4 was supported.)
2847
2848* Dropped support for pre-ANSI-C compilers.
2849
2850* Updated support for EMX.
2851
2852* Dropped support for EMX versions older than 0.9c.
2853
2854* Added support for PowerPC running MkLinux.
2855
2856* Removed (incomplete) support for MS Windows 3.1.
2857
2858Other modifications
2859-------------------
2860
2861* `clisp-link' has a new command `run', to run a linking set with some
2862  modules loaded. If CLISP has been configured with option
2863  --with-dynamic-modules, this is much faster than constructing a
2864  temporary linking set.
2865  Suggested by Gilbert Baumann <unk6@rz.uni-karlsruhe.de>.
2866
2867* Compiling IFs with no else part now produce better code (Jörg Höhle).
2868
2869* Speed up I/O to *STANDARD-INPUT*, *STANDARD-OUTPUT* and *TERMINAL-IO*:
2870  If standard input is redirected from a file, the input side of *TERMINAL-IO*
2871  will be buffered. If standard output is redirected to a file, the output
2872  side of *TERMINAL-IO* will be buffered.
2873
2874* Dropped the STDWIN library.
2875
2876* Added a new type encoding scheme which allows all address ranges from
2877  0x00000000 to 0x7FFFFFFF to be used. This should make porting to some
2878  systems easier.
2879
2880* Added bindings to libc for Linux with libc6 (aka glibc 2.0).
2881
2882* Miscellaneous documentation updates.
2883
2884
28852.20.1 (6 December 1997)
2886========================
2887
2888User visible changes
2889--------------------
2890
2891* Fixed a bug which could cause a crash when Ctrl-C was pressed during heap
2892  allocation on i386.
2893
2894Other modifications
2895-------------------
2896
2897* The implementation notes now also exist in HTML format.
2898
2899
29002.20 (25 September 1997)
2901========================
2902
2903User visible changes
2904--------------------
2905
2906* X3J13 vote <53> is implemented: DEFSTRUCT BOA constructors can have &KEY
2907  arguments.
2908
2909* X3J13 vote <40> is partially implemented: New variable *READ-EVAL*.
2910
2911* X3J13 vote <150> is implemented: (READTABLE-CASE readtable) can now have
2912  the value :INVERT.
2913
2914* MAKE-PACKAGE and IN-PACKAGE accept a keyword argument :CASE-SENSITIVE.
2915  Similarly, DEFPACKAGE accepts an option :CASE-SENSITIVE. When its value is
2916  non-NIL, the package will be case sensitive, i.e. the reader will not
2917  case-convert symbol names before looking them up or creating them in this
2918  package. The package names are still subject to (READTABLE-CASE *READTABLE*),
2919  though.
2920
2921* X3J13 vote <157> is implemented: ROOM accepts an optional argument with
2922  default value :DEFAULT.
2923
2924* New macro SPACE. (SPACE form) evaluates form and prints information about
2925  the memory allocations caused by this evaluation.
2926
2927* The spanish translation is now 100% complete. Thanks to Carlos Linares.
2928
2929* DESCRIBE of a structure now displays the structure's slots.
2930
2931* The reader now accepts the syntax #\^A ... #\^Z for the ASCII control
2932  characters.
2933
2934* Fixed a CLOS bug: &ALLOW-OTHER-KEYS in lambda lists of INITIALIZE-INSTANCE
2935  now disables the validity checking of corresponding MAKE-INSTANCE calls.
2936  Thanks to Matthias Lindner <matthias@intellektik.informatik.th-darmstadt.de>.
2937
2938* Fixed a bug: The type REAL is now accepted as a declaration specifier.
2939
2940* Fixed a bug: When using GNU gettext, the LOCALIZED function always returned
2941  the value corresponding to language ENGLISH, and the interactive conflict
2942  resolution of some IMPORT/EXPORT package operations aborted with an internal
2943  error.
2944
2945* Fixed a bug in the foreign function interface: call-ins did not work on
2946  some platforms.
2947  Thanks to Matthias Lindner <matthias@intellektik.informatik.th-darmstadt.de>.
2948
2949* Fixed a bug: Calling the function SOCKET-SERVICE-PORT with a non-string
2950  argument caused a crash.
2951
2952* Fixed two bugs which could cause a crash when a GC occurred during an
2953  IN-PACKAGE or during a pathname operation (DOS, OS/2, Win32 versions only).
2954
2955* Added image support to the clx/new-clx module.
2956  Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
2957
2958Portability
2959-----------
2960
2961* More Win32 support: stack overflow handling, foreign function interface,
2962  more robust memory management.
2963
2964* Added support for Win32 (WinNT and Win95), using Borland C++.
2965
2966* Fixed a compilation error when compiling for sparcv8.
2967  Thanks to Hans Adams <adamsh@server.ecomp.de>.
2968
2969* Updated support for Solaris/x86.
2970  Thanks to Lutz Euler <euler@lavielle.com>.
2971
2972Other modifications
2973-------------------
2974
2975* Reduced the number of conses allocated by calling APPLY on a function with
2976  both &KEY and &REST.
2977  Thanks to Jörg Höhle.
2978
2979* The CLX documentation can now be viewed in ghostview.
2980  Thanks to Karl M. Hegbloom <karlheg@inetarena.com>.
2981
2982
29832.19 (7 August 1997)
2984====================
2985
2986User visible changes
2987--------------------
2988
2989* Two new add-on modules:
2990    clx/new-clx: Fast Common Lisp to X11 interface. Written by
2991                 Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
2992    clx/mit-clx: Classic Common Lisp to X11 interface.
2993
2994* (DRIBBLE filename) now appends to the given file instead of overwriting it.
2995
2996* Fixed a bug: Platform dependent constants are not inlined in .fas files any
2997  more.
2998
2999* Fixed a bug: Binding *PRINT-PRETTY* to NIL inside a PRINT-OBJECT method or
3000  inside a structure's print-function could result in undefined behaviour.
3001  Thanks to Don Cohen <don@nichimen.com>.
3002
3003* Fixed a bug: For x a float, (= 0 x) and (EQUALP 0 x) could result in
3004  undefined behaviour.
3005  Thanks to Don Cohen <don@nichimen.com>.
3006
3007* Fixed a bug: The error message issued by CHECK-TYPE was wrong.
3008
3009* Fixed a bug: Calling (DRIBBLE pathname) after (DRIBBLE) did not work.
3010  Thanks to Art Nuzzo <artn@bs724.comm.mot.com>.
3011
3012* Fixed a bug: The WITH-STANDARD-IO-SYNTAX macro caused *PACKAGE* to be bound
3013  to an invalid value.
3014
3015* Fixed two bugs in the GC (one in the generational GC, one in the
3016  non-generational GC).
3017  Big thanks to Marcus Daniels.
3018
3019* Fixed a bug: Printing socket streams created by SOCKET-ACCEPT could result
3020  in an error or an endless loop.
3021
3022Portability
3023-----------
3024
3025* Added support for Win32 (WinNT and Win95), using Microsoft Visual C++.
3026
3027* Added support for Cygwin32 version 18 (Unix emulation on WinNT or Win95).
3028
3029* Added support for GNU 0.2 (the Hurd). Thanks to Marcus Daniels.
3030
3031Other modifications
3032-------------------
3033
3034* "clisp" can now be called with "-" as argument. The standard input is then
3035  executed by a read-eval-print loop without prompt, while the remaining
3036  arguments will be assigned to the variable *ARGS*.
3037
3038* Overall speedup by 13% on i386.
3039
3040
30412.18 (3 May 1997)
3042=================
3043
3044User visible changes
3045--------------------
3046
3047* X3J13 vote <182> is now fully implemented: A LET/LET*/COMPILER-LET binding
3048  specification may now be a list of length 1, without initial value.
3049  Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
3050
3051* X3J13 vote <78> is now fully implemented: FLET, LABELS, MACROLET establish
3052  an implicit BLOCK.
3053
3054* X3J13 vote <100> is implemented: Hash tables with test function EQUALP.
3055
3056* X3J13 vote <131> is partially implemented: #P reader macro for pathnames.
3057
3058* The MULTIPLE-VALUE-BIND macro no longer allows lists as variable
3059  specifications, only symbols.
3060  Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
3061
3062* DEFCLASS which changes a class is now allowed and generates a warning.
3063  Since UPDATE-INSTANCE-FOR-REDEFINED-CLASS is not supported, it is your
3064  responsibility to not use the old instances afterwards.
3065  Suggested by Brian Dennis <xjam@CS.Berkeley.EDU> and Tobias Kunze
3066  <tkunze@cmsgia.Stanford.EDU>.
3067
3068* The TIME macro now outputs to *TRACE-OUTPUT* instead of *STANDARD-OUTPUT*.
3069  Thanks to Nathan Sidwell <nathan@bristol.st.com>.
3070
3071* When the argument of the function TRANSLATE-LOGICAL-PATHNAME is a string,
3072  it is now interpreted as a logical pathname string. Previously, it was
3073  coerced to a pathname through the function PATHNAME, yielding a physical
3074  pathname.
3075
3076* CLISP now supports more than the three predefined user-interface languages.
3077  New macros DEFLANGUAGE, DEFINTERNATIONAL, DEFLOCALIZED. New function
3078  LOCALIZED. The macros ENGLISH, DEUTSCH, FRANCAIS now work only for strings.
3079  Removed the macro LANGUAGE-CASE.
3080  The implementation uses the GNU gettext library.
3081  Thanks to Ulrich Drepper and Marcus Daniels.
3082
3083* New user-interface language ESPANOL.
3084  Thanks to Carlos Linares López <clinares@delicias.dia.fi.upm.es> who has
3085  translated about 55% of CLISP's messages to Spanish.
3086
3087* EQUALP now descends structures (but not CLOS instances!) on all platforms,
3088  as requested by X3J13 vote <71>.
3089
3090* The EXIT-ON-ERROR macro now also exits when a Ctrl-C interrupt occurs.
3091  Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>.
3092
3093* The initial value of *LOAD-PATHS* on Unix is now (#"./" "~/lisp/**/")
3094  instead of (#"./" #"./**/" "~/**/"). To be customized in config.lsp.
3095
3096* New variable *LOAD-COMPILING*, which provides the default value for the
3097  :COMPILING keyword of function LOAD. The initial value of *LOAD-COMPILING*
3098  can be specified by a command line option.
3099
3100* Fixed a bug: (VALUES-LIST '()) often returned one value.
3101  Thanks to Gilbert Baumann <gilbert@ma2s2.mathematik.uni-karlsruhe.de>.
3102
3103* Fixed a bug in the compiler: When optimizing (OR T form), the compiler
3104  could abort with an error message.
3105  Thanks to Nathan Sidwell <nathan@bristol.st.com>.
3106
3107* Fixed a bug in the DEFSTRUCT macro which caused the compiler to issue
3108  an error message when compiling a structure definition containing a slot
3109  with a constant, non-NIL initializer.
3110  Thanks to Matthias Lindner <lindner@forwiss.uni-erlangen.de>.
3111
3112* Fixed a bug in the DEFCLASS macro which caused DEFCLASS and DEFINE-CONDITION
3113  to reject the :DOCUMENTATION class option.
3114  Thanks to Don Cohen <donc@isi.edu>.
3115
3116* Fixed a bug: The use of type specifiers of the form
3117  (FUNCTION argument-types result-type)
3118  within THE, ETHE, LOOP and DEFSTRUCT forms could lead to errors.
3119  Thanks to Marty Shannon <mshannon@i-2000.com>.
3120
3121* Fixed two bugs in the DRIBBLE function: After calling (DRIBBLE pathname)
3122  followed by (DRIBBLE), *DEBUG-IO* referred to an unwritable stream.
3123  Calling (DRIBBLE pathname) from within a break loop caused some of the
3124  output to be logged twice.
3125
3126* Fixed a bug in the expansion of deeply nested backquotes.
3127  Thanks to S. Wotherspoon <spoon@hilbert.maths.utas.edu.au>.
3128
3129* Fixed a bug in the LOOP macro: Stepping for FOR-AS-= clauses
3130  (LOOP ... {FOR|AS} var = form1 THEN form2 ...) could be executed in the
3131  wrong order if form1 is constant and form2 is non-constant.
3132  Thanks to Russell Senior <seniorr@teleport.com>.
3133
3134* Fixed a bug in /= : When called with more than two arguments, only the
3135  first two arguments were compared; the remaining arguments were ignored.
3136  Thanks to J. V. Needham <jv@rdk840.dfci.harvard.edu>.
3137
3138* Fixed a bug in EQUAL and EQUALP: displaced strings were not compared
3139  correctly.
3140
3141* Fixed a bug in EXPT: For x a (COMPLEX RATIONAL) and y = m/2^n, (EXPT X Y)
3142  actually returned x ^ (m/2^(n+32)) instead of x ^ (m/2^n).
3143
3144* Fixed a bug in TRUENAME on Unix: If "aa.bb" is a symbolic link to "cc",
3145  (TRUENAME "aa.bb") returned "cc.bb" instead of "cc".
3146
3147* Fixed a bug in the management of add-on modules: On some platforms,
3148  GC in memory images containing add-on modules always crashed.
3149
3150* Fixed a bug in the generational GC on i386, rs6000, alpha: In some cases,
3151  FFI objects in memory could cause the first "small" garbage collection to
3152  fail.
3153  Thanks to Dr. Werner Fink <werner@suse.de>.
3154
3155* Fixed a bug in the printing routine for SOCKET-SERVER objects.
3156  Thanks to Alexey Goldin <goldin@spot.uchicago.edu> and Marcus Daniels.
3157
3158Portability
3159-----------
3160
3161* The core of CLISP can now be compiled with a C++ compiler if no C compiler
3162  is available (without readline library, FFI or modules).
3163
3164* Added support for Mips processors in 64-bit mode.
3165
3166* Updated support for Linux 2.0.
3167
3168* Support for immutable objects now works on Linux/ELF. It did already work
3169  on Linux/a.out.
3170
3171* Updated Amiga support. Thanks to Jörg Höhle <Joerg.Hoehle@gmd.de>.
3172
3173* Updated Acorn support. Thanks to Peter Burwood <clisp@arcangel.dircon.co.uk>.
3174
3175* Updated OS/2 support. Thanks to Jörg Diederich <J_Diederich@herlab.ruhr.de>.
3176
3177* Updated support for Solaris/x86. Thanks to Marty Shannon <mjs@tiaa-cref.org>.
3178
3179* Fixed a bug which could cause the readline completion to dump core on HP-UX.
3180
3181* Fixed a bug relating to the read-eval-print loop's return point on some
3182  platforms. Thanks to Peter Burwood <clisp@arcangel.dircon.co.uk>.
3183
3184* Removed an incompatibility between SPARC/Sun4 and UltraSPARC memory images.
3185  Found by Martin Ginkel <ginkel@iik.cs.uni-magdeburg.de>.
3186
3187* Removed support for AmigaOS versions < 2.04.
3188
3189Other modifications
3190-------------------
3191
3192* New "makemake" option --with-wide causes normal and wide-mode binaries to
3193  be built and distributed simultaneously. New command-line option -W
3194  for choosing the wide-mode binaries instead of the normal binaries.
3195
3196* On Unix, "clisp" is now an executable instead of a shell script.
3197
3198* "clisp" can now be called with a Lisp file as argument. The remaining
3199  arguments will be passed to the Lisp program in the variable *ARGS*.
3200  On Unix, you can thus make Lisp programs executable by putting
3201  "#!/usr/local/bin/clisp" in the first line and doing a "chmod a+x".
3202
3203* The read-eval-print loop now calls FORCE-OUTPUT after outputting the prompt.
3204  Thanks to Jörg Höhle <Joerg.Hoehle@gmd.de>.
3205
3206* Support for immutable objects now also works in the WIDE tagging scheme.
3207
3208* Reduced the startup time by 20-30%.
3209
3210
32112.17 (21 July 1996)
3212===================
3213
3214Important note
3215--------------
3216
3217* Changed bytecode format. All .fas files generated by previous CLISP versions
3218  are invalid and must be recompiled.
3219
3220User visible changes
3221--------------------
3222
3223* X3J13 vote <72> is conditionally implemented: Objects other than symbols,
3224  lists, numbers, characters, string, bit-vectors are now self-evaluating if
3225  *PACKAGE* uses the COMMON-LISP package.
3226
3227* The package CLOS is now among the default use list of a new package.
3228  (USE-PACKAGE "CLOS") is not needed any more. To use PCL, you now need
3229  to (UNUSE-PACKAGE "CLOS") explicitly.
3230
3231* The bytecode format is now platform independent. As a consequence,
3232  compiled functions can be printed readably when *PRINT-READABLY* = T.
3233
3234* Built-in function objects (SUBRs) are now printed readably when
3235  *PRINT-READABLY* = T, instead of signaling an error.
3236
3237* Added a <c-type>, C-PTR-NULL to the FFI.  C-PTR-NULL will convert
3238  NIL objects into NULL pointers (so that type conflicts can be avoided).
3239
3240* Socket streams are implemented. New functions SOCKET-SERVER,
3241  SOCKET-SERVER-CLOSE, SOCKET-SERVER-PORT, SOCKET-WAIT, SOCKET-ACCEPT,
3242  SOCKET-CONNECT, SOCKET-STREAM-HOST, SOCKET-STREAM-PORT, SOCKET-SERVICE-PORT,
3243  SOCKET-STREAM-PEER-HOST.
3244  See <http://clisp.org/impnotes/socket.html> for details.
3245  Thanks to Marcus Daniels <marcus@sysc.pdx.edu> and
3246  Marco Ramoni <M.Ramoni@open.ac.uk>.
3247
3248* Pipe streams now support binary I/O.
3249
3250* MAKE-INSTANCE now also works for DEFSTRUCT classes, and DEFSTRUCT classes
3251  can now be subclassed via DEFCLASS with option :METACLASS STRUCTURE-CLASS.
3252  Suggested by Manuel Kolp <kolp@qant.ucl.ac.be>.
3253
3254* User defined methods on NO-APPLICABLE-METHOD now have a chance for a
3255  corrective action. Thanks to Mark Thomas <thommark@access.digex.net>.
3256
3257* APROPOS and DESCRIBE now tell you about symbols which name a type or class.
3258
3259* During directory search, symbolic link loops are now ignored instead
3260  of resulting in an error. Thanks to Dan Stanger.
3261
3262* Fixed a CLOS bug: REMOVE-METHOD did not work.
3263  Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>.
3264
3265* Fixed a bug in the compiler: A (MULTIPLE-VALUE-SETQ vars valform)
3266  or (MULTIPLE-VALUE-BIND vars valform ...) form was miscompiled if
3267  valform is known to produce a single value.
3268  Thanks to Paul Graham <pg@das.harvard.edu>.
3269
3270* Fixed at least two bugs in the LOOP macro: FOR-AS-ACROSS clauses could
3271  result in AREF signaling an out-of-bounds error at the end of the vector.
3272  Initialisations for FOR-AS-= clauses could be executed in the wrong order.
3273
3274* Fixed a bug: the functions ENCODE-UNIVERSAL-TIME and DECODE-UNIVERSAL-TIME
3275  computed a wrong DST flag for time values between (T - 2h) and T, where
3276  T denotes a DST switch time.
3277
3278* Fixed two bugs in the foreign function interface: multi-dimensional arrays
3279  and floating point numbers with value 0.0 were not correctly passed from
3280  "foreign land" to "Lisp land". Thanks to Ken Olum <kdo@mit.edu>.
3281
3282* Fixed a bug in the foreign function interface: call-ins which return
3283  structures or unions would not compile correctly. Thanks to Michael Stoll.
3284
3285* Fixed a bug: On Solaris, the function SYSTEM sometimes reported exit
3286  status 0 although the command had failed.
3287  Thanks to Brian F. Dennis <xjam@cs.Berkeley.edu>.
3288
3289* Fixed a bug: LOGTEST did not work correctly if both arguments were bignums.
3290
3291* Fixed a bug in the floating point number printing routine:
3292  In rare cases, a number was printed with more digits than necessary
3293  (without, however, violating the print-read consistency). For example,
3294  2.1416s29 printed as 2.14159s29, and 3.002618f-31 printed as 3.0026179f-31.
3295
3296* Fixed a bug in ATAN: (ATAN y 0) with y < 0 returned pi/2 instead of -pi/2.
3297
3298* Fixed a bug in XGCD which caused the results to be wrong with a small
3299  probability, for example in the case (XGCD 77874422 32223899).
3300
3301Portability
3302-----------
3303
3304* FreeBSD/NetBSD patches and compilation notes.
3305  Thanks to Douglas Crosher <dtc@stan.xx.swin.oz.au>.
3306
3307* Added support for SUNWspro cc 3.0.1 on Sparc.
3308
3309* Updated support for Ultrix.
3310
3311* Updated support for NeXTstep version 3.3.
3312  Thanks to Robert Murphy <robert.murphy@yale.edu>.
3313
3314* Updated support for SINIX. Thanks to Michael Becker <mb12@coconet.de>.
3315
3316* Fixed a bug in the conversion of double-float numbers from "foreign land"
3317  to "Lisp land" on DEC Alpha. Thanks to Ken Olum <kdo@mit.edu>.
3318
3319* Fixed a bug in the implementation of LISTEN on Irix: CLISP went into a
3320  `function call not implemented' OS error loop. Thanks to Marcus Daniels.
3321
3322* Fixed a signal handling bug on some versions of SunOS 4: Strange things
3323  could happen in a break loop.
3324
3325* The `configure' script now supports the --srcdir, --prefix and --exec-prefix
3326  options.
3327
3328* Removed support for Atari ST/TT running TOS.
3329
3330Other modifications
3331-------------------
3332
3333* The compiler now recognizes more function calls as inlinable: Cases like
3334  (FUNCALL (LAMBDA ...) ...), (DECLAIM (INLINE F)) (MAPCAR #'F ...)
3335  are now compiled as inline function calls. Previously you had to write
3336  (FUNCTION (LAMBDA ...)) explicitly. Suggested by Jörg Höhle.
3337
3338* "makemake" now supports the --srcdir, --prefix and --exec-prefix options.
3339
3340* Added a testsuite for part of CLOS. Thanks to Christian Jullien.
3341
3342* Miscellaneous documentation updates.
3343
3344
33452.16 (23 June 1995)
3346===================
3347
3348Important note
3349--------------
3350
3351* Changed bytecode format. All .fas files generated by previous CLISP versions
3352  are invalid and must be recompiled.
3353
3354User visible changes
3355--------------------
3356
3357* X3J13 vote <106> is implemented: LAST has an optional argument.
3358  Thanks to Pierpaolo Bernardi.
3359
3360* X3J13 vote <87> is implemented: New function COMPLEMENT.
3361  Thanks to Pierpaolo Bernardi.
3362
3363* X3J13 vote <40> is partially implemented: New macro WITH-STANDARD-IO-SYNTAX.
3364  Thanks to Pierpaolo Bernardi.
3365
3366* X3J13 vote <98> is partially implemented: New macro WITH-HASH-TABLE-ITERATOR.
3367  Thanks to Pierpaolo Bernardi.
3368
3369* X3J13 vote <97> is implemented: New functions HASH-TABLE-REHASH-SIZE,
3370  HASH-TABLE-REHASH-THRESHOLD, HASH-TABLE-SIZE, HASH-TABLE-TEST.
3371  Thanks to Pierpaolo Bernardi.
3372
3373* X3J13 votes <69> and <70> are implemented: New declaration DYNAMIC-EXTENT.
3374
3375* The dpANS macro LAMBDA is implemented.
3376
3377* The dpANS declaration IGNORABLE is implemented.
3378
3379* The dpANS function CONSTANTLY is implemented. Thanks to Pierpaolo Bernardi.
3380
3381* Better syntax checking for the CASE macro. Thanks to Pierpaolo Bernardi.
3382
3383* The user interface language may be chosen through the environment variable
3384  LANG as well.
3385
3386* The pretty printer now indents lists spanning more than one line by two
3387  spaces, instead of one. New variable *PRINT-INDENT-LISTS*.
3388
3389* *PRINT-PRETTY* is now initially T.
3390
3391* Foreign function interface: New foreign type constructor FFI:C-ARRAY-MAX,
3392  implements zero-terminated arrays of bounded size.
3393
3394* On Unix, 8-bit characters are legal in pathnames if the operating system
3395  accepts them.
3396
3397* On DOS, #\Newline is converted to CR/LF when doing character output to
3398  unbuffered file streams (referring to special files).
3399
3400* Fixed a bug in the interpreter and compiler: A MULTIPLE-VALUE-SETQ form
3401  which assigns to a symbol macro expanded to a wrong form; compiling it
3402  produced a warning. Thanks to Pierpaolo Bernardi.
3403
3404* Fixed a bug in the compiler: Some CASE form with duplicate keys, when
3405  compiled, chose the wrong clause to be executed.
3406  Thanks to Pierpaolo Bernardi.
3407
3408* Fixed a bug in the #+/#- reader macros. (LIST #+FOO #-BAR 1 2 3) now
3409  returns (2 3), not (3).
3410
3411* Fixed a bug in LOG: (LOG x^n x^m), where n, m are integers, |m| > 1, and
3412  x is a rational number /= 1, now correctly returns n/m. Previously,
3413  (LOG 2 4) returned 1/0.
3414
3415* Fixed a CLOS bug: Using the :DOCUMENTATION option in DEFGENERIC declarations
3416  for function names of the form (SETF symbol) signalled an error.
3417  Thanks to Pierpaolo Bernardi.
3418
3419* Fixed a bug in DEFSETF: An IGNORE declaration for the store variable had
3420  no effect. Thanks to Pierpaolo Bernardi.
3421
3422Portability
3423-----------
3424
3425* Added support for Linux/ELF. Thanks to Marcus Daniels.
3426
3427* Added support for Solaris/x86. Thanks to Marty Shannon.
3428
3429* On Solaris, LISTEN and READ-CHAR-NO-HANG did not work on the terminal stream
3430  if standard input was redirected to come from a file.
3431
3432* On OS/2, consider the virtual directory \PIPE\ as existent.
3433
3434Other modifications
3435-------------------
3436
3437* A couple of bug fixes and new functions in the STDWIN package.
3438  Thanks to Pierpaolo Bernardi.
3439
3440* The structure of external modules has changed a bit.
3441
3442* Miscellaneous documentation updates.
3443
3444
34452.15 (25 April 1995)
3446====================
3447
3448User visible changes
3449--------------------
3450
3451* Michael Stoll has written a graphical user interface for CLISP under
3452  NeXTstep.
3453
3454* Added a foreign language module WILDCARD for wildcard matching.
3455
3456* Added a foreign language module REGEXP for Unix-style regular expression
3457  matching and searching.
3458
3459* X3J13 vote <94> is implemented: Calling GENSYM has no side effects except
3460  incrementing the counter. New variable *GENSYM-COUNTER*.
3461
3462* New macro FORMATTER converts a FORMAT control string to a function.
3463
3464* Some FORMAT fixes:
3465  + X3J13 vote <81> is implemented: The FORMAT ~:^ directive is more useful.
3466    Warning: Old style "~:^" directives need to be converted to "~#:^".
3467  + X3J13 vote <82> is implemented: The FORMAT ~D, ~B, ~O, ~X, ~R directives
3468    accept an optional comma-interval parameter.
3469  + X3J13 vote <84> is implemented: FORMAT ~C outputs characters with no bits
3470    as if by WRITE-CHAR.
3471  + Handling of ~^ within the FORMAT ~? directive.
3472
3473* X3J13 vote <167> is implemented: New types FILE-STREAM, SYNONYM-STREAM,
3474  BROADCAST-STREAM, CONCATENATED-STREAM, TWO-WAY-STREAM, ECHO-STREAM,
3475  STRING-STREAM. New functions OPEN-STREAM-P, SYNONYM-STREAM-SYMBOL,
3476  BROADCAST-STREAM-STREAMS, CONCATENATED-STREAM-STREAMS,
3477  TWO-WAY-STREAM-INPUT-STREAM, TWO-WAY-STREAM-OUTPUT-STREAM,
3478  ECHO-STREAM-INPUT-STREAM, ECHO-STREAM-OUTPUT-STREAM.
3479
3480* New condition type PRINT-NOT-READABLE.
3481  New function PRINT-NOT-READABLE-OBJECT.
3482
3483* New function FINALIZE. (FINALIZE object function) has the effect that
3484  function will be called when object is being garbage collected.
3485
3486* DRIBBLE now also redirects *ERROR-OUTPUT*, *TRACE-OUTPUT*, *QUERY-IO*,
3487  *DEBUG-IO* if they refer to *TERMINAL-IO*.
3488
3489* Calling SYMBOL-VALUE on a symbol defined as global symbol macro now returns
3490  the value of the expansion. New function SYMBOL-MACRO-EXPAND.
3491
3492* Add FFI to the *FEATURES* if the foreign language interface is present.
3493
3494* Fixed a bug: An IGNORE declaration for a macro's &ENVIRONMENT argument now
3495  has an effect.
3496
3497* Fixed a couple of bugs in the foreign language interface: Passing zero size
3498  arrays did not work, parameters with mode :OUT did not work on SPARC and
3499  HP-PA, and some error messages were deficient.
3500
3501* Fixed a bogus error message in SET-DISPATCH-MACRO-CHARACTER.
3502
3503Portability
3504-----------
3505
3506* Fixed a couple of building problems relating to the foreign language
3507  interface (missing `mark_fp_invalid' and `pr_hex8', missing makefile
3508  dependencies, support for --with-dynamic-modules, warnings when compiling
3509  user2.lsp and foreign1.lsp).
3510
3511* Fixed a building problem: Not all C compilers accept casts in constant
3512  expressions used as initializers, e.g. gcc-2.5.8.
3513
3514* Foreign function interface: Fixed a couple of possible bugs in the low-level
3515  foreign function call routine for i386/486/586, m680x0, SPARC CPUs.
3516  Thanks to Jörg Höhle.
3517
3518* Small fixes for SCO.
3519
3520* Added a utility "hln" for making hard links. Needed for "make distrib";
3521  Solaris "ln" does not make a hard link if a symbolic link is involved.
3522
3523* On some Unix systems, use "uname -m", not "arch", to determine
3524  (MACHINE-TYPE) and (MACHINE-VERSION).
3525
3526* More support for BSDI 1.0, AIX, HP-UX, Solaris.
3527
3528* Changed STDWIN so that it compiles under X11R6.
3529
3530Other modifications
3531-------------------
3532
3533* Speed up compiled calls to FORMAT with literal control string by use of
3534  FORMATTER.
3535
3536* Miscellaneous documentation updates.
3537
3538
35392.14 (4 April 1995)
3540===================
3541
3542User visible changes
3543--------------------
3544
3545* The initial value of *PACKAGE* can be specified by a command line option.
3546
3547* X3J13 vote <6> is implemented: New place ROW-MAJOR-AREF.
3548
3549* X3J13 vote <126> is implemented: New function DELETE-PACKAGE.
3550
3551* X3J13 vote <14> is implemented: Closing a synonym stream does not close
3552  its constituent stream.
3553
3554* Foreign language interface for C and ANSI C. New package FFI. New macros
3555  FFI:DEF-C-TYPE, FFI:DEF-C-VAR, FFI:DEF-C-CALL-OUT, FFI:DEF-C-CALL-IN,
3556  FFI:DEF-C-ENUM, FFI:DEF-C-STRUCT, FFI:DEF-CALL-OUT, FFI:DEF-CALL-IN,
3557  FFI:ELEMENT, FFI:DEREF, FFI:SLOT, FFI:CAST, FFI:TYPEOF, FFI:SIZEOF,
3558  FFI:BITSIZEOF.
3559  This currently works only on Unix and only with the CPUs
3560  i386/486/586, m680x0, Mips, SPARC, DEC Alpha, HP-PA, RS/6000.
3561  Warning: (COMPILE-FILE "filename.lsp") now overwrites the file "filename.c".
3562
3563* New macros MUFFLE-CERRORS and APPEASE-CERRORS. During their execution,
3564  continuable errors are handled by the function CONTINUE. MUFFLE-CERRORS
3565  does this silently, APPEASE-CERRORS prints the error as a warning.
3566
3567* New macro EXIT-ON-ERROR. During its execution, non-continuable errors
3568  cause CLISP to exit with error status.
3569
3570* The function ED, when asked to edit a non-existent file, now creates that
3571  file instead of signaling an error.
3572
3573* When a non-absolute pathname is specified for the -o command line option
3574  (destination file of a compilation), it is interpreted as relative to the
3575  current directory, not relative to the source file of the compilation.
3576
3577* The readline library now uses the last column of the screen if the terminal
3578  is an xterm, for example. Work done by Chet Ramey.
3579
3580* Fixed two bugs in the LOOP macro: FOR-AS-ACROSS clauses could result in AREF
3581  signaling an out-of-bounds error at the end of the vector. Initialisations
3582  for FOR-AS-= clauses could be executed in the wrong order.
3583
3584* Fixed a bug in the compiler which caused LOAD-TIME-VALUE forms to be
3585  evaluated at compile time.
3586
3587* Fixed a bug in the debugger: Choosing a restart Rnnn always invoked the
3588  last restart listed, not the chosen one.
3589
3590* Fixed a bug: (CLOSE *TERMINAL-IO*) signals an error again.
3591
3592* On DOS and OS/2, the Lisp reader now treats Ctrl-Z as whitespace.
3593
3594* The -I command line option now tells the readline library to handle the Tab
3595  character as normal self-inserting character.
3596
3597* Unix version only: DISASSEMBLE can display machine instructions, provided
3598  that GNU gdb is present.
3599
3600Portability
3601-----------
3602
3603* Updated support for EMX.
3604
3605* Fixed a bug which caused a preprocessor error on SunOS and OSF/1.
3606
3607* Small fixes for Sinix and SCO.
3608
3609* Removed support for Coherent.
3610
3611Other modifications
3612-------------------
3613
3614* Generational garbage collection now also works on IRIX 5.2.
3615
3616* Generational garbage collection and support for immutable objects do not
3617  exclude each other any more.
3618
3619* Speed up the bytecode interpreter by about 2%.
3620
3621* Miscellaneous documentation updates.
3622
3623
36241 January 1995
3625==============
3626
3627CLISP now compiles and runs on
3628* microcomputers:
3629  * DOS
3630  * OS/2 2.0
3631  * MS Windows 3.1
3632  * Amiga 500-4000, Amiga OS
3633  * Atari ST/TT, TOS
3634  * Acorn ARM Risc PC, RISC OS
3635* Unix workstations:
3636  * PC, Linux
3637  * PC, USL SVR4
3638  * DEC Alpha AXP, OSF/1
3639  * Sun4, SunOS 4 or 5
3640  * HP9000/800, HP-UX
3641  * NeXT, NeXTstep 3.1
3642  * PC, NeXTstep 3.2
3643  * SGI Mips, Irix 4 or 5
3644  * SNI Mips, USL SVR4
3645  * DECstation 5000, Ultrix 4.2
3646  * IBM RS/6000, AIX 3.2
3647  * M88000
3648  * Sun386, SunOS 4
3649  * Sun3, SunOS 4 (?)
3650  * HP9000/300, HP-UX or NetBSD
3651  * Apple MacII, A/UX (?)
3652  * Amiga 3000, Amiga Unix 2.1
3653  * Sequent PTX
3654  * PC, 386BSD or NetBSD or BSDI/386
3655  * PC, UnixWare
3656  * PC, SCO (?)
3657  * PC, Coherent 4.0
3658  * Convex, ConvexOS
3659  * Atari ST/TT, MiNT
3660
3661Generational GC works on
3662  * PC, Linux
3663  * Sun4, SunOS 4 or 5
3664  * NeXT, NeXTstep 3.1
3665  * PC, NeXTstep 3.2
3666  * DEC Alpha AXP, OSF/1 3.0
3667
3668
36692.13.1 (1 January 1995)
3670=======================
3671
3672Important note
3673--------------
3674
3675* Changed bytecode format. All .fas files generated by previous CLISP versions
3676  are invalid and must be recompiled.
3677
3678User visible changes
3679--------------------
3680
3681* The destination file of a compilation can be specified by a command line
3682  option.
3683
3684* X3J13 vote <152> is implemented: REDUCE has a keyword argument :KEY.
3685
3686* The printed representation of file streams of element type STRING-CHAR now
3687  contains a line number.
3688
3689* Fixed a bug which caused the interpreter to signal an error when evaluating
3690  nested DEFUNs.
3691
3692* Fixed a bug which could cause a crash when a GC occurred during single or
3693  double float subtraction.
3694
3695Portability
3696-----------
3697
3698* More support for Acorn ARM running RISCOS. Thanks to Peter Burwood.
3699
3700* Fixed a problem in the readline library on non-POSIX BSD systems: Only LF
3701  was output instead of CR/LF.
3702
3703* Updated support for EMX.
3704
3705* The `configure' script now caches its results.
3706
3707Other modifications
3708-------------------
3709
3710* New memory model TRIVIALMAP_MEMORY which supports generational garbage
3711  collection in combination with the WIDE tagging scheme.
3712
3713* Generational garbage collection now also works on NeXTstep and OSF/1 3.0.
3714
3715* When a memory image is loaded, the terminal stream from the previous
3716  session is closed.
3717
3718* Renamed `target' to `configure'.
3719
3720* Added a manual page in HTML format.
3721
3722* Miscellaneous documentation updates.
3723
3724
37252.13 (26 October 1994)
3726======================
3727
3728Important note
3729--------------
3730
3731* Changed bytecode format. All .fas files generated by previous CLISP versions
3732  are invalid and must be recompiled.
3733
3734User visible changes
3735--------------------
3736
3737* X3J13 vote <77> is implemented: CL:FLET, CL:LABELS, CL:MACROLET allow
3738  declarations.
3739
3740* X3J13 vote <78> is implemented: CL:FLET, CL:LABELS, CL:MACROLET, DEFTYPE,
3741  DEFSETF, DEFINE-SETF-METHOD establish an implicit BLOCK.
3742
3743* X3J13 vote <128> is implemented: MAKE-PATHNAME, PATHNAME-HOST,
3744  PATHNAME-DEVICE, PATHNAME-DIRECTORY, PATHNAME-NAME, PATHNAME-TYPE have
3745  a keyword argument :CASE. Thanks to Marcus Daniels.
3746
3747* X3J13 vote <137> is implemented: New functions WILD-PATHNAME-P,
3748  PATHNAME-MATCH-P and TRANSLATE-PATHNAME. Thanks to Marcus Daniels.
3749
3750* X3J13 vote <130> is implemented: New built-in type LOGICAL-PATHNAME.
3751  New place LOGICAL-PATHNAME-TRANSLATIONS. New functions LOGICAL-PATHNAME,
3752  TRANSLATE-LOGICAL-PATHNAME, LOAD-LOGICAL-PATHNAME-TRANSLATIONS,
3753  COMPILE-FILE-PATHNAME. Thanks to Marcus Daniels.
3754
3755* X3J13 vote <132> is implemented: Synonym streams to file streams are
3756  allowed as pathnames.
3757
3758* Amiga version: SCREEN package is implemented. Thanks to Jörg Höhle.
3759
3760* The debugger emits some more messages to *DEBUG-IO*, not *ERROR-OUTPUT*.
3761
3762* (COERCE symbol 'FUNCTION) now works.
3763
3764* Fixed a bug in ENOUGH-NAMESTRING: In many cases, a relative directory
3765  specification was returned instead of an absolute directory specification.
3766
3767* Fixed a CLOS bug which caused (DEFCLASS FOO (STANDARD-OBJECT) ()) and
3768  (DEFINE-CONDITION FOO (CONDITION) ()) to signal errors.
3769
3770* Fixed a bug: In some situations, USE-PACKAGE reported a name conflict when
3771  there was none.
3772
3773* Fixed a bug: (READ-CHAR-NO-HANG stream nil eof-object) now signals an error
3774  if stream is not an input stream. Previously it returned eof-object.
3775
3776* Fixed a bug: On some Unix systems, (FINISH-OUTPUT *TERMINAL-IO*) signalled
3777  an error if standard output was redirected to a file.
3778
3779* (SQRT 0) now returns an integer 0 instead of a floating-point 0.0.
3780
3781* Readline library: Fixed a small problem with input prompts longer than the
3782  screen width.
3783
3784* Fixed three bugs in the built-in editor. One of them made the editor
3785  entirely unusable.
3786
3787Portability
3788-----------
3789
3790* Added some support for MS Windows.
3791
3792* On DOS, the readline library now handles the /!INPUTRC and history files
3793  correctly.
3794
3795* Some modification for the sake of gcc-2.6.1.
3796
3797Other modifications
3798-------------------
3799
3800* Generational garbage collection now also works on Linux (1.1.52 or newer).
3801
3802* On Unix, external modules written in C can be linked to CLISP without
3803  recompiling CLISP from source. For example, the STDWIN library.
3804
3805* Small fix: On some machines, some internal objects were being printed as
3806  #<SYSTEM-POINTER ...> instead of #<FRAME-POINTER ...>.
3807
3808* Miscellaneous documentation updates.
3809
3810
38112.12.1 (1 September 1994)
3812=========================
3813
3814User visible changes
3815--------------------
3816
3817* The DEFCONSTANT warning about redefinition of a constant is also inhibited
3818  if the constant's new and old values are the same string (in the sense of
3819  EQUAL). Thanks to Marcus Daniels.
3820
3821* Unix version only: The daylight saving time flag of a time zone (eighth
3822  value of GET-DECODED-TIME and DECODE-UNIVERSAL-TIME) is now correct.
3823
3824Portability
3825-----------
3826
3827* Added support for Acorn ARM running RISCOS. Thanks to Peter Burwood.
3828
3829* Added support for NetBSD 1.0. Thanks to Douglas Crosher.
3830
3831* Updated support for EMX and DJGPP.
3832
3833* GNU malloc for HP-UX now works.
3834
3835
38362.12 (23 August 1994)
3837=====================
3838
3839User visible changes
3840--------------------
3841
3842* X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
3843
3844* The function ED can now edit functions that have been entered in
3845  interpreted form even if they have later been compiled.
3846
3847* New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
3848  (COMPILE function-name) if the function's definition had been entered
3849  in interpreted form.
3850
3851* The OPEN option :IF-EXISTS :RENAME-AND-DELETE now deletes the renamed
3852  file. Previously :RENAME-AND-DELETE was equivalent to :RENAME.
3853
3854* (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
3855
3856* Readline library: Completion of a function call with no arguments
3857  automatically adds the closing parenthesis.
3858
3859* Readline library: When a closing parenthesis is typed, the corresponding
3860  opening parenthesis is displayed.
3861
3862Portability
3863-----------
3864
3865* Added support for Convex. Thanks to Marcus Daniels.
3866
3867* Added support for SCO. Thanks to Cathy Bareiss and Marcus Daniels.
3868
3869* More NeXTstep support.
3870
3871* More Sinix support. Thanks to Manfred Weichel.
3872
3873* Updated support for AmigaOS. Thanks to Jörg Höhle.
3874
3875* Some modification for the sake of gcc-2.6.
3876
3877* Added GNU malloc. For HP-UX.
3878
3879* Added a bunch of character set conversion utilities. Covers the ASCII,
3880  ISO Latin-1, IBM PC, HP Roman8, NeXTstep and Atari ST character sets.
3881
3882* The `configure' script now prints its results.
3883
3884* Floating point computations on some CPUs (Sparc, HP-PA, M88000, RS/6000):
3885  Fixed some confusion between overflow and NaN and between underflow and zero.
3886
3887* Removed support for Atari Turbo-C (now known as PURE-C).
3888
3889Other modifications
3890-------------------
3891
3892* Copyright clarification.
3893
3894* Generational garbage collection. This works only for Unix implementations
3895  with powerful virtual memory management, currently only SunOS.
3896
3897* Improved virtual memory efficiency:
3898  - Memory model SPVW_PAGES: do not put a piece of management data into
3899    every page.
3900  - Memory model SPVW_BLOCKS: compact conses, do not shuffle them, so that
3901    they are kept sorted according to their age.
3902  - Memory model SPVW_PURE_BLOCKS: pages containing garbage are
3903    immediately freed.
3904
3905* Unix version only: To reduce the startup time, try to use mmap() instead
3906  of read() for the startup file.
3907
3908* Added a readline manual page.
3909
3910* Miscellaneous documentation updates.
3911
3912
39132.11 (4 July 1994)
3914==================
3915
3916User visible changes
3917--------------------
3918
3919* X3J13 votes <115> and <114> are implemented: an elaborate LOOP macro.
3920  New macro LOOP-FINISH.
3921  Warning: The scoping rules for the iteration variables are hairy. If a
3922  FOR/AS initialisation form refers to an iteration variable of a subsequent
3923  FOR/AS clause, the effects are implementation dependent!
3924
3925* X3J13 vote <120> is implemented: New function MAP-INTO.
3926
3927* X3J13 vote <79> is implemented: New constants
3928  LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
3929  LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT,
3930  LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT,
3931  LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT,
3932  LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT,
3933  LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT,
3934  LEAST-POSITIVE-NORMALIZED-LONG-FLOAT,
3935  LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
3936
3937* The macro WITH-OUTPUT-TO-PRINTER now also works on DOS.
3938
3939* Fixed a bug in DO-SYMBOLS: A symbol which is exported from a used package
3940  was considered accessible in the using package even if it was shadowed by
3941  another present symbol of the same name.
3942
3943* Fixed a bug in the debugger which caused the BACKTRACE commands to print
3944  garbage if the current user interface language was not English.
3945
3946Other modifications
3947-------------------
3948
3949* Miscellaneous documentation updates.
3950
3951
39522.10 (22 June 1994)
3953===================
3954
3955User visible changes
3956--------------------
3957
3958* French support is now complete. Thanks to Jörg Höhle.
3959
3960* The user interface language (English, German or French) can now be chosen
3961  at startup time through a command line option. The constant *LANGUAGE* has
3962  been removed, and its value has been removed from *FEATURES*. New macros
3963  ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
3964
3965* There is a command line option that makes CLISP behave more like what
3966  ILISP (a popular Emacs LISP interface) expects.
3967
3968* The function CLOS:CALL-NEXT-METHOD can now be called with arguments, but
3969  the check that the set of applicable methods must be the same as for the
3970  original arguments will be bypassed.
3971
3972* New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
3973  WRITE-BYTE-SEQUENCE which perform fast block I/O.
3974
3975* Errors of type FLOATING-POINT-UNDERFLOW are inhibited in floating point
3976  computations (and zero is returned instead) during execution of the new
3977  macro WITHOUT-FLOATING-POINT-UNDERFLOW.
3978
3979* X3J13 vote <95> is implemented: If the readtable argument passed to
3980  GET-MACRO-CHARACTER and GET-DISPATCH-MACRO-CHARACTER is NIL, the standard
3981  readtable is used.
3982
3983* PROBE-FILE does not report an error any more if an intermediate directory
3984  in the path does not exist. NIL is returned instead.
3985
3986* The DEFCONSTANT warning about redefinition of a constant is inhibited if
3987  the constant's new and old values are the same (in the sense of EQL).
3988  Thanks to Marcus Daniels.
3989
3990* The function INTERACTIVE-STREAM-P knows that if the terminal stream is
3991  referring to a regular file (via input redirection) it is not interactive.
3992
3993* There is a user programmable kind of streams, called generic streams.
3994  New functions MAKE-GENERIC-STREAM, GENERIC-STREAM-CONTROLLER,
3995  GENERIC-STREAM-P, GENERIC-STREAM-READ-CHAR, GENERIC-STREAM-READ-BYTE,
3996  GENERIC-STREAM-LISTEN, GENERIC-STREAM-WRITE-CHAR, GENERIC-STREAM-WRITE-BYTE,
3997  GENERIC-STREAM-WRITE-STRING, GENERIC-STREAM-CLEAR-INPUT,
3998  GENERIC-STREAM-CLEAR-OUTPUT, GENERIC-STREAM-FINISH-OUTPUT,
3999  GENERIC-STREAM-FORCE-OUTPUT, GENERIC-STREAM-CLOSE.
4000  See <http://clisp.org/impnotes/gstream.html> for details.
4001  Thanks to Marcus Daniels and Don Cohen.
4002
4003* The macro WITH-OUTPUT-TO-PRINTER may now also work on OS/2.
4004
4005* Fixed a CLOS bug: Generic functions with both optional and keyword
4006  arguments did not work.
4007
4008* Fixed a serious bug in the compiler which caused incorrect code to be
4009  generated for functions like (LAMBDA (X) (SETQ X 1)).
4010
4011* Fixed a serious bug in the compiler which caused the compiler to crash
4012  when compiling functions which contain two or more calls to ASSERT.
4013
4014* Fixed a bug: The macroexpander of MULTIPLE-VALUE-SETQ built up a
4015  syntactically illegal form.
4016
4017* Fixed a bug in the reader: When reading pathnames from the syntax
4018  #S(PATHNAME ...), #n# references in pathname components were not
4019  resolved prior to calling MAKE-PATHNAME.
4020
4021* Fixed a bug in the reader: (read-from-string "1/") signalled an error
4022  of type DIVISION-BY-ZERO.
4023
4024* Fixed a bug in the terminal stream: If several consecutive READ-LINE
4025  operations on the terminal stream were performed without any text
4026  containing newlines being output between them, the prompt finally got
4027  duplicated and then became longer and longer.
4028
4029* Fixed a bug in the readline library (bad handling of prompts longer than
4030  one line). Thanks to Marcus Daniels.
4031
4032Installation
4033------------
4034
4035* All non-Unix versions: Setting the local time zone should now be much
4036  easier. 122 time zone names are supported.
4037
4038Portability
4039-----------
4040
4041* Unix version only: Getting the time zone should be more robust.
4042
4043* Added support for NeXT (68k or i386 CPU) running NeXTstep 3.2.
4044  Thanks to Marcus Daniels.
4045
4046* Added support for Sequent PTX. Thanks to Marcus Daniels.
4047
4048* Added support for m88000 running DG/UX. Thanks to Pat McClanahan.
4049
4050* Added support for UnixWare. Thanks to Alexander Adam.
4051
4052* Added support for BSDI/386. Thanks to Atsuo Ohki.
4053
4054* More support for WATCOM C on DOS. Thanks to Blake McBride.
4055
4056* More support for IRIX 5. Thanks to Bjorn Remseth.
4057
4058* More support for Sun4m. Thanks to Neil Faulks.
4059
4060* Better support (speedup) for HP 9000/800 running HP-UX.
4061
4062* On HP 9000/700 running HP-UX: Do not depend directly on the assembler.
4063
4064* Maybe some support for SCO. Thanks to Cathy Bareiss.
4065
4066Other modifications
4067-------------------
4068
4069* Speedup SUBLIS and NSUBLIS.
4070
4071* Let all known versions of gcc2 emit dbra instructions for loops.
4072  Thanks to Jörg Höhle.
4073
4074* Renamed condition.lsp to conditio.lsp.
4075
4076* Miscellaneous documentation updates.
4077
4078
40798 January 1994
4080==============
4081
4082Portability
4083-----------
4084
4085* Remove (incomplete) support for VMS.
4086
4087
40887 January 1994
4089==============
4090
4091CLISP now compiles and runs on
4092* microcomputers:
4093  * Atari ST/TT
4094  * Amiga 500-4000
4095  * DOS
4096  * MS Windows 3.1
4097  * OS/2 2.0
4098* Unix workstations:
4099  * PC, Linux
4100  * PC, USL SVR4
4101  * Sun4, SunOS 4 or 5
4102  * HP9000/800, HP-UX
4103  * SGI Mips, Irix 4 or 5
4104  * DEC Alpha AXP, OSF 1.3
4105  * DECstation 5000, Ultrix 4.2
4106  * IBM RS/6000, AIX 3.2
4107  * M88000
4108  * Sun386, SunOS 4
4109  * Sun3, SunOS 4 (?)
4110  * HP9000/300, HP-UX or NetBSD
4111  * Apple MacII, A/UX (?)
4112  * Amiga 3000, Amiga Unix 2.1
4113  * NeXT, NeXTstep 3.1
4114  * PC, 386BSD or NetBSD
4115  * PC, Coherent 4.0
4116  * Atari ST/TT, MiNT
4117
4118
41192.9 (7 January 1994)
4120====================
4121
4122Important note
4123--------------
4124
4125* Changed bytecode format. All .fas files generated by previous CLISP versions
4126  are invalid and must be recompiled.
4127
4128User visible changes
4129--------------------
4130
4131* X3J13 votes <186> and <31> are implemented: the Common Lisp Condition System.
4132  New macros
4133    DEFINE-CONDITION, IGNORE-ERRORS, HANDLER-CASE, HANDLER-BIND,
4134    RESTART-CASE, WITH-RESTARTS, WITH-SIMPLE-RESTART, RESTART-BIND,
4135    WITH-CONDITION-RESTARTS,
4136  new types
4137    RESTART, CONDITION, SERIOUS-CONDITION, ERROR, PROGRAM-ERROR, CONTROL-ERROR,
4138    ARITHMETIC-ERROR, DIVISION-BY-ZERO, FLOATING-POINT-OVERFLOW,
4139    FLOATING-POINT-UNDERFLOW, CELL-ERROR, UNBOUND-VARIABLE, UNDEFINED-FUNCTION,
4140    TYPE-ERROR, PACKAGE-ERROR, STREAM-ERROR, END-OF-FILE, FILE-ERROR,
4141    STORAGE-CONDITION, WARNING,
4142    SIMPLE-CONDITION, SIMPLE-ERROR, SIMPLE-TYPE-ERROR, SIMPLE-WARNING,
4143  new functions
4144    MAKE-CONDITION, SIGNAL, COMPUTE-RESTARTS, FIND-RESTART, INVOKE-RESTART,
4145    INVOKE-RESTART-INTERACTIVELY, ABORT, CONTINUE, MUFFLE-WARNING, STORE-VALUE,
4146    USE-VALUE, INVOKE-DEBUGGER, RESTART-NAME,
4147    ARITHMETIC-ERROR-OPERATION, ARITHMETIC-ERROR-OPERANDS, CELL-ERROR-NAME,
4148    TYPE-ERROR-DATUM, TYPE-ERROR-EXPECTED-TYPE, PACKAGE-ERROR-PACKAGE,
4149    STREAM-ERROR-STREAM, FILE-ERROR-PATHNAME, SIMPLE-CONDITION-FORMAT-STRING,
4150    SIMPLE-CONDITION-FORMAT-ARGUMENTS,
4151  new variables
4152    *BREAK-ON-SIGNALS*, *DEBUGGER-HOOK*.
4153  See <http://clisp.org/impnotes/conditions.html> for details.
4154  Thanks to David Gadbois who wrote most of this.
4155
4156* X3J13 vote <40> is partially implemented: New variable *PRINT-READABLY*.
4157
4158* X3J13 vote <34> is implemented: Arrays and packages may now appear as
4159  constants in compiled code.
4160
4161* X3J13 vote <90> is implemented: FUNCTIONP on symbols and conses now always
4162  returns NIL. The type FUNCTION is disjoint from SYMBOL and CONS.
4163  (COERCE object 'FUNCTION) is implemented.
4164  Warning: Old style calls like
4165    (FUNCTIONP object)
4166  may need to be converted to
4167    (OR (FUNCTIONP object)
4168        (SYMBOLP object)
4169        (AND (CONSP object) (EQ (CAR object) 'LAMBDA))
4170    )
4171  This fixes a CLOS bug: (TYPEP object 'FUNCTION) was not equivalent to
4172  (TYPEP object (FIND-CLASS 'FUNCTION)).
4173
4174* Two new debugger commands Break+ and Break- permit to set resp. remove
4175  breakpoints at specified EVAL or APPLY frames.
4176
4177* Warnings and errors produced by COMPILE-FILE are now accompanied by
4178  source line number information.
4179
4180* The sub-char passed as second argument to read dispatch macros is now
4181  exactly the first non-digit read from the stream. Previously it was its
4182  upper-case equivalent.
4183
4184* DEFPACKAGE now accepts an option (:DOCUMENTATION docstring).
4185
4186* DIRECTORY now accepts a keyword argument :CIRCLE. If it is non-NIL,
4187  the directory search for ".../" and "**/" wildcards on Unix avoids endless
4188  loops that may result from symbolic links.
4189
4190* The variable *LOAD-PATHS* in the Unix versions of config.lsp now uses
4191  "~/" (the home directory at run time) instead of #"~/" (the home directory
4192  at installation time). Thanks to Gabor Herr.
4193
4194* Unix and OS/2 versions: New dangerous functions MAKE-PIPE-IO-STREAM,
4195  RUN-SHELL-COMMAND and RUN-PROGRAM.
4196
4197* Unix version only:
4198  The command shell used by MAKE-PIPE-...-STREAM is now always /bin/sh; the
4199  environment variable SHELL is only used as interactive shell.
4200  Fixed a race condition in the functions EXECUTE, MAKE-PIPE-INPUT-STREAM,
4201  MAKE-PIPE-OUTPUT-STREAM that caused the child process to fail mysteriously.
4202
4203* Attacks such as  (DO-ALL-SYMBOLS (S) (UNLESS (CONSTANTP S) (SET S NIL)))
4204  no longer crash CLISP.
4205
4206* Fixed a CLOS bug: DEFCLASS failed to signal an error if several direct slots
4207  had identical names.
4208
4209* Fixed a bug in the reader: When reading hash tables which contain #n#
4210  references, the hash codes must be recomputed after resolving the
4211  references. Thanks to Marcus Daniels.
4212
4213* Fixed a bug in the printer: Printed representations with two different
4214  #1= definitions could result when PRINT-OBJECT methods were called while
4215  *PRINT-CIRCLE* was true. Thanks to Marcus Daniels.
4216
4217Portability
4218-----------
4219
4220* Fixed five bugs in the number crunching routines that appeared on
4221  64-bit processors or in combination with the WIDE tagging scheme.
4222
4223* More support for 64-bit processors like DEC Alpha.
4224
4225* Added support for NeXT running NeXTstep 3.1. Thanks to Marcus Daniels.
4226
4227* Added support for Amiga 3000 running AMIX Unix. Thanks to Michel Loi.
4228
4229* Fixed a problem with Ctrl-C on HP-UX. Thanks to Gabor Herr.
4230
4231* Added support for HP9000/300 running HP-UX. Thanks to Gabor Herr.
4232
4233* Added support for WATCOM C 9.5 on DOS.
4234
4235* Amiga version: Tolerate memory outside the 27-bit addressable range.
4236
4237* Remove support for the Atari ST assembly language version CLISP1.
4238
4239Other modifications
4240-------------------
4241
4242* Added some documentation of the GNU readline library.
4243
4244* Changed the default memory size back from 2.5 megabytes to 2 megabytes.
4245
4246* Miscellaneous documentation updates.
4247
4248
42492.8 (8 November 1993)
4250=====================
4251
4252User visible changes
4253--------------------
4254
4255* The STDWIN library can now be made part of CLISP by calling makemake with
4256  argument --with-stdwin.
4257
4258* X3J13 vote <108> is implemented: New packages COMMON-LISP and
4259  COMMON-LISP-USER.
4260
4261* X3J13 vote <112> is implemented:
4262  LOAD binds the variables *LOAD-PATHNAME* and *LOAD-TRUENAME*, COMPILE-FILE
4263  binds the variables *COMPILE-FILE-PATHNAME* and *COMPILE-FILE-TRUENAME*.
4264  New variables *LOAD-PATHNAME*, *LOAD-TRUENAME*, *COMPILE-FILE-PATHNAME*,
4265  *COMPILE-FILE-TRUENAME*.
4266
4267* X3J13 vote <26> is implemented: COMPILE-FILE has a keyword argument :PRINT.
4268  New variables *COMPILE-WARNINGS*, *COMPILE-VERBOSE*, *COMPILE-PRINT*.
4269
4270* Fixed two bugs in DEFPACKAGE: *PACKAGE* is not modified by DEFPACKAGE
4271  any more, and the :INTERN option now works.
4272
4273* Fixed FUNCTION-LAMBDA-EXPRESSION such that it works on built-in functions.
4274  Thanks to France Dacar.
4275
4276* Fixed a serious bug in GCD on 16-bit processors: (GCD x y) with
4277  2^k - 2^(k-16) <= |x|,|y| < 2^k could cause a division by zero.
4278
4279Portability
4280-----------
4281
4282* Added support for DEC Alpha AXP running OSF/1 Unix.
4283
4284* Added support for Apple Mac II running A/UX.
4285
4286* Added support for Atari ST/TT running MiNT. Thanks to Scott Kolodzieski.
4287
4288* Support for SunOS4 cc now works.
4289
4290* The makefile now also works with "parallel" make utilities (e.g. GNU make
4291  with option -j). Thanks to Rick Sladkey.
4292
4293* Easier porting: The most dangerous optimizations (inline asm() statements,
4294  global register allocations, ...) are inhibited if CLISP is compiled with
4295  option SAFETY=3.
4296
4297* Some modifications for the sake of gcc-2.5.
4298
4299Other modifications
4300-------------------
4301
4302* Speed up generic function dispatch.
4303
4304* Some kinds of objects take less space (all CPUs except 680x0).
4305
4306* The list of X3J13 votes and their current status in CLISP has been moved
4307  from file `src/defs2.lsp' to file `src/cltl2.txt'.
4308
4309* The code for setting up a connection to an X server (file `src/socket.d')
4310  has been completely rewritten.
4311
4312* Miscellaneous documentation updates.
4313
4314
43152.7 (27 September 1993)
4316=======================
4317
4318User visible changes
4319--------------------
4320
4321* COMPILE-FILE now handles top-level forms as described in CLtL2 p. 90:
4322  The macroexpansion of a top-level form is considered a top-level form.
4323  When a top-level form is a PROGN, LOCALLY, COMPILER-LET, SYMBOL-MACROLET
4324  or MACROLET form, the subforms of its body are considered top-level forms
4325  too and are compiled separately.
4326  This allows things like
4327    (PROGN (DEFCONSTANT X 3141) (DEFUN GET-X () X))
4328  or
4329    (PROGN (DEFCLASS SHIP () ()) (DEFUN SHIP-P (X) (TYPEP X 'SHIP)))
4330  to work.
4331  Warning: If you want to inhibit this splitting into separate forms (for
4332  example, because several of the forms refer to the same uninterned symbol),
4333  you have to use (LET () (PROGN ...)) instead of (PROGN ...).
4334
4335* X3J13 vote <144> is implemented: New macro DECLAIM.
4336
4337* X3J13 vote <113> is implemented: The macro LOCALLY is now a special form.
4338
4339* Fixed a serious bug in the compiler: When compiling functions inline
4340  whose parameters are special variables, incorrect code could be generated.
4341
4342* Fixed a bug in the compiler which caused the compiler to crash in some
4343  rare cases, notably when compiling Garnet-2.2.
4344
4345* Fixed a bug that prevented the debugger commands DOWN and BOTTOM from
4346  working on Linux and SunOS.
4347
4348* Fixed a CLOS bug: Specifying &KEY without &REST in generic function
4349  lambda lists did not have the desired effect.
4350
4351* DEFCLASS supports both :DEFAULT-INITARGS syntaxes.
4352
4353* DEFGENERIC is more tolerant about invalid declarations.
4354
4355Portability
4356-----------
4357
4358* Added Dynix/ptx Sequent support. Thanks to Esther Davis.
4359
4360* Added support for RS/6000 CPU and AIX. Thanks to Gabor Herr.
4361
4362Other modifications
4363-------------------
4364
4365* Made the memory allocation and (ROOM), (TIME ...) more virtual memory
4366  efficient (less paging on Unix and DOS). Thanks to Don Cohen.
4367
4368* Added Geoffrey Gordon's "LISP tutorial".
4369
4370* Renamed stdwin.lsp to stdwin2.lsp.
4371
4372* Miscellaneous documentation updates.
4373
4374
43752.6.1 (1 September 1993)
4376========================
4377
4378Important note
4379--------------
4380
4381* Changed bytecode format. All .fas files generated by previous CLISP versions
4382  are invalid and must be recompiled.
4383
4384User visible changes
4385--------------------
4386
4387* Unix version only: The command line option -M now also accepts memory images
4388  that were compressed using GNU gzip.
4389
4390* Fixed a CLOS bug: MAKE-INSTANCE now behaves as if it were calling
4391  INITIALIZE-INSTANCE, and INITIALIZE-INSTANCE and REINITIALIZE-INSTANCE
4392  behave as if they were calling SHARED-INITIALIZE.
4393
4394* Fixed a CLOS bug: NO-APPLICABLE-METHOD failed to be called in some cases
4395  when no method was applicable.
4396
4397* Relating to X3J13 vote <89>: The first argument to the functions FUNCALL and
4398  APPLY, denoting a function, may now also be a list (SETF symbol).
4399
4400* Fixed a bogus error message that occurred when storing an out-of-range
4401  integer into an array of element-type (UNSIGNED-BYTE 32).
4402
4403Portability
4404-----------
4405
4406* Added NetBSD support. Thanks to Charles Hannum.
4407
4408Other modifications
4409-------------------
4410
4411* Added Jeff Dalton's "brief CLOS guide".
4412
4413* Miscellaneous documentation updates.
4414
4415
44162.6 (22 August 1993)
4417====================
4418
4419Important note
4420--------------
4421
4422* Changed bytecode format. All .fas files generated by previous CLISP versions
4423  are invalid and must be recompiled.
4424
4425User visible changes
4426--------------------
4427
4428* X3J13 vote <12> is partially implemented: Native CLOS. New package CLOS
4429  containing the macros
4430    DEFCLASS, DEFMETHOD, DEFGENERIC, GENERIC-FUNCTION, GENERIC-FLET,
4431    GENERIC-LABELS, WITH-SLOTS, WITH-ACCESSORS,
4432  the functions
4433    FIND-CLASS, (SETF FIND-CLASS), CLASS-OF, CLASS-NAME, (SETF CLASS-NAME),
4434    SLOT-VALUE, SLOT-BOUNDP, SLOT-MAKUNBOUND, SLOT-EXISTS-P,
4435    CALL-NEXT-METHOD, NEXT-METHOD-P,
4436    NO-APPLICABLE-METHOD, NO-PRIMARY-METHOD, NO-NEXT-METHOD,
4437    FIND-METHOD, ADD-METHOD, REMOVE-METHOD, COMPUTE-APPLICABLE-METHODS,
4438    METHOD-QUALIFIERS, FUNCTION-KEYWORDS, SLOT-MISSING, SLOT-UNBOUND,
4439    PRINT-OBJECT, DESCRIBE-OBJECT, MAKE-INSTANCE, INITIALIZE-INSTANCE,
4440    REINITIALIZE-INSTANCE, SHARED-INITIALIZE,
4441  the classes
4442    STANDARD-CLASS, STRUCTURE-CLASS, BUILT-IN-CLASS, STANDARD-OBJECT,
4443    STANDARD-GENERIC-FUNCTION, STANDARD-METHOD and all predefined classes,
4444  and the method combination
4445    STANDARD.
4446  See <http://clisp.org/impnotes/classes.html> for details.
4447  X3J13 vote <13> is implemented, too.
4448
4449* X3J13 vote <63> is implemented: DESCRIBE receives the output stream as
4450  optional argument. New function CLOS:DESCRIBE-OBJECT.
4451
4452* X3J13 vote <149> is implemented: The second argument to SUBSEQ may now
4453  be NIL. Thanks to Thomas Kirk.
4454
4455* X3J13 vote <175> is implemented: TAILP now also works on dotted lists.
4456
4457* X3J13 vote <124> is implemented: (DECLARE (OPTIMIZE (DEBUG ...))) is legal.
4458
4459* The type specifier (EQL object), a synonym for (MEMBER object), is now
4460  implemented.
4461
4462* New DEFSTRUCT option :INHERIT which is exactly like :INCLUDE except that it
4463  does not create new accessors for the inherited slots. Use this option to
4464  avoid the problems that occur when using the same :CONC-NAME for the new
4465  and the inherited structure.
4466
4467* Fixed EXPORT and USE-PACKAGE: Do not signal a name conflict between the
4468  symbol being exported and a symbol accessible in the using package if
4469  the latter symbol is on the list of shadowing symbols of the using package.
4470
4471* Fixed VECTOR-PUSH-EXTEND. It now works on vectors of dimension 0 and
4472  on bit-vectors.
4473
4474* Fixed PRINT-UNREADABLE-OBJECT: Do not output adjacent spaces.
4475
4476* Fixed a bug in the reader that caused an endless loop or endless recursion
4477  when resolving #n=/#n# references in objects that already contained cyclic
4478  data structures, e.g. when reading (#1=a #.'#2=(b . #2#) #1#).
4479
4480* Fixed a bogus error message in the complex number reader.
4481
4482Portability
4483-----------
4484
4485* The DOS README explains how to run CLISP in the DOS box of Microsoft
4486  Windows. Thanks to Ralf Muschall.
4487
4488* Added Sinix support. Thanks to Manfred Weichel.
4489
4490* Improved installation on OS/2.
4491
4492Other modifications
4493-------------------
4494
4495* A function proclaimed INLINE will be taken inline in a wider set of
4496  circumstances. (Previously INLINE worked only when that function was being
4497  used in the same file or in a file that REQUIREd the file defining the
4498  function.)
4499
4500* The compiler now produces better code for (APPLY (FUNCTION fun) args).
4501
4502* Changed the default memory size from 2 megabytes to 2.5 megabytes.
4503
4504* Miscellaneous documentation updates.
4505
4506
45072.5.1 (17 July 1993)
4508====================
4509
4510User visible changes
4511--------------------
4512
4513* X3J13 vote <150> is mostly implemented: Reading and printing of symbols
4514  (and characters with bits or fonts attributes) is now affected by
4515  (READTABLE-CASE *READTABLE*), whose value may be one of :UPCASE, :DOWNCASE
4516  and :PRESERVE. New place READTABLE-CASE.
4517
4518* Support for immutable objects is implemented. Attempts to modify read-only
4519  data will signal an error. Program text and quoted constants loaded from
4520  files are considered read-only data. Never again will you be allowed to
4521  write programs that destructively modify themselves!
4522  This works only for Unix implementations with powerful virtual memory
4523  management, currently only Linux and SunOS. To enable it, you have to
4524  add -DIMMUTABLE to the CFLAGS in the makefile when building CLISP.
4525
4526* Fixed DEFUN such that
4527  (progn
4528    (flet ((bar (x) (+ x 10))) (defun bar (y) (if (zerop y) 1 (bar (1- y))))
4529    (bar 1)
4530  )
4531  returns 10 instead of 1.
4532
4533* Fixed a bug in the compiler that caused the compiler to crash by endless
4534  recursion and stack overflow when compiling assignments to symbol macros.
4535
4536Portability
4537-----------
4538
4539* Added support for m88000 CPU.
4540
4541* Amiga version: detect 68000 CPU, for better use of present memory.
4542
4543Other modifications
4544-------------------
4545
4546* Miscellaneous documentation updates.
4547
4548
45492.5 (29 June 1993)
4550==================
4551
4552User visible changes
4553--------------------
4554
4555* X3J13 vote <89> is implemented: (SETF symbol) is now a valid syntax for a
4556  function name in (funname ...), (FUNCTION funname), (DEFUN funname ...),
4557  (COMPILE funname ...), (DISASSEMBLE funname), (ED funname), FLET, LABELS etc.
4558  New function FDEFINITION.
4559
4560* X3J13 vote <173> is implemented: New special form SYMBOL-MACROLET. The
4561  macroexpansion environment passed to macro expanders and to MACROEXPAND-1,
4562  MACROEXPAND, GET-SETF-METHOD, GET-SETF-METHOD-MULTIPLE-VALUE now comprises
4563  both the variable environment and the function environment.
4564  New macro DEFINE-SYMBOL-MACRO.
4565
4566* New macro PRINT-UNREADABLE-OBJECT.
4567
4568* Fixed a bug: The string comparison functions STRING<, STRING>, STRING<=,
4569  STRING>=, STRING/=, STRING-LESSP, STRING-GREATERP, STRING-NOT-GREATERP,
4570  STRING-NOT-LESSP, STRING-NOT-EQUAL now return the index of the first mismatch
4571  instead of T.
4572
4573* Fixed a bug: The functions REMOVE-DUPLICATES and DELETE-DUPLICATES produced
4574  an out-of-bounds error when called on a small sequence, with :FROM-END T
4575  argument and without :END argument.
4576
4577Portability
4578-----------
4579
4580* Updated support for DJGPP.
4581
4582Other modifications
4583-------------------
4584
4585* The macros SETF, PUSH, POP, PUSHNEW have been completely rewritten.
4586
4587* Changed internal representation of special form handlers: They now consume
4588  regular memory. This frees one type tag, which will be used by CLOS
4589  instances.
4590
4591* Miscellaneous documentation updates.
4592
4593
45942.4 (24 May 1993)
4595=================
4596
4597User visible changes
4598--------------------
4599
4600* New macro DEFPACKAGE.
4601
4602* New function FUNCTION-LAMBDA-EXPRESSION.
4603
4604* New package SCREEN containing some functions for random screen access
4605  (Unix, DOS, OS/2, Atari, VMS versions only).
4606
4607* X3J13 vote <5> is implemented: The value of *APPLYHOOK* must now be
4608  a function of two arguments.
4609
4610* X3J13 vote <104> is implemented: COMPILE-FILE now binds *READTABLE*.
4611
4612* X3J13 vote <161> is implemented: SHADOW now accepts strings as well
4613  as symbols.
4614
4615* Fixed a bug in the compiler which caused the compiler to crash when
4616  compiling (CASE key ...) forms with constant key.
4617
4618* Fixed a bug in the compiler which produced unloadable .fas files
4619  when compiling forms like (SETF ... (FUNCTION LIST)).
4620
4621* Fixed a bogus error message in the AREF function.
4622
4623* The built-in editor on Unix now handles the Delete key the same way
4624  as the Backspace key or Ctrl-H.
4625
4626* Fixed a bug in + that occasionally caused (- x x) to return a
4627  long-float zero which was not EQL to the other zeroes of type LONG-FLOAT.
4628
4629* Fixed a bug: Correctly do round-to-even when adding two long-floats.
4630
4631* Fixed a bug: The destructive sequence functions DELETE etc. failed to
4632  produce an error when called on a sequence of type LIST and with an :END
4633  argument larger than the list's length.
4634
4635* Corrected the branch cuts of the complex ATAN and ATANH functions.
4636
4637Portability
4638-----------
4639
4640* 68000 and other versions: Fixed a bug in the low-level division algorithm.
4641
4642* Mips and Vax versions: Finished the low-level number crunching routines.
4643
4644* Added Ultrix support.
4645
4646* Added Coherent support.
4647
4648* Finished Sun3 support.
4649
4650Other modifications
4651-------------------
4652
4653* The file `src/defs2.lsp' contains a list of X3J13 votes and their current
4654  status in CLISP.
4655
4656* The file `src/foreign.txt' documents how to do function calls to foreign
4657  language routines from within CLISP.
4658
4659* Miscellaneous documentation updates.
4660
4661
46622.3.1 (5 April 1993)
4663====================
4664
4665Portability
4666-----------
4667
4668* 68000/68020 versions: Fixed some bugs in the low-level number crunching
4669  routines.
4670
4671* Improved efficiency of the WIDE tagging scheme.
4672
4673
46742.3 (30 March 1993)
4675===================
4676
4677User visible changes
4678--------------------
4679
4680* Fixed a bug in + that caused the sign of (+ x y) to be wrong when x and y
4681  were double-floats satisfying  0 < x < -y  or  0 > x > -y .
4682
4683* New special form LOAD-TIME-VALUE.
4684
4685* The function DIR now sorts its output.
4686
4687* A new place (DEFAULT-DIRECTORY) manages the "current directory".
4688
4689* When LOAD is called with a pathname as argument that contains a parent
4690  directory component (".."): Ignore the variable *LOAD-PATHS*, avoid an error.
4691
4692* Fixed TRACE so that functions calling TRACE are correctly handled by
4693  COMPILE-FILE.
4694
4695Portability
4696-----------
4697
4698* Unix version: Correct handling of system calls that are interrupted
4699  by signals.
4700
4701* Finished IRIX support.
4702
4703Other modifications
4704-------------------
4705
4706* Miscellaneous documentation updates.
4707
4708
47092.2.2 (19 March 1993)
4710=====================
4711
4712User visible changes
4713--------------------
4714
4715* Replaced variable *TEMPFILE* by a function EDITOR-TEMPFILE.
4716
4717Portability
4718-----------
4719
4720* Unix version: Corrected detection of ANSI C header files.
4721
4722* Unix version: Check whether signal handlers are automatically reinstalled
4723  when activated.
4724
4725* Made readline library ANSI C compliant and (on Unix) auto-configuring.
4726
4727* In case there is no room for three extra bits in a symbol pointer,
4728  allocate three stack words per binding in a VAR frame (instead of two stack
4729  words). This completes the Amiga 3000/4000 version.
4730
4731* Completed memory model SPVW_PURE_BLOCKS: There is a large contiguous memory
4732  area for each kind of Lisp object. This model is used only if memory can
4733  be allocated at prescribed addresses, for example on Unix with mmap().
4734
4735* More 386BSD support.
4736
4737Other modifications
4738-------------------
4739
4740* Remove limit on the number of files that may be specified on the command
4741  line. Limit was 1000.
4742
4743* Miscellaneous documentation updates.
4744
4745
47462.2.1 (4 March 1993)
4747====================
4748
4749User visible changes
4750--------------------
4751
4752* Fixed a bug in ADJOIN that caused ADJOJN and PUSHNEW to push (key item)
4753  instead of item onto the list when a :KEY argument was present.
4754
4755* Amiga version: allow opening of "files" on special devices.
4756
4757* OS/2 version: Long filenames on DOS (FAT) filesystems no longer produce
4758  errors. They are now silently truncated to 8+3 characters.
4759
4760* Unix, Amiga, OS/2 versions: When a pathname is to be fully specified, no
4761  subdirectory wildcard "**/" or ".../" is allowed. Check this.
4762
4763Portability
4764-----------
4765
4766* Corrected underflow detection in SCALE-FLOAT on 16-bit processors.
4767
4768* Atari ST version: fixed getenv(), wrote INSTALL instructions.
4769
4770Other modifications
4771-------------------
4772
4773* Miscellaneous documentation updates.
4774
4775
47762.2 (21 February 1993)
4777======================
4778
4779User visible changes
4780--------------------
4781
4782* Include test suite into distribution.
4783
4784* Add COMMON-LISP and CLTL1 to the *FEATURES*.
4785
4786* Fixed a bug in the compiler which caused the compiler to crash in some
4787  rare cases.
4788
4789* Fixed a bug in WITH-OPEN-FILE: handle the case when OPEN returns NIL.
4790
4791* Amiga version: Fixed bug in FILE-POSITION.
4792
4793* Amiga version: Renamed REXX-WAIT-COMMAND to REXX-WAIT-SENT-COMMAND.
4794
4795Portability
4796-----------
4797
4798* On HP-UX: Use /bin/ksh for shell scripts instead of the buggy /bin/sh.
4799
4800* Now compiles on IRIX using CC="cc -ansi".
4801
4802* Added 386BSD support.
4803
4804Other modifications
4805-------------------
4806
4807* Miscellaneous documentation updates.
4808
4809
48102.1.3 (3 February 1993)
4811=======================
4812
4813Portability
4814-----------
4815
4816* Support for 386 UHC UNIX System V release 4 now works.
4817
4818Other modifications
4819-------------------
4820
4821* lispbibl.d: Rename macro `untype' to `upointer', `type_untype_object' to
4822  `type_pointer_object'.
4823
4824* lispbibl.d: Clean up selection of type code and frame code tables.
4825
4826* Remove init streams. Use string input streams instead.
4827
4828
48292.1.2 (1 February 1993)
4830=======================
4831
4832User visible changes
4833--------------------
4834
4835* Fixed handling of declarations in macros DO-SYMBOLS, DO-EXTERNAL-SYMBOLS,
4836  DO-ALL-SYMBOLS, DOSEQ, DOHASH.
4837
4838* LISTEN on file streams opened with :DIRECTION :OUTPUT now returns NIL.
4839
4840* Pathnames resulting from OPEN on special files are now called
4841  "file handle streams", they are unbuffered file streams.
4842  They can now be used as argument in situations where a pathname is expected.
4843
4844Portability
4845-----------
4846
4847* The `target' and `configure' scripts no longer depend on awk.
4848
4849* Support Sun4 with 32 bit address range (kernel architecture "Sun4m") as
4850  well as Sun4 with 29 bit address range (kernel architecture "Sun4", "Sun4c).
4851
4852* Can now exploit the shared memory facilities of SunOS 4.1 and of Linux.
4853
4854* Added support for 386 UHC UNIX System V release 4.
4855
4856Other modifications
4857-------------------
4858
4859* Implemented memory model SPVW_PURE_PAGES where memory is divided
4860  into many small pages each containing objects of the same type.
4861
4862* Fixed up source for systems without window streams.
4863
4864* lispbibl.d, constobj.d: reorder the stream types such that the test for
4865  file stream becomes faster.
4866
4867* /usr/local/lib/aclocal.m4, configure.in, unixconf.h.in: prefix my own local
4868  macros by CL_ instead of AC_.
4869
4870* Miscellaneous documentation updates.
4871
4872
48732.1.1 (11 January 1993)
4874=======================
4875
4876User visible changes
4877--------------------
4878
4879* Fixed meaning of :KEY argument for SUBLIS and NSUBLIS.
4880
4881* DOS, OS/2 versions: adapted to emx 0.8f. This results in better
4882  *KEYBOARD-INPUT* on DOS and faster screen access on OS/2.
4883
4884* Amiga version: implemented SHELL.
4885
4886* OS/2 version: implemented MAKE-PIPE-INPUT-STREAM and MAKE-PIPE-OUTPUT-STREAM.
4887
4888* compiler.lsp: Emit a warning when #'foo is used but foo is undefined.
4889
4890* rexx.d, rexx.lsp: remove the trailing "p" from the keywords.
4891
4892* init.lsp: do not call a macro a "Common Lisp function".
4893
4894* stream.d, readline/readline.[ch]: exported rl_deprep_terminal such that a
4895  failing call to xmalloc() can now signal an ordinary error instead of exiting.
4896
4897Portability
4898-----------
4899
4900* Rewrote makemake.in using indentation.
4901
4902* /usr/local/lib/aclocal.lsp: fixed AC_SYS_ERRLIST (m4 bug?) and AC_RENAME,
4903  improved AC_SELECT and added AC_SETITIMER.
4904
4905* spvw.d: implement ualarm for Unix with interval timers, e.g. HP/UX or Linux.
4906
4907* Remove support for Linux 0.12.
4908
4909Other modifications
4910-------------------
4911
4912* Language (DEUTSCH resp. ENGLISH) can now be set from CFLAGS, without
4913  modifying lispbibl.d.
4914
4915* _README translated into German.
4916
4917* Renamed clispsrc.1 to FILES.1.
4918
4919* Renamed pseudofu.d to pseudofun.d.
4920
4921* Sun4 version: merged il_sparc.il into cc_sparc.il.
4922
4923* lispbibl.d: use an enum type to get the stream types converted
4924  to consecutive numbers without risking clashes.
4925
4926* intgcd.d: found algorithm for binary extended gcd.
4927
4928* intlog.d: make use of 80386 instruction "bsfl" where possible.
4929
4930* lispbibl.d: let gcc2 on 680x0 emit "dbra" instructions.
4931
4932* spvw.d: use IPC_PRIVATE as key for all shared memory segments.
4933
4934* avl.d: do not generate code for unused functions insert and delete.
4935
4936* Miscellaneous documentation updates.
4937
4938
49392.1 (1 January 1993)
4940====================
4941
4942Release of the first portable version of CLISP.
4943It now compiles and runs under
4944* Atari ST
4945* Amiga 500-2000
4946* DOS
4947* OS/2 2.0
4948* Linux
4949* Sun4
4950* Sun386
4951* HP9000/800
4952
4953Now that the tests passed, I hope I'll never again have to remove a serious
4954bug.
4955
4956;; Local Variables:
4957;; mode: text
4958;; eval: (bug-reference-mode t)
4959;; eval: (goto-address-mode t)
4960;; bug-reference-url-format: clisp-bug-reference-url-format
4961;; coding: utf-8
4962;; end:
4963