All Manuals > Release Notes and Installation Guide > 12 Release Notes

12.15 Other changes

12.15.1 Changes in *features*

:lispworks8.0 amd :lispworks8 are present, :lispworks7.1 and :lispworks7 are not.

For a full description including information about the features used to distinguish new LispWorks implementations and platforms, see the entry for cl:*features* in the LispWorks® User Guide and Reference Manual.

12.15.2 ASDF version

The supplied ASDF is now version 3.3.5.

Note that this version of ASDF no longer exports uiop:defun* and uiop:defgeneric*. If you are using an older version of the serapeum library (from Quicklisp or github) that uses uiop:defun* then will need to update your copy.

12.15.3 The loop macro no longer allows "finally do" or "finally return"

The loop macro no longer allows the return or do loop keywords to be part of the finally clause. Previous releases of LispWorks supported this as an undocumented extension to ANSI Common Lisp.

To be compliant with all versions of LispWorks, change:

(loop ... finally do (form))
(loop ... finally return (form))
(loop named foo ... finally return (form))

to:

(loop ... finally (form))
(loop ... finally (return (form)))
(loop named foo ... finally (return-from foo (form)))

12.15.4 The loop macro now allows "of-type" with any atomic type

For compatibility with other implementations of the loop macro, you can now use any atomic type specifier after the of-type clause. Previous releases only allowed the types fixnum, float, t and nil as defined by ANSI Common Lisp.

12.15.5 Compiler macros are no longer expanded by the setf macro

When compiling a form like:

(setf (foo) value)

any compiler macro for foo is now ignored. If the setf form expands to a call to (setf foo) then any compiler macro for (setf foo) will be used. Compiler macros are defined using define-compiler-macro. This change does not affect macros defined by defmacro.

In previous releases, the compiler macro for foo would be used and any compiler macro for (setf foo) would be ignored.

12.15.6 hcl:fast-directory-files for a non-wild pathname

When the function hcl:fast-directory-files is called with a pathname whose name and type are both not wild, it now calls the callback with the file that matches that name and type. In previous releases, it called the callback for all files in the same directory, which was a bug.

12.15.7 cl:type-of now returns more specific types

The function type-of now returns more specific types for integers, characters, functions, keywords and the symbol t.

12.15.8 Loading old data files

Binary files created with hcl:dump-forms-to-file or hcl:with-output-to-fasl-file in LispWorks 7.1, LispWorks 7.0, LispWorks 6.1, LispWorks 6.0, LispWorks 5.x, LispWorks 4.4 or LispWorks 4.3 can be loaded into LispWorks 8.0 using system:load-data-file.


Release Notes and Installation Guide - 01 Dec 2021 19:38:49