LispWorks Patch Release 7.1.3 Copyright (c) 2021 LispWorks Ltd. All rights reserved. See PATCH INSTALLATION INSTRUCTIONS below for installation instructions. This patch release includes most of the private patches issued for LispWorks 7.1 from November 13, 2017 to July 3, 2019 plus patches required to run on macOS Big Sur. Please note that LispWorks patch releases are cumulative so you do not need to install previous patch releases separately. See CHANGES IN VERSION 7.1.2 SINCE 7.1.1 and CHANGES IN VERSION 7.1.1 below for changes between version 7.1.0 and 7.1.2, which are also included when you install this 7.1.3 patch release. CHANGES IN VERSION 7.1.3 SINCE 7.1.2 CAPI/COCOA Prevent an error from firstRectForCharacterRange:actualRange: after closing a dialog. (Lisp Support Call #41781) Fix full-screen mode. (Lisp Support Call #41859) Correctly disable interface toolbar items on macOS 11 (Big Sur) and also the toolbar overflow menu items on all versions of macOS. (Lisp Support Call #42179) Fix null pointer errors for GP:PIXMAP-PORT on macOS 11 (Big Sur). (Lisp Support Call #42201) Fix the computation of string widths in LIST-PANEL. (Lisp Support Call #42252) Avoid scrolling too much when a LIST-PANEL has initial selected item(s). (Lisp Support Call #42252) Fix warning about implicit use of NSOpenPanel. COMM Fix the choice of the default IPv6 address and zone on macOS (ignore inactive interfaces). Fix the definition of openssl library path to work on MacOS 11. (Lisp Support Call #42242) FLI On new MacOS Big Sur, allow finding libraries in the cache when the file does not exist. (Lisp Support Call #42242) OBJECTIVE-C INTERFACE Prevent error for unaligned ObjC method address on Big Sur. (Lisp Support Call #42179) SYSTEM Allow Cocoa applications to be accepted by Gatekeeper on macOS 10.15 onwards. (Lisp Support Call #41851) (Lisp Support Call #42056) (Lisp Support Call #42236) Make macOS 64-bit images run on Rosetta. (Lisp Support Call #42156) CHANGES IN VERSION 7.1.2 SINCE 7.1.1 CAPI Make :string constraints work correctly for buttons. (Lisp Support Call #41627) Make right-clicking in the tree-view temporarily select the clicked item and pass the item to the pane-menu callback.")Make right-clicking in the tree-view temporarily select the clicked item and pass the item to the pane-menu callback. (Lisp Support Call #41581) CAPI/WIN32 Make capi:browser-pane work in dialogs. (Lisp Support Call #41506) CAPI/COCOA Fix the size of buttons. (Lisp Support Call #41613) (Lisp Support Call #41619) (Lisp Support Call #41627) (Lisp Support Call #41628) (Lisp Support Call #41631) (Lisp Support Call #41647) Make capi:browser-pane work in dialogs. (Lisp Support Call #41506) Fix playing of MIDI files in 64-bit LispWorks. (Lisp Support Call #41648) Fix error about missing protocol when starting up. (Lisp Support Call #41788) CAPI/GTK+ Improve error handling for bad display values. Make state images work with a different image list from the normal images. (Lisp Support Call #41581) Guard against deadlocks when giving a warning for a GTK message. (Lisp Support Call #41562) Fix the data argument to PANE-MENU in multi-column-list-panel. (Lisp Support Call #41530) Guard against GTK warning: G-domain : Gtk, level 8: IA__gtk_accel_map_lookup_entry: assertion '_gtk_accel_path_is_valid (accel_path)' failed") (Lisp Support Call #41562) Make right-clicking in the tree-view temporarily select the clicked item and pass the item to the pane-menu callback. Also fix missing menu item callbacks in the first use of the pane menu. (Lisp Support Call #41581) SYSTEM Fix errors when entering the debugger from the stepper. (Lisp Support Call #41572) Allow a compound FUNCTION type specifier to be used as the :TYPE option in a DEFSTRUCT slot description. (Lisp Support Call #41557) Fix crashes in delivered images. (Lisp Support Call #41624) Fix utf-8 reading of bad three byte codes. Fix the foreign parser for files with a space in their path. Ensure that condition-variable-wait relocks the lock if there is an interrupt while it is waiting. COMPILER Fix DEFINE-DECLARATION handling of the :DECLARE. Fix compilation of files containing certain double-float constants. JAVA INTERFACE Fix proxies for methods that take arrays of classes. (Lisp Support Call #41514) COMM Prevent crashes when using certificate callback by comm:set-ssl-ctx-cert-cb. Fix OpenSSL 1.1 support for macOS. (Lisp Support Call #41599) Prevent errors when comm:create-async-io-state-and-connected-tcp-socket fails. (Lisp Support Call #41722) KNOWLEDGEWORKS Fix an error from STREAM:STREAM-READ-CHAR when using Common Prolog with SLIME. (Lisp Support Call #41546) COMMON SQL Fix prepared statements in MySQL after loading SQLite. (Lisp Support Call #41608) Remove duplication of connections in Oracle. (Lisp Support Call #41677) NOTES Issues marked (Lisp Support Call #x) have been previously reported in a support call with that cookie in the email subject line. For a description of the changes in version 7.1.0 please refer to the Release Notes distributed with the product in the Installation Guide and Release Notes manual. PATCHES IN 7.1.2 These are the filenames of the private patches added in version 7.1.2 since 7.1.1: add-user-declaration.lisp button-representation-best-dimension.lisp change-reference-count.lisp condition-variable-re-lock-recursive.lisp current-process-setup-remote-debug-level-info.lisp database-parameter-string.lisp define-setters.lisp display-dialog-representation-cocoa.lisp display-dialog-representation-win32.lisp enlarge-type-in-generation.lisp external-symbols-shaker.lisp foreign-utf-8.lisp gtk-parse-integer.lisp gtv-representation-state-images.lisp internal-g-log-callback.lisp list-panel-item-at.lisp load-on-demand.lisp logic-success.lisp maximum-string-length-button.lisp menu-accel-path.lisp merge-simple-vectors.lisp missing-protocols.lisp open-database-type.lisp openssl-version.lisp parse-proxy-interface-description.lisp patch-level-2.lisp prepared-statement-analyze-string.lisp preprocessor-format-string.lisp socket-connect-wait-state-report-error.lisp sound-midi-representation.lisp stream-utf-8.lisp stringify-an-integer.lisp temporary-pane-menu-selection-gtk.lisp temporary-pane-menu-selection.lisp unbox-double-from-constants.lisp utf-8.lisp There are also patches in the itself sequence which simply define patch sequences; there are not listed above, because they are not interesting. CHANGES IN VERSION 7.1.1 CAPI Produce clearer errors for PRINT-FUNCTIONs that do not return a string. Fix :title-gap for titles at the :top or :bottom. (Lisp Support Call #41396) Guard against trying to release again a free image. (Lisp Support Call #41311) CAPI/WIN32 Fix errors inside callbacks from menus with dynamic items. (Lisp Support Call #41431) In a rich-text-pane, avoid truncating files which are larger than the default text-limit. (Lisp Support Call #41419) CAPI/COCOA Prevent warnings about doCommandBySelector: with "noop:.". (Lisp Support Call #41381) Make GP:EXTERNALIZE-IMAGE and GP:EXTERNALIZE-AND-WRITE-IMAGE write the correct dimensions for the image on a Retina display. (Lisp Support Call #41312) Fix an error that occurs when clicking on the menu bar if a menu is created inside the :item-function of an application interface menu. (Lisp Support Call #41396) Fix the keyboard nativation order, to avoid panes with :accepts-focus-p nil. (Lisp Support Call #41371) Fix display of display-pane with horizontal scrollbar. (Lisp Support Call #41439) Fix veritcal sliders on 10.12 onwards. (Lisp Support Call #41336) Make the :drop-callback work for capi:list-panel on macOS 10.13 High Sierra. (Lisp Support Call #41388) CAPI/GTK+ Fix errors during initialization when external format default is changed. (Lisp Support Call #41374) CAPI/MOTIF Fix errors in writing postscript. SYSTEM Prevent adding call counters to system definitions that may cause problems. Fix defining structures after adding call-counters. Make the compound type specifier (X) work for all atomic type specifiers X. (Lisp Support Call #41356) Fix do-profiling with :PRINT NIL. Fix copying of 32-bit arrays in 64-bit LispWorks (the lisp-memory-copy-32-chunk patch). Fix errors during initialization on AIX when the external format default is changed. Fix recursive calls to load-system/compile-system when the outer call uses :target-directory. Fix LABELS dspecs. Fix lookup of foreign library names to be more precise of Mac OS X. (Lisp Support Call #41357) (Lisp Support Call #41432) (Lisp Support Call #41444) (Lisp Support Call #41458) Speed up CONCATENATE on strings. (Lisp Support Call #41444) Add keyword :allocation to SYSTEM:MAKE-TYPED-AREF-VECTOR. (Lisp Support Call #41351) Fix a rare GC bug that causes it to totally hang using CPU. Speed up simultaneous operations on bignums from multiple threads. (Lisp Support Call #41418) Fix copying of integer vectors on 64-bit LispWorks (the replace-i-vectors patch). Fix waiting on I/O for macOS when there are many open files. (Lisp Support Call #41366) Make pipe interface functions check their arguments on Windows. DELIVERY Fix crashes in delivered images with symbol names removed. COMPILER Fix a rare compiler bug in apply as tail call on ARM64. Fix compilation of functions with many setq forms with constants. (Lisp Support Call #41339) Speed up compilation of large CASE statements. (Lisp Support Call #41359) IDE Mark clearly in a Listener when it aborts the debugger because of session saving. (Lisp Support Call #41402) Fix prompting in Listeners in saved sessions. (Lisp Support Call #41402) Make error messages in a Listener cope with non-base-char. Fix display of internal profiler results in the IDE tools. Improve the asdf-integration in the system browser. Fix 'Step To End' in the Stepper. Various fixes to the Stepper for local functions and what is shown in the backtrace. JAVA INTERFACE Do not force image type to DLL after requiring java-interface. (Lisp Support Call #41379) (Lisp Support Call #41452) COM/AUTOMATION Fix setting of properties using com:invoke-dispatch-put-poperty and (setf com:invoke-dispatch-get-poperty. (Lisp Support Call #41430) Fix finding import paths for IDL files on Windows 10. OBJECTIVE-C INTERFACE Add missing FLI templates for objc:objc-at-question-mark. (Lisp Support Call #41373) COMM Fix SSL on macOS 10.13 High Sierra. (Lisp Support Call #41357) (Lisp Support Call #41432) (Lisp Support Call #41444) (Lisp Support Call #41458) CLIM Fix errors with :ICONIC resource. (Lisp Support Call #41360) KNOWLEDGEWORKS In F C history make the separator movable. (Lisp Support Call #41439) NOTES Issues marked (Lisp Support Call #x) have been previously reported in a support call with that cookie in the email subject line. For a description of the changes in version 7.1.0 please refer to the Release Notes distributed with the product in the Installation Guide and Release Notes manual. PATCHES IN 7.1.1 These are the filenames of the private patches added in version 7.1.1: arm64-apply.lisp arm64-memory-op32.lisp call-counter-sacred-fdefs.lisp capi-top-level-function.lisp collection-item-string.lisp compound-for-atomic-type-specifiers.lisp copy-function-template.lisp decorate-pane-titler.lisp define-foreign-two-symbols-caller.lisp docommandbyselector-quiet-noop.lisp do-profiling.lisp enable-mirror-1.lisp ensure-menu-item-id.lisp expand-flag-bit-memory-atomic-operation.lisp externalize-and-write-image-cocoa.lisp f-c-history-divider.lisp free-color-user-image.lisp get-type-info-member-info.lisp java-interface-reset-for-delivery.lisp lisp-memory-copy-32-chunks.lisp list-ar-file-modules.lisp listener-top-level.lisp load-system-recursive.lisp local-dspec-p.lisp look-for-library-in-path.lisp macos-version-1012.lisp make-sequence-of-type.lisp make-typed-aref-vector.lisp maybe-infer-venv-type.lisp menu-menu-item-update.lisp midl-default-import-paths.lisp must-set-initial-first-responder.lisp objc-at-question-mark.lisp output-to-compiler-message-with-edit-action.lisp patch-level-1.lisp pointer-marked-p-cfo.lisp print-profile-no.lisp process-tempbig-cache.lisp ps-external-format.lisp put-image-data-in-file.lisp re-free-gen-4.lisp remove-symbol-names-aux.lisp replace-i-vectors.lisp rich-text-forced-size.lisp sb-tv-system-browser-open-file.lisp select-extend.lisp set-known-var-ref-types.lisp setup-text-view-main-view.lisp single-value-type-union-bounded.lisp slider-orientation-cocoa.lisp ssl-module.lisp stepper-stop-at-end.lisp stepper-tool.lisp stp-may-need-tmp3.lisp system-dspec-locations.lisp tab-layout-representation-inner-view.lisp top-level-internal.lisp win32-open-pipe.lisp There are also patches in the itself sequence which simply define patch sequences; there are not listed above, because they are not interesting. PATCH INSTALLATION INSTRUCTIONS LISPWORKS FOR MACINTOSH Installers for 32-bit LispWorks are found under x86-darwin. Installers for 64-bit LispWorks are found under amd64-darwin. Run the pkg file 'LispWorks32bit_PatchInstaller_bundle2.pkg' or 'LispWorks64bit_PatchInstaller_bundle2.pkg' as appropriate. Install the patches in the same location where LispWorks 7.1 is already installed. If the LispWorks installation is not found, patches are not installed. Choose the "Install" option when prompted. The installer will add files to the patches subdirectory. It will also update the CFBundleVersion in the LispWorks application bundle. Uninstalling LispWorks will also uninstall the patches. There is no way to uninstall the patches separately from uninstalling LispWorks. LISPWORKS FOR WINDOWS Run LispWorks712Patches-32bit.exe or LispWorks712Patches-64bit.exe (as appropriate) and follow the on-screen instructions. This will add files to the patches subdirectory. The Windows Control Panel option Programs and Features > View installed updates will show "LispWorks 7.1.2" if these patches are installed. On Windows 10, the Settings option "Apps and features" will show "7.1.2" after you click on the LispWorks 7.1 item. Removing this update uninstalls only patches, restoring LispWorks to version 7.1.0. Removing this update will not remove any named patches that you have installed "by hand" in the private-patches directory. LISPWORKS FOR LINUX Installers for 32-bit LispWorks are found under x86-linux. Installers for 64-bit LispWorks are found under amd64-linux. Download either the RPM file or the tar archive; you don't need both. Patch Installation from the binary RPM file Please refer to the LispWorks Release Notes and Installation Guide for information about using RPM. The distribution files are also provided in tar format in case you do not have a suitable version of RPM or are using another distribution of Linux. Installation of LispWorks patch bundles from the RPM file must be done as root. You need to install patches in the same location as you installed LispWorks. By default LispWorks Professional/Enterprise is installed in /usr/lib/LispWorks or /usr/lib64/LispWorks. If you installed LispWorks here, then install the patches in the standard RPM way: rpm -Uh lispworks-patches7.1-7.1.2-1.i386.rpm or rpm -Uh lispworks-patches7.1-7.1.2-1.x86_64.rpm as appropriate. If you installed LispWorks in another directory, /usr/lisp for example, then use --prefix to relocate the patches to that directory, for example: rpm -Uh --prefix /usr/lisp lispworks-patches7.1-7.1.2-1.i386.rpm The directory name must be an absolute pathname. Relative pathnames and pathnames including shell-expanded characters such as . and ~ do not work. If you need to uninstall the patches, this would be done (again as root) by: rpm -e lispworks-patches7.1 Uninstalling this patch release will downgrade LispWorks to version 7.1.0, and will not remove any named patches that you have installed in the private-patches directory. Patch Installation from the tar archive Again you will need to do this as root. You need to install patches in the same location as you installed LispWorks. By default tar installations of LispWorks are in /usr/local/lib/LispWorks or /usr/local/lib64/LispWorks (for 64-bit LispWorks). For example: cd /usr/local/lib/LispWorks # or your installation directory gzip -d lw71-patches2-x86-linux.tar.gz tar xof lw71-patches2-x86-linux.tar LISPWORKS FOR X86/X64 SOLARIS Installers for 32-bit LispWorks are found under x86-solaris. Installers for 64-bit LispWorks are found under amd64-solaris. The patches are supplied as a standard package file, which has a different name from the LispWorks release package. The patch package depends on the LispWorks release package, which must be installed first. To install the patch package, do one of the following as appropriate: pkgadd -d LispWorksPatches71-32bit-bundle2 all pkgadd -d LispWorksPatches71-64bit-bundle2 all To uninstall the patch package, do one of the following as appropriate: pkgrm -n LispWorksPatches71-32bit pkgrm -n LispWorksPatches71-64bit LISPWORKS FOR FREEBSD Installers for 32-bit LispWorks are found under x86-freebsd. Installers for 64-bit LispWorks are found under amd64-freebsd. Login as root to perform the operations below. To upgrade from version 7.1.0, do: pkg add lispworks71-patches-32bit-7.1.2.txz or pkg add lispworks71-patches-64bit-7.1.2.txz If you have the 7.1.1 patch package installed already, then upgrade using: pkg upgrade lispworks71-patches-32bit-7.1.2.txz or pkg upgrade lispworks71-patches-64bit-7.1.2.txz To uninstall these patches, do: pkg delete lispworks71-patches-32bit-7.1.2 or pkg delete lispworks71-patches-64bit-7.1.2 LISPWORKS (32-bit) FOR AIX 32-bit LispWorks is installed by default in /opt/LispWorks/lib/LispWorks-32-bit although it is possible to install it elsewhere. You need to install patches in the same location as you installed LispWorks. For example: cd /opt/LispWorks/lib/LispWorks-32-bit # or your installation directory gzip -d lw71-patches2-rs6k-aix.tar.gz tar xof lw71-patches2-rs6k-aix.tar LISPWORKS (64-bit) FOR AIX 64-bit LispWorks is installed by default in /opt/LispWorks/lib/LispWorks-64-bit although it is possible to install it elsewhere. You need to install patches in the same location as you installed LispWorks. For example: cd /opt/LispWorks/lib/LispWorks-64-bit # or your installation directory gzip -d lw61-patches2-rs6k64-aix.tar.gz tar xof lw61-patches2-rs6k64-aix.tar LISPWORKS FOR SPARC SOLARIS Unpack the tar file in the lispworks directory. This will add files to the patches subdirectory. LISPWORKS FOR ANDROID LispWorks for Android is installed by default in $HOME/lw-android although it is possible to install it elsewhere. You need to install patches in the same location as you installed LispWorks. For example: cd $HOME/lw-android # or your installation directory gzip -d < lw71-patches2-android.tar.gz | tar xof - LISPWORKS FOR IOS LispWorks for iOS is installed by default in $HOME/lw-ios although it is possible to install it elsewhere. You need to install patches in the same location as you installed LispWorks. For example: cd $HOME/lw-ios # or your installation directory gzip -d < lw71-patches2-ios.tar.gz | tar xof - LISPWORKS (ALL PLATFORMS) After installing the new patches, you will need to restart LispWorks. You can check if the patches have been loaded by this call: (LISP-IMPLEMENTATION-VERSION) => "7.1.2" This version number appears in Help > About window (or its title). The version number also appears in the Podium Window of the LispWorks IDE on Windows, GTK+ and Motif platforms. On Mac OS X, it appears in the title of the application menu when a new application bundle is created as described below. If you wish you can save an image containing the new patches, either by saving an image explicitly or by creating a Saved Session. See "Customization of LispWorks" in the LispWorks User Guide and Reference Manual for details. LispWorks will start faster when patches are preloaded, though this difference is small on modern machines.