Clozure CL Changelog

What's new in Clozure CL 1.11.1

Mar 4, 2016
  • Includes bug fixes and performance improvements.
  • The 1.11.1 update does not pre-load ASDF in the image file. ASDF is still bundled, however, and you load it as normal with (require 'asdf).

New in Clozure CL 1.10 (Nov 10, 2015)

  • Various updates and bug fixes.

New in Clozure CL 1.8.1 (Jul 25, 2012)

  • Important bug fixes.

New in Clozure CL 1.8 (Apr 24, 2012)

  • General:
  • The symbol :ccl-1.8 is now on *features*.
  • 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

New in Clozure CL 1.7 (Dec 21, 2011)

  • Support for Mac OS X running on PowerPC has been dropped. Linux on PowerPC is still supported.
  • The interface databases for Mac OS X are now built from Snow Leopard (10.6) headers. This required the use of an experimental version of the interface translator that recognizes C blocks. See BuildFFIGEN.
  • The Cocoa-based IDE requires Mac OS X 10.6 Snow Leopard or later.
  • On OS X Lion, the AltConsole? application may not automatically activate when the standalone Clozure CL.app crashes. Clicking on the AltConsole? dock icon will activate it. It should then behave normally.

New in Clozure CL 1.3 (Sep 28, 2009)

  • New lock-free hash tables minimize the performance impact of thread safety. They avoid locking during GETHASH, but at the cost of making rehashing more expensive. PUTHASH performance is basically unaffected. Set CCL::*LOCK-FREE-HASH-TABLE-DEFAULT* to NIL to use the standard algorithm, with locks for shared tables.
  • Bignum multiplication on 64-bit systems is faster.
  • The compiler now checks format control strings for possible errors. (The commit message for r11805 has some notes on how to get it to check user-defined functions that are FORMAT-like.)
  • DELETE-DUPLICATES is faster when the number of elements is large.
  • On Unix systems, if "ccl-init.lisp" doesn't exist, Clozure CL will try to load ".ccl-init.lisp". An openmcl-init.lisp file will no longer be read (or warned about).
  • The heap image name is now derived from the kernel name by appending ".image" to it on all platforms. On platforms where we've traditionally used case-inversion, we fall back to the case-inverted name if the ".image" doesn't exist. For example, the x8664 Linux image name is now lx86cl64.image rather than "LX86CL64".
  • The compiler now warns about duplicate definitions within a compilation unit.
  • ALPHA-CHAR-P is now true of all Unicode 5.1 characters that have the ALPHABETIC attribute property.
  • Updated bundled ASDF to version 1.130.
  • Add source location and pc->source mapping support (r11373). The disassembler uses the source location support to annotate the disassembly with the corresponding source code. This is derived from code originally developed by Alan Ruttenberg and is the product of further work by Marco Baringer, Gail Zacharias, and others.
  • The Objective-C bridge no longer converts lisp strings to NSString instances automatically.
  • The Cocoa IDE uses a bundled helper application to provide access to *TERMINAL-IO*/stderr for the Cocoa event thread/lisp kernel debugger.
  • A port of the jfli interface to Java (originally developed for use with LispWorks by Rich Hickey) is now included as an example.
  • The keyword :CCL-1.3 is now on *FEATURES*. The presence of this keyword should be interpreted to mean "this is at least version 1.3 of CCL".
  • The usual batch of bug fixes and minor improvements too numerous to list.