Clozure CL Changelog

What's new in Clozure CL 1.10

Sep 15, 2014
  • Specialized types for (complex single-float) and (complex double-float), and arrays of these types, were added.
  • The bundled ASDF is version 3.1.3.
  • CCL IDE: Window > Wrap Lines to Window is now available on a per-window basis. (setf gui::*default-line-break-mode* :word) [before opening a window] if you want line breaks to be between words rather than characters.
  • CCL IDE: Option-click in close box of a window closes all windows of that class.

New in Clozure CL 1.9 (Aug 1, 2013)

  • The FASL version changed: FASL file produced with earlier versions of CCL won't work with this version and vice versa.
  • Limiting the extent of load-time OPTIMIZE proclamations
  • Detecting character encoding/decoding problems
  • Condition type signaled by NO-APPLICABLE-METHOD
  • New default values for CCL:*DEFAULT-FILE-CHARACTER-ENCODING* and CCL:*TERMINAL-CHARACTER-ENCODING-NAME*
  • Access to high-resolution clock
  • Accessing and manipulating character-encoding names and aliases - New functions:
  • (CCL:LIST-CHARACTER-ENCODINGS) returns a list of the "proper" names (keywords) of all defined character encodings.
  • (CCL:LIST-CHARACTER-ENCODINGS :INCLUDE-ALIASES T) returns a list of all proper names and aliases of all defined character encodings.
  • (CCL:DEFINE-CHARACTER-ENCODING-ALIAS alias existing) Tries to ensure that alias (a keyword) is recognized as an alias for the existing character encoding existing (which can be a CHARACTER-ENCODING object or a keyword that names one)
  • (CCL:REMOVE-CHARACTER-ENCODING-ALIAS alias) Tries to ensure that alias (a keyword) is no longer recognized as an alias for any character encoding
  • SIGNAL-EXTERNAL-PROCESS and external-process exit
  • File options line can determine file's EXTERNAL-FORMAT
  • (Hopefully) clearer error message when ARRAY-TOTAL-SIZE-LIMIT exceeded
  • Argument string encoding in RUN-PROGRAM
  • New exported symbols:
  • The following new symbols are now exported from the CCL package:
  • *load-preserves-optimization-settings*
  • no-applicable-method-exists
  • encoding-problem
  • decoding-problem
  • with-encoding-problems-as-errors
  • with-decoding-problems-as-errors
  • current-time-in-nanoseconds
  • unsetenv
  • list-character-encodings
  • define-character-encoding-alias
  • remove-character-encoding-alias

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