release-20d.txt 5.75 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
========================== C M U C L  20 d =============================

The CMUCL project is pleased to announce the release of CMUCL 20d.
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
Raymond Toy's avatar
Update.  
Raymond Toy committed
22 23 24
    * Added a new contrib, "contrib-packed-sse2" to allow packed
      operations ala SSE2.  Support for some packed sse2 operations
      like multiply, divide, and shuffle for both packed singles and
25
      doubles.  All operations are done on top of (complex
Raymond Toy's avatar
Update.  
Raymond Toy committed
26 27
      double-float) numbers.  Utility functions are provided to set
      and access these packed numbers.
28
    * Added external format for EUC-KR.
Raymond Toy's avatar
Update.  
Raymond Toy committed
29
 
30
  * Changes
Raymond Toy's avatar
Raymond Toy committed
31
    * ASDF2 updated to version 2.25.
Raymond Toy's avatar
Raymond Toy committed
32 33 34 35 36
    * Behavior of STRING-TO-OCTETS has changed.  This is an
      incompatible change from the previous version but should be more
      useful when a buffer is given which is not large enough to hold
      all the octets for the given string.  See docstring for more
      details.
37
    * The PowerPC port of CMUCL on Darwin (Mac OS X) has been revived
Raymond Toy's avatar
Update.  
Raymond Toy committed
38 39
      and is roughly up-to-date.  It will run on OSX 10.4 and 10.5.
      However, only the Unicode build is supported.
Raymond Toy's avatar
Raymond Toy committed
40
    * Updated to Unicode 6.1.0.
41 42
    * Many additional aliases for external formats added that match
      the glibc iconv aliases.
43 44 45 46 47 48 49 50
    * Implement faster LOGCOUNT function on x86, if :SSE3 feature is
      available.  (Only applies to new uses of LOGCOUNT.  The core
      uses the default version.)
    * On x86, SET-FLOATING-POINT-MODES clears any current and accrued
      exceptions that match exceptions in :TRAPS.  Previously,
      enabling a trap when the current exception also listed that trap
      caused the exception to be immediately signaled.  This no longer
      happens and now matches how ppc and sparc behave.
51
    * OSX Lion and XCode 4 can now compile cmucl without problems.
52
    * OSX 10.4 is no longer supported.
Raymond Toy's avatar
Raymond Toy committed
53 54
    * Micro optimizations for floats: 2*x -> x+x and x/2^n ->
      (2^(n))*x.
55 56
    * Add VM::WITH-CYCLE-COUNTER to return the number of cycles elapsed
      when executing the body, as measured by the CPU cycle/tick counter.
Raymond Toy's avatar
Raymond Toy committed
57

58
  * ANSI compliance fixes:
Raymond Toy's avatar
Raymond Toy committed
59 60 61
    * CMUCL was not printing pathnames like (make-pathname :directory
      '(:absolute "tmp" "" "/")) correctly.  This is now printed using
      #P(...).
62 63

  * Bugfixes:
64 65
    * DECODE-FLOAT was not correctly declared and could not be
      compiled to handle double-double-floats.
Raymond Toy's avatar
Raymond Toy committed
66 67 68
    * The source distribution now includes the scripts from the bin
      directory, which was previously missing.
    * The stack needs to be 16-byte aligned on Darwin.
69
    * LDB no longer prints prompts forever when EOF is reached.
Raymond Toy's avatar
Raymond Toy committed
70
    * LISP:UNICODE-COMPLETE now longer signals an error if the prefix
71
      isn't a prefix of the name of any Unicode character.  Nil is
Raymond Toy's avatar
Raymond Toy committed
72
      returned instead.
Raymond Toy's avatar
Update.  
Raymond Toy committed
73 74
    * Some VOP costs were incorrect which prevented the fast complex
      double-float multiplier from being used when sse3 is available. 
75 76
    * External format for UTF-32 was generating an error when
      converting octets to a string.
77 78 79
    * The UTF-16-BE and UTF-16-LE external formats were returning the
      incorrect number of octets when surrogates pairs were decoded.
      This confuses the stream buffering code.
80 81 82
    * Fix typo in ISO8859-2 external format that caused it not to work
      correctly.  This type potentially also caused failures for all other
      external formats that were based on ISO8859-2.
83 84 85
    * COMPILE-FILE should not signal an error when given a list for
      :EXTERNAL-FORMAT.  Lists are needed to specify a composing
      external format like :DOS or :MAC.
Raymond Toy's avatar
Raymond Toy committed
86 87 88
    * EXPORT and friends should not EVAL the form when compiling.
      This was probably a leftover from the time when CMUCL did not
      have DEFPACKAGE.  (See ticket:60.)
89 90 91 92
    * The debugger was not always opening the file in the correct
      external format.  It defaulted to using
      *DEFAULT-EXTERNAL-FORMAT* instead of the format used when
      compiling the file.
Raymond Toy's avatar
Raymond Toy committed
93 94
    * Minor build issue in CLM debugger interface due to USE-PACKAGE
      no longer having special compiler treatment.
Raymond Toy's avatar
Update.  
Raymond Toy committed
95 96
    * READ-CYCLE-COUNTER no longer destroys any live values in the EBX
      and ECX registers.
97 98

  * Trac Tickets:
Raymond Toy's avatar
Raymond Toy committed
99 100
    * #50: Print/read error with make-pathname.
    * #53: UTF-8 in core.
101
    * #52: UNICODE-COMPLETE-NAME misses a completion.
Raymond Toy's avatar
Update.  
Raymond Toy committed
102
    * #55: blocked signals.
103
    * #58: UTF-16 buffering problem.
Raymond Toy's avatar
Raymond Toy committed
104
    * #60: compile-file and export problem
Raymond Toy's avatar
Raymond Toy committed
105
    * #61: Darwin+clang doesn't produce a working lisp
106 107

  * Other changes:
Raymond Toy's avatar
Raymond Toy committed
108
    * The layout of the cmucl directories has been changed.
Raymond Toy's avatar
Raymond Toy committed
109 110
    * Add -R option to build.sh to force recompiling the C
      runtime. (Default it to compile only what is changed.)
111 112
    * Add -R option to build-all.sh to force recompiling the C
      runtime.
113 114 115 116 117 118 119 120

  * Improvements to the PCL implementation of CLOS:

  * Changes to building procedure:

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

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


We hope you enjoy using this release of CMUCL!