home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-30 | 41.6 KB | 1,255 lines |
- 30 May 1996
- ================
-
- User visible changes
- --------------------
-
- * NO-APPLICABLE-METHOD did not allow for corrective action or
- for escape. Thanks to Mark Thomas <thommark@access.digex.net>.
-
- * REMOVE-METHOD didn't work.
- Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>
- and Bruno Haible for the fix.
-
- * Fixed a bug in the compiler: A (MULTIPLE-VALUE-SETQ vars valform)
- or (MULTIPLE-VALUE-BIND vars valform ...) form was miscompiled if
- valform is known to produce a single value.
- Thanks to Bruno Haible and Paul Graham <pg@das.harvard.edu>.
-
- * Added SOCKET-WAIT for testing for incoming connections.
- Thanks to Marco Ramoni <M.Ramoni@open.ac.uk>.
-
- Portability
- -----------
-
- * Partial support for Irix 6 (64 bit).
- Thanks to Bruno Haible.
-
- * Support for HPUX 10.
- Thanks to Ricardo Aler Mur <aler@grial.uc3m.es>.
-
- * Support for DJGPP version 2.
-
- * Solaris binary distribution now distributed as a link kit.
-
- 17 April 1996
- ================
-
- User visible changes
- --------------------
-
- * EXECUTE now returns the exit status of the subprocess. Thanks to
- Bruno Haible and Brian F. Dennis <xjam@CS.Berkeley.EDU>.
-
- * Fixed a bug in the compiler: MULTIPLE-VALUE-BIND failed to work when
- given non-function forms. Thanks to Paul Graham <pg@das.harvard.edu>.
-
- * TRANSLATE-LOGICAL-PATHNAME now accepts logical-pathname namestrings.
- Thanks to Don Cohen <don@nichimen.com>
-
- * Logical-pathname translation was broken under DOS.
- Thanks to Don Cohen <don@nichimen.com>.
-
- * Cross compiler was non-functional.
- Thanks to Don Cohen <don@nichimen.com>.
-
- * Fix for bug introduced in last loop macro change.
- Thanks to Ken Olum <kdo@mit.edu> for reporting this right away.
-
- Other modifications
- -------------------
-
- * Upgraded to autoconf 2.9.
-
- * Upgraded to gettext-0.10.12.
-
- Portability
- -----------
-
- * cygwin32 support updated for gnu-win32-b14.
-
- * SINIX support updated. Thanks to Michael Becker <mb12@coconet.de>.
-
- 15 March 1996
- ================
-
- User visible changes
- --------------------
-
- * New variable *IMAGE-PATHNAME* provides the pathname
- resulting from the `-M' option.
-
- * Fix for GC bug that could occur during buffered string output.
-
- * Pipes can use binary I/O.
-
- * RENAME-FILE now does *not* result in an error if the destination
- file already exists (unless the system call results in an error message).
-
- * PROBE-FILE and TRUENAME will not issue error messages if given
- directories.
-
- * On Unix, PARSE-NAMESTRING will not interpret a leading `.'
- as a file with a type but no name. Instead, the file will include the `.'
- in the name. Pathname syntax is unchanged.
- Thanks to Robert Morris <rtm@uun.org>.
-
- * Changes to loop macro to allow for derived FOR assignments from
- hash-tables and counting variables. Improved previous fix
- for derived values from list and vector iteration variables.
- Thanks to Francisco Martin <martin@sinera.iia.csic.es> and
- Russell Senior <seniorr@teleport.com>.
-
- Portability
- -----------
-
- * DECstation 5000/Ultrix support updated. Thanks to Bruno Haible.
-
- * NEXTSTEP support updated (version 3.3).
- Thanks to Robert Murphy <robert.murphy@yale.edu>.
-
- * The deema program is no longer used.
- Empty macro arguments are explictly tagged as such.
-
- * Win32 support split into a DOS- and a Unix-style sections.
- The Unix version takes advantage of the Cygnus gnu-win32 DLL
- to emulate a Unix-like environment, e.g. as there is a
- `mount' program, there is no explicit support for drive names.
- As of gnu-win32-b13.5, NT hosted builds are possible, e.g.:
- `configure --build --disable-nls nt < /dev/null'
- will autoconf and build CLISP from source.
-
- Other modifications
- -------------------
-
- * Support for tracking dynamic bindings; useful for further multithread work.
- Feature can be compiled-in by using -DDYNBIND_LIST.
-
- * Top-level configure adds a GNU-like `--target' syntax for cross compilation.
-
- * Non-GNU-gettext multilingual debugging binaries will no longer have
- inaccurate line numbers.
-
- * GNU gettext support now distributed in a separate package.
-
-
- 8 December 1995
- ================
-
- User visible changes
- --------------------
-
- * Bug fix to prevent unbound slots from causing pathological
- conflicts with the condition system. Thanks to Bruno Haible
- and Heinrich Taube.
-
- * When MAKE-PATHNAME :DIRECTORY is given a string, it is treated as
- equivalent to (:ABSOLUTE string), as ANS dictates. Thanks
- to Heinrich Taube for noticing this.
-
- * Fixed a bug in the FFI where call-ins which returned structures or
- unions would not compile correctly. Thanks to Michael Stoll.
-
- * Added a <c-type>, C-PTR-NULL to the FFI. C-PTR-NULL will convert
- NIL objects into NULL (so that type conflicts can be avoided).
-
- * X3J13 vote <72> is implemented: all standard Common Lisp data objects
- other than symbols and lists are self-evaluating.
- Thanks to Pierpaolo Bernardi.
-
- * SOCKET-STREAMS are implemented. See impnotes for details.
-
- * Loop macro modified to allow sequential, list/vector-computed "FOR" values.
-
- * Fixed a bug in the FFI which caused foreign double variables to be
- incorrectly converted. Thanks to Bruno Haible and Ken Olum.
-
- * Callbacks to code which don't respect CLISP global registers are possible.
- Thanks to Bruno Haible and Ken Olum (Dec Alpha, OSF 2, FORTRAN).
-
- * Fixed a double-float conversion routine used by the FFI.
- 0.0d0 wasn't dealt with properly. Thanks to Bruno Haible and Ken Olum.
-
- * Fixed a bug in the FFI which prevented multidimensional arrays from
- being used as :OUT arguments. Thanks to Ken Olum.
-
- * Fixed a bug in the floating point number printing routine:
- In rare cases, a number was printed with more digits than necessary
- (without, however, violating the print-read consistency). For example,
- 2.1416s29 printed as 2.14159s29, and 3.002618f-31 printed as 3.0026179f-31.
- Thanks to Bruno Haible.
-
- * Fixed a bug in ATAN: (ATAN y 0) with y < 0 returned pi/2 instead of -pi/2.
- Thanks to Bruno Haible.
-
- * Fixed a bug in FORMAT which could (in very rare cases) have caused a
- wrong number to be printed by the FORMAT ~F, ~G, ~$, ~E directives.
-
- Portability
- -----------
-
- * Runs on Windows NT.
-
- * FreeBSD/NetBSD patches and compilation notes thanks to
- Douglas Crosher (dtc@stan.xx.swin.oz.au).
-
- * Updated OS/2 support thanks to Raymond Keoni Garcia
- (rkgarcia@students.wisc.edu).
-
- * Remove Atari support.
-
- * On systems where both the select system call and FIONREAD ioctl were
- indicated, take select in preference. On Irix, where FIONREAD was
- only apparently available, CLISP went into a `function call not
- implemented' OS error loop. Symptom also could occur in Emacs (e.g. Ilisp).
-
- Other modifications
- -------------------
-
- * Upgraded gettext support to version 0.10. This provides locale name
- aliasing like with X Windows.
-
- * Upgraded to autoconf-2.7.
-
- * Specify bash for makefile.developer's makemake.
- Some shells may convert backslash sequences to control codes --
- the prebuilt dos, os2, etc. makefiles were previously corrupted.
-
- * The top-level CLISP `configure' can be used in a more GNU-like
- fashion. Specifically, there is a `--srcdir' option, with which
- `makemake' runs by default.
-
-
- 12 August 1995
- ============
-
- User visible changes
- --------------------
-
- * CLISP now supports the GNU gettext package. Non-gettext internationalization
- support still available with "--disable-nls".
-
- * Self referencing symbolic links were not always avoided during
- directory searches. Thanks to Dan Stanger for pointing this out.
-
- * Fixed a bug in XGCD which caused the results to be wrong with a small
- probability, for example in the case (XGCD 77874422 32223899).
- Thanks to Bruno Haible and Michael Stoll.
-
- * Top level configure accepts absolute build directory.
-
- * Top level configure now passes on --exec-prefix, --prefix, and --srcdir
- to makemake.
-
- Portability
- -----------
-
- * Runs on Solaris 2.4 with SUNWspro (3.0.1). Thanks to Bruno Haible.
-
- * Runs on Solaris 2.4/sun4m with GCC (2.6.3).
-
- * Repair of memmove-related build problem on SunOS/Solaris.
- Thanks to Bruno Haible.
-
- * Fixed a bug in mips/avcall.
-
- * arimips.s now assembled with -KPIC to avoid problems during incremental
- linking of lisp.o.
-
- 23 June 1995
- ============
-
- Important note
- --------------
-
- * Changed bytecode format. All .fas files generated by previous CLISP versions
- are invalid and must be recompiled.
-
- User visible changes
- --------------------
-
- * X3J13 vote <106> is implemented: LAST has an optional argument. Thanks to
- Pierpaolo Bernardi.
-
- * X3J13 vote <87> is implemented: New function COMPLEMENT. Thanks to Pierpaolo
- Bernardi.
-
- * X3J13 vote <40> is partially implemented: New macro WITH-STANDARD-IO-SYNTAX.
- Thanks to Pierpaolo Bernardi.
-
- * X3J13 vote <98> is partially implemented: New macro WITH-HASH-TABLE-ITERATOR.
- Thanks to Pierpaolo Bernardi.
-
- * X3J13 vote <97> is implemented: New functions HASH-TABLE-REHASH-SIZE,
- HASH-TABLE-REHASH-THRESHOLD, HASH-TABLE-SIZE, HASH-TABLE-TEST.
- Thanks to Pierpaolo Bernardi.
-
- * X3J13 votes <69> and <70> are implemented: New declaration DYNAMIC-EXTENT.
-
- * The dpANS macro LAMBDA is implemented.
-
- * The dpANS declaration IGNORABLE is implemented.
-
- * The dpANS function CONSTANTLY is implemented. Thanks to Pierpaolo Bernardi.
-
- * Better syntax checking for the CASE macro. Thanks to Pierpaolo Bernardi.
-
- * The user interface language may be chosen through the environment variable
- LANG as well.
-
- * The pretty printer now indents lists spanning more than one line by two
- spaces, instead of one. New variable *PRINT-INDENT-LISTS*.
-
- * *PRINT-PRETTY* is now initially T.
-
- * Foreign function interface: New foreign type constructor FFI:C-ARRAY-MAX,
- implements zero-terminated arrays of bounded size.
-
- * On Unix, 8-bit characters are legal in pathnames if the operating system
- accepts them.
-
- * On DOS, #\Newline is converted to CR/LF when doing character output to
- unbuffered file streams (referring to special files).
-
- * Fixed a bug in the interpreter and compiler: A MULTIPLE-VALUE-SETQ form
- which assigns to a symbol macro expanded to a wrong form; compiling it
- produced a warning. Thanks to Pierpaolo Bernardi.
-
- * Fixed a bug in the compiler: Some CASE form with duplicate keys, when
- compiled, chose the wrong clause to be executed. Thanks to Pierpaolo
- Bernardi.
-
- * Fixed a bug in the #+/#- reader macros. (LIST #+FOO #-BAR 1 2 3) now returns
- (2 3), not (3).
-
- * Fixed a bug in LOG: (LOG x^n x^m), where n, m are integers, |m| > 1, and
- x is a rational number /= 1, now correctly returns n/m. Previously,
- (LOG 2 4) returned 1/0.
-
- * Fixed a CLOS bug: Using the :DOCUMENTATION option in DEFGENERIC declarations
- for function names of the form (SETF symbol) signalled an error. Thanks to
- Pierpaolo Bernardi.
-
- * Fixed a bug in DEFSETF: An IGNORE declaration for the store variable had
- no effect. Thanks to Pierpaolo Bernardi.
-
- Other modifications
- -------------------
-
- * The structure of external modules has changed a bit.
-
-
- 25 April 1995
- =============
-
- User visible changes
- --------------------
-
- * Michael Stoll has written a graphical user interface for CLISP under
- NeXTstep.
-
- * Added a foreign language module WILDCARD for wildcard matching.
-
- * Added a foreign language module REGEXP for Unix-style regular expression
- matching and searching.
-
- * X3J13 vote <94> is implemented: Calling GENSYM has no side effects except
- incrementing the counter. New variable *GENSYM-COUNTER*.
-
- * New macro FORMATTER converts a FORMAT control string to a function.
-
- * Some FORMAT fixes:
- + X3J13 vote <81> is implemented: The FORMAT ~:^ directive is more useful.
- Warning: Old style "~:^" directives need to be converted to "~#:^".
- + X3J13 vote <82> is implemented: The FORMAT ~D, ~B, ~O, ~X, ~R directives
- accept an optional comma-interval parameter.
- + X3J13 vote <84> is implemented: FORMAT ~C outputs characters with no bits
- as if by WRITE-CHAR.
- + Handling of ~^ within the FORMAT ~? directive.
-
- * X3J13 vote <167> is implemented: New types FILE-STREAM, SYNONYM-STREAM,
- BROADCAST-STREAM, CONCATENATED-STREAM, TWO-WAY-STREAM, ECHO-STREAM,
- STRING-STREAM. New functions OPEN-STREAM-P, SYNONYM-STREAM-SYMBOL,
- BROADCAST-STREAM-STREAMS, CONCATENATED-STREAM-STREAMS,
- TWO-WAY-STREAM-INPUT-STREAM, TWO-WAY-STREAM-OUTPUT-STREAM,
- ECHO-STREAM-INPUT-STREAM, ECHO-STREAM-OUTPUT-STREAM.
-
- * New condition type PRINT-NOT-READABLE.
- New function PRINT-NOT-READABLE-OBJECT.
-
- * New function FINALIZE. (FINALIZE object function) has the effect that
- function will be called when object is being garbage collected.
-
- * DRIBBLE now also redirects *ERROR-OUTPUT*, *TRACE-OUTPUT*, *QUERY-IO*,
- *DEBUG-IO* if they refer to *TERMINAL-IO*.
-
- * Calling SYMBOL-VALUE on a symbol defined as global symbol macro now returns
- the value of the expansion. New function SYMBOL-MACRO-EXPAND.
-
- * Add FFI to the *FEATURES* if the foreign language interface is present.
-
- * Fixed a bug: An IGNORE declaration for a macro's &ENVIRONMENT argument now
- has an effect.
-
- * Fixed a couple of bugs in the foreign language interface: Passing zero size
- arrays did not work, parameters with mode :OUT did not work on SPARC and
- HP-PA, and some error messages were deficient.
-
- * Fixed a bogus error message in SET-DISPATCH-MACRO-CHARACTER.
-
- Other modifications
- -------------------
-
- * Speed up compiled calls to FORMAT with literal control string by use of
- FORMATTER.
-
-
- 4 April 1995
- ============
-
- User visible changes
- --------------------
-
- * The initial value of *PACKAGE* can be specified by a command line option.
-
- * X3J13 vote <6> is implemented: New place ROW-MAJOR-AREF.
-
- * X3J13 vote <126> is implemented: New function DELETE-PACKAGE.
-
- * X3J13 vote <14> is implemented: Closing a synonym stream does not close
- its constituent stream.
-
- * Foreign language interface for C and ANSI C. New package FFI. New macros
- FFI:DEF-C-TYPE, FFI:DEF-C-VAR, FFI:DEF-C-CALL-OUT, FFI:DEF-C-CALL-IN,
- FFI:DEF-C-ENUM, FFI:DEF-C-STRUCT, FFI:DEF-CALL-OUT, FFI:DEF-CALL-IN,
- FFI:ELEMENT, FFI:DEREF, FFI:SLOT, FFI:CAST, FFI:TYPEOF, FFI:SIZEOF,
- FFI:BITSIZEOF.
- This currently works only on Unix and only with the CPUs
- i386/486/586, m680x0, Mips, SPARC, DEC Alpha, HP-PA, RS/6000.
- Warning: (COMPILE-FILE "filename.lsp") now overwrites the file "filename.c".
-
- * New macros MUFFLE-CERRORS and APPEASE-CERRORS. During their execution,
- continuable errors are handled by the function CONTINUE. MUFFLE-CERRORS
- does this silently, APPEASE-CERRORS prints the error as a warning.
-
- * New macro EXIT-ON-ERROR. During its execution, non-continuable errors
- cause CLISP to exit with error status.
-
- * The function ED, when asked to edit a non-existent file, now creates that
- file instead of signalling an error.
-
- * When a non-absolute pathname is specified for the -o command line option
- (destination file of a compilation), it is interpreted as relative to the
- current directory, not relative to the source file of the compilation.
-
- * The readline library now uses the last column of the screen if the terminal
- is an xterm, for example. Work done by Chet Ramey.
-
- * Fixed two bugs in the LOOP macro: FOR-AS-ACROSS clauses could result in AREF
- signalling an out-of-bounds error at the end of the vector. Initialisations
- for FOR-AS-= clauses could be executed in the wrong order.
-
- * Fixed a bug in the compiler which caused LOAD-TIME-VALUE forms to be
- evaluated at compile time.
-
- * Fixed a bug in the debugger: Choosing a restart Rnnn always invoked the
- last restart listed, not the chosen one.
-
- * Fixed a bug: (CLOSE *TERMINAL-IO*) signals an error again.
-
- * On DOS and OS/2, the Lisp reader now treats Ctrl-Z as whitespace.
-
- * The -I command line option now tells the readline library to handle the Tab
- character as normal self-inserting character.
-
- * Unix version only: DISASSEMBLE can display machine instructions, provided
- that GNU gdb is present.
-
- Other modifications
- -------------------
-
- * Generational garbage collection now also works on IRIX 5.2.
-
- * Generational garbage collection and support for immutable objects don't
- exclude each other any more.
-
-
- 1 January 1995
- ==============
-
- Important note
- --------------
-
- * Changed bytecode format. All .fas files generated by previous CLISP versions
- are invalid and must be recompiled.
-
- User visible changes
- --------------------
-
- * The destination file of a compilation can be specified by a command line
- option.
-
- * X3J13 vote <152> is implemented: REDUCE has a keyword argument :KEY.
-
- * The printed representation of file streams of element type STRING-CHAR now
- contains a line number.
-
- * Fixed a bug which caused the interpreter to signal an error when evaluating
- nested DEFUNs.
-
- * Fixed a bug which could cause a crash when a GC occurred during single or
- double float subtraction.
-
- Other modifications
- -------------------
-
- * Generational garbage collection now also works on NeXTstep and OSF/1 3.0.
-
-
- 26 October 1994
- ===============
-
- Important note
- --------------
-
- * Changed bytecode format. All .fas files generated by previous CLISP versions
- are invalid and must be recompiled.
-
- User visible changes
- --------------------
-
- * X3J13 vote <77> is implemented: CL:FLET, CL:LABELS, CL:MACROLET allow
- declarations.
-
- * X3J13 vote <78> is implemented: CL:FLET, CL:LABELS, CL:MACROLET, DEFTYPE,
- DEFSETF, DEFINE-SETF-METHOD establish an implicit BLOCK.
-
- * X3J13 vote <128> is implemented: MAKE-PATHNAME, PATHNAME-HOST,
- PATHNAME-DEVICE, PATHNAME-DIRECTORY, PATHNAME-NAME, PATHNAME-TYPE have
- a keyword argument :CASE. Thanks to Marcus Daniels.
-
- * X3J13 vote <137> is implemented: New functions WILD-PATHNAME-P,
- PATHNAME-MATCH-P and TRANSLATE-PATHNAME. Thanks to Marcus Daniels.
-
- * X3J13 vote <130> is implemented: New built-in type LOGICAL-PATHNAME.
- New place LOGICAL-PATHNAME-TRANSLATIONS. New functions LOGICAL-PATHNAME,
- TRANSLATE-LOGICAL-PATHNAME, LOAD-LOGICAL-PATHNAME-TRANSLATIONS,
- COMPILE-FILE-PATHNAME. Thanks to Marcus Daniels.
-
- * X3J13 vote <132> is implemented: Synonym streams to file streams are
- allowed as pathnames.
-
- * Amiga version: SCREEN package is implemented. Thanks to Jörg Höhle.
-
- * The debugger emits some more messages to *DEBUG-IO*, not *ERROR-OUTPUT*.
-
- * (COERCE symbol 'FUNCTION) now works.
-
- * Fixed a bug in ENOUGH-NAMESTRING: In many cases, a relative directory
- specification was returned instead of an absolute directory specification.
-
- * Fixed a CLOS bug which caused (DEFCLASS FOO (STANDARD-OBJECT) ()) and
- (DEFINE-CONDITION FOO (CONDITION) ()) to signal errors.
-
- * Fixed a bug: In some situations, USE-PACKAGE reported a name conflict when
- there was none.
-
- * Fixed a bug: (READ-CHAR-NO-HANG stream nil eof-object) now signals an error
- if stream is not an input stream. Previously it returned eof-object.
-
- * Fixed a bug: On some Unix systems, (FINISH-OUTPUT *TERMINAL-IO*) signalled
- an error if standard output was redirected to a file.
-
- * (SQRT 0) now returns an integer 0 instead of a floating-point 0.0.
-
- * Readline library: Fixed a small problem with input prompts longer than the
- screen width.
-
- * Fixed three bugs in the built-in editor. One of them made the editor
- entirely unusable.
-
- Portability
- -----------
-
- * On DOS, the readline library now handles the /!INPUTRC and history files
- correctly.
-
- Other modifications
- -------------------
-
- * Generational garbage collection now also works on Linux (1.1.52 or newer).
-
- * On Unix, external modules written in C can be linked to CLISP without
- recompiling CLISP from source. For example, the STDWIN library.
-
-
- 1 September 1994
- ================
-
- User visible changes
- --------------------
-
- * The DEFCONSTANT warning about redefinition of a constant is also inhibited
- if the constant's new and old values are the same string (in the sense of
- EQUAL). Thanks to Marcus Daniels.
-
- * Unix version only: The daylight saving time flag of a time zone (eighth
- value of GET-DECODED-TIME and DECODE-UNIVERSAL-TIME) is now correct.
-
-
- 23 August 1994
- ==============
-
- User visible changes
- --------------------
-
- * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
-
- * The function ED can now edit functions that have been entered in
- interpreted form even if they have later been compiled.
-
- * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
- (COMPILE function-name) if the function's definition had been entered
- in interpreted form.
-
- * The OPEN option :IF-EXISTS :RENAME-AND-DELETE now deletes the renamed
- file. Previously :RENAME-AND-DELETE was equivalent to :RENAME.
-
- * (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
-
- * Readline library: Completion of a function call with no arguments
- automatically adds the closing parenthesis.
-
- * Readline library: When a closing parenthesis is typed, the corresponding
- opening parenthesis is displayed.
-
- Other modifications
- -------------------
-
- * Copyright clarification.
-
- * Added a readline manual page.
-
-
- 4 July 1994
- ===========
-
- User visible changes
- --------------------
-
- * X3J13 votes <115> and <114> are implemented: an elaborate LOOP macro.
- New macro LOOP-FINISH.
- Warning: The scoping rules for the iteration variables are hairy. If a
- FOR/AS initialisation form refers to an iteration variable of a subsequent
- FOR/AS clause, the effects are implementation dependent!
-
- * X3J13 vote <120> is implemented: New function MAP-INTO.
-
- * X3J13 vote <79> is implemented: New constants
- LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
- LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT,
- LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT,
- LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT,
- LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT,
- LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT,
- LEAST-POSITIVE-NORMALIZED-LONG-FLOAT,
- LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
-
- * The macro WITH-OUTPUT-TO-PRINTER now also works on DOS.
-
- * Fixed a bug in DO-SYMBOLS: A symbol which is exported from a used package
- was considered accessible in the using package even if it was shadowed by
- another present symbol of the same name.
-
- * Fixed a bug in the debugger which caused the BACKTRACE commands to print
- garbage if the current user interface language was not english.
-
-
- 22 June 1994
- ============
-
- User visible changes
- --------------------
-
- * French support is now complete. Thanks to Jörg Höhle.
-
- * The user interface language (english, german or french) can now be chosen
- at startup time through a command line option. The constant *LANGUAGE* has
- been removed, and its value has been removed from *FEATURES*. New macros
- ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
-
- * There is a command line option that makes CLISP behave more like what
- ILISP (a popular Emacs LISP interface) expects.
-
- * The function CLOS:CALL-NEXT-METHOD can now be called with arguments, but
- the check that the set of applicable methods must be the same as for the
- original arguments will be bypassed.
-
- * New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
- WRITE-BYTE-SEQUENCE which perform fast block I/O.
-
- * Errors of type FLOATING-POINT-UNDERFLOW are inhibited in floating point
- computations (and zero is returned instead) during execution of the new
- macro WITHOUT-FLOATING-POINT-UNDERFLOW.
-
- * X3J13 vote <95> is implemented: If the readtable argument passed to
- GET-MACRO-CHARACTER and GET-DISPATCH-MACRO-CHARACTER is NIL, the standard
- readtable is used.
-
- * PROBE-FILE doesn't report an error any more if an intermediate directory
- in the path doesn't exist. NIL is returned instead.
-
- * The DEFCONSTANT warning about redefinition of a constant is inhibited if
- the constant's new and old values are the same (in the sense of EQL).
- Thanks to Marcus Daniels.
-
- * The function INTERACTIVE-STREAM-P knows that if the terminal stream is
- referring to a regular file (via input redirection) it is not interactive.
-
- * There is a user programmable kind of streams, called generic streams.
- New functions MAKE-GENERIC-STREAM, GENERIC-STREAM-CONTROLLER,
- GENERIC-STREAM-P, GENERIC-STREAM-READ-CHAR, GENERIC-STREAM-READ-BYTE,
- GENERIC-STREAM-LISTEN, GENERIC-STREAM-WRITE-CHAR, GENERIC-STREAM-WRITE-BYTE,
- GENERIC-STREAM-WRITE-STRING, GENERIC-STREAM-CLEAR-INPUT,
- GENERIC-STREAM-CLEAR-OUTPUT, GENERIC-STREAM-FINISH-OUTPUT,
- GENERIC-STREAM-FORCE-OUTPUT, GENERIC-STREAM-CLOSE.
- See impnotes.txt for details. Thanks to Marcus Daniels and Don Cohen.
-
- * The macro WITH-OUTPUT-TO-PRINTER may now also work on OS/2.
-
- * Fixed a CLOS bug: Generic functions with both optional and keyword
- arguments didn't work.
-
- * Fixed a serious bug in the compiler which caused incorrect code to be
- generated for functions like (LAMBDA (X) (SETQ X 1)).
-
- * Fixed a serious bug in the compiler which caused the compiler to crash
- when compiling functions which contain two or more calls to ASSERT.
-
- * Fixed a bug: The macroexpander of MULTIPLE-VALUE-SETQ built up a
- syntactically illegal form.
-
- * Fixed a bug in the reader: When reading pathnames from the syntax
- #S(PATHNAME ...), #n# references in pathname components were not
- resolved prior to calling MAKE-PATHNAME.
-
- * Fixed a bug in the reader: (read-from-string "1/") signalled an error
- of type DIVISION-BY-ZERO.
-
- * Fixed a bug in the terminal stream: If several consecutive READ-LINE
- operations on the terminal stream were performed without any text
- containing newlines being output between them, the prompt finally got
- duplicated and then became longer and longer.
-
- * Fixed a bug in the readline library (bad handling of prompts longer than
- one line). Thanks to Marcus Daniels.
-
- Installation
- ------------
-
- * All non-Unix versions: Setting the local time zone should now be much
- easier. 122 time zone names are supported.
-
-
- 8 January 1994
- ==============
-
- None.
-
-
- 7 January 1994
- ==============
-
- Important note
- --------------
-
- * Changed bytecode format. All .fas files generated by previous CLISP versions
- are invalid and must be recompiled.
-
- User visible changes
- --------------------
-
- * X3J13 votes <186> and <31> are implemented: the Common Lisp Condition System.
- New macros
- DEFINE-CONDITION, IGNORE-ERRORS, HANDLER-CASE, HANDLER-BIND,
- RESTART-CASE, WITH-RESTARTS, WITH-SIMPLE-RESTART, RESTART-BIND,
- WITH-CONDITION-RESTARTS,
- new types
- RESTART, CONDITION, SERIOUS-CONDITION, ERROR, PROGRAM-ERROR, CONTROL-ERROR,
- ARITHMETIC-ERROR, DIVISION-BY-ZERO, FLOATING-POINT-OVERFLOW,
- FLOATING-POINT-UNDERFLOW, CELL-ERROR, UNBOUND-VARIABLE, UNDEFINED-FUNCTION,
- TYPE-ERROR, PACKAGE-ERROR, STREAM-ERROR, END-OF-FILE, FILE-ERROR,
- STORAGE-CONDITION, WARNING,
- SIMPLE-CONDITION, SIMPLE-ERROR, SIMPLE-TYPE-ERROR, SIMPLE-WARNING,
- new functions
- MAKE-CONDITION, SIGNAL, COMPUTE-RESTARTS, FIND-RESTART, INVOKE-RESTART,
- INVOKE-RESTART-INTERACTIVELY, ABORT, CONTINUE, MUFFLE-WARNING, STORE-VALUE,
- USE-VALUE, INVOKE-DEBUGGER, RESTART-NAME,
- ARITHMETIC-ERROR-OPERATION, ARITHMETIC-ERROR-OPERANDS, CELL-ERROR-NAME,
- TYPE-ERROR-DATUM, TYPE-ERROR-EXPECTED-TYPE, PACKAGE-ERROR-PACKAGE,
- STREAM-ERROR-STREAM, FILE-ERROR-PATHNAME, SIMPLE-CONDITION-FORMAT-STRING,
- SIMPLE-CONDITION-FORMAT-ARGUMENTS,
- new variables
- *BREAK-ON-SIGNALS*, *DEBUGGER-HOOK*.
- See impnotes.txt for details. Thanks to David Gadbois who wrote most of this.
-
- * X3J13 vote <40> is partially implemented: New variable *PRINT-READABLY*.
-
- * X3J13 vote <34> is implemented: Arrays and packages may now appear as
- constants in compiled code.
-
- * X3J13 vote <90> is implemented: FUNCTIONP on symbols and conses now always
- returns NIL. The type FUNCTION is disjoint from SYMBOL and CONS.
- (COERCE object 'FUNCTION) is implemented.
- Warning: Old style calls like
- (FUNCTIONP object)
- may need to be converted to
- (OR (FUNCTIONP object)
- (SYMBOLP object)
- (AND (CONSP object) (EQ (CAR object) 'LAMBDA))
- )
- This fixes a CLOS bug: (TYPEP object 'FUNCTION) wasn't equivalent to
- (TYPEP object (FIND-CLASS 'FUNCTION)).
-
- * Two new debugger commands Break+ and Break- permit to set resp. remove
- breakpoints at specified EVAL or APPLY frames.
-
- * Warnings and errors produced by COMPILE-FILE are now accompanied by
- source line number information.
-
- * The sub-char passed as second argument to read dispatch macros is now
- exactly the first non-digit read from the stream. Previously it was its
- upper-case equivalent.
-
- * DEFPACKAGE now accepts an option (:DOCUMENTATION doctring).
-
- * DIRECTORY now accepts a keyword argument :CIRCLE. If it is non-NIL,
- the directory search for ".../" and "**/" wildcards on Unix avoids endless
- loops that may result from symbolic links.
-
- * The variable *LOAD-PATHS* in the Unix versions of config.lsp now uses
- "~/" (the home directory at run time) instead of #"~/" (the home directory
- at installation time). Thanks to Gabor Herr.
-
- * Unix and OS/2 versions: New dangerous functions MAKE-PIPE-IO-STREAM,
- RUN-SHELL-COMMAND and RUN-PROGRAM.
-
- * Unix version only:
- The command shell used by MAKE-PIPE-...-STREAM is now always /bin/sh; the
- environment variable SHELL is only used as interactive shell.
- Fixed a race condition in the functions EXECUTE, MAKE-PIPE-INPUT-STREAM,
- MAKE-PIPE-OUTPUT-STREAM that caused the child process to fail mysteriously.
-
- * Attacks such as (DO-ALL-SYMBOLS (S) (UNLESS (CONSTANTP S) (SET S NIL)))
- no longer crash CLISP.
-
- * Fixed a CLOS bug: DEFCLASS failed to signal an error if several direct slots
- had identical names.
-
- * Fixed a bug in the reader: When reading hash tables which contain #n#
- references, the hash codes must be recomputed after resolving the
- references. Thanks to Marcus Daniels.
-
- * Fixed a bug in the printer: Printed representations with two different
- #1= definitions could result when PRINT-OBJECT methods were called while
- *PRINT-CIRCLE* was true. Thanks to Marcus Daniels.
-
-
- 8 November 1993
- ===============
-
- User visible changes
- --------------------
-
- * The STDWIN library can now be made part of CLISP by calling makemake with
- argument --with-stdwin.
-
- * X3J13 vote <108> is implemented: New packages COMMON-LISP and
- COMMON-LISP-USER.
-
- * X3J13 vote <112> is implemented:
- LOAD binds the variables *LOAD-PATHNAME* and *LOAD-TRUENAME*, COMPILE-FILE
- binds the variables *COMPILE-FILE-PATHNAME* and *COMPILE-FILE-TRUENAME*.
- New variables *LOAD-PATHNAME*, *LOAD-TRUENAME*, *COMPILE-FILE-PATHNAME*,
- *COMPILE-FILE-TRUENAME*.
-
- * X3J13 vote <26> is implemented: COMPILE-FILE has a keyword argument :PRINT.
- New variables *COMPILE-WARNINGS*, *COMPILE-VERBOSE*, *COMPILE-PRINT*.
-
- * Fixed two bugs in DEFPACKAGE: *PACKAGE* is not modified by DEFPACKAGE
- any more, and the :INTERN option now works.
-
- * Fixed FUNCTION-LAMBDA-EXPRESSION such that it works on built-in functions.
- Thanks to France Dacar.
-
- * Fixed a serious bug in GCD on 16-bit processors: (GCD x y) with
- 2^k - 2^(k-16) <= |x|,|y| < 2^k could cause a division by zero.
-
-
- 27 September 1993
- =================
-
- User visible changes
- --------------------
-
- * COMPILE-FILE now handles top-level forms as described in CLtL2 p. 90:
- The macroexpansion of a top-level form is considered a top-level form.
- When a top-level form is a PROGN, LOCALLY, COMPILER-LET, SYMBOL-MACROLET
- or MACROLET form, the subforms of its body are considered top-level forms
- too and are compiled separately.
- This allows things like
- (PROGN (DEFCONSTANT X 3141) (DEFUN GET-X () X))
- or
- (PROGN (DEFCLASS SHIP () ()) (DEFUN SHIP-P (X) (TYPEP X 'SHIP)))
- to work.
- Warning: If you want to inhibit this splitting into separate forms (for
- example, because several of the forms refer to the same uninterned symbol),
- you have to use (LET () (PROGN ...)) instead of (PROGN ...).
-
- * X3J13 vote <144> is implemented: New macro DECLAIM.
-
- * X3J13 vote <113> is implemented: The macro LOCALLY is now a special form.
-
- * Fixed a serious bug in the compiler: When compiling functions inline
- whose parameters are special variables, incorrect code could be generated.
-
- * Fixed a bug in the compiler which caused the compiler to crash in some
- rare cases, notably when compiling Garnet-2.2.
-
- * Fixed a bug that prevented the debugger commands DOWN and BOTTOM from
- working on Linux and SunOS.
-
- * Fixed a CLOS bug: Specifying &KEY without &REST in generic function
- lambda lists didn't have the desired effect.
-
- * DEFCLASS supports both :DEFAULT-INITARGS syntaxes.
-
- * DEFGENERIC is more tolerant about invalid declarations.
-
-
- 1 September 1993
- ================
-
- Important note
- --------------
-
- * Changed bytecode format. All .fas files generated by previous CLISP versions
- are invalid and must be recompiled.
-
- User visible changes
- --------------------
-
- * Unix version only: The command line option -M now also accepts memory images
- that were compressed using GNU gzip.
-
- * Fixed a CLOS bug: MAKE-INSTANCE now behaves as if it were calling
- INITIALIZE-INSTANCE, and INITIALIZE-INSTANCE and REINITIALIZE-INSTANCE
- behave as if they were calling SHARED-INITIALIZE.
-
- * Fixed a CLOS bug: NO-APPLICABLE-METHOD failed to be called in some cases
- when no method was applicable.
-
- * Relating to X3J13 vote <89>: The first argument to the functions FUNCALL and
- APPLY, denoting a function, may now also be a list (SETF symbol).
-
- * Fixed a bogus error message that occurred when storing an out-of-range
- integer into an array of element-type (UNSIGNED-BYTE 32).
-
-
- 22 August 1993
- ==============
-
- Important note
- --------------
-
- * Changed bytecode format. All .fas files generated by previous CLISP versions
- are invalid and must be recompiled.
-
- User visible changes
- --------------------
-
- * X3J13 vote <12> is partially implemented: Native CLOS. New package CLOS
- containing the macros
- DEFCLASS, DEFMETHOD, DEFGENERIC, GENERIC-FUNCTION, GENERIC-FLET,
- GENERIC-LABELS, WITH-SLOTS, WITH-ACCESSORS,
- the functions
- FIND-CLASS, (SETF FIND-CLASS), CLASS-OF, CLASS-NAME, (SETF CLASS-NAME),
- SLOT-VALUE, SLOT-BOUNDP, SLOT-MAKUNBOUND, SLOT-EXISTS-P,
- CALL-NEXT-METHOD, NEXT-METHOD-P,
- NO-APPLICABLE-METHOD, NO-PRIMARY-METHOD, NO-NEXT-METHOD,
- FIND-METHOD, ADD-METHOD, REMOVE-METHOD, COMPUTE-APPLICABLE-METHODS,
- METHOD-QUALIFIERS, FUNCTION-KEYWORDS, SLOT-MISSING, SLOT-UNBOUND,
- PRINT-OBJECT, DESCRIBE-OBJECT, MAKE-INSTANCE, INITIALIZE-INSTANCE,
- REINITIALIZE-INSTANCE, SHARED-INITIALIZE,
- the classes
- STANDARD-CLASS, STRUCTURE-CLASS, BUILT-IN-CLASS, STANDARD-OBJECT,
- STANDARD-GENERIC-FUNCTION, STANDARD-METHOD and all predefined classes,
- and the method combination
- STANDARD.
- See impnotes.txt for details. X3J13 vote <13> is implemented, too.
-
- * X3J13 vote <63> is implemented: DESCRIBE receives the output stream as
- optional argument. New function CLOS:DESCRIBE-OBJECT.
-
- * X3J13 vote <149> is implemented: The second argument to SUBSEQ may now
- be NIL. Thanks to Thomas Kirk.
-
- * X3J13 vote <175> is implemented: TAILP now also works on dotted lists.
-
- * X3J13 vote <124> is implemented: (DECLARE (OPTIMIZE (DEBUG ...))) is legal.
-
- * The type specifier (EQL object), a synonym for (MEMBER object), is now
- implemented.
-
- * New DEFSTRUCT option :INHERIT which is exactly like :INCLUDE except that it
- doesn't create new accessors for the inherited slots. Use this option to
- avoid the problems that occur when using the same :CONC-NAME for the new
- and the inherited structure.
-
- * Fixed EXPORT and USE-PACKAGE: Don't signal a name conflict between the
- symbol being exported and a symbol accessible in the using package if
- the latter symbol is on the list of shadowing symbols of the using package.
-
- * Fixed VECTOR-PUSH-EXTEND. It now works on vectors of dimension 0 and
- on bit-vectors.
-
- * Fixed PRINT-UNREADABLE-OBJECT: Don't output adjacent spaces.
-
- * Fixed a bug in the reader that caused an endless loop or endless recursion
- when resolving #n=/#n# references in objects that already contained cyclic
- data structures, e.g. when reading (#1=a #.'#2=(b . #2#) #1#).
-
- * Fixed a bogus error message in the complex number reader.
-
-
- 17 July 1993
- ============
-
- User visible changes
- --------------------
-
- * X3J13 vote <150> is mostly implemented: Reading and printing of symbols
- (and characters with bits or fonts attributes) is now affected by
- (READTABLE-CASE *READTABLE*), whose value may be one of :UPCASE, :DOWNCASE
- and :PRESERVE. New place READTABLE-CASE.
-
- * Support for immutable objects is implemented. Attempts to modify read-only
- data will signal an error. Program text and quoted constants loaded from
- files are considered read-only data. Never again will you be allowed to
- write programs that destructively modify themselves!
- This works only for Unix implementations with powerful virtual memory
- management, currently only Linux and SunOS. To enable it, you have to
- add -DIMMUTABLE to the CFLAGS in the makefile when building CLISP.
-
- * Fixed DEFUN such that
- (progn
- (flet ((bar (x) (+ x 10))) (defun bar (y) (if (zerop y) 1 (bar (1- y))))
- (bar 1)
- )
- returns 10 instead of 1.
-
- * Fixed a bug in the compiler that caused the compiler to crash by endless
- recursion and stack overflow when compiling assignments to symbol macros.
-
-
- 29 June 1993
- ============
-
- User visible changes
- --------------------
-
- * X3J13 vote <89> is implemented: (SETF symbol) is now a valid syntax for a
- function name in (funname ...), (FUNCTION funname), (DEFUN funname ...),
- (COMPILE funname ...), (DISASSEMBLE funname), (ED funname), FLET, LABELS etc.
- New function FDEFINITION.
-
- * X3J13 vote <173> is implemented: New special form SYMBOL-MACROLET. The
- macroexpansion environment passed to macro expanders and to MACROEXPAND-1,
- MACROEXPAND, GET-SETF-METHOD, GET-SETF-METHOD-MULTIPLE-VALUE now comprises
- both the variable environment and the function environment.
- New macro DEFINE-SYMBOL-MACRO.
-
- * New macro PRINT-UNREADABLE-OBJECT.
-
- * Fixed a bug: The string comparison functions STRING<, STRING>, STRING<=,
- STRING>=, STRING/=, STRING-LESSP, STRING-GREATERP, STRING-NOT-GREATERP,
- STRING-NOT-LESSP, STRING-NOT-EQUAL now return the index of the first mismatch
- instead of T.
-
- * Fixed a bug: The functions REMOVE-DUPLICATES and DELETE-DUPLICATES produced
- an out-of-bounds error when called on a small sequence, with :FROM-END T
- argument and without :END argument.
-
-
- 24 May 1993
- ===========
-
- User visible changes
- --------------------
-
- * New macro DEFPACKAGE.
-
- * New function FUNCTION-LAMBDA-EXPRESSION.
-
- * New package SCREEN containing some functions for random screen access
- (Unix, DOS, OS/2, Atari, VMS versions only).
-
- * X3J13 vote <5> is implemented: The value of *APPLYHOOK* must now be
- a function of two arguments.
-
- * X3J13 vote <104> is implemented: COMPILE-FILE now binds *READTABLE*.
-
- * X3J13 vote <161> is implemented: SHADOW now accepts strings as well
- as symbols.
-
- * Fixed a bug in the compiler which caused the compiler to crash when
- compiling (CASE key ...) forms with constant key.
-
- * Fixed a bug in the compiler which produced unloadable .fas files
- when compiling forms like (SETF ... (FUNCTION LIST)).
-
- * Fixed a bogus error message in the AREF function.
-
- * The built-in editor on Unix now handles the Delete key the same way
- as the Backspace key or Ctrl-H.
-
- * Fixed a bug in + that occasionally caused (- x x) to return a
- long-float zero which was not EQL to the other zeroes of type LONG-FLOAT.
-
- * Fixed a bug: Correctly do round-to-even when adding two long-floats.
-
- * Fixed a bug: The destructive sequence functions DELETE etc. failed to
- produce an error when called on a sequence of type LIST and with an :END
- argument larger than the list's length.
-
- * Corrected the branch cuts of the complex ATAN and ATANH functions.
-
-
- 5 April 1993
- ============
-
- None.
-
-
- 30 March 1993
- =============
-
- User visible changes
- --------------------
-
- * Fixed a bug in + that caused the sign of (+ x y) to be wrong when x and y
- were double-floats satisfying 0 < x < -y or 0 > x > -y .
-
- * New special form LOAD-TIME-VALUE.
-
- * The function DIR now sorts its output.
-
- * A new place (DEFAULT-DIRECTORY) manages the "current directory".
-
- * When LOAD is called with a pathname as argument that contains a parent
- directory component (".."): Ignore the variable *LOAD-PATHS*, avoid an error.
-
- * Fixed TRACE so that functions calling TRACE are correctly handled by
- COMPILE-FILE.
-
-
- 19 March 1993
- =============
-
- User visible changes
- --------------------
-
- * Replaced variable *TEMPFILE* by a function EDITOR-TEMPFILE.
-
-
- 4 March 1993
- ============
-
- User visible changes
- --------------------
-
- * Fixed a bug in ADJOIN that caused ADJOJN and PUSHNEW to push (key item)
- instead of item onto the list when a :KEY argument was present.
-
- * Amiga version: allow opening of "files" on special devices.
-
- * OS/2 version: Long filenames on DOS (FAT) filesystems no longer produce
- errors. They are now silently truncated to 8+3 characters.
-
- * Unix, Amiga, OS/2 versions: When a pathname is to be fully specified, no
- subdirectory wildcard "**/" or ".../" is allowed. Check this.
-
-
- 21 February 1993
- ================
-
- User visible changes
- --------------------
-
- * Include test suite into distribution.
-
- * Add COMMON-LISP and CLTL1 to the *FEATURES*.
-
- * Fixed a bug in the compiler which caused the compiler to crash in some
- rare cases.
-
- * Fixed a bug in WITH-OPEN-FILE: handle the case when OPEN returns NIL.
-
- * Amiga version: Fixed bug in FILE-POSITION.
-
- * Amiga version: Renamed REXX-WAIT-COMMAND to REXX-WAIT-SENT-COMMAND.
-
-
- 3 February 1993
- ===============
-
- None.
-
-
- 1 February 1993
- ===============
-
- User visible changes
- --------------------
-
- * Fixed handling of declarations in macros DO-SYMBOLS, DO-EXTERNAL-SYMBOLS,
- DO-ALL-SYMBOLS, DOSEQ, DOHASH.
-
- * LISTEN on file streams opened with :DIRECTION :OUTPUT now returns NIL.
-
- * Pathnames resulting from OPEN on special files are now called
- "file handle streams", they are unbuffered file streams.
- They can now be used as argument in situations where a pathname is expected.
-
-
- 11 January 1993
- ===============
-
- User visible changes
- --------------------
-
- * Fixed meaning of :KEY argument for SUBLIS and NSUBLIS.
-
- * DOS, OS/2 versions: adapted to emx 0.8f. This results in better
- *KEYBOARD-INPUT* on DOS and faster screen access on OS/2.
-
- * Amiga version: implemented SHELL.
-
- * OS/2 version: implemented MAKE-PIPE-INPUT-STREAM and MAKE-PIPE-OUTPUT-STREAM.
-
- * compiler.lsp: Emit a warning when #'foo is used but foo is undefined.
-
- * rexx.d, rexx.lsp: remove the trailing "p" from the keywords.
-
- * init.lsp: don't call a macro a "Common Lisp function".
-
- * stream.d, readline/readline.[ch]: exported rl_deprep_terminal such that a
- failing call to xmalloc() can now signal an ordinary error instead of exiting.
-
-
- 1 January 1993
- ==============
-
- Release of first portable version of CLISP.
-
-