Getting patches using Allegro CL

1.0 Getting the correct version
    1.1 Windows: undefined function MoveFileEx
    1.2 HP/UX
2.0 Updating after downloading

The function sys:update-allegro is available in Allegro CL. When called on a machine capable of using ftp, it downloads all patches appropriate for your platform and places them in the correct location. This document documents sys:update-allegro, and describes how to be sure that you have the latest version. This information is also in the Allegro CL FAQ.

1.0 Getting the correct version

Except on platforms Windows and HP/UX, the version of sys:update-allegro supplied on the CD works correctly. Just use it as described below.

1.1 Windows: undefined function MoveFileEx

(This repeats the information in Allegro CL FAQ item 1.3-4.)

If you call the version of sys:update-allegro supplied on the Allegro CL 5.0.1 Windows CD, you will get an error complaining about the undefined function MoveFileEx. You need to get new versions of the fasl files update.fasl and crc.fasl and place them in <Allegro directory>/code/, perhaps overwriting files already there. You cannot use sys:update-allegro to download these patches.

The two files required for download are:


Here, <arch> indicates the machine on which you are running (go to if you are unsure what the value of <arch> should be). (Allegro CL runs on the Windows Operating System on Intel-based machines and on Compaq/DEC based machines.)

Once these two files have been obtained and placed in the <Allegro directory>/code/ directory, you can use sys:update-allegro as described below.

1.2 HP/UX

There are now patch subdirectories 5.0.1/hpux10/ and 5.0.1/hpux11 (earlier there was only 5.0.1/hpux/). We had to make two directories because differences between the two Operating Systems required separate patches. The version of sys:update-allegro supplied on the Allegro CL 5.0.1 CD does not know about these two directories. Please get (without using sys:update-allegro) 5.0.1/hpux/code/update.fasl (it works on either OS) before using sys:update-allegro (place the file in <allegro directory>/code/, where it will overwrite the update.fasl from the CD).

2.0 Updating after downloading

sys:update-allegro does not itself rebuild any images. Instead, after calling sys:update-allegro, you should:

  1. exit Lisp
  2. move all of your personally-created images (images are files with type .dxl) located in the Allegro directory to a temporary location (leave the Allegro CL-supplied .dxl files in the Allegro directory)
  3. invoke (on Unix) or update.bat (on Windows) takes all files named <something>.dxl files, copies them to <something>orig.dxl, and then creates new versions by invoking them and calling excl:build-lisp-image with appropriate arguments (based on the nature of the images themselves). Because these scripts do not know how to rebuild specialized images you may have created yourself, you should (as we said above) move such images out of the Allegro directory. After all Allegro CL-supplied images have been updated, you can update your own images. If there is a failure of some sort, you can delete the new images and rename the <something>orig.dxl images as <something>.dxl. (<something> is typically lisp, and also composer on Unix and allegro on Windows.)



Package: SYSTEM

Arguments: (&key documentation-only destination-directory except-patches force host list patches platform verbose version)

This function contacts the Franz Inc. website and downloads the patches appropriate for your platform (computer type) and version of Allegro CL. This function was introduced with version 5.0.1. In order to work, the computer running Allegro CL must be able to make an FTP connection to the internet. If the connection is not made for any reason, update-allegro signals an error.

Calling this function with no arguments will download and install all patches.

Unless the force argument is true, a patch file is not downloaded if the size and CRC (checksum) of an existing local file with the same name and location is the same as the remote file (but this does not cause an error or prevent downloading of other files).

Fasl file (destined for the update/ and various other directories), shared library (UNIX), and Dynamically Linked Library (DLL) patches are all handled by sys:update-allegro. On Windows, because "in use" files cannot be replaced, you will be asked to reboot your computer to finish the update process. Without rebooting, you will not see the patched DLL.

The keyword arguments to sys:update-allegro are as follows:



documentation-only Retrieve only the `DESCRIPTIONS' files. Useful when you want to see what the current set of patches is. Note that new documentation files (such as the HTML files found in <Allegro directory>/doc/ and WinHelp files like <Allegro directory>/cg/cgide.hlp) may be downloaded, but this argument has nothing to do with those files.
destination-directory Put the patches in this directory. Useful when you want to pick and choose which patches to install. If you use a directory other than "sys:" (the Allegro directory), you will then be responsible for installing the patches.

NOTE for Windows users: ACL dll patches will be installed into the Windows system directory regardless of the value of this argument.

except-patches A list of patches (by location and name) to skip downloading and installing. The location should be relative to the Allegro directory (see the example below). If a name does not correspond to an actual patch file, it is ignored and no error is signaled.
force Cause patches that have been previously downloaded to be downloaded again. In other words, the file size and CRC check mentioned above is not performed.
host For system use only. Never specify a value for this argument unless instructed to do so by Franz Inc. Technical Support.
list If specified true, no files are downloaded. Instead, sys:update-allegro returns a list of the patches that would have otherwise been downloaded if this argument were nil.
patches If non-nil, the value should be a list of specific patches to download and install. The list should contain relative pathnames from the /pub/patches/<version>/<arch> directory on the FTP site. Only those files are downloaded.
platform The platform for which you wish to download patches. If you change this from the default value, you must also specify a destination-directory (an error is signaled if you do not). Installing patches for the incorrect architecture would cause serious problems, probably making your Lisp unusable (requiring uninstallation and installation to make it work again).

We recommend that you do not specify this argument and instead call sys:update-allegro on the platform of interest.

verbose If true, various status messages are printed.
version A specific version for which patches should be downloaded. As with platform, if you change this from the default value, you must also specify a destination-directory (an error is signaled if you do not). Installing patches for the incorrect version would cause serious problems, probably making your Lisp unusable (requiring uninstallation and installation to make it work again).


To download all available patches for your platform and version, do:


If you want all patches except update/p2a001.001, then do this:

(sys:update-allegro :except-patches '("update/p2a001.001"))

If you want a list of patches that would be downloaded but do not want to download anything, then do this:

(sys:update-allegro :list t)

After downloading is complete

It is important that you follow the instructions given to you by sys:update-allegro. It may ask you to rebuild your images or (on Windows only to) reboot your machine. If you do not follow the instructions, the update procedure will not be complete.

NOTE for Trial and Lite Edition users: you cannot rebuild images. After running sys:update-allegro, all you need do is reboot if instructed and then restart your image.

Patches are described in section 4.2 Patches of <Allegro directory>/doc/cl/introduction.htm. The sections after 4.2 also contain information about patches.

Last updated on March 29, 2000 08:47:59 Pacific Standard Time

Copyright © 2017 Franz Inc., All Rights Reserved | Privacy Statement Twitter Google+