home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / clisp / clispdoc / NEWS < prev    next >
Text File  |  1995-01-02  |  27KB  |  780 lines

  1.  
  2. 1 January 1995
  3. ==============
  4.  
  5. Important note
  6. --------------
  7.  
  8. * Changed bytecode format. All .fas files generated by previous CLISP versions
  9.   are invalid and must be recompiled.
  10.  
  11. User visible changes
  12. --------------------
  13.  
  14. * The destination file of a compilation can be specified by a command line
  15.   option.
  16.  
  17. * X3J13 vote <152> is implemented: REDUCE has a keyword argument :KEY.
  18.  
  19. * The printed representation of file streams of element type STRING-CHAR now
  20.   contains a line number.
  21.  
  22. * Fixed a bug which caused the interpreter to signal an error when evaluating
  23.   nested DEFUNs.
  24.  
  25. * Fixed a bug which could cause a crash when a GC occurred during single or
  26.   double float subtraction.
  27.  
  28. Other modifications
  29. -------------------
  30.  
  31. * Generational garbage collection now also works on NeXTstep and OSF/1 3.0.
  32.  
  33.  
  34. 26 October 1994
  35. ===============
  36.  
  37. Important note
  38. --------------
  39.  
  40. * Changed bytecode format. All .fas files generated by previous CLISP versions
  41.   are invalid and must be recompiled.
  42.  
  43. User visible changes
  44. --------------------
  45.  
  46. * X3J13 vote <77> is implemented: CL:FLET, CL:LABELS, CL:MACROLET allow
  47.   declarations.
  48.  
  49. * X3J13 vote <78> is implemented: CL:FLET, CL:LABELS, CL:MACROLET, DEFTYPE,
  50.   DEFSETF, DEFINE-SETF-METHOD establish an implicit BLOCK.
  51.  
  52. * X3J13 vote <128> is implemented: MAKE-PATHNAME, PATHNAME-HOST,
  53.   PATHNAME-DEVICE, PATHNAME-DIRECTORY, PATHNAME-NAME, PATHNAME-TYPE have
  54.   a keyword argument :CASE. Thanks to Marcus Daniels.
  55.  
  56. * X3J13 vote <137> is implemented: New functions WILD-PATHNAME-P,
  57.   PATHNAME-MATCH-P and TRANSLATE-PATHNAME. Thanks to Marcus Daniels.
  58.  
  59. * X3J13 vote <130> is implemented: New built-in type LOGICAL-PATHNAME.
  60.   New place LOGICAL-PATHNAME-TRANSLATIONS. New functions LOGICAL-PATHNAME,
  61.   TRANSLATE-LOGICAL-PATHNAME, LOAD-LOGICAL-PATHNAME-TRANSLATIONS,
  62.   COMPILE-FILE-PATHNAME. Thanks to Marcus Daniels.
  63.  
  64. * X3J13 vote <132> is implemented: Synonym streams to file streams are
  65.   allowed as pathnames.
  66.  
  67. * Amiga version: SCREEN package is implemented. Thanks to Jörg Höhle.
  68.  
  69. * The debugger emits some more messages to *DEBUG-IO*, not *ERROR-OUTPUT*.
  70.  
  71. * (COERCE symbol 'FUNCTION) now works.
  72.  
  73. * Fixed a bug in ENOUGH-NAMESTRING: In many cases, a relative directory
  74.   specification was returned instead of an absolute directory specification.
  75.  
  76. * Fixed a CLOS bug which caused (DEFCLASS FOO (STANDARD-OBJECT) ()) and
  77.   (DEFINE-CONDITION FOO (CONDITION) ()) to signal errors.
  78.  
  79. * Fixed a bug: In some situations, USE-PACKAGE reported a name conflict when
  80.   there was none.
  81.  
  82. * Fixed a bug: (READ-CHAR-NO-HANG stream nil eof-object) now signals an error
  83.   if stream is not an input stream. Previously it returned eof-object.
  84.  
  85. * Fixed a bug: On some Unix systems, (FINISH-OUTPUT *TERMINAL-IO*) signalled
  86.   an error if standard output was redirected to a file.
  87.  
  88. * (SQRT 0) now returns an integer 0 instead of a floating-point 0.0.
  89.  
  90. * Readline library: Fixed a small problem with input prompts longer than the
  91.   screen width.
  92.  
  93. * Fixed three bugs in the built-in editor. One of them made the editor
  94.   entirely unusable.
  95.  
  96. Portability
  97. -----------
  98.  
  99. * On DOS, the readline library now handles the /!INPUTRC and history files
  100.   correctly.
  101.  
  102. Other modifications
  103. -------------------
  104.  
  105. * Generational garbage collection now also works on Linux (1.1.52 or newer).
  106.  
  107. * On Unix, external modules written in C can be linked to CLISP without
  108.   recompiling CLISP from source. For example, the STDWIN library.
  109.  
  110.  
  111. 1 September 1994
  112. ================
  113.  
  114. User visible changes
  115. --------------------
  116.  
  117. * The DEFCONSTANT warning about redefinition of a constant is also inhibited
  118.   if the constant's new and old values are the same string (in the sense of
  119.   EQUAL). Thanks to Marcus Daniels.
  120.  
  121. * Unix version only: The daylight saving time flag of a time zone (eighth
  122.   value of GET-DECODED-TIME and DECODE-UNIVERSAL-TIME) is now correct.
  123.  
  124.  
  125. 23 August 1994
  126. ==============
  127.  
  128. User visible changes
  129. --------------------
  130.  
  131. * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
  132.  
  133. * The function ED can now edit functions that have been entered in
  134.   interpreted form even if they have later been compiled.
  135.  
  136. * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
  137.   (COMPILE function-name) if the function's definition had been entered
  138.   in interpreted form.
  139.  
  140. * The OPEN option :IF-EXISTS :RENAME-AND-DELETE now deletes the renamed
  141.   file. Previously :RENAME-AND-DELETE was equivalent to :RENAME.
  142.  
  143. * (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
  144.  
  145. * Readline library: Completion of a function call with no arguments
  146.   automatically adds the closing parenthesis.
  147.  
  148. * Readline library: When a closing parenthesis is typed, the corresponding
  149.   opening parenthesis is displayed.
  150.  
  151. Other modifications
  152. -------------------
  153.  
  154. * Copyright clarification.
  155.  
  156. * Added a readline manual page.
  157.  
  158.  
  159. 4 July 1994
  160. ===========
  161.  
  162. User visible changes
  163. --------------------
  164.  
  165. * X3J13 votes <115> and <114> are implemented: an elaborate LOOP macro.
  166.   New macro LOOP-FINISH.
  167.   Warning: The scoping rules for the iteration variables are hairy. If a
  168.   FOR/AS initialisation form refers to an iteration variable of a subsequent
  169.   FOR/AS clause, the effects are implementation dependent!
  170.  
  171. * X3J13 vote <120> is implemented: New function MAP-INTO.
  172.  
  173. * X3J13 vote <79> is implemented: New constants
  174.   LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
  175.   LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT,
  176.   LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT,
  177.   LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT,
  178.   LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT,
  179.   LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT,
  180.   LEAST-POSITIVE-NORMALIZED-LONG-FLOAT,
  181.   LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
  182.  
  183. * The macro WITH-OUTPUT-TO-PRINTER now also works on DOS.
  184.  
  185. * Fixed a bug in DO-SYMBOLS: A symbol which is exported from a used package
  186.   was considered accessible in the using package even if it was shadowed by
  187.   another present symbol of the same name.
  188.  
  189. * Fixed a bug in the debugger which caused the BACKTRACE commands to print
  190.   garbage if the current user interface language was not english.
  191.  
  192.  
  193. 22 June 1994
  194. ============
  195.  
  196. User visible changes
  197. --------------------
  198.  
  199. * French support is now complete. Thanks to Jörg Höhle.
  200.  
  201. * The user interface language (english, german or french) can now be chosen
  202.   at startup time through a command line option. The constant *LANGUAGE* has
  203.   been removed, and its value has been removed from *FEATURES*. New macros
  204.   ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
  205.  
  206. * There is a command line option that makes CLISP behave more like what
  207.   ILISP (a popular Emacs LISP interface) expects.
  208.  
  209. * The function CLOS:CALL-NEXT-METHOD can now be called with arguments, but
  210.   the check that the set of applicable methods must be the same as for the
  211.   original arguments will be bypassed.
  212.  
  213. * New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
  214.   WRITE-BYTE-SEQUENCE which perform fast block I/O.
  215.  
  216. * Errors of type FLOATING-POINT-UNDERFLOW are inhibited in floating point
  217.   computations (and zero is returned instead) during execution of the new
  218.   macro WITHOUT-FLOATING-POINT-UNDERFLOW.
  219.  
  220. * X3J13 vote <95> is implemented: If the readtable argument passed to
  221.   GET-MACRO-CHARACTER and GET-DISPATCH-MACRO-CHARACTER is NIL, the standard
  222.   readtable is used.
  223.  
  224. * PROBE-FILE doesn't report an error any more if an intermediate directory
  225.   in the path doesn't exist. NIL is returned instead.
  226.  
  227. * The DEFCONSTANT warning about redefinition of a constant is inhibited if
  228.   the constant's new and old values are the same (in the sense of EQL).
  229.   Thanks to Marcus Daniels.
  230.  
  231. * The function INTERACTIVE-STREAM-P knows that if the terminal stream is
  232.   referring to a regular file (via input redirection) it is not interactive.
  233.  
  234. * There is a user programmable kind of streams, called generic streams.
  235.   New functions MAKE-GENERIC-STREAM, GENERIC-STREAM-CONTROLLER,
  236.   GENERIC-STREAM-P, GENERIC-STREAM-READ-CHAR, GENERIC-STREAM-READ-BYTE,
  237.   GENERIC-STREAM-LISTEN, GENERIC-STREAM-WRITE-CHAR, GENERIC-STREAM-WRITE-BYTE,
  238.   GENERIC-STREAM-WRITE-STRING, GENERIC-STREAM-CLEAR-INPUT,
  239.   GENERIC-STREAM-CLEAR-OUTPUT, GENERIC-STREAM-FINISH-OUTPUT,
  240.   GENERIC-STREAM-FORCE-OUTPUT, GENERIC-STREAM-CLOSE.
  241.   See impnotes.txt for details. Thanks to Marcus Daniels and Don Cohen.
  242.  
  243. * The macro WITH-OUTPUT-TO-PRINTER may now also work on OS/2.
  244.  
  245. * Fixed a CLOS bug: Generic functions with both optional and keyword
  246.   arguments didn't work.
  247.  
  248. * Fixed a serious bug in the compiler which caused incorrect code to be
  249.   generated for functions like (LAMBDA (X) (SETQ X 1)).
  250.  
  251. * Fixed a serious bug in the compiler which caused the compiler to crash
  252.   when compiling functions which contain two or more calls to ASSERT.
  253.  
  254. * Fixed a bug: The macroexpander of MULTIPLE-VALUE-SETQ built up a
  255.   syntactically illegal form.
  256.  
  257. * Fixed a bug in the reader: When reading pathnames from the syntax
  258.   #S(PATHNAME ...), #n# references in pathname components were not
  259.   resolved prior to calling MAKE-PATHNAME.
  260.  
  261. * Fixed a bug in the reader: (read-from-string "1/") signalled an error
  262.   of type DIVISION-BY-ZERO.
  263.  
  264. * Fixed a bug in the terminal stream: If several consecutive READ-LINE
  265.   operations on the terminal stream were performed without any text
  266.   containing newlines being output between them, the prompt finally got
  267.   duplicated and then became longer and longer.
  268.  
  269. * Fixed a bug in the readline library (bad handling of prompts longer than
  270.   one line). Thanks to Marcus Daniels.
  271.  
  272. Installation
  273. ------------
  274.  
  275. * All non-Unix versions: Setting the local time zone should now be much
  276.   easier. 122 time zone names are supported.
  277.  
  278.  
  279. 8 January 1994
  280. ==============
  281.  
  282. None.
  283.  
  284.  
  285. 7 January 1994
  286. ==============
  287.  
  288. Important note
  289. --------------
  290.  
  291. * Changed bytecode format. All .fas files generated by previous CLISP versions
  292.   are invalid and must be recompiled.
  293.  
  294. User visible changes
  295. --------------------
  296.  
  297. * X3J13 votes <186> and <31> are implemented: the Common Lisp Condition System.
  298.   New macros
  299.     DEFINE-CONDITION, IGNORE-ERRORS, HANDLER-CASE, HANDLER-BIND,
  300.     RESTART-CASE, WITH-RESTARTS, WITH-SIMPLE-RESTART, RESTART-BIND,
  301.     WITH-CONDITION-RESTARTS,
  302.   new types
  303.     RESTART, CONDITION, SERIOUS-CONDITION, ERROR, PROGRAM-ERROR, CONTROL-ERROR,
  304.     ARITHMETIC-ERROR, DIVISION-BY-ZERO, FLOATING-POINT-OVERFLOW,
  305.     FLOATING-POINT-UNDERFLOW, CELL-ERROR, UNBOUND-VARIABLE, UNDEFINED-FUNCTION,
  306.     TYPE-ERROR, PACKAGE-ERROR, STREAM-ERROR, END-OF-FILE, FILE-ERROR,
  307.     STORAGE-CONDITION, WARNING,
  308.     SIMPLE-CONDITION, SIMPLE-ERROR, SIMPLE-TYPE-ERROR, SIMPLE-WARNING,
  309.   new functions
  310.     MAKE-CONDITION, SIGNAL, COMPUTE-RESTARTS, FIND-RESTART, INVOKE-RESTART,
  311.     INVOKE-RESTART-INTERACTIVELY, ABORT, CONTINUE, MUFFLE-WARNING, STORE-VALUE,
  312.     USE-VALUE, INVOKE-DEBUGGER, RESTART-NAME,
  313.     ARITHMETIC-ERROR-OPERATION, ARITHMETIC-ERROR-OPERANDS, CELL-ERROR-NAME,
  314.     TYPE-ERROR-DATUM, TYPE-ERROR-EXPECTED-TYPE, PACKAGE-ERROR-PACKAGE,
  315.     STREAM-ERROR-STREAM, FILE-ERROR-PATHNAME, SIMPLE-CONDITION-FORMAT-STRING,
  316.     SIMPLE-CONDITION-FORMAT-ARGUMENTS,
  317.   new variables
  318.     *BREAK-ON-SIGNALS*, *DEBUGGER-HOOK*.
  319.   See impnotes.txt for details. Thanks to David Gadbois who wrote most of this.
  320.  
  321. * X3J13 vote <40> is partially implemented: New variable *PRINT-READABLY*.
  322.  
  323. * X3J13 vote <34> is implemented: Arrays and packages may now appear as
  324.   constants in compiled code.
  325.  
  326. * X3J13 vote <90> is implemented: FUNCTIONP on symbols and conses now always
  327.   returns NIL. The type FUNCTION is disjoint from SYMBOL and CONS.
  328.   (COERCE object 'FUNCTION) is implemented.
  329.   Warning: Old style calls like
  330.     (FUNCTIONP object)
  331.   may need to be converted to
  332.     (OR (FUNCTIONP object)
  333.         (SYMBOLP object)
  334.         (AND (CONSP object) (EQ (CAR object) 'LAMBDA))
  335.     )
  336.   This fixes a CLOS bug: (TYPEP object 'FUNCTION) wasn't equivalent to
  337.   (TYPEP object (FIND-CLASS 'FUNCTION)).
  338.  
  339. * Two new debugger commands Break+ and Break- permit to set resp. remove
  340.   breakpoints at specified EVAL or APPLY frames.
  341.  
  342. * Warnings and errors produced by COMPILE-FILE are now accompanied by
  343.   source line number information.
  344.  
  345. * The sub-char passed as second argument to read dispatch macros is now
  346.   exactly the first non-digit read from the stream. Previously it was its
  347.   upper-case equivalent.
  348.  
  349. * DEFPACKAGE now accepts an option (:DOCUMENTATION doctring).
  350.  
  351. * DIRECTORY now accepts a keyword argument :CIRCLE. If it is non-NIL,
  352.   the directory search for ".../" and "**/" wildcards on Unix avoids endless
  353.   loops that may result from symbolic links.
  354.  
  355. * The variable *LOAD-PATHS* in the Unix versions of config.lsp now uses
  356.   "~/" (the home directory at run time) instead of #"~/" (the home directory
  357.   at installation time). Thanks to Gabor Herr.
  358.  
  359. * Unix and OS/2 versions: New dangerous functions MAKE-PIPE-IO-STREAM,
  360.   RUN-SHELL-COMMAND and RUN-PROGRAM.
  361.  
  362. * Unix version only:
  363.   The command shell used by MAKE-PIPE-...-STREAM is now always /bin/sh; the
  364.   environment variable SHELL is only used as interactive shell.
  365.   Fixed a race condition in the functions EXECUTE, MAKE-PIPE-INPUT-STREAM,
  366.   MAKE-PIPE-OUTPUT-STREAM that caused the child process to fail mysteriously.
  367.  
  368. * Attacks such as  (DO-ALL-SYMBOLS (S) (UNLESS (CONSTANTP S) (SET S NIL)))
  369.   no longer crash CLISP.
  370.  
  371. * Fixed a CLOS bug: DEFCLASS failed to signal an error if several direct slots
  372.   had identical names.
  373.  
  374. * Fixed a bug in the reader: When reading hash tables which contain #n#
  375.   references, the hash codes must be recomputed after resolving the
  376.   references. Thanks to Marcus Daniels.
  377.  
  378. * Fixed a bug in the printer: Printed representations with two different
  379.   #1= definitions could result when PRINT-OBJECT methods were called while
  380.   *PRINT-CIRCLE* was true. Thanks to Marcus Daniels.
  381.  
  382.  
  383. 8 November 1993
  384. ===============
  385.  
  386. User visible changes
  387. --------------------
  388.  
  389. * The STDWIN library can now be made part of CLISP by calling makemake with
  390.   argument --with-stdwin.
  391.  
  392. * X3J13 vote <108> is implemented: New packages COMMON-LISP and
  393.   COMMON-LISP-USER.
  394.  
  395. * X3J13 vote <112> is implemented:
  396.   LOAD binds the variables *LOAD-PATHNAME* and *LOAD-TRUENAME*, COMPILE-FILE
  397.   binds the variables *COMPILE-FILE-PATHNAME* and *COMPILE-FILE-TRUENAME*.
  398.   New variables *LOAD-PATHNAME*, *LOAD-TRUENAME*, *COMPILE-FILE-PATHNAME*,
  399.   *COMPILE-FILE-TRUENAME*.
  400.  
  401. * X3J13 vote <26> is implemented: COMPILE-FILE has a keyword argument :PRINT.
  402.   New variables *COMPILE-WARNINGS*, *COMPILE-VERBOSE*, *COMPILE-PRINT*.
  403.  
  404. * Fixed two bugs in DEFPACKAGE: *PACKAGE* is not modified by DEFPACKAGE
  405.   any more, and the :INTERN option now works.
  406.  
  407. * Fixed FUNCTION-LAMBDA-EXPRESSION such that it works on built-in functions.
  408.   Thanks to France Dacar.
  409.  
  410. * Fixed a serious bug in GCD on 16-bit processors: (GCD x y) with
  411.   2^k - 2^(k-16) <= |x|,|y| < 2^k could cause a division by zero.
  412.  
  413.  
  414. 27 September 1993
  415. =================
  416.  
  417. User visible changes
  418. --------------------
  419.  
  420. * COMPILE-FILE now handles top-level forms as described in CLtL2 p. 90:
  421.   The macroexpansion of a top-level form is considered a top-level form.
  422.   When a top-level form is a PROGN, LOCALLY, COMPILER-LET, SYMBOL-MACROLET
  423.   or MACROLET form, the subforms of its body are considered top-level forms
  424.   too and are compiled separately.
  425.   This allows things like
  426.     (PROGN (DEFCONSTANT X 3141) (DEFUN GET-X () X))
  427.   or
  428.     (PROGN (DEFCLASS SHIP () ()) (DEFUN SHIP-P (X) (TYPEP X 'SHIP)))
  429.   to work.
  430.   Warning: If you want to inhibit this splitting into separate forms (for
  431.   example, because several of the forms refer to the same uninterned symbol),
  432.   you have to use (LET () (PROGN ...)) instead of (PROGN ...).
  433.  
  434. * X3J13 vote <144> is implemented: New macro DECLAIM.
  435.  
  436. * X3J13 vote <113> is implemented: The macro LOCALLY is now a special form.
  437.  
  438. * Fixed a serious bug in the compiler: When compiling functions inline
  439.   whose parameters are special variables, incorrect code could be generated.
  440.  
  441. * Fixed a bug in the compiler which caused the compiler to crash in some
  442.   rare cases, notably when compiling Garnet-2.2.
  443.  
  444. * Fixed a bug that prevented the debugger commands DOWN and BOTTOM from
  445.   working on Linux and SunOS.
  446.  
  447. * Fixed a CLOS bug: Specifying &KEY without &REST in generic function
  448.   lambda lists didn't have the desired effect.
  449.  
  450. * DEFCLASS supports both :DEFAULT-INITARGS syntaxes.
  451.  
  452. * DEFGENERIC is more tolerant about invalid declarations.
  453.  
  454.  
  455. 1 September 1993
  456. ================
  457.  
  458. Important note
  459. --------------
  460.  
  461. * Changed bytecode format. All .fas files generated by previous CLISP versions
  462.   are invalid and must be recompiled.
  463.  
  464. User visible changes
  465. --------------------
  466.  
  467. * Unix version only: The command line option -M now also accepts memory images
  468.   that were compressed using GNU gzip.
  469.  
  470. * Fixed a CLOS bug: MAKE-INSTANCE now behaves as if it were calling
  471.   INITIALIZE-INSTANCE, and INITIALIZE-INSTANCE and REINITIALIZE-INSTANCE
  472.   behave as if they were calling SHARED-INITIALIZE.
  473.  
  474. * Fixed a CLOS bug: NO-APPLICABLE-METHOD failed to be called in some cases
  475.   when no method was applicable.
  476.  
  477. * Relating to X3J13 vote <89>: The first argument to the functions FUNCALL and
  478.   APPLY, denoting a function, may now also be a list (SETF symbol).
  479.  
  480. * Fixed a bogus error message that occurred when storing an out-of-range
  481.   integer into an array of element-type (UNSIGNED-BYTE 32).
  482.  
  483.  
  484. 22 August 1993
  485. ==============
  486.  
  487. Important note
  488. --------------
  489.  
  490. * Changed bytecode format. All .fas files generated by previous CLISP versions
  491.   are invalid and must be recompiled.
  492.  
  493. User visible changes
  494. --------------------
  495.  
  496. * X3J13 vote <12> is partially implemented: Native CLOS. New package CLOS
  497.   containing the macros
  498.     DEFCLASS, DEFMETHOD, DEFGENERIC, GENERIC-FUNCTION, GENERIC-FLET,
  499.     GENERIC-LABELS, WITH-SLOTS, WITH-ACCESSORS,
  500.   the functions
  501.     FIND-CLASS, (SETF FIND-CLASS), CLASS-OF, CLASS-NAME, (SETF CLASS-NAME),
  502.     SLOT-VALUE, SLOT-BOUNDP, SLOT-MAKUNBOUND, SLOT-EXISTS-P,
  503.     CALL-NEXT-METHOD, NEXT-METHOD-P,
  504.     NO-APPLICABLE-METHOD, NO-PRIMARY-METHOD, NO-NEXT-METHOD,
  505.     FIND-METHOD, ADD-METHOD, REMOVE-METHOD, COMPUTE-APPLICABLE-METHODS,
  506.     METHOD-QUALIFIERS, FUNCTION-KEYWORDS, SLOT-MISSING, SLOT-UNBOUND,
  507.     PRINT-OBJECT, DESCRIBE-OBJECT, MAKE-INSTANCE, INITIALIZE-INSTANCE,
  508.     REINITIALIZE-INSTANCE, SHARED-INITIALIZE,
  509.   the classes
  510.     STANDARD-CLASS, STRUCTURE-CLASS, BUILT-IN-CLASS, STANDARD-OBJECT,
  511.     STANDARD-GENERIC-FUNCTION, STANDARD-METHOD and all predefined classes,
  512.   and the method combination
  513.     STANDARD.
  514.   See impnotes.txt for details. X3J13 vote <13> is implemented, too.
  515.  
  516. * X3J13 vote <63> is implemented: DESCRIBE receives the output stream as
  517.   optional argument. New function CLOS:DESCRIBE-OBJECT.
  518.  
  519. * X3J13 vote <149> is implemented: The second argument to SUBSEQ may now
  520.   be NIL. Thanks to Thomas Kirk.
  521.  
  522. * X3J13 vote <175> is implemented: TAILP now also works on dotted lists.
  523.  
  524. * X3J13 vote <124> is implemented: (DECLARE (OPTIMIZE (DEBUG ...))) is legal.
  525.  
  526. * The type specifier (EQL object), a synonym for (MEMBER object), is now
  527.   implemented.
  528.  
  529. * New DEFSTRUCT option :INHERIT which is exactly like :INCLUDE except that it
  530.   doesn't create new accessors for the inherited slots. Use this option to
  531.   avoid the problems that occur when using the same :CONC-NAME for the new
  532.   and the inherited structure.
  533.  
  534. * Fixed EXPORT and USE-PACKAGE: Don't signal a name conflict between the
  535.   symbol being exported and a symbol accessible in the using package if
  536.   the latter symbol is on the list of shadowing symbols of the using package.
  537.  
  538. * Fixed VECTOR-PUSH-EXTEND. It now works on vectors of dimension 0 and
  539.   on bit-vectors.
  540.  
  541. * Fixed PRINT-UNREADABLE-OBJECT: Don't output adjacent spaces.
  542.  
  543. * Fixed a bug in the reader that caused an endless loop or endless recursion
  544.   when resolving #n=/#n# references in objects that already contained cyclic
  545.   data structures, e.g. when reading (#1=a #.'#2=(b . #2#) #1#).
  546.  
  547. * Fixed a bogus error message in the complex number reader.
  548.  
  549.  
  550. 17 July 1993
  551. ============
  552.  
  553. User visible changes
  554. --------------------
  555.  
  556. * X3J13 vote <150> is mostly implemented: Reading and printing of symbols
  557.   (and characters with bits or fonts attributes) is now affected by
  558.   (READTABLE-CASE *READTABLE*), whose value may be one of :UPCASE, :DOWNCASE
  559.   and :PRESERVE. New place READTABLE-CASE.
  560.  
  561. * Support for immutable objects is implemented. Attempts to modify read-only
  562.   data will signal an error. Program text and quoted constants loaded from
  563.   files are considered read-only data. Never again will you be allowed to
  564.   write programs that destructively modify themselves!
  565.   This works only for Unix implementations with powerful virtual memory
  566.   management, currently only Linux and SunOS. To enable it, you have to
  567.   add -DIMMUTABLE to the CFLAGS in the makefile when building CLISP.
  568.  
  569. * Fixed DEFUN such that
  570.   (progn
  571.     (flet ((bar (x) (+ x 10))) (defun bar (y) (if (zerop y) 1 (bar (1- y))))
  572.     (bar 1)
  573.   )
  574.   returns 10 instead of 1.
  575.  
  576. * Fixed a bug in the compiler that caused the compiler to crash by endless
  577.   recursion and stack overflow when compiling assignments to symbol macros.
  578.  
  579.  
  580. 29 June 1993
  581. ============
  582.  
  583. User visible changes
  584. --------------------
  585.  
  586. * X3J13 vote <89> is implemented: (SETF symbol) is now a valid syntax for a
  587.   function name in (funname ...), (FUNCTION funname), (DEFUN funname ...),
  588.   (COMPILE funname ...), (DISASSEMBLE funname), (ED funname), FLET, LABELS etc.
  589.   New function FDEFINITION.
  590.  
  591. * X3J13 vote <173> is implemented: New special form SYMBOL-MACROLET. The
  592.   macroexpansion environment passed to macro expanders and to MACROEXPAND-1,
  593.   MACROEXPAND, GET-SETF-METHOD, GET-SETF-METHOD-MULTIPLE-VALUE now comprises
  594.   both the variable environment and the function environment.
  595.   New macro DEFINE-SYMBOL-MACRO.
  596.  
  597. * New macro PRINT-UNREADABLE-OBJECT.
  598.  
  599. * Fixed a bug: The string comparison functions STRING<, STRING>, STRING<=,
  600.   STRING>=, STRING/=, STRING-LESSP, STRING-GREATERP, STRING-NOT-GREATERP,
  601.   STRING-NOT-LESSP, STRING-NOT-EQUAL now return the index of the first mismatch
  602.   instead of T.
  603.  
  604. * Fixed a bug: The functions REMOVE-DUPLICATES and DELETE-DUPLICATES produced
  605.   an out-of-bounds error when called on a small sequence, with :FROM-END T
  606.   argument and without :END argument.
  607.  
  608.  
  609. 24 May 1993
  610. ===========
  611.  
  612. User visible changes
  613. --------------------
  614.  
  615. * New macro DEFPACKAGE.
  616.  
  617. * New function FUNCTION-LAMBDA-EXPRESSION.
  618.  
  619. * New package SCREEN containing some functions for random screen access
  620.   (Unix, DOS, OS/2, Atari, VMS versions only).
  621.  
  622. * X3J13 vote <5> is implemented: The value of *APPLYHOOK* must now be
  623.   a function of two arguments.
  624.  
  625. * X3J13 vote <104> is implemented: COMPILE-FILE now binds *READTABLE*.
  626.  
  627. * X3J13 vote <161> is implemented: SHADOW now accepts strings as well
  628.   as symbols.
  629.  
  630. * Fixed a bug in the compiler which caused the compiler to crash when
  631.   compiling (CASE key ...) forms with constant key.
  632.  
  633. * Fixed a bug in the compiler which produced unloadable .fas files
  634.   when compiling forms like (SETF ... (FUNCTION LIST)).
  635.  
  636. * Fixed a bogus error message in the AREF function.
  637.  
  638. * The built-in editor on Unix now handles the Delete key the same way
  639.   as the Backspace key or Ctrl-H.
  640.  
  641. * Fixed a bug in + that occasionally caused (- x x) to return a
  642.   long-float zero which was not EQL to the other zeroes of type LONG-FLOAT.
  643.  
  644. * Fixed a bug: Correctly do round-to-even when adding two long-floats.
  645.  
  646. * Fixed a bug: The destructive sequence functions DELETE etc. failed to
  647.   produce an error when called on a sequence of type LIST and with an :END
  648.   argument larger than the list's length.
  649.  
  650. * Corrected the branch cuts of the complex ATAN and ATANH functions.
  651.  
  652.  
  653. 5 April 1993
  654. ============
  655.  
  656. None.
  657.  
  658.  
  659. 30 March 1993
  660. =============
  661.  
  662. User visible changes
  663. --------------------
  664.  
  665. * Fixed a bug in + that caused the sign of (+ x y) to be wrong when x and y
  666.   were double-floats satisfying  0 < x < -y  or  0 > x > -y .
  667.  
  668. * New special form LOAD-TIME-VALUE.
  669.  
  670. * The function DIR now sorts its output.
  671.  
  672. * A new place (DEFAULT-DIRECTORY) manages the "current directory".
  673.  
  674. * When LOAD is called with a pathname as argument that contains a parent
  675.   directory component (".."): Ignore the variable *LOAD-PATHS*, avoid an error.
  676.  
  677. * Fixed TRACE so that functions calling TRACE are correctly handled by
  678.   COMPILE-FILE.
  679.  
  680.  
  681. 19 March 1993
  682. =============
  683.  
  684. User visible changes
  685. --------------------
  686.  
  687. * Replaced variable *TEMPFILE* by a function EDITOR-TEMPFILE.
  688.  
  689.  
  690. 4 March 1993
  691. ============
  692.  
  693. User visible changes
  694. --------------------
  695.  
  696. * Fixed a bug in ADJOIN that caused ADJOJN and PUSHNEW to push (key item)
  697.   instead of item onto the list when a :KEY argument was present.
  698.  
  699. * Amiga version: allow opening of "files" on special devices.
  700.  
  701. * OS/2 version: Long filenames on DOS (FAT) filesystems no longer produce
  702.   errors. They are now silently truncated to 8+3 characters.
  703.  
  704. * Unix, Amiga, OS/2 versions: When a pathname is to be fully specified, no
  705.   subdirectory wildcard "**/" or ".../" is allowed. Check this.
  706.  
  707.  
  708. 21 February 1993
  709. ================
  710.  
  711. User visible changes
  712. --------------------
  713.  
  714. * Include test suite into distribution.
  715.  
  716. * Add COMMON-LISP and CLTL1 to the *FEATURES*.
  717.  
  718. * Fixed a bug in the compiler which caused the compiler to crash in some
  719.   rare cases.
  720.  
  721. * Fixed a bug in WITH-OPEN-FILE: handle the case when OPEN returns NIL.
  722.  
  723. * Amiga version: Fixed bug in FILE-POSITION.
  724.  
  725. * Amiga version: Renamed REXX-WAIT-COMMAND to REXX-WAIT-SENT-COMMAND.
  726.  
  727.  
  728. 3 February 1993
  729. ===============
  730.  
  731. None.
  732.  
  733.  
  734. 1 February 1993
  735. ===============
  736.  
  737. User visible changes
  738. --------------------
  739.  
  740. * Fixed handling of declarations in macros DO-SYMBOLS, DO-EXTERNAL-SYMBOLS,
  741.   DO-ALL-SYMBOLS, DOSEQ, DOHASH.
  742.  
  743. * LISTEN on file streams opened with :DIRECTION :OUTPUT now returns NIL.
  744.  
  745. * Pathnames resulting from OPEN on special files are now called
  746.   "file handle streams", they are unbuffered file streams.
  747.   They can now be used as argument in situations where a pathname is expected.
  748.  
  749.  
  750. 11 January 1993
  751. ===============
  752.  
  753. User visible changes
  754. --------------------
  755.  
  756. * Fixed meaning of :KEY argument for SUBLIS and NSUBLIS.
  757.  
  758. * DOS, OS/2 versions: adapted to emx 0.8f. This results in better
  759.   *KEYBOARD-INPUT* on DOS and faster screen access on OS/2.
  760.  
  761. * Amiga version: implemented SHELL.
  762.  
  763. * OS/2 version: implemented MAKE-PIPE-INPUT-STREAM and MAKE-PIPE-OUTPUT-STREAM.
  764.  
  765. * compiler.lsp: Emit a warning when #'foo is used but foo is undefined.
  766.  
  767. * rexx.d, rexx.lsp: remove the trailing "p" from the keywords.
  768.  
  769. * init.lsp: don't call a macro a "Common Lisp function".
  770.  
  771. * stream.d, readline/readline.[ch]: exported rl_deprep_terminal such that a
  772.   failing call to xmalloc() can now signal an ordinary error instead of exiting.
  773.  
  774.  
  775. 1 January 1993
  776. ==============
  777.  
  778. Release of first portable version of CLISP.
  779.  
  780.