INTRODUCTION This directory (/pub/patches/6.2/) contains all patches for all currently supported architectures under Allegro CL 6.2. It has the following structure: /pub/patches/6.2// where is currently one of: aix IBM/AIX 4.3 and 5.x tru64 Alpha/Compaq (Digitial) UNIX 4.0 and 5.0 (aka Tru64 UNIX) tru64.64 Alpha/Compaq (Digitial) UNIX 4.0 and 5.0 (aka Tru64 UNIX) -- 64-bit Lisp freebsd Intel x86/FreeBSD 4.x hpux10 HP PA/HP-UX 10.20 hpux11 HP PA/HP-UX 11.00 hpux11.64 HP PA/HP-UX 11.00 -- 64-bit Lisp irix SGI MIPS/IRIX 6.5 linuxppc PowerPC/LinuxPPC 2000 (Q4) redhat6 Intel x86/Linux Redhat 6.x or 7.x Specifically: kernels 2.2 and 2.4, using glibc 2.1/2.2 solaris Sun Sparc/Solaris 2.7 and 2.8 solaris.64 Sun Sparc/Solaris 2.8 windows Intel x86/MS Windows 9x/Me, NT/2000/XP macosx MacOS X 10.1 macosx102 MacOS X 10.2 macosx103 MacOS X 10.3 and 10.4 eli Patches for the Emacs-Lisp interface. These patches and xeli should be downloaded into the eli/ (or xeli/) subdirectories of your Allegro directory. Where applicable, we publish both an emacs-lisp (.el) source file as well as a byte-compiled (.elc) version. The .elc file is typically compiled in the (X)Emacs version made available on our distribution CDs. If you use a different version, it may be necessary to re-compile these files. How to do so is described in the documentation included on your distribution CD, as well as online at http://www.franz.com It will be necessary to restart your emacs to allow these patches to take effect. The eli directories are also duplicated in each subdirectory. special Assorted patches which may introduce behavior that contradicts ACL 6.2 documentation or that we feel should not be part of the standard download trees (or downloadable via sys:update-allegro). Read the DESCRIPTIONS file in the special/ sub-directory for info on the patches found here and the directory into which they should be installed. is a directory tree that corresponds to an installed Allegro CL 6.2 (what is referred to in our documentation as the 'Allegro directory'). Thus, for example, patches that belong in the update/ directory on our windows-x86 port are located in the /pub/patches/6.2/windows/update/ directory. The file `LOG' in this directory (/pub/patches/6.2/) contains a most-recent-first list of all patches. The LOG file details what impact loading or not loading a particular patch might have, and will aid you in determining what patches you might want to avoid. Downloading Patches To Your Allegro CL Distribution Starting with version 5.0.1, there is a new, automated program you can use to download and install patches. If you want to install patches the old way, then you should see the section at the end of this document "Installing Patches Manually". The new Lisp function, sys:update-allegro, performs the automatic download and installation of patches. In this context 'installation' refers to placing each patch in their correct place in your Allegro CL distribution. sys:update-allegro does NOT necessarily result in a patch being automatically loaded into your lisp image. (sys:update-allegro &key documentation-only (destination-directory "sys:") except-patches force (host "www.franz.com") list patches (platform ) verbose (version ) proxy) The most common case will be calling this function with no arguments, which will download and install all patches. If this is not what you want to do, see the examples below. Patches are not downloaded if the size and CRC (checksum) of an existing local file is the same as the remote file. 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 might be asked to reboot your computer to finish the update process. Without rebooting, if asked to do so, you will not see the patched DLL. The keyword arguments to sys:update-allegro: :documentation-only Retrieve only the 'LOG' and `DESCRIPTIONS' files. Useful when you want to see what the current set of patches is. :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 be responsible for installing the patches (see the next section). :except-patches A list of patches to skip downloading and installing. :force Cause patches that you have previously downloaded to be downloaded again. In other words, the file size and CRC check mentioned above is not performed. This option should not be needed. :host You should never need to use this keyword argument. :list Returns a list of the patches you would have otherwise downloaded and installed. :patches A list of specific patches to download and install, relative pathnames from the /pub/patches// directory. The pathnames used in the LOG file entries can be used here. :platform The platform for which you wish to download patches. If you change this from the default value, you should also specify a destination-directory. Installing patches for the incorrect architecture would cause serious problems, probably making your Lisp unusable (requiring uninstallation and installation to make it work again). :verbose Cause various status messages to be printed. :version A specific version for which patches should be downloaded. As with platform, it is dangerous to specify a version without also specifying a destination-directory. :proxy sys:update-allegro uses HTTP to retrieve patches from our website. If you must access the web via a proxy server, you should specify the name/port of the server via this keyword argument. For example, users that access the web via www.myproxyserver.com, on port 8000, would add ':proxy "www.myproxyserver.com:8000"' as an argument when calling sys:update-allegro. Example: if you want to skip downloading and installing of update/p2a001.001, then do this: (sys:update-allegro :except-patches '("update/p2a001.001")) 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: Trial users: you cannot rebuild images and after running sys:update-allegro, all you need do is to restart your image. Loading Patches Manually If you do not rebuild your images, you can load patches by evaluating (sys:load-patches). We strongly recommend that you rebuild your images. Installing Patches Manually As patches are created, a number of different subdirectories may appear for each architecture. If you find subdirectories here that do not exist in your local Allegro directory, you will have to create them before installing patches. Each subdirectory has a DESCRIPTIONS file, which contains specific patch loading instructions for its directory. Please note that different Allegro CL directories may have different patch loading instructions, so you should be sure to read each DESCRIPTIONS file. This file also contains one-line descriptions of the patches for its Allegro CL directory. You can download tar'd, gzip'd archives of patches for each architecture, even though no such archives are kept on the Franz FTP site. (FTP will automatically create one for you on the fly and destroy it after it is sent to you, as long as the base name represents an existing directory). For example, to get solaris patches, FTP> cd /pub/patches/6.2 [ ... ] FTP> bin [ ... ] FTP> get solaris.tar.gz [ ... ] FTP> quit This may also be down via browser instead of ftp client, by entering a URL like the following: ftp://ftp.franz.com/pub/patches/6.2/solaris.tar.gz Users may then make use of their preferred archive and compression utilities to get at the archives contents. The examples below make use of gzip and tar, which are found on most *nix systems and MS Windows platforms that have cygwin installed. To unzip (decompress) the file after transferring it via ftp, use `gzip'. Type: gzip -d solaris.tar.gz This will leave a file called "solaris.tar", which you can then use tar to extract into your Allegro directory. Unix users should first create a symbolic link: ln -s . solaris When extracting from the tar file, this will cause the patches to automatically be copied into their correct locations, rather than into another subdirectory, requiring you to then move them into the correct spots. If you are downloading for a different architecture, then you should use the name of it instead of 'solaris'. To extract from the tar file: cd tar xf solaris.tar where is the directory into which you originally installed Allegro CL. Note that when downloading a patch archive via browser, the archive will be created relative to the root ftp directory and all patches will be extracted to pub/patches/6.2// rather than simply /. In this case, users will need to create the directory tree /pub/patches/6.2 first, followed by the command to create the symbolic link, before extracting the tar file: ln -s . pub/patches/6.2/solaris MS Windows users: WinZip is a compression utility for MS Windows 9x/Me, NT/2000/XP which is available from www.winzip.com--this software has restrictions, so please follow them. WinZip knows how to handle the gzip and tar formats(*). Extract the file into it's own subdirectory, then, using the Windows explorer, you can simply copy or move the patches into the appropriate folders. (*) Winzip users should turn off the "Tar file smart CR/LF conversion" option before _opening_ a tar.gz archive (as opposed to before _extracting_). This option has been found to cause errors in our .fasl files. This option is accessible in Winzip versions 8.0 and prior by selection the Options -> Configuration menu item, and choosing the 'Miscellaneous' tab on the dialog which then appears. To download patches for the Emacs-Lisp Interface, follow the steps included below. These should pertain to installing under both Windows and Unix. Refer to the pub/patches/6.2/LOG file to check for new ELI patches, or to determine if any of the older patches have been superseded. FTP> cd /pub/patches/6.2/eli [ ... ] FTP> lcd /eli [ ... ] FTP> bin [ ... ] FTP> mget * [ ... ] FTP> quit As stated above, you will need to restart your emacs to allow the patches to take effect.