Release Notes for Clozure CL 1.5
Clozure CL 1.5 runs on the following platforms:
- Mac OS X 10.5 and later (x86, x86-64, ppc32, ppc64)
- Linux (x86, x86-64, ppc32, ppc64)
- FreeBSD 6.x and later (x86, x86-64)
- Solaris (x86, x86-64)
- Microsoft Windows XP and later (x86, x86-64)
The preferred way to get Clozure CL is via Subversion. For example, to get CCL for Mac OS X on x86, one would run the following command from a shell prompt:
$ svn co http://svn.clozure.com/publicsvn/openmcl/release/1.5/darwinx86/ccl
Versions for other platforms are available by changing the darwinx86 to one of linuxx86, freebsdx86, solarisx86, windows, darwinppc, or linuxppc.
Both 32 bit and 64 bit binaries are included with all versions.
Please use the Trac instance at http://trac.clozure.com/ccl to review existing bug reports and to submit new ones.
The 32-bit Windows lisp still doesn't run on 64-bit Windows.
There have been numerous bug fixes and enhancements; here we call out a few that seem worth highlighting.
The fasl file and image file versions have changed since CCL 1.4. This means that old fasl files will need to be recompiled, and saved heap images will need to be rebuilt.
Mac OS X 10.5 (Leopard) is now the minimum operating system version for Macintosh systems. The lisp kernel is built against the 10.5 SDK, so Snow Leopard users no longer have to do anything special to compile it.
CL:RANDOM has been improved. It now uses the MRG31k3p generator described in
- L'Ecuyer and R. Touzin, "Fast Combined Multiple Recursive
Generators with Multipliers of the form a = +/- 2d +/- 2e", Proceedings of the 2000 Winter Simulation Conference, Dec. 2000, 683--689. This generator has a period of about 2185 and its output has good statistical properties.
PURIFY now works on the x86 ports. Objects which are purified are copied into an area of memory that is not scanned by the GC. (Only functions and ivectors can be purified.) Possible benefits include reduced GC time and improved virtual memory sharing when multiple lisp instances of the same lisp image are run simultaneously. SAVE-APPLICATION purifies the heap by default.
Every once in a while, a constant definition changes in the CCL sources. This normally CERRORs, but this often confuses users who are tracking the sources to stay up-to-date. Therefore, REBUILD-CCL now suppresses constant-redefinition warnings when either :CLEAN or :FORCE is in effect (:FULL puts both in effect).
The I/O variables bound by WITH-STANDARD-IO-SYNTAX (*PRINT-BASE*, *PRINT-ARRAY*, etc.) are now thread local. They are initialized to their static/default values, rather than the values that WITH-STANDARD-IO-SYNTAX considers "standard".
Bivalent vector streams are a new addition. They are similar to string streams, but use vectors of (UNSIGNED-BYTE 8). See VectorStreams for documentation.
The lisp kernel will no longer look for a heap image named by a case-inverted lisp kernel name if a heap image with a ".image" suffix cannot be found. (r13592)
Memory analysis tools
CCL:HEAP-UTILIZATION now has some more output options; see the docstring. CCL:COLLECT-HEAP-UTILIZATION is the guts of HEAP-UTILIZATION, now sold separately.
CCL:HEAP-IVECTOR-UTILIZATION lists the types and sizes of allocated heap ivectors (cf. MAKE-HEAP-IVECTOR).
On Linux/x8664 systems, a number of utilities are available for post-mortem analysis of Unix core files produced from a lisp process. See MemoryUtils for documentation. The function IDOM-HEAP-UTILIZATION is based on some of the ideas found in the following papers:
The format of the preferences files for the Cocoa-based IDE has changed.
This will probably cause the following error message:
Error: Objective-C runtime exception: *** -[NSKeyedUnarchiver initForReadingWithData:]: non-keyed archive cannot be decoded by NSKeyedUnarchiver
To solve it, go to ~/Library/Preferences/? and delete the preference files beginning with "com.clozure.Clozure".