The importance of regular updating

Updating Allegro CL means getting and applying available patches for your version and platform. Patches are posted when they become available. Several tools included with Allegro CL assist in updating the product.

Updates are not automatic, although (unless you turn them off) you may get automatic reminders that an update is suggested.

Updating involves two steps: downloading available patches and rebuilding images. Patches cannot always simply be loaded into a Lisp image, since (among other reasons) modified functions might be compiled inline in the existing image (and thus will not be changed) and modified macros will not replace compiled calls. Using in-Lisp tools to download patches therefore requires (at some point) exiting from Lisp and running a separate program. Or you can run a different program (outside Lisp) which both finds and downloads relevant patches and rebuilds images.

Why update?

Updating is recommended unless you have a stable application and no time to verify its stability with the new patches (such as a demo to backers this afternoon).

Patches can, of course, introduce problems. This can happen in two ways:

  1. The patch can contain an error (and so introduce a bug) or can interact badly with your code (by slowing down some heavily used feature).
  2. The patch, by correcting code might cause your code to fail because your code depended on the uncorrected behavior (see below for an example).

Number two is particularly dicey for us at Franz and we often delay such changes until releases but sometimes consider the change important enough to release the patch anyway. In those cases, the release notes are always updated to note the behavior change (be sure you check the latest version of the releases notes, at http://franz.com/support/documentation/10.1/doc/release-notes.htm. Again, see the example below.

So, it is very important to test your application after applying patches. If you have difficulty with a patch, note that you can remove it.

Why we are reminding users about this now

A series of bugs were discovered which affect Allegro CL 9.0 SMP: in the presence of these bugs, Lisp could fail without warning or fail with a gc error. These bugs were fixed by three patches (shared-library patch acl9073.dll (version 41), base-lisp patch pja006, and shared-library patch acl9073.dll (version 23)). All 9.0 users should update.

A recent patch which changed behavior

A patch (base patch regexp2-s) to regexp-2 brought the Allegro CL regular expression tool in line with the behavior of Perl, but in doing so made uncompatible changes to the behavior of split-re (which now, for example, returns nil is cases where before it returned (""), follow the link for all changes). While we prefer not to make changes like this in a patch, we considered this change (which does bring Allegro AL into line with Perl, which was the documented intention) important enough to warrant the patch. Note we are clear about the change in the release notes.

Getting patches using Allegro CL or with a separate program

See this page.

Copyright © 2023 Franz Inc., All Rights Reserved | Privacy Statement Twitter