New in Clozure CL 1.8 (Apr 24, 2012)
- The bundled ASDF is now version 2.20.
- The output format of the standard time macro has changed so that the time-related numbers line up better.
- The :directories argument to the function directory now defaults to t. This means that the output will include both files and directories by default. Also, directory now treats symbolic links to directories as directories when :follow-links is t (as it is by default).
- The read-line function reads lines faster, even on Windows.
- On Unix-based systems, the HOME environment variable is now used by default to initialize user-homedir-pathname. This is optional: set ccl:*trust-paths-from-user-environment* to nil to disable this.
- Some improvements have been made to how code coverage results are presented.
- Compiler:
- Numerous bug fixes and performance improvements were made to the ARM port.
- The x86 backend tries harder to reduce unnecessary stack traffic.
- Self tail-calls involving a small number of fixed arguments are somewhat faster on x86 and on ARM.
- In certain cases, case and related constructs will compile into a constant-time jump table for certain types and ranges of keys.
- GC and Runtime:
- To avoid deadlock, the GC now defers all gcable-pointer termination actions until after threads have been resumed. A minor side effect of this is that GC will have to retain certain otherwise unreachable objects until the next GC, and this may cause some foreign resources to be tied up slightly longer than they have been to date.
- On Mac OS X, if the default heap image isn't found, assume that we're in an application bundle and look for it in ".../Resources/ccl".
- Minor incompatible change: the lisp kernel no longer treats a single command-line argument as an image name. This enables users to avoid writing a shell script wrapper for simple "standalone binaries" in some cases.
- Disassemble:
- The disassembler output format has changed so that the instruction address is printed in a comment after the instruction.
- The disassembler recognizes and prints case jump tables.
- Cocoa-based IDE:
- The variable ccl:@, which is set by the inspector to the object being inspected, is available in the listener.
- "CCL" is now a special Objective-C word, so that names like "ccl-application" will be translated to "CCLApplication". This prefix is reserved for CCL's own private use.
- The function execute-in-gui was rewritten to use a different method of thread synchronization.
- New exported symbols
- The following new symbols are now exported from the CCL package: target-fasl-version, *trust-paths-from-environment*, process-plist