========================== C M U C L  20 c =============================

[--- WORK IN PROGRESS ---]

The CMUCL project is pleased to announce the release of CMUCL 20c.
This is a major release which contains numerous enhancements and
bug fixes from the 20b release.

CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a source-level
debugger and code profiler; and an Emacs-like editor implemented in
Common Lisp. CMUCL is maintained by a team of volunteers collaborating
over the Internet, and is mostly in the public domain.

New in this release:

  * Known issues:

  * Feature enhancements
    - Update to Unicode 5.2.0.
    - Add support for character name completion.  This can be used by
      Slime to do character name completion.

  * Changes
    - ASDF2 updated to version 2.010.
    - COMPILE-FILE now accepts a :DECODING-ERROR argument that
      indicates how to handle decoding errors when reading the file.
      It has the same meaning and effect as the :DECODING-ERROR
      argument to OPEN.  This defaults to T here so that decoding
      errors are signaled on invalid sequences instead of silently
      replacing the bad sequence with some kind of replacement
      character.
    - In 19f through 20b, READ-SEQUENCE could read mostly arbitrary
      data from a stream in to the given sequence.  In this release,
      READ-SEQUENCE cannot do that unless the stream is a
      binary-text-stream.   This is an incompatible change from
      previous releases.
    - RUN-PROGRAM accepts :EXTERNAL-FORMAT parameter to specify the
      external format to be used for any streams that RUN-PROGRAM
      needs to create.
    - Add src/tools/build-all.sh to automate building all of the
      variants (x87/sse2, unicode/8-bit).
    - LISP::ENUMERATE-MATCHES had a keyword arg named
      :VERIFY-EXISTANCE.  This has been changed to :VERIFY-EXISTENCE. 

  * ANSI compliance fixes:
    - Fixes for signaling errors with READ-CHAR and READ-BYTE
      o READ-CHAR signals errors if the stream is not a character
        stream.  This is a change from 20a and 20b, but matches
        releases before 19f.  (Almost.  19f allowed reading characters
        from (unsigned-byte 8) streams.  19e did not.)
      o READ-BYTE signals errors if the stream is not a binary
        stream.  This is also a change from 20a and 20b, but matches
        releases before 19f.  (Almost.  19f allowed reading bytes from
        character streams.  19e did not.) 
      o But READ-CHAR and READ-BYTE will work if the stream class is
        'binary-text-stream, an extension for bivalent streams in
        CMUCL.  READ-CHAR will use the specified external format for
        such streams.  READ-BYTE reads (unsigned-byte 8) elements from
        such streams.
  * Bugfixes:
    - The pairwise composition table is now correctly built.
      Previously, it skipped over non-BMP codepoints.  This also
      requires a fix in %COMPOSE to handle non-BMP codepoints
      correctly.  The normalization test now passes.
    - On x86, REALPART and IMAGPART no longer incorrectly returns 0
      instead of the correct part of a complex number in some
      situations.
    - The command line parser now correctly handles the case where
      "--" is the first command option.
    - build.sh was accidenally loading the site-init file, but it
      shouldn't. 
    - On sparc, the vops to add a float to a complex were broken,
      resulting in a complex number with the float as realpart and
      garbage for the imaginary part.  This is now fixed.
    - XLIB::GET-BEST-AUTHORIZATION will now return authorization data
      if the protocol is :local, if the xauth file contains just
      "localhost/unix:0".  Previously, no authorization data was
      returned because GET-BEST-AUTHORIZATION was looking for the
      hostname.
    - FORMAT signals an warning if ~:; is used inside ~:[.
    - SET-SYSTEM-EXTERNAL-FORMAT was not actually setting the filename
      encoding if given.
 
  * Trac Tickets:

  * Other changes:

  * Improvements to the PCL implementation of CLOS:

  * Changes to building procedure:

This release is not binary compatible with code compiled using CMUCL
20b; you will need to recompile FASL files. 

See <URL:http://www.cons.org/cmucl/> for download information,
guidelines on reporting bugs, and mailing list details.


We hope you enjoy using this release of CMUCL!
