From: ram+@cs.cmu.edu (Rob MacLachlan)
Newsgroups: comp.lang.lisp
Subject: CMU Common Lisp 16f Available
Date: 6 Jan 93 14:07:38 GMT
Article-I.D.: cs.C0Fr8y.Es5.1
Organization: School of Computer Science, Carnegie Mellon


	    Release notes for CMU Common Lisp 16f, 11 December 92

The changes between 16e and 16f are almost exclusively bug-fixes.  When we
announce a version 17 beta, 16f will probably become the default release
(replacing 15e).  The PCL has been upgraded from "March 92 (2a)" to 
"March 92 (2c)", which provides some bug-fixes; also, all of the patches in
the March-92-PCL-bugs file have been applied.

Enhancements:
 -- PROVIDE & REQUIRE are now back in the system, since proposed ANSI CL has
    reinstated them as deprecated features.  See the doc strings for these
    functions and EXT:DEFMODULE.
 -- The SPARC dynamic heap size limit has been doubled from 64meg to 128meg.

Distribution:

CMU Common Lisp is only available via anonymous FTP.  We don't have the
manpower to make tapes.  These are our distribution machines:
    lisp-rt1.slisp.cs.cmu.edu (128.2.217.9)
    lisp-rt2.slisp.cs.cmu.edu (128.2.217.10)

Log in with the user "anonymous" and "username@host" as password (i.e. your
EMAIL address.)  When you log in, the current directory should be set to the
CMU CL release area.  If you have any trouble with FTP access, please send mail
to slisp@cs.cmu.edu.

The release area holds compressed tar files with names of the form:
    <version>-<machine>_<os>.tar.Z
    <version>-extra-<machine>_<os>.tar.Z

FTP compressed tar archives in binary mode.  To extract, "cd" to the
directory that is to be the root of the tree, then type:
    uncompress <file.tar.Z | tar xf - .

As of 12/11/92, the latest SunOS Sparc release is:
    16f-sun4c_41.tar.Z (6.8 meg)
    16f-extra-sun4c_41.tar.Z (3.5 meg)

The first file holds binaries and documentation for the basic Lisp system,
while the second `-extra' file contains the Hemlock editor, the graphical
inspector and the CLX interface to X11.  The basic configuration takes 16
megabytes of disk space; adding the extras takes another 8 megabytes.  For
installation directions, see the section "site initialization" in README file
at the root of the tree.

If poor network connections make it difficult to transfer a 10 meg file, the
release is also available split into 2 megabyte chunks, suffixed `.0', `.1',
etc.  To extract from multiple files, use:
    cat file.tar.Z.* | uncompress | tar xf - .

The release area also contains source distributions and other binary
distributions.  A listing of the current contents of the release area is in
FILES.  Major release announcements will be made to comp.lang.lisp until there
is enough volume to warrant a comp.lang.lisp.cmu.

Source availability:

Lisp and documentation sources are available via anonymous FTP ftp to any CMU
CS machine.  [See the "Distribution" section for FTP instructions.]  All CMU
written code is public domain, but CMU CL also makes use of two imported
packages: PCL and CLX.  Although these packages are copyrighted, they may be
freely distributed without any licensing agreement or fee.

The release area contains a source distribution, which is an image of all the
".lisp" source files used to build version 16f:
    16f-source.tar.Z (3.6 meg)

________________________________________________________________

			    DETAILED RELEASE NOTES

[Notes are also in doc/release-notes.txt]

Pretty printer:
 -- Fixed a bug in pprint-let that caused to to barf on (let (nil) ...).
 -- Fixed pprint-lambda-list to print a space before the dot when the tail of
    the lambda list is shared.  In other words, print (foo . #1=(bar baz))
    instead of (foo. #1=(bar baz)).
 -- Added an additional use of ~^ in pprint-flet so that (flet (nil) ...)
    doesn't flame out.
 -- Make pretty printer properly process pprint tabs when output is forced.
 -- In format pprint logical blocks, fixed ~^ to act like
    PPRINT-EXIT-IF-LIST-EXHAUSTED instead of blowing out to some containing
    directive.

Compiler:
 -- Fixed compiler internal error with dead-code deletion of top-level code.
 -- Bind *gensym-counter* instead of setting it so that compiling doesn't
    globally reset the gensym counter.
 -- Fixed problem with interpreted LOAD-TIME-VALUE causing undefined function
    VALUE-CELL-REF errors.
 -- Preserve the arglist in interpreted functions for DESCRIBE, etc.
 -- Gag bound-but-not-referenced warnings when the EXT:INHIBIT-WARNINGS
    optimize quality is 3.
 -- Fixed a problem with register allocation conflict analysis which appeared
    when a function was called with ~>= 50 arguments.
 -- Fixed bug with optimization of tail local calls.
 -- Fixed interpreted PROCLAIM/DECLAIM to ignore
    START-BLOCK, END-BLOCK and declared DECLARATION declarations.
    Changed the unrecognized proclamation error to be a warning.
 -- Fixed float heap allocation to not wedge when the store causes a trap
    (SPARC only.)

Trace:
 -- Added pretty-printer directives so that arg lists and results print better.
 -- Fixed UNTRACE not to flame out when untracing untraced functions.
 -- Fixed bug with redefining function traced with encapsulation (e.g.
    interpreted functions.)

Misc bug fixes:
 -- Fixed I/O timeout handling (e.g. for CLX) to correctly borrow from the
    timeout seconds when computing the new value for the timeout microseconds.
 -- Restored proper (prompt) handling of queued CLX events in SERVE-EVENT
 -- Alien enums always take up an int to be compatable with C.  Also,
    sort the from-alist so that enum aliens are unparsed in a canonical
    format.
 -- When doing macro destructuring, check to see if some part of a lambda-list
    is a LIST before checking to see if it is a SYMBOL, because we want NIL to
    act like the empty list, and not an attempt to bind NIL.  
 -- Fixed PACKAGE-ERROR to have a PACKAGE slot instead of a PATHNAME slot.
 -- Changed DOLIST not to introduce the spurious let around the result form
    when there is no result form.  Also, just read the var in the spurious
    let, instead of using IGNORABLE, since the var might be special.
 -- In complex DEFSETF, don't bother creating temp vars for constants.  This
    is necessary so that keywords stay keywords, and are not changed to
    gensyms.

Enhancements:
 -- Changed the backquote expanded functions (backq-list, ...) from being
    inline functions to compiler-macros, since although the optimizer does
    eventually get the right code, it has to work awful hard.  Changed BREAK
    to accept a condition as well as a format string.
 -- Exported EXT:CONNECT-TO-UNIX-SOCKET and EXT:CREATE-UNIX-SOCKET, which had
    been forgotten before.  Added code to CONNECT-TO-UNIX-SOCKET so that Unix
    domain sockets are available for connecting to other processes.
 -- Removed sys:*task-data* and sys:*task-notify* because they aren't used
    even under Mach.