Skip to content
release-20e.txt 5.4 KiB
Newer Older
Raymond Toy's avatar
Raymond Toy committed
========================== C M U C L  20 e =============================

[In Progress]

The CMUCL project is pleased to announce the release of CMUCL 20e.
This is a major release which contains numerous enhancements and
bug fixes from the 20c 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
    * The disassembler (on x86) prints correctly for any value of
      *print-base*.
Raymond Toy's avatar
Raymond Toy committed
 
  * Changes
Raymond Toy's avatar
Raymond Toy committed
    * ASDF2 updated to version 3.0.2.
Raymond Toy's avatar
Raymond Toy committed
    * DEFINE-COMPILER-MACRO now has source-location information for
      the macro definition.
Raymond Toy's avatar
Raymond Toy committed
    * :ALIEN-CALLBACK added to *FEATURES* for platforms that support
      alien callbacks.
    * The sparc port can be built using gcc once again.
    * The old Cheney stop-and-copy GC supported on sparc once again.
      However, there are no plans on supplying sparc binaries with
      this GC.
    * For x86, optimize TRUNCATE when the second arg is a compile-time
Raymond Toy's avatar
Raymond Toy committed
      constant and use a multiplication instead of a division.  (Sparc
      and ppc already had this optimization)
Raymond Toy's avatar
Raymond Toy committed
    * The following *FEATURES* have been removed:
      * :COMMON (not used)
      * :CONSERVATIVE-FLOAT-TYPE (Always default to this in type
        derivation.)
Raymond Toy's avatar
Raymond Toy committed
      * :I486 and :PENTIUM (Always assume we're running on at least a
        Pentium.)
Raymond Toy's avatar
Raymond Toy committed
    * Update unicode to support Unicode 6.2.
    * Add MP:PROCESS-JOIN, as given in ticket #77.
Raymond Toy's avatar
Raymond Toy committed
    * Added UNICODE package to hold Unicode-related functions.
      Currently contains Unicode extended versions of STRING-UPCASE,
      STRING-DOWNCASE, and STRING-CAPITALIZE.
Raymond Toy's avatar
Raymond Toy committed
    * Optimizations in the x86 backend to speed up some operations and
      reduce register restrictions.
Raymond Toy's avatar
Raymond Toy committed

Raymond Toy's avatar
Raymond Toy committed
  * ANSI compliance fixes:
    * Attempts to modify the standard readtable or the standard pprint
      dispatch table will now signal a continuable error.
Raymond Toy's avatar
Raymond Toy committed
    * Remove the Unicode extensions from string-upcase and friends.
      This functionality is moved to the new UNICODE package.
Raymond Toy's avatar
Raymond Toy committed
    * DISASSEMBLE is conforming now; there are no options to
      DISASSEMBLE.  However, you can use DISASSEM:DISASSEMBLE if more
      options are needed.
Raymond Toy's avatar
Raymond Toy committed

  * Bugfixes:
Raymond Toy's avatar
Raymond Toy committed
    * REPLACE and friends on strings were limited to strings less than
Raymond Toy's avatar
Raymond Toy committed
      the maximum possible size. This has been fixed so strings of any
      supported length can be handled.  (See ticket #66 and #68.)
    * A serious error in FILE-POSITION on streams using an encoding
      other than latin1 has been fixed.  See ticket #74.
Raymond Toy's avatar
Raymond Toy committed
    * Fix startup crashes on some Debian Linux versions.  This was
      caused by the release string not having a patch version.
Raymond Toy's avatar
Raymond Toy committed
    * FILE-POSITION no longer returns incorrect values.  See ticket
      #79.
Raymond Toy's avatar
Raymond Toy committed
    * Fix error in (format t "~ve" 21 5d-324).  (See ticket #80).
Raymond Toy's avatar
Raymond Toy committed
    * String reverse is much faster (upto 20 times).
    * REVERSE and NREVERSE on strings will reverse surrogate pairs.
      (Previously, surrogate pairs weren't reversed.)
Raymond Toy's avatar
Raymond Toy committed
    * Correct some mistakes in optimizing code where variables are
      declared as FLOAT.  Some optimizations were missed because FLOAT
      is represented internally as a UNION type, confusing the type
      derivation code.
    * Clean up and optimize x86 move VOPS and length/list VOP.
Raymond Toy's avatar
Raymond Toy committed
    * DISASSEM:DISASSEMBLE takes new keyword args, base, case, radix
      to specify values for *print-base*, *print-case*, and
      *print-radix* for disassembly.  The defaults are 16, :downcase,
      and *print-radix*, respectively.  This is a change from previous
      versions which used a base of 10 and a case of :upcase.
Raymond Toy's avatar
Raymond Toy committed

Raymond Toy's avatar
Raymond Toy committed
  * Trac Tickets:
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #52 reopened.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #66 fixed.
    * Ticket #67 fixed.
    * Ticket #68 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #69 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #70 fixed.
    * Ticket #65 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #71 fixed.
    * Ticket #72 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #73 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #76 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #79 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #80 fixed.
Raymond Toy's avatar
Raymond Toy committed
    * Ticket #81 fixed.
    * Ticket #83 fixed.
Raymond Toy's avatar
Raymond Toy committed

  * Other changes:
Raymond Toy's avatar
Raymond Toy committed
    * -8 option for build-all.sh is deprecated since we don't
      officially support 8-bit builds anymore.
Raymond Toy's avatar
Raymond Toy committed
    * Some small updates to the User Manual and CMU Internals
      documents to generate pdf files by default.
Raymond Toy's avatar
Raymond Toy committed

  * Improvements to the PCL implementation of CLOS:

  * Changes to building procedure:
Raymond Toy's avatar
Raymond Toy committed
    * In make-dist.sh, the version is now optional.  If not given, a
      version is derived from the git hash returned by "git
      describe". 
Raymond Toy's avatar
Raymond Toy committed
    * build.sh -u used to disable building of asdf and friends.  This
      is incorrect.  Asdf is always built now (during the last stage).

Raymond Toy's avatar
Raymond Toy committed

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

See <URL:http://www.cmucl.org> or
<URL:http://trac.common-lisp.net/cmucl> for download information,
guidelines on reporting bugs, and mailing list details.


We hope you enjoy using this release of CMUCL!