home *** CD-ROM | disk | FTP | other *** search
-
- 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.
-
-