Add WITH-CYCLE-COUNTER for x86, sparc, and ppc. Sparc and ppc
[projects/cmucl/cmucl.git] / src / general-info / release-20d.txt
1 ========================== C M U C L  20 d =============================
2
3 [Not yet released]
4
5 The CMUCL project is pleased to announce the release of CMUCL 20d.
6 This is a major release which contains numerous enhancements and
7 bug fixes from the 20c release.
8
9 CMUCL is a free, high performance implementation of the Common Lisp
10 programming language which runs on most major Unix platforms. It
11 mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
12 sophisticated native code compiler; a powerful foreign function
13 interface; an implementation of CLOS, the Common Lisp Object System,
14 which includes multi-methods and a meta-object protocol; a source-level
15 debugger and code profiler; and an Emacs-like editor implemented in
16 Common Lisp. CMUCL is maintained by a team of volunteers collaborating
17 over the Internet, and is mostly in the public domain.
18
19 New in this release:
20
21   * Known issues:
22
23   * Feature enhancements
24     * Added a new contrib, "contrib-packed-sse2" to allow packed
25       operations ala SSE2.  Support for some packed sse2 operations
26       like multiply, divide, and shuffle for both packed singles and
27       doubles.  All operations are done on top of (complex
28       double-float) numbers.  Utility functions are provided to set
29       and access these packed numbers.
30     * Added external format for EUC-KR.
31  
32   * Changes
33     * ASDF2 updated to version 2.24.
34     * Behavior of STRING-TO-OCTETS has changed.  This is an
35       incompatible change from the previous version but should be more
36       useful when a buffer is given which is not large enough to hold
37       all the octets for the given string.  See docstring for more
38       details.
39     * The PowerPC port of CMUCL on Darwin (Mac OS X) has been revived
40       and is up-to-date.  It will run on OSX 10.4 and 10.5.  However,
41       only the Unicode build is supported.
42     * Updated to Unicode 6.1.0.
43     * Many additional aliases for external formats added that match
44       the glibc iconv aliases.
45     * Implement faster LOGCOUNT function on x86, if :SSE3 feature is
46       available.  (Only applies to new uses of LOGCOUNT.  The core
47       uses the default version.)
48     * On x86, SET-FLOATING-POINT-MODES clears any current and accrued
49       exceptions that match exceptions in :TRAPS.  Previously,
50       enabling a trap when the current exception also listed that trap
51       caused the exception to be immediately signaled.  This no longer
52       happens and now matches how ppc and sparc behave.
53     * OSX Lion and XCode 4 can now compile cmucl without problems.
54     * OSX 10.4 is no longer supported.
55     * Micro optimizations for floats: 2*x -> x+x and x/2^n ->
56       (2^(n))*x.
57     * Add VM::WITH-CYCLE-COUNTER to return the number of cycles elapsed
58       when executing the body, as measured by the CPU cycle/tick counter.
59
60   * ANSI compliance fixes:
61     * CMUCL was not printing pathnames like (make-pathname :directory
62       '(:absolute "tmp" "" "/")) correctly.  This is now printed using
63       #P(...).
64
65   * Bugfixes:
66     * DECODE-FLOAT was not correctly declared and could not be
67       compiled to handle double-double-floats.
68     * The source distribution now includes the scripts from the bin
69       directory, which was previously missing.
70     * The stack needs to be 16-byte aligned on Darwin.
71     * LDB no longer prints prompts forever when EOF is reached.
72     * LISP:UNICODE-COMPLETE now longer signals an error if the prefix
73       isn't a prefix of the name of any Unicode character.  Nil is
74       returned instead.
75     * Some VOP costs were incorrect which prevented the fast complex
76       double-float multiplier from being used when sse3 is available. 
77     * External format for UTF-32 was generating an error when
78       converting octets to a string.
79     * The UTF-16-BE and UTF-16-LE external formats were returning the
80       incorrect number of octets when surrogates pairs were decoded.
81       This confuses the stream buffering code.
82     * Fix typo in ISO8859-2 external format that caused it not to work
83       correctly.  This type potentially also caused failures for all other
84       external formats that were based on ISO8859-2.
85     * COMPILE-FILE should not signal an error when given a list for
86       :EXTERNAL-FORMAT.  Lists are needed to specify a composing
87       external format like :DOS or :MAC.
88     * EXPORT and friends should not EVAL the form when compiling.
89       This was probably a leftover from the time when CMUCL did not
90       have DEFPACKAGE.  (See ticket:60.)
91     * The debugger was not always opening the file in the correct
92       external format.  It defaulted to using
93       *DEFAULT-EXTERNAL-FORMAT* instead of the format used when
94       compiling the file.
95     * Minor build issue in CLM debugger interface due to USE-PACKAGE
96       no longer having special compiler treatment.
97     * READ-CYCLE-COUNTER no longer destroys any live values in the EBX
98       and ECX registers.
99
100   * Trac Tickets:
101     * #50: Print/read error with make-pathname.
102     * #53: UTF-8 in core.
103     * #52: UNICODE-COMPLETE-NAME misses a completion.
104     * #55: blocked signals.
105     * #58: UTF-16 buffering problem.
106     * #60: compile-file and export problem
107     * #61: Darwin+clang doesn't produce a working lisp
108
109   * Other changes:
110     * The layout of the cmucl directories has been changed.
111     * Add -R option to build.sh to force recompiling the C
112       runtime. (Default it to compile only what is changed.)
113     * Add -R option to build-all.sh to force recompiling the C
114       runtime.
115
116   * Improvements to the PCL implementation of CLOS:
117
118   * Changes to building procedure:
119
120 This release is not binary compatible with code compiled using CMUCL
121 20c; you will need to recompile FASL files. 
122
123 See <URL:http://www.cmucl.org> or
124 <URL:http://trac.common-lisp.net/cmucl> for download information,
125 guidelines on reporting bugs, and mailing list details.
126
127
128 We hope you enjoy using this release of CMUCL!