diff --git a/general-info/beta-release-notes.txt b/general-info/beta-release-notes.txt
index 7058742cec070e5c751efa6b8387634d34660469..b8744e25630c92d2b453c6f4fdef841d2f9e1993 100644
--- a/general-info/beta-release-notes.txt
+++ b/general-info/beta-release-notes.txt
@@ -1,777 +1,490 @@
-	    Release notes for CMU Common Lisp 15e, 25 February 92
-
-
-15e is mainly a bug-fix release; it will probably be the last version 15
-release, and is thus the most stable system you're going to see for a while.
-We're reluctant to call it a "default" release because some things are stably
-broken:
- -- There still isn't any good stack overflow detection.  Probably stack
-    overflow detection won't appear until the C code rewrite associated with
-    generational GC comes out (version 17 or later.)
- -- The Alien/foreign function call mechanism is fairly broken.  It doesn't
-    work at all in interpreted code, and DEF-C-ROUTINE doesn't work properly
-    for many argument type signatures.  We've redesigned and reimplemented
-    our foreign interface for version 16.
-
-We are now distributing the CMU CL user manual in Gnu Info format (in
-doc/cmu-user.info.)  You can either have your EMACS maintainer install this in
-the info root, or you can use the info "g(<cmucl root dir>/doc/cmu-user.info)"
-command.  Many thanks to Mike Clarkson (the LaTeXinfo maintainer) who
-volunteered to convert our Scribe documents.
-
-Changes:
- -- Improved recursive error handling.  Errors during reporting of errors are
-    detected and suppressed.  Other recursive errors are eventually detected,
-    and hopefully recovered from.  This should eliminate some "recursive map
-    failure (stack overflow?)" errors.
- -- Fixed a bad declaration in CLX which caused an array index error on
-    font attribute queries (such as CHAR-WIDTH.)
- -- Fixed interpreted (typep x '(and ...)) to not always return NIL.
- -- Fixed interpreted CLOS methods to work once again.
- -- Fixed PROFILE to work again, now that argument count information may be
-    missing.
- -- Changed NCONC to signal an error if a non-null ATOM appears other than
-    as the last argument.
- -- Changed FEATUREP to signal an error if it is passed a list form with a
-    strange CAR.
- -- Do type checking on the arguments to %PUTHASH so that
-    (setf (gethash foo 'bar) x) doesn't get a bus error.
- -- Changed LET* and &AUX to allow duplicate variable names.
- -- Fixed DEFTYPE to properly invalidate type system caches so that type
-    redefinitions predictably take effect.
- -- Improvements to MIPS disassembler database.
-
+	    Release notes for CMU Common Lisp 16d, 23 April 92
+
+16d is our first version 16 general release, and incorporates many changes not
+present in the 15 series.  It is currently fairly close to our current
+internal development (alpha) systems, and is thus less stable.  The major
+changes are:
+    New Aliens
+    New pathnames
+    New pretty printer
+    New format
+    R5.0 CLX.  
+    5/1/90  May Day PCL (REV 4b)
+    Revised manual
+
+The fasl file format is nominally compatible with version 15, but the pathname
+change affects any pathname constants in fasl files, which includes the
+defined-from information present in every fasl file.  It is probably a good
+idea to recompile everything.
+
+CLX and Hemlock are now optional.  When CMU CL is installed, the maintainer can
+elect not to load CLX and Hemlock -- this saves 7 megabytes of disk and
+improves memory usage somewhat.  See the installation section of the README
+file for details.
+
+The ``CMU Common Lisp User's Manual'' has been updated to be more helpful for
+non-CMU users.  The new manual also documents the new Alien facility for
+foreign function calls and data structure access.  The manual is now formatted
+with Mike Clarkson's LaTeXinfo package, so a consistent version of the
+documentation is available online in Gnu info format.  See `doc/cmu-user.ps'
+and `doc/cmu-user.info'.
+ 
 
-	    Release notes for CMU Common Lisp 15d, 2 February 92
-
-These release notes cover changes since the beta release of version 15b on 6
-June 91.  Execpt for Miles Bader's portable disassembler and a few minor
-performance enhancements, this is mostly a bug-fix release.  We've been
-working on ANSI complaince, foreign function interface and more advanced
-compiler optimizations, but we're not going to inflict that on the general
-public just yet.
-
-
-			     GENERAL SYSTEM CODE
-
-Bug fixes:
- -- (SETF AREF) now checks to make sure that the new value is of the correct
-    type.
- -- Improved checking for invalid syntax in DEFSTRUCT.  In some cases, syntax
-    errors would cause cryptic internal errors due to inadequate type
-    checking.
- -- DRIBBLE now monitors *ERROR-OUTPUT* (in addition to *STANDARD-OUTPUT*).
- -- Bignum printing now works correctly in base 36.
- -- Fixed EXPT to deal with SINGLE-FLOAT x SINGLE-FLOAT arg type combination.
- -- Fixed TRUNCATE to handle the SINGLE-FLOAT/DOUBLE-FLOAT case.
- -- The PROFILE package works once again.
-
-Enhancements:
- -- A new retargetable disassembler provides DISASSEMBLE support on the SPARC,
-    and also greatly improved disassembly on the MIPS.  The output is
-    annotated with source-code correspondences if debug-info permits.
- -- Added INLINE MEMBER declarations in definitions of the set functions
-    (UNION, etc.) so that when the set functions are inlined, the MEMBER calls
-    will also.
- -- Merged Lange's improved type declarations for nthcdr/butlast/nbutlast.
-    Also, NTH-VALUE now doesn't cons for non-constant N less than 3.
- -- The loader now supports appending fasl files.  You can:
-    	cat a.fasl b.fasl c.fasl >all.fasl
- -- Added :UNIX to the features list.
-
-The new variable EXT:*TOP-LEVEL-AUTO-DECLARE* controls whether assignments to
-unknown variables at top-level (or in any other call to EVAL of SETQ) will
-implicitly declare the variable SPECIAL.  These values are meaningful:
-     :WARN  -- Print a warning, but declare the variable special (the default.)
-      T     -- Quietly declare the variable special.
-      NIL   -- Never declare the variable, giving warnings on each use. (The
-               old behavior.) 
-
-The reader now ignores undefined read macro errors when *read-suppress* is T.
-All reader character lookup tables are now CHAR-CODE-LIMIT in size.  Formerly,
-some where only 128.  In the standard readtable, these additional characters
-are all undefined.
-
-There are various changes in the DEBUG-INTERNALS interface related to
-breakpoint support, but we haven't yet implemented a satisfactory user
-interface to breakpoints.  Changed name of DI:DO-BLOCKS to
-DI:DO-DEBUG-FUNCTION-BLOCKS.  Added DI:FUNCTION-END-COOKIE-VALID-P and
-DI:DEBUG-FUNCTION-START-LOCATION.
-
-This release fixes a few problems with Aliens, but they are still pretty
-broken.  In particular, Alien and C interface operations don't work at all in
-interpreted code.  We are in the process of integrating a new-and-improved
-implementation of Aliens that works much more smoothly with C.
-
-
-				 COMPILER
+General system code:
+
+ANSI cleanups:
+ -- ANSI Compiler macros are now implemented: see COMPILER-MACRO-FUNCTION,
+    COMPILER-MACROEXPAND, COMPILER-MACROEXPAND-1 and DEFINE-COMPILER-MACRO.
+ -- Fixed things that invoke *MACROEXPAND-HOOK* to coerce it to a function
+    before calling it.
+ -- Fixed MACRO-FUNCTION to take an environment argument.
+ -- SYMBOL-MACROLET now accepts declarations.
+ -- SHADOW now accepts strings in addition to symbols.
+ -- Added UPGRADED-ARRAY-ELEMENT-TYPE and UPGRADED-COMPLEX-PART-TYPE.
+ -- IGNORABLE is now in the LISP package instead of the EXT package.
+ -- ADJUST-ARRAY has been updated to allow adjusting of arrays which were
+    not created with :adjustable non-nil to be adjusted to new dimensions.
+ -- ADJUSTABLE-ARRAY-P has been updated correspondingly. It returns T if
+    adjust ADJUST-ARRAY would return an EQ array.
+ -- The BASE-CHARACTER type has been renamed to BASE-CHAR.
+ -- The REAL type and REALP function are now implemented.
+ -- Changed the default structure printer to print slot names as keywords
+    instead of unqualified symbols.
 
 Enhancements:
- -- Various SPARC-specific reductions in spurious type checks and coercions.
- -- FTYPE declarations on local functions are now propagated to the variables
-    of the local definition.
- -- Improved representation selection by not totally ignoring references by
-    move VOPs.  This is particularly useful for avoiding spurious number
-    consing of float arguments that are passed on as arguments.
- -- The warning about assignments to the arguments of functions having FTYPE
-    declarations is now suppressed when the FTYPE declaration gives no useful
-    information.
- -- Improved readability of *COMPILE-PROGRESS* output.
- -- Fixed TYPES-INTERSECT to consider any supertype of T to definitely
-    intersect with anything (including unknown or not-yet-defined types.)
-
-Bug fixes:
- -- Fixed some bugs in dead code deletion.
- -- Lambdas with &KEY and no specified keywords are now compiled correctly
-    (instead of the &KEY being ignored.)
- -- The compiler now knows that INTERN can return NIL as its second value.
- -- Global FTYPE declarations on DEFSTRUCT slot accessors are now quietly
-    ignored, instead of causing the structure definition to be removed.
- -- Fixed a problem with resulting from an interaction between block
-    compilation and global FTYPE declarations.
- -- Fixed TAGBODY not to consider NIL to be a tag.
- -- Fixed an internal error during register allocation which could happen when
-    compilation-speed > speed.
- -- If we undefine a structure type, unfreeze it also.
- -- Fixed TYPEP SATISFIES to always return T-or-NIL, regardless of what the
-    predicate returns.
-
-PCL/CLOS:
- -- Added generalized source context parsing with EXT:DEF-SOURCE-CONTEXT.
-    Added a parser for DEFMETHOD that gets qualifiers and specializers.
- -- FUNCALLABLE-INSTANCE-P is now compiled much more efficiently.
- -- Fixed SET-FUNCTION-NAME to correctly set the name of interpreted methods,
-    instead of clobbering the name of an internal interpreter function.
-
-
-				  HEMLOCK
+ -- Added MAYBE-INLINE declaration for GET, PUT, etc., so that these
+    functions can be inline expanded according to the compilation policy.
+ -- Added some type declarations so that GET-INTERNAL-REAL-TIME doesn't cons.
+ -- Process the command line before printing the herald so that we can eval
+    some form and quit without printing anything.
+ -- SET now protects against setting T, NIL, and keywords.  (SETF
+    SYMBOL-FUNCTION) now expands into FSET, which protects against defining
+    NIL.
+ -- Substantially rearranged function describing to make it more consistent,
+    and added support for describing interpreted functions.
+ -- PURIFY is now called multiple times during system building to improve
+    locality.  
+ -- (EVAL-WHEN (EVAL) ...) is now actually eval'ed.
 
 Bug fixes:
- -- Changed X font specs in the generic site-init file to use point size
-    instead of pixel size so that they work on 100dpi devices. 
- -- Added :INPUT :ON wm-hints to Hemlock windows, which is necessary to
-    receive input in OpenLook windowing systems.
- -- Fixed Lisp mode indentation for FLET&c to check that we are actually in
-    the first arg form before doing funny indentation.  Generalized to
-    reference the variable "Lisp Indentation Local Definers", and also to
-    recognize LABELS (as well as MACROLET and FLET.)
- -- When we reallocate string-table vectors to grow them, clear the old vector
-    so that it won't hold onto garbage (in case the vector was in static
-    space, but pointed to dynamic values.)  This was a major cause of memory
-    leakage in Hemlock.
- -- Fixed sentence motion to work at the end of the buffer.
-
-Enhancements:
- -- The site file now contains a template for file directory translation (for
-    "Edit Definition"), and some of the comments have been improved.
- -- There's a new "Buffer Modified Hook" function that raises the "Echo Area"
-    window when it becomes modified.  You can control this with the Hemlock
-    variable: "Raise Echo Area When Modified".
- -- In "Edit Definition" and related commands, before doing directory
-    translations, try a probe-file of the source file first.  This can reduce
-    the number of translations needed.
- -- Added DEFINDENT's for the "WIRE" package.
- -- Made the X visual bell look less spastic by adding a finish-output.
- -- The termcap parser now recognizes entries for things like begin/end bold,
-    underline, etc.  Fixed a problem with font halding in TTY redisplay.
- -- The MH interface now uses the correct name for the MailDrop profile
-    component.
- -- The netnews interface has been improved in various ways, including the
-    addition of server timeouts, but should still be considered experimental.
+ -- Fixed bug in NTH-VALUE where it expanded into bogus code unless ``n'' was
+    a constant integer.
+ -- Fixed FMAKUNBOUND to return the symbol instead of T.
+ -- Allocate memory as executable so that the OS knows to maintain cache
+    consistency.
+ -- Changed DESCRIBE to allow T or NIL as the stream argument.
+
+Load enhancements and cleanups:
+ -- The initial value of *LOAD-VERBOSE* is now T.  Additionally, LOAD no
+    longer always binds *LOAD-VERBOSE* and *LOAD-PRINT*.  Now it only
+    binds them when :VERBOSE or :PRINT are explicity supplied.  Therefore, you
+    can set either of these in your init file and it will take effect.
+ -- Normally when *LOAD-VERBOSE* is T, only the file name is printed.
+    Formerly, the loaded stream was always printed, whereas now a stream is
+    printed only when the stream is not a file stream.
+ -- Added ANSI features *LOAD-TRUENAME*, *LOAD-PATHNAME* and *LOAD-PRINT*.
+ -- As per ANSI, bind *READTABLE* to itself to make assignments file-local.
+ -- Added new variables EXT:*SOURCE-FILE-TYPES* and EXT:*OBJECT-FILE-TYPES*.
+    When no file type is specified, LOAD tries the types in these lists to
+    locate the source and object files.  LOAD now recognizes source types "l",
+    "cl" and "lsp" in addition to "lisp".
+ -- The compiler OPTIMIZE policy is now bound during load, so proclamations in
+    a file don't leave the global policy clobbered when the load is finished.
+ -- Changed the :IF-SOURCE-NEWER option to signal an error and use restarts,
+    rather than PROMPT-FOR-Y-OR-N.  Fixed the load source case to actually
+    load the source, rather than loading the object as a source file...
+ -- Changed load to deal with source files having NIL type more reasonably.
+ -- If a wild pathname is given to LOAD, all files matched will be loaded.
+ -- Proceeding from nonexistent file errors has been improved.  It is no longer
+    assumed that missing files are always source files.  Added condition
+    restarts for missing files.
+ -- Improved formatting of error and warning messages.
+
+
+Garbage collection:
+ -- Changed the minimal ROOM output to include all easily computed information
+    including whether GC is disabled.  The verbose ROOM now conses less.
+ -- Removed the :ENABLE-GC SAVE-LISP option, as it's no longer needed.
+    Garbage collection is now correctly enabled in cores which have been saved
+    and then restarted.
+ -- Added EXT:BYTES-CONSED-BETWEEN-GCS, a function that returns (and sets when
+    used with setf) *BYTES-CONSED-BETWEEN-GCS*.  Additionally, it changes
+    *GC-TRIGGER* immediately to reflect the new values of *bytes-consed...*.
+ -- TIME now displays the GC run-time.
+ -- Added EXT:*GC-RUN-TIME* with accumulates the INTERNAL-RUN-TIME spent doing
+    garbage collection.  Added declarations to make EXT:GET-BYTES-CONSED more
+    efficient.
+ -- The top-level REP loop now zeros the unused non-zero portion of the
+    control stack to discourage spurious garbage retention.
+ -- The garbage collector now closes open file streams when it reclaims them.
+
+
+Packages:
+ -- The LISP and USER packages have been renamed to COMMON-LISP and
+    COMMON-LISP-USER.  LISP and USER are nicknames, so they can still be used.
+ -- The LISP package namespace has been cleaned up somewhat.  For example,
+    *DESCRIBE-PRINT-LEVEL* is no longer exported from LISP.
+ -- The Mach/Unix division in the package system has been clarified a great
+    deal.  Unix specific features have been moved from the MACH package to the
+    UNIX package.  Mach specific features have been left in (or moved to) the
+    MACH package.  For example, all standard Unix syscalls are related
+    definitions are un UNIX, whereas vm_statistics remains in MACH and GR-CALL
+    has been moved to MACH.
+
+SETF cleanups:
+ -- Changed GET-SETF-METHOD-MULTIPLE-VALUE to try to macroexpand-1 the form
+    when it's an atom in case it's a symbol-macro as per the X3J13 cleanup
+    SYMBOL-MACROLET-SEMANTICS:SPECIAL-FORM.  Now you can safely INCF, etc.
+    symbol macros where the macroexpansion has side effects.
+ -- Fixed SETF of GETF to evaluate the various parts in the correct order as
+    per X3J13 cleanup SETF-SUB-METHODS:DELAYED-ACCESS-STORES.
+ -- X3J13 cleanup SETF-MULTIPLE-STORE-VARIABLES:
+    Extend the semantics of the macros SETF, PSETF, SHIFTF, ROTATEF, and
+    ASSERT to allow "places" whose SETF methods have more than one "store
+    variable".  In such cases, the macros accept as many values from the
+    newvalue form as there are store variables.  As usual, extra values
+    are ignored and missing values default to NIL.
+ -- Extended the long form of DEFSETF to allow the specification of more
+    than one "store variable", with the obvious semantics.
+ -- GET-SETF-METHOD signals an error if there would be more than one
+    store-variable. 
 
 
-	    Release notes for CMU Common Lisp 15b, 19 October 91
-
-These release notes cover changes since the beta release of version 14c on 6
-June 91.  SPARCstations and Sun4's are now supported under SunOS (as well as
-Mach), which makes CMU CL more usable outside of the CMU environment.  CMU CL
-also runs on Mach (or OSF/1) DECstations, and IBM RT support is coming real
-soon now.
-
-
-			    GENERAL SYSTEM CODE
+Printer:
+
+Almost all of the printing code has been rewritten/restructured to support
+all of the printing features added to the language.  Some highlights:
+ -- *PRINT-READABLY* is now supported.
+ -- *PRINT-CIRCLE* works irrespective of *PRINT-PRETTY*.  Note: the default
+    structure printer currently does not work when *PRINT-CIRCLE* is true: you
+    get #1=#1#.
+ -- *PRINT-LEVEL* abbreviation now works automatically inside structure
+    printers.
+ -- XP has been replaced with a native pretty printer that is fully
+    integrated with the rest of the system.  This Supports the ANSI
+    pretty-printing interface instead of the old Waters XP interface.  Existing
+    uses of the old interface will need to be updated to use the new names.
+ -- The pretty-printer now unparses backquote forms on printing.  To retain
+    this information, the backqoute read macro no longer expands into LIST,
+    CONS, etc.  Internal functions are used instead.
+ -- The macros WITH-STANDARD-IO-SYNTAX and PRINT-UNREADABLE-OBJECT have
+    been added.
+ -- All new format.  Supports the FORMATTER macro and all the pretty-printing
+    directives.  FORMAT has extended to accept a function as the format control
+    (as an alternative to a string.)
+ -- Added support for READTABLE-CASE in symbol printing.  Printing when
+    *PRINT-CASE* is :CAPITALIZE and *PRINT-ESCAPE* is NIL is now slightly
+    different than before.  Added some missing array type declarations in
+    symbol printing.
 
 Bug fixes:
- -- MAKE-ARRAY now to allows :INITIAL-CONTENTS any kind of of sequence, not
-    just a list.
- -- VECTOR-PUSH and VECTOR-PUSH-EXTEND now return the original fill
-    pointer, not the new fill pointer.
- -- VECTOR-POP now returns the value indexed by the new fill pointer, not
-    the original fill pointer.
- -- Fixed two bugs in bignum division.
- -- FORMAT-PRINT-NUMBER now correctly inserts commas for negative numbers
-    (don't print -,123).
- -- Fixed GET-SETF-METHOD to only inhibit setf macros when there is a local
-    function, not also when there is a local macro.
- -- Changed the debugger to use *READ-SUPPRESS* when skipping over top-level
-    forms in the source file to prevent spurious read errors.
- -- In the printer, deleted an incorrect and questionably optimal
-    optimization of symbol package qualification.
- -- When printing characters, prefer the semi-standard character-names
-    NEWLINE, ESCAPE and DELETE to the old LINEFEED, ALTMODE and RUBOUT.
- -- Fixed one-off error in list REMOVE-DUPLICATES :FROM-END.  Fixed
-    SUBSTITUTE & friends to pass arguments to the TEST in the right order.
-    Fixed SUBSTITUTE not to randomly apply the KEY to the OLD value.  Changed
-    LIST NSUBSTITUTE & friends to work in the :FROM-END case.
- -- Several bug-fixes to RUN-PROGRAM and subprocess I/O.
- -- Fixed all recursive READ calls in sharp-macros to specify eof-error-p T, so
-    that EOF errors are signalled when appropriate.
- -- The REMOTE RPC protocol (used for slave control) can now send bignums.
- -- Passing of unused arguments to interpreted functions now works.  Previously
-    the variables would be bound to the wrong arguments.
- -- Many fixes to the time parsing and printing extensions.
-
-X3J13 cleanups:
- -- Added #P pathname read syntax, and changed the pathname printer to use it.
- -- Added :KEY argument to REDUCE.
+ -- Fixed a bug which caused some float printing format directives to
+    infinitely loop when a fixed-width field overflowed.
+ -- Specify stream when printing unbound marker.
+ -- Fixed FORMAT to override printer control variables when printing float
+    exponents so that they are always printed in decimal, etc.
 
-Enhancements:
- -- Added code to compile the argument to TIME when possible, and print a
-    warning when it isn't.  Optimized the TIME macro to keep the consing
-    overhead of using it zero.
- -- Changed all places absolute pathnames were used to indirect search-lists,
-    mostly library:.  "lisp" must now be findable on your PATH for Hemlock to
-    be able to start slaves.
- -- Increased readability of DESCRIBE function output by printing function and
-    macro doc strings before arg and result info.
- -- The CMUCLLIB search path environment variable is now used to find lisp.core
-    and other library files, instead of always assuming the path
-    /usr/misc/.cmucl/lib.
-
-
-				 COMPILER
-
-Bug fixes:
- -- EVAL now uses the constant value recorded in the compiler environment
-    that compile-time references to constants works better.  Now
-    (defconstant a 3) (defconstant b (+ a 4)) works again.
- -- Don't try to infer the bounds of non-simple arrays, since they can change.
- -- Fixed some problems with block compilation, maybe-inline functions and
-    unused function deletion.
- -- DEFMETHODs can now use &ALLOW-OTHER-KEYS without killing the compiler.
- -- Fixed VALUES declaration to work correctly when zero values are specified.
- -- The FORMAT transform now warns if there are to many or too few args.
- -- Changed SYMBOL-MACRO-LET to SYMBOL-MACROLET.
-
-X3J13 cleanups:
- -- Make all non-symbol atoms self-evaluate.
-
-Enhancements:
- -- Made the default for COMPILE-FILE's :error-file argument be nil.
- -- Changed notes about incompatible changes in function arguments lists to be
-    a warning rather than a note.
- -- Source-level optimization efficiency notes now print out a
-    transform-specific string to describe what the transform was trying to do,
-    instead of just saying "unable to optimize."
-
-
-				  HEMLOCK
-
-This is version 3.5.
-
-Note: The default value of "Slave Utility" is now just "lisp" which hopefully
-will be found on path:.  If you don't have lisp on your path, you need to set
-"Slave Utility" to the full pathname of lisp, /usr/misc/.cmucl/bin/lisp on CMU
-machines.
+
+Reader:
+
+ANSI Cleanups:
+ -- *READ-EVAL* is now supported.  If a #. is encountered while *READ-EVAL*
+    is NIL (default T), an error is signaled.  This intended to allow
+    ``secure'' READ-based command interfaces to be written.
+ -- READTABLE-CASE is now supported.
+ -- The reader now signals the correct type of error when things go wrong
+    instead of always signaling a simple-error.
+ -- Changed the return value of SET-SYNTAX-FROM-CHAR from NIL to T as per X3J13
+    cleanup RETURN-VALUES-UNSPECIFIED:SPECIFY.  [Hard to believe nobody has
+    complained about not conforming to this one.]
 
 Bug fixes:
- -- Under TTY screen management, a MAKE-WINDOW - DELETE-WINDOW sequence now
-    leaves the screen unchanged.
- -- Fixed some character attribute constants to make 8-bit chars work.
- -- "Center Line" now works when invoked on the last line of the buffer.
- -- Fixed "Move Over )" to use a permanent mark instead of a temporary mark
-    because it deletes text.
- -- Fixed sentence motion to be able to move to the end of the buffer.
- -- Fixed the hemlock banner in the status line to not have "!" after
-    the date.
-
-Enhancements:
- -- Removed the definitions of the obsolete COMMAND-CHAR-BITS-LIMIT and
-    COMMAND-CHAR-CODE-LIMIT.
- -- Modified "Visit File" to issue a loud message whenever another buffer
-    already contains the file visited. The quiet message often went unnoticed,
-    defeating its purpose.
- -- The definitions in FLET, LABELS and MACROLET are now indented correctly.
- -- Added DEFINDENT's for the "DEBUG-INTERNALS" interface.
- -- Modified Lisp indentation to check if the mark in was in a string context.
-    If it is, then we go to the column after the opening double quote.
-    Otherwise, we use the first preceding non-blank line's indentation.  This
-    fixes the problem with doc strings and ERROR strings which got indented
-    respectively at the beginning of the line and under the paren for the ERROR
-    call.
- -- Added some prototype netnews support.  Details to be anounced later.
- -- Added font support for the TTY.  Allow active region highlighting and open
-    paren highlighting when on the TTY, as they now work.
- -- Changed the compile-in-slave utilities to count notes and display in
-    completion message.  Also fixed not to print echo area messages "Error in
-    NIL ..."
-
-New commands:
-
-"Fill Lisp Comment Paragraph"	Lisp: M-q
-   Fills a flushleft or indented Lisp comment, or lines all beginning with the
-   same initial, non-empty blankspace.  When filling a comment, the current
-   line is used to determine a fill prefix by scanning for the first semicolon,
-   skipping any others, and finding the first non-whitespace character;
-   otherwise, the initial whitespace is used.
-
-"Shell Complete Filename"	Process: M-Escape
-    In a shell buffer, attempts to complete the filename immediately before
-    point.  The commands that start "Process" buffers with shells establish a
-    stream with the shell that tries to track the current working directory of
-    the shell.  It uses the variable "Current Working Directory" to do this.
-    For it to work, you should add the following to your .cshrc file:
-       if ($term == emacs) then
-	  alias cd 'cd \!* ; echo ""`pwd`"/"'
-	  alias popd 'popd \!* ; echo ""`pwd`"/"'
-	  alias pushd 'pushd \!* ; echo ""`pwd`"/"'
-       endif
-
-"Manual Page"
-    Runs man(1) in a scratch buffer and displays it in the current window.
-
-"Typescript Slave Status"	Typescript: H-s
-   Interrupt the slave and cause it to print status information.
-
-
-Hemlock-internals changes:
- -- CREATE-WINDOW-FROM-CURRENT now creates a window according to its new
-    proportion argument instead of simply splitting the current window in two.
-    It returns nil without doing anything if either window is too small.
- -- WINDOW-GROUP-CHANGED no longer unifies the sizes of window when the
-    user resizes a group.  It now tries to distribute the new size of the group
-    according to the proportions of the old size consumed by the windows.
- -- Changed ARRAY-ELEMENT-FROM-MARK to use AREF for the Netnews stuff.  I
-    documented this to be an internal interface since a few other modes use it.
- -- WRITE-FILE now takes an :append argument.
- -- Modified %SET-MODELINE-FIELD-FUNCTION to allow its function argument to be
-    a symbol or function since the purpose is to FUNCALL the thing.  Since the
-    new system is up to spec on the disjointedness of functions, this needed to
-    be fixed for usefulness.
+ -- Fixes to several bugs with respect to #+, #-.  In particular, stacked
+    conditionals like "#+foo #-bar baz" now work 
+ -- #n= and #n# now detect more error conditions and work on structures.
+ -- # is now a non-terminating macro character, so foo#bar is read as a
+    symbol.
+ -- Added Ted's changes to make INTERNAL-READ-EXTENDED-TOKEN work when there
+    are `|' escapes.  The main significance of this is that #+nil '|foo;bar|
+    and #:|foobar| now work properly.  Also changed this function to recognize
+    unquoted colons so that #:foo:bar will error, but not #:foo\:bar.
+
+Enhancement:
+ -- Export new variable *ignore-extra-close-parentheses* if true (the default),
+    extra close parens are only a warning, not an error.  Previously unmatched
+    close parens were quietly ignored.
 
 
-	Release notes for CMU Common Lisp 14c, 6 June 91
-
-  ** The FASL file format has changed, so all files must be recompiled. **
-
-These notes describe changes since the beta release of 3 February 91.  This is
-the first CMU CL release to run on Mach SPARCs as well as on PMAXen (DECstation
-3100 or 5000).  Version 14c will go out to both beta and default, since there
-is currently no default release.
-
-This release has a substantial space reduction due to compiling with debug-info
-1 and reduced safety.  The core is currently 19.2 meg, which is 7 meg smaller
-than the last beta release (despite added functionality.)
-
-Major parts of the system are now compiled with no error checking.  Users
-should not notice any reduction in safety, since user visible interfaces are
-supposed to be fully checked.  Standard functions that users can cause to get
-unbound symbol or array index errors needed to be changed to either do explicit
-error checks or locally use a safe policy.  Some of these cases may have been
-missed.  Let us know if you get any less-than-informative error messages
-(segmentation violation) inside standard functions.
-
-
-New packages:
-
-The X based graphical inspector is now available.  It now uses standard
-fonts (courier) and has a bigger help window.
-
-An improved version of the profile package (previously in the library) is now
-in the core.  It now compensates for recursive calls or nested calls, and
-interacts better with TRACE and function redefinition.  The old profile
-documentation is in:
-    /afs/cs/project/clisp/library/profile/profile.doc
-
-
-Code:
-
-Argument type checking for Common Lisp functions is now driven by the
-compiler's function type database (the types reported by DESCRIBE.)  This means
-that some type errors might be detected that were previously unnoticed.
-
-Changed the internal WITH-ARRAY-DATA macro to do bounds checking.  This causes
-various string functions to give better error messages when an :END arg is out
-of bounds or :START is greater than :END.
-
-Tuning:
-    Some tuning in SYSTEM:SERVE-EVENT which reduces consing and speeds up
-    Hemlock and terminal I/O.
-
-    Changed GET-INTERNAL-REAL-TIME to subtract out the time of the first
-    call to minimize the probability of bignum results.  Also some other tuning
-    that reduced the consing of this function to 0.
-
-    Tuned bignum code and added declarations to reduce number consing.
-
-
-DEFSTRUCT:
-    Fixed default-structure-print to work when *print-circle* is T.
-    Merged fix to DEFSTRUCT constructor parsing that allows multiple default
-    constructors, or none at all.
-
-Merged bug fixes from old RT system:
-    STANDARD-CHAR-P no longer returns T for #\return.
-
-    Fixed a bug in format regarding ~@*.
-
-    Fixed the read-eval-print loop to frob +, ++, +++ correctly.
-
-    Fixed a bug in Y-OR-N-P.  It was calling WHITESPACEP on a symbol.
-
-    Fixed READ-QUOTE to call READ with t for eof-errorp which it previously
-    failed to do.  fixed READ-PRESERVING-WHITESPACE to no longer screw with
-    eof-errorp based on recursivep
-
-Package system:
-    Changed DEFPACKAGE to expand into stuff that will have the package effect
-    at compile time as well as at load time.
-
-    Fixed DEFPACKAGE to deal more correctly with finding symbols that must
-    exist.
-
-    Fixed package system code to not destructively modify the USE, USED-BY and
-    SHADOWING-SYMBOLS lists so that they don't get retroactively modified when
-    we hand them off to the user.
-
-    Also, in SHADOW, when symbols is NIL, shadow no symbols, not NIL.
-
-    Fixed a bug in RENAME-PACKAGE that happened when the new name was one of
-    the old nicknames.
-
-Streams:
-    Tweaked handling of LISTEN a bit to allow READ-CHAR-NO-HANG to work
-    correctly.  Fixed the listen method for concatenated streams.  It failed to
-    step to the next stream when the current one hit eof.
-
-    Make two-way streams force-output on the output side before passing any
-    input requests on to the input side.  Made *standard-output* a two-way
-    stream so that reading *standard-input* will force output on standard
-    output.  This eliminates the need for explicit calls for FORCE-OUTPUT when
-    prompting.
-
-    Some tuning and bug fixes to FD-STREAMS (file descriptor streams) which are
-    used for file I/O (and now for communication with the X server.)  Also, now
-    OPEN complains if you try to open a non-writable file for output with
-    :RENAME or :RENAME-AND-DELETE.  Previously this would succeed as long as
-    the directory was writable.  SYSTEM:READ-N-BYTES on FD streams is now more
-    efficient, but does *not* wait using SERVE-EVENT; it blocks instead.
-
-TRACE:
-    Use FORCE-OUTPUT instead of FINISH-OUTPUT to prevent gratuitous slowdowns
-    when running in a slave.
-
-    If we enter trace recursively (due to the printer calling the traced
-    function), then just quietly call the function, instead of signalling an
-    annoying "unable to trace" error.
+Pathnames:
+
+This release supports all the new CltL2 pathname features except for logical
+pathnames.  Following is an overview of the new pathname support.
+
+Programs that actually conform to the CLtL1 pathname spec will have very few
+problems.  However, the CLtL1 spec was extremely vague, and CMU CL did not
+make use of much of the allowed flexibility, so many technically non-portable
+programs previously worked under CMU CL.
+
+The main incompatible changes from CLtL1 to CLtL2:
+ -- Symbols are no longer acceptable filenames.
+ -- PATHNAME-HOST may be any object.
+ -- :UNSPECIFIC is now a legal pathname component.
+ -- MERGE-PATHNAMES now recognizes relative pathnames and treats them
+    specially. 
+
+The format of directories is now specified (to be a list in a certain format.)
+This required an incompatible change from the previous practice of using a
+vector PATHNAME-DIRECTORY and using "DEFAULT" or :ABSOLUTE in the
+PATHNAME-DEVICE to indicate relative and absolute pathnames.
+
+In a related change, the CMU SEARCH-LIST extension was changed so that the
+search-list now appears in the PATHNAME-DIRECTORY as:
+    (:ABSOLUTE #<Search-list "name"> ...)
+
+Other changes to search-lists:
+ -- (SETF SEARCH-LIST) now accepts a string or pathname, and converts it into
+    a one-element list.
+ -- Search-list elements are now canonicalized to pathnames rather than to
+    strings. 
+ -- Instead of returning NIL, SEARCH-LIST now signals an error when it is
+    called on an undefined search list. 
+ -- SEARCH-LIST-DEFINED-P is a predicate that tells if the search list is
+    currently defined.
+
+New features which are now supported:
+ -- Wildcard pathnames are now fully supported.  In addition to allowing :WILD
+    in any pathname component, "extended wildcards" such as "foo*.*" are also
+    supported.  A consequence of this is that PATTERN objects may appear in
+    wildcard pathname components instead of strings.  See PATHNAME-MATCH-P and
+    TRANSLATE-PATHNAME.
+ -- As a CMU CL extension, a wildcard pathname may be used as the argument to
+    any filesystem interface (like OPEN) as long as it matches only one file.
+ -- The pathname :COMMON case mechanism provides a way around the problems of
+    portably specifying string pathname components in the presence of operating
+    systems with differing preferred case in their filesystem.  An uppercase
+    string "LISP" is mapped to the "customary case" (lowercase on unix.)  
+    Lowercase is also inverted: "readme" becomes "README".  Mixed case is left
+    alone.  Note that this mechanism is explicitly enabled by supplying :CASE
+    :COMMON to functions such as MAKE-PATHNAME.  The default is the old
+    behavior (:CASE :LOCAL).
+
+Also, DIRECTORY now actually returns the TRUENAME of each file (as it was
+always supposed to do.)  If a matched file is a symbolic link, the truename may
+be a file in some other directory that doesn't even match the pattern.  The old
+behavior can be obtained by specifying :FOLLOW-LINKS NIL.
+
+The new wildcard pathname mechanism has not yet been used to replace the old
+single-wildcard matching in Hemlock DIRED, etc.
 
-LOAD:
-    Changed load to look at the file contents for the "FASL FILE" header to
-    determine whether to fasload or slow load, instead of forcing use of a
-    single fasl file type.  Also, when the given filename doesn't exist and
-    doesn't have a type, try ``fasl'' in addition to the machine specific fasl
-    file type.  Eliminated the "feature" whereby zero-length fasl files were
-    considered to be valid (doing nothing).  Now if you try to load a file with
-    a fasl file type, but that doesn't have a valid fasl header, then you will
-    get an error (proceeding loads as a source file.)
-
-    When the loader prints comments about loading progress, the number of
-    leading semicolons is now the depth of recursive loading.
-
-    Added a CONTINUE restart in LOAD that returns NIL. 
-
-GC:
-    Fixed some bugs in control of garbage collection that should solve some
-    problems with GC failing to be triggered automatically.  Also, GC no longer
-    implicitly reenables automatic GC if it has been disabled with GC-OFF.
-
-    Changed the default GC notify function to not beep.  The old behavior can
-    still be obtained by setting *GC-VERBOSE* to :BEEP.  Note that this only
-    affects use on TTYs, since slave GC notification works differently.
-
-    Wrapped a without-interrupts around the guts of maybe-gc so that the notify
-    messages and state updates don't get seperated from the actual gc.
-
-    Removed the icache flushing stuff from GC, because it was unneeded (and
-    sometimes printed annoying messages that it didn't work).
-
-X3J13 cleanups:
-    The non-destructive string functions now accept characters as well as
-    strings and symbols.
-
-    MACROEXPAND now expands symbol macros.
-
-    Now almost all Common Lisp functions which are SETFable have a (SETF name)
-    function.  The exceptions are functions where it makes no sense (LDB,
-    GETF), and a few other functions (GET, GETHASH.)  Now SETF of APPLY works
-    for any function which has a setf function.
-
-    Changed GET-SETF-METHOD to ignore setf macros (always global) when there is
-    a local macro or function of the place function.  [An x3j13 cleanup]
-
-    Fixed the LOOP THEREIS keyword.  Changed a null test in LOOP into an endp
-    test.
-
-Other bug fixes:
-    Fixed sequence functions with output type specifiers to handle DEFTYPE'ed
-    types and other complex types correctly.  (COERCE still can't hack
-    DEFTYPEs, though.)
-
-    Fixed typep of (satisfies (lambda (obj) ...)) to coerce the form into a
-    function so that "object not function" errors don't result.
-
-    Fixed DOCUMENTATION to return only one value.
-
-Enhancements:
-    ROOM is now much more verbose, displaying a breakdown of memory usage by
-    object type.
-
-    Changed the printer to print the name of code objects and the value of
-    value cells.
-
-
-CLX:
-
-Modified EXT:OPEN-CLX-DISPLAY to set XLIB:DISPLAY-DEFAULT-SCREEN to the
-screen specified by the user before returning the display.
-
-Merged in a bug-fix to EVENT-LISTEN to make it return the right number of
-events when called when there is a current event (i.e. in an EVENT-CASE.)
-
-Fixed the CLX X interface to be much more efficient, as well as fixing some
-bugs.  The low-level I/O to the server is now faster and conses much less.
-Enabled some code speeds up pixarray read/write (though it could still be much
-better.)  Also, eliminated redundant type checking and fixed some broken
-declarations.  This fixes problems with CLX sometimes not working with some X
-servers (like the RT server.)
+
+Debugger:
+ -- Added Miles' changes to keep errors and warnings on one line if they fit.
+ -- The debugger now starts up with the error frame as the current frame, so
+    it is no longer necessary to manually skip over internal frames resulting
+    from the error system invocation.
+ -- Fixed some debugger bugs that appeared when debugging interpreted code.
+ -- Added ``DESCRIBE'' debugger command.
+ -- Merged Miles' changes that allow the use of restart names as debugger
+    commands.
+ -- Changed SHOW-RESTARTS to also display the restart name (but only if it's
+    not shadowed by a higher priority restart).  Changed the restart command
+    to look for restarts by name if a symbol is typed.
+ -- Bind *CURRENT-LEVEL* to 0, *PRINT-READABLY* to nil, and *READ-EVAL* to T
+    when entering the debugger to make sure things print as expected.
+
+The debugger programmer (DEBUG-INTERNALS) interface is now documented in the
+User's Manual.  This interface allows the coding of debuggers and debugger
+extensions without requiring an intimate understanding of the compiler and
+run-time system.  Be warned that DI features (such as breakpoints) not used by
+the current debugger may not work very well (wait for version 17.)
+
+Debug internals changes:
+ -- DI:DEBUG-FUNCTION-FUNCTION is now implemented.
+ -- Added DI:FLUSH-FRAMES-ABOVE for cleaning up frames to be bound to
+    DEBUG:*STACK-TOP-HINT*.
 
+
+Defstruct:
+
+Various fixes and enhancements to defstruct slot parsing and inclusion.   
+It now works to define structures such as:
+    (defstruct super a)
+    (defstruct (sub1 (:conc-name super)) one)
+    (defstruct (sub2 (:conc-name super)) two)
+    (super-a (make-sub1))
+
+previously, a definition such as for SUB2 would define SUPER-A to be a
+SUB2-specific function, which could then no longer be used on other types.  The
+spec doesn't clearly say that such a construct is legal, but its use seems
+fairly common.
+
+Also, slot parsing is now more rigorous.  Unrecognized slot options cause an
+error, as does a slot spec like: (defstruct foo (a :type t))
+
+Fasl dumping of constant structures has been fixed to conform to X3J13.  The
+main significance of this is that DEFSTRUCT structures are no longer dumpable
+by default.  However, the generic function MAKE-LOAD-FORM isn't really used.
+Instead, a new defstruct option, :MAKE-LOAD-FORM-FUN, has been added that can
+be used to specify a function that acts like a MAKE-LOAD-FORM method.  When we
+have a CLOS that supports STRUCTURE-CLASS, the default method for
+MAKE-LOAD-FORM will use this information instead of having the compiler use it
+directly.  The old behavior can be enabled on a structure by structure basis by
+using the :MAKE-LOAD-FORM-FUN defstruct option:
+    (defstruct (foo (:make-load-form-fun :just-dump-it-normally))
+      ...)
 
+
 Compiler:
 
-Bug fixes:
-    Fixed incorrect argument type information for some standard Common Lisp
-    functions.
-
-    Fixed PROCLAIM to work correctly when the argument isn't a constant.
-
-    Fixed the DEBUG optimize quality to be called DEBUG instead of DEBUG-INFO.
-
-    Fixed the compiler to not flame out if it sees a SATISFIES type specifier
-    where the predicate function is undefined, and generally to deal better
-    with testing whether a compile-time constant is of some type that may not
-    be properly defined yet.
-
-    Fixed a number of bugs in the handling of closures over top-level
-    variables.
-
-    Fixed a problem with semi-inline functions.
+Cleanups:
+ -- Added the LOAD-TIME-VALUE support special form.
+ -- Displaced or adjustable arrays and vectors with fill pointers can now be
+    dumped in fasl files, but are converted to simple array with the same
+    elements.
+ -- Arrays of floats are left as arrays of floats instead of being
+    converted into arrays of element-type T that just so happen to hold a
+    bunch of floats.
+ -- Changed IGNORE and IGNORABLE to recognize #'fn-name for declaring that
+    local functions are not used.  Exported IGNORABLE from LISP.
+
+New optimizations:
+ -- Iterations written using tail recursion are now optimized through a
+    special-casing of local functions where all calls but one are
+    tail-recursive self-calls.  Such functions are compiled with no
+    environment manipulation, resulting in the same code as explicit
+    iteration.
+ -- Loop rotation (Knuth "while" loop optimization) been added.  This is the
+    optimization that negates the loop exit test and places it at the end of
+    the loop, and then jumps there at loop entry.  Note that this is part of
+    control optimization, and not simply a recoding of certain iteration
+    macros.  In fact, for historical reasons DO, etc. already had the exit
+    test negated, but the compiler was cleverly un-negating the test.
+ -- Flow analysis now recognizes function calls and special forms which do
+    not yield any value because they unwind or signal an error.  This results
+    in improved code for error checks, since the compiler can get by with
+    fewer unconditional branches.  A function can be declared not to return by
+    declaring its result type to be NIL (not to be confused with NULL).  If a
+    function declared NIL does return, an error will be signalled.
+ -- Added derive-type methods for ASIN, ACOS, ACOSH, ATANH and SQRT which
+    figure out whether the result type is real on the basis of the argument
+    range.  Also, the result of ATAN is always real, so we don't need a result
+    type assertion.
+ -- Added optimization which deletes MULTIPLE-VALUE-BINDs when all
+    variables have been deleted.
+ -- Eliminated some spurious checking of the result types of safe VOPs (such
+    as the SPARC tadd for fixnum arithmetic.)
+ -- Transform uses of the SEARCH generic sequence function on simple strings
+    into a call to a more efficient string-specific function.
+ -- Added multiplier recoding of (UNSIGNED-BYTE 32) multiplication.  This
+    converts 32 bit (or smaller) unsigned multiplication by any compile-time
+    constant into a shift-add sequence.  This is much faster when the constant
+    is a near power of two or when general multiplication is slow (as on the
+    SPARC.)
+ -- Added comprehensive handling of arithmetic and logical identities when
+    an arg is -1, 0 or +1.
+ -- Added a RANDOM derive-type method: (random 13) is (integer 0 12).
 
-    The compiler note count is no longer incremented when notes are suppressed
-    by INHIBIT-WARNINGS 3.
-
-    Some fixes that should eliminate spurious undefined-function warnings.  In
-    particular, definitions of functions in non-null lexical environments will
-    be noticed.
-
-    Also, now if a function is defined incompatibly with previous calls, the
-    warning will have proper source context.
-
-    Fixed a bug in accessors for 1,2, and 4 bit arrays that was causing #* to
-    generate incorrect bit vectors.
-
-    Changed the type system to consider #(:foo :bar) to be a subtype of 
-    (vector keyword).  In other words, array subtype relations are determined
-    according to the specialized element types actually present in this
-    implementation, rather than assuming that all element types can be
-    discriminated.
-
-    Fixed a problem that could cause type checks to be spuriously deleted in
-    some contexts where there is a local change in the SAFETY optimization
-    policy.
-
-DECStation (PMAX) specific changes:
-
-    Representation conversion of a SAP (system area pointer) to a pointer
-    representation now results in an efficiency note.
-
-    Fixed EQL (and =) on integers to not unnecessarily cons a word-integer
-    argument just because one argument is known to be a fixnum.
-
-    New version of the assembler with instruction scheduling (no-op deletion)
-    support.  This reduced the size of the core by 1.3 meg, and makes
-    everything run faster too.
-
-    Fixed TRUNCATE on floats to truncate instead of rounding.
-
-SPARC notes:
-    The SPARC port is not yet as highly tuned as the PMAX port.  In particular,
-    no instruction scheduling is done yet.  This is probably a 10% performance
-    penalty.
 
 Enhancements:
-    Made forms within a LOCALLY be recognized as "top-level" so that subforms
-    can be compiled separately.
-
-    The compiler now ignores assignments to special variables when determining
-    which representation to use for a variable.  Also, we don't print
-    representation selection efficiency notes about coercion that are due to
-    error checking code.
-
-    Added support for the EXT:CONSTANT-FUNCTION declaration (already in the
-    documentation.)
-
-    When a DEFUN is compiled and the name has a FTYPE declaration, then a note
-    is printed if any arguments to the function are assigned to (i.e. SETQ) in
-    the body, as this inhibits application of the FTYPE declaration to the
-    argument variables.
-
-    (<mumble>-P x) structure predicates are now just as efficient as
-    (TYPEP x '<mumble>).
-
-    Added type inference methods for sequence functions, and various functions
-    that return an argument as their result value.
-
-    A number of improvements to register allocation.
-
-    Added a new optimization of MULTIPLE-VALUE-CALL which converts MV calls
-    having a known number of arguments into MULTIPLE-VALUE-BIND/FUNCALL.
-    Combined with some other existing optimizations, this allows functions like
-    to be efficiently inline expanded (i.e. the APPLY turns to a FUNCALL):
-	(defun foo (&rest x)
-	  (apply #'glorp x))
-
-    Reduced the size of debug information for OPTIMIZE DEBUG <= to 1.
-    If debug-info is < 1, then don't dump debug-args or function type.
-
-    Disabled the compiler's internal consistency checking by default.  These
-    phases are only useful for locating compiler bugs.
-
-X3J13 cleanups:
-    The :VERBOSE and :PRINT keyword arguments are now supported by
-    COMPILE-FILE.  The :PROGRESS keyword is a CMU extension that provides an
-    even higher level of verbosity.  The *COMPILE-VERBOSE*, etc., variables are
-    also now supported.
-
-    Changed declaration processing to treat FUNCTION declarations as ordinary
-    variably type declarations.  The old semantics is still obtained when the
-    second arg to the declaration is a list (as it always would be in the old
-    usage.)
-
-Block compilation:
-    Added new START-BLOCK and END-BLOCK declarations to allow portions of a
-    file to be block compiled (instead of only entire files.)  This mechanism
-    also allows the entry points to a block to be specified, allowing improved
-    compilation of non-entry-point functions.  Fixed many bugs that appeared
-    once block compilation was actually used.
-
-    COMPILE-FILE now has :ENTRY-POINTS and :BLOCK-COMPILE keywords.
-    :BLOCK-COMPILE NIL will totally inhibit compile-time resolution of function
-    names (including self-calls.)  The default (:SPECIFIED) allows compile time
-    resolution, but still compiles one top-level form at a time, preventing
-    local calls between top-level forms.  In this mode, a
-        (BLOCK-START Entry-Point*)
-    declaration will start block compilation.  Block compilation is terminated
-    by BLOCK-END, or the BLOCK-START of the next block.
-
-    See also the COMPILE-FILE doc string.
-
-
-Context sensitive declarations:
-    Added the OPTIMIZE-INTERFACE declaration, which is just like OPTIMIZE, but
-    specifies the policy for function argument syntax checking and checking of
-    any declared argument types, allowing it to be distinct from the general
-    compilation policy.  This allows debugged code to be compiled with lowered
-    safety in its "guts", while still doing checking on the arguments that
-    users may supply (incorrectly.)  Any quality not separately specified
-    defaults to the normal OPTIMIZE quality.
-
-    Fixed WITH-COMPILATION-UNIT keyword to be :OVERRIDE instead of :FORCE.
-    Also, added :OPTIMIZE and :OPTIMIZE-INTERFACE for changing the "global"
-    compilation policy within the dynamic extent.
-
-    Added :CONTEXT-DECLARATIONS, which provides a way to insert declarations
-    conditional on pattern matching of the context in which the definition
-    appears.  So you can compile all external functions safe, or whatever.  See
-    the doc string for WITH-COMPILATION-UNIT.
-
-
-Hemlock:
-
-Tuning:
-    Changed typescript streams to cache the line length.  This greatly speeds
-    up slave output.
-
-    Several changes to allow redisplay to be delayed until process output (i.e.
-    in a shell buffer) is complete.  This allows the editor to catch up with
-    output by only displaying the final state of the shell buffer, instead of
-    forcing every line of output to be displayed.  This is very nice with slow
-    terminals or large outputs.
-
-TTY redisplay:
-    Changed TTY redisplay to get the terminal size and speed from Unix using
-    the appropriate "ioctl" calls.  The speed of a PTY (and hence any telnet or
-    MCN connection) is infinite by default.  For best results with TTY
-    redisplay, it is crucial to set the terminal speed with the Unix "stty"
-    command:
-    	stty 2400
-    	stty 9600 etc.
-
-    Setting the speed allows the editor to keep in synch with the terminal so
-    that typing a command will temporarily abort redisplay until until there is
-    no typeahead.  This way, if you type C-v C-v in succession, output of the
-    first screen will stop when you type the second C-v.
-
-    Fixed several bugs in TTY redisplay.  "Unexpected zero transition delta" is
-    gone.  Also, fixed some problems with the screen not being updated properly
-    after redisplay has been aborted.  (When you type several commands in quick
-    succession.)
-
-    REDISPLAY now returns T, NIL or :EDITOR-INPUT.  T is returned when
-    redisplay changed the screen.  NIL is returned when there was no change.
-    :EDITOR-INPUT is returned when redisplay tried to update the screen, but
-    was aborted due to pending editor input.
-
-    Fixed REDISPLAY-WINDOWS-FROM-MARK so that process output won't cause
-    redisplay when we aren't in Hemlock.
+ -- Changed the compiler to temporarily increase *BYTES-CONSED-
+    BETWEEN-GCS* by a factor of 4 during compilation of each top-level form,
+    instead of turning off all garbage collection.
+ -- Bind *PRINT-LINES* around compiler error output to
+    *ERROR-PRINT-LINES*.
+ -- Do not warn about undefined variables, functions or types when the
+    INHIBIT-WARNINGS OPTIMIZE quality is 3.
+ -- Some optimizations are now considered "important"; failure of important
+    optimizations causes an efficiency note even when speed=inhibit-warnings
+    (i.e. by default.)
+ -- Print a error summary even when *COMPILE-VERBOSE* is false.  (This is only
+    printed when there are errors, so this doesn't seem a violation of the
+    spirit of the spec.)
 
 Bug fixes:
-    Modified MAKE-BUFFERS-FOR-TYPESCRIPT to make sure the user supplied
-    slave-name is free for use, so we don't clobber currently existing slaves.
-
-    Fixed a bug in completion mode (didn't previously work in the new-compiler
-    system.)
-
-Enhancements:
-    There is a new command "Set Buffer Writable", and the obsolete
-    command "Connect to Registered Eval Server" has been removed.
-
-    Added "Slave GC Alarm" variable (default :MESSAGE) which controls how
-    obnoxious the slave GC notification is.  Other values are like for "Input
-    Wait Alarm", :LOUD-MESSAGE and NIL.
-
-    Made the slave switch demon set debug:*help-line-scroll-count* to
-    most-positive-fixnum, since the editor can do the scrolling for us.
-
-
-SYSTEM, EXTENSIONS:
-
-Made SYSTEM:BITS, BYTES, etc., be defined in the null environment so that they
-can be inline expanded.  This was causing spurious consing in various system
-code.
-
-Fixed EXT:CONNECT-TO-INET-SOCKET to check that we successfully looked up the
-name so that we don't get segment violations on unknown hosts.
-
-Fixed DI:FUNCTION-DEBUG-FUNCTION (though it still returns the XEP.)  
-Some fixes to DI: condition report methods
-
-Added support for the MACH:TIOCGWINSZ and MACH:TIOCSWINSZ ioctls.
-In the Unix interface, extended the length of pathnames from 64 to 1024.
+ -- Merged Miles' fix to disassembly of the MIPS coprocessor move instructions.
+ -- Fixed spelling of "efficency" in exported variables such as
+    *EFFICIENCY-NOTE-COST-THRESHOLD*
+ -- Fixed some cases where incomplete optimization could happen.
+ -- Fixed some arithmetic "identities" that failed to preserve the sign of
+    -0.0.
+ -- Fixed TYPES-INTERSECT to consider any supertype of T to definitely
+    intersect with anything (even an unknown type.)
+ -- Fixed a problem where inconsistent declarations could fail to be detected
+    at compile time.
+ -- Fixed the VALUES transform (which discards unused subforms) to work
+    on (VALUES).
+ -- More bug fixes to dead code deletion.
+ -- Fixed a problem where a special binding would not be removed on exit from
+    the scope if there was no code in the scope (e.g. it had all been
+    deleted.)
+ -- Fixed handling of named (DEFCONSTANT) constants so that EQ
+    relationships are properly preserved.
 
-EXT:ONCE-ONLY now does sequential variable binding.  This can't cause any
-problems, since all names are gensyms, and is often useful.
+
+Extensions:
+
+ -- Export FEATUREP from EXT.  This takes a feature expression and tests it
+    against the value of *FEATURES*.  Allow LISP:AND, LISP:OR, and LISP:NOT in
+    features lists in addition to :AND, :OR, and :NOT.  This makes featurep
+    useful outside of #+ and #-.
+ -- The encapsulation mechanism (similar to advise facilities) has been
+    revamped to work on SETF function names as well as symbols.
+    EXT:ENCAPSULATED-DEFINITION
+       Returns whatever definition is stored for name, regardless of whether
+       it is encapsulated.  Unlike FDEFINITION, this does not strip off the
+       encapsulation.  This is SETF'able.
+    EXT:ENCAPSULATE
+       Replaces the definition of name with a function that binds name's
+       arguments a variable named argument-list, binds name's definition to a
+       variable named basic-definition, and EVAL's body in that context.  Type
+       is whatever you would like to associate with this encapsulation for
+       identification in case you need multiple encapsuations of the same
+       name.
+    EXT:UNENCAPSULATE
+       Removes name's most recent encapsulation of the specified type.
+    EXT:ENCAPSULATED-P
+       Returns t if name has an encapsulation of the given type, otherwise
+       nil.
+    EXT:*SETF-FDEFINITION-HOOK*
+       A list of functions invoked by (SETF FDEFINITION) before storing the
+       new value.  Each hook function must take the function name and the
+       new-value.
 
-Added :TIMEOUT argument to SYSTEM:MAKE-FD-STREAM.  The SYSTEM:IO-TIMEOUT
-condition is signalled if a timeout is specified and exceeded.
+Hemlock:
+ -- Fixed the :FILE branch of "Help on Parse" to trim leading directory
+    components off the pathname if it wouldn't otherwise fit on the screen.
+ -- Fixed GET-EDITOR-TTY-INPUT to not assume that UNIX-READ will always work.
+ -- When we reallocate string table vectors to grow them, clear the old vector
+    so that it won't hold onto garbage (in case the vector was in static space,
+    but pointed to dynamic values.)  This was a major cause of memory leakage
+    in Hemlock.
+ -- Added a (setf (ts-stream-char-pos stream) 0) to the accept-input function
+    so that char-pos will be reset to zero whenever the user presses enter.
+
+PCL:
+ -- The version has been updated to "5/1/90  May Day PCL (REV 4b)".
+ -- The Code walker now understands the real SYMBOL-MACROLET, and the PCL macro
+    definition is no longer used.
+ -- Fixed a bug in WALK-ARGLIST where it would ignore the rest of the current
+    arglist if the current arg destructured.  This was causing it to compile
+    forms like:
+	    (macrolet ((foo ((a b) c) ...)) ...)
+    as:
+	    (macrolet ((foo ((a b)) ...)) ...)
+    note the loss of the arg c.
 
-----------
+
+System:
+
+ -- All the SAP-REF-<n> functions now take byte offsets.  Previously, the
+    16 and 32bit versions were scaled by the element size.
+ -- Fixed UNIX-IOCTL to not flame out of the cmd is a ub-32 instead of a sb-32.
+ -- Added Miles' TCSETPGRP, TCGETPGRP, and TTY-PROCESS-GROUP.
+ -- Unix syscalls are now more restrictive in the kind of arguments that they
+    accept.  In particular, UNIX:UNIX-READ, etc., no longer automatically
+    accept a vector (or string) argument.  You must use VECTOR-SAP to convert
+    the vector to a system area pointer.  Note that WITHOUT-GCING should be
+    wrapped around any syscall which is passed a pointer to the Lisp heap,
+    since the object might otherwise move doing the syscall.
+ -- Changed LOAD-FOREIGN to be exported from ALIEN.  Changed it have keyword
+    args instead of optionals.  Deleted obsolete linker argument.