Bug Fixes
- RESTORE did not work -- several bugs for 80x86 systems. Only one restore would work per session -- all systems.
- :downcase for variable *printcase* did not work with some compilers.
- Modifications to make the source acceptable to ANSI C compilers.
- Values for ADEPTH and EDEPTH changed to more reasonable values -- before this change the processor stack would overflow first, causing a crash.
- On systems with 16 bit integers: STRCAT crashes when aggregate size of argument strings were greater than 32k. MAKE-ARRAY crashes on too-large arrays. DOTIMES, AREF, AREF and NTH place forms of SETF, MAKE-STRING-INPUT-STREAM and GET-OUTPUT-STREAM-STRING treat numeric argument modulo 65536. MAKE-STRING-INPUT-STREAM did not check for start>end.
- Strings containing nulls could not be read or printed.
- NTH and NTHCDR failed for zero length lists.
- Unnamed streams did not survive garbage collections.
- (format nil ...) did not protect from garbage collection the unnamed stream it creates.
- SORT did not protect some pointers from garbage collection.
- SYMBOL-NAME SYMBOL-VALUE SYMBOL-PLIST BOUNDP and FBOUNDP failed with symbol
- LAST returned wrong value when its argument list ended with a dotted pair.
- *gc-hook* was not rebound to NIL during execution of gchook function, causing potential infinite recursion and crash.
- Executing RETURN from within a DOLIST or DOTIMES caused the environment to be wrong.
- When errors occured during loading, which were not caught, the file would be left open. EVAL and LOAD did not use global environment. EVALHOOK's default environment was not global.
- Invalid symbols (those containing control characters, for instance), can no longer be created with intern and make-symbol.
- The key T, meaning "otherwise" in the CASE function used to be allowed in any position. Now it only means "otherwise" when used as the last case.
- The lexical and functional environment of send of :answer (which defines a new method) are now used during the method's evaluation, rather than the global environment.
- Signatures added for WKS files so that invalid ones will be rejected.
- Checks added for file names and identifier names being too long.
- Indexing code fixed to allow almost 64k long strings in 16 bit systems. It is no longer possible to allocate arrays or strings that are too long for the underlying system.
- Circularity checks added to PRINT LAST BUTLAST LENGTH MEMBER and MAP functions. An error is produced for all but MEMBER, which will execute correctly.
- Code for SETF modified so that a Common Lisp compatible DEFSETF could be used.
- Circularity checks added to EQUAL.
- Check for even number of arguments to SETQ, SETF, and PSETQ added. PSETQ changed to return NIL rather than result of first assignment (really now!).
XLISP-PLUS - Version 2.1g - Tom Almy
tom.almy@tek.com - 18 JUL 94
Generated with WebMaker