Patch-ID# 100327-02 Keywords: lisp, 4.0.2, clos, lispview, patch, bundle Synopsis: SCLisp4.0.2: Patch set including SCLisp 4.0.2, CLOS, LispView patches Date: 14-Aug-91 SunOS release: 4.0.3, 4.1.x Unbundled Product: SCLisp Unbundled Release: 4.0.2 Topic: A SCLisp patch bundle that contains 4.0.2 patches, new CLOS and LispView BugId's fixed with this patch: Architectures for which this patch is available: sun4 Patches which may conflict with this patch: obsoletes 100327-01 Obsoleted by: Problem Description: This is the Sun Common Lisp 4.0.2 patch set, complete with a new patched CLOS module and the LispView module. (SUN4 only) NOTE: The present 4.0.2 patch set is an interim version. It will be superseded by an upcoming patch set which is expected to redefine the 4.0.2 patch level. This is a NEW revision (patch-ID: 100327-02) of the 4.0.2 patch set. The only difference between the initially released 4.0.2 (patch-ID: 100327-01) patch set and this one is that a new version of lisp patch bug-5708.sbin has now been included. If you are already running with 4.0.2 loaded from the older patch release, then you may simply replace the lisp "patches" directory with the new one provided here, then reload the patches and rebuild your lisp image with this new patch set. In any event, this new patch for 5708 must NOT be loaded on top of an older version. Instead, it must completely replace it and the older version of 5708 must be removed. Also, if you decide to load this single patch manually, be sure to load it upon startup, before using the compiler. [The detailed README with installation instructions follow] Files for upgrading to Lisp 4.0.2 (and some extras) Topics: Introduction Upgrading to Lisp 4.0.2 Additional Notes OpenWindows Patch Release Notes: LispView Introduction ------------ This directory contains files needed to upgrade the original (FCS) Sun Common Lisp 4.0 Sun-4 Release to Lisp 4.0.2. Specifically, there are upgrades for LispView and CLOS, along with some patches that apply to all Lisp 4.0 images. The files for upgrading Lisp are as follows: build-lisp2 -- a shell script which can be used to build a Lisp 4.0.2 image from an FCS image clos.sbin -- a CLOS module with new CLOS patches lispview.sbin -- new version of the LispView module (LispView 1.1) lispview/xview -- subdirectory with XView support files for LispView patches -- subdirectory with a new set of patches relevant to all Lisp 4.0 Sun-4 images (and including all the patches from the FCS Lisp 4.0 Release) three font files required by one of the patches. Incidentally, the present directory also includes some unsupported extras that may be of interest to you. The file goodies/c-to-ffi.lisp contains a foreign function interface builder; the lispview/demos and lispview/util subdirectories include additional extras. Refer to those files for documentation. Upgrading to Lisp 4.0.2 ----------------------- The build-lisp2 script invokes a Lisp 4.0 starting image which you choose and builds a new image containing specified modules and appropriate patches. If no modules are selected, it simply builds a Lisp 4.0.2 image containing the patches needed by the starting image. The script is shipped in -- and must be run from -- a directory that contains the material listed above. Normally this would be your present directory; we'll call it the "". The script loads patches and (if requested) CLOS and LispView from ; other modules (if requested) are loaded from your FCS Lisp 4.0 directory (you will be prompted for the name of that directory). If you want an upgraded image containing CLOS or LispView, then you should start fresh; the starting image should be the original lisp-4-0-base or lisp-4-0-app image from your FCS Lisp 4.0 directory. If you do not use CLOS or LispView, but simply want to load the appropriate new patches, you can start fresh or start with another image not containing CLOS or LispView. To use the script, just invoke it from : % cd % build-lisp2 You will be prompted for the name of your FCS Lisp 4.0 directory; the directory of your starting image; the filename of your starting image; module selections; and a name for the new image. The script will take module dependencies into account and provide some comments to help with the selections. The script assumes that you have both permission and space available to write the new image. (It prints out some rough size guidelines for sample images.) If you have special requirements for your builds which make it inconvenient to use the script, you can manually load the modules and patches you need. See the section "Custom Images" in the Sun Common Lisp 4.0 Installation Guide. However, in that case you should consult the build-lisp2 code for the memory management and pre-compilation which should be done when the LispView module is loaded into the Lisp Development Environment. NOTE: Running "ranlib" on xview libraries -- If you are building an image with LispView module, be sure to run "ranlib" on the xview libraries included with this patch. For example: % ranlib /lispview/xview/*.a Additional Notes ---------------- If you have been loading Lisp patches for each session, for example, via a lisp-init file, make sure that none of the patches you load this way has the same number as a patch in the present patches subdirectory (so that you will not be reloading patches or loading an old version of an updated patch). OpenWindows(TM) patch --------------------- If you start the spirals demo (or any program that creates images) on a "fresh" OpenWindows 2.0 server (one that has not been "warmed up"), your program may cause the server to exit. A patched version of OpenWindows 2.0 server that fixes this problem and others, is available from the Sun Patch DataBase. Request the latest revision of Patch ID 100176-0x, where x is the current revision number. Release Notes: LispView(TM) ---------------------------- In addition to information on new features and known problems of LispView 1.1, listed in Chapter 1 of the LispView 1.1 Programming Manual, note the following: LispView 1.1 is (largely) source compatible, but binary incompatible, with the LispView 1.0 in the original release. Application files compiled with LispView 1.0 will need to be recompiled for use with LispView 1.1. You cannot change the owner of a popup-window dynamically. This is a limitation of XView 2.0. There is a known XView problem associated with deleting items in exclusive scrolling-lists that do not require a selection. You should set :selection-required t in order to avoid these obscure problems. Xview text field word replacement when at the end of a field fails. When you double click, the caret will be placed at the side of the word you are closer to. If you are on the left half, the caret is placed at the beginning of the word. If you are on the right half, it will be at the end of the word. Setting a base-window to "busy" will discard the previously set cursor for that canvas. The workaround is to set the cursor again after (setf (lv:busy bw) nil). char-metrics returns zero for lower case fixed-width lucida font on MIT X11. In certain cases, a popup-window may dismiss after pressing a button, even if the pushpin is set in. The method "clear" is not documented for opaque-canvas. Code generated by GLV shows LV symbols "panel" and "menu" qualified by the XV package. Value defaults to second item for exclusive-settings, instead of the first item. You must set the value explicitly, if you prefer the default elsewhere. The documented symbol LV:display-colors is now internal. For more information, see the section on Colormaps. The variable lv::*default-colormap-allocation* determines how much of the colormap is pre-allocated when LispView starts up and is currently set to 0.4. If you must connect more than two LispView sessions to the same server, you should set this value to less than a third. For details regarding changes in LispView from 1.0 to 1.1, please refer to Chapter 1, Section 1.5 of the LispView 1.1 Programming Manual-B Release. Gauges are always approximately 100 pixels wide, regardless of what width you define, and the initarg :show-end-boxes for class slider, is currently ignored. A fix for these two problems is included below: (in-package "LISPVIEW") (defun init-xview-panel-gauge (al g &key value min-value max-value show-range show-value nticks gauge-length show-end-boxes update-value &allow-other-keys) (push-xview-attrs al PANEL_DIRECTION (if (typep g '(or vertical-gauge vertical-slider)) PANEL_VERTICAL PANEL_HORIZONTAL)) (when value (push-xview-attrs al PANEL_VALUE value)) (when min-value (push-xview-attrs al PANEL_MIN_VALUE min-value)) (when max-value (push-xview-attrs al PANEL_MAX_VALUE max-value)) (when (null show-range) (push-xview-attrs al PANEL_SHOW_RANGE FALSE)) (when (null show-value) (push-xview-attrs al PANEL_SHOW_VALUE FALSE)) (when nticks (push-xview-attrs al PANEL_TICKS nticks)) (when gauge-length (if (typep g 'slider) (push-xview-attrs al PANEL_SLIDER_WIDTH gauge-length) (push-xview-attrs al PANEL_GAUGE_WIDTH gauge-length) )) (when (and show-end-boxes (typep g 'slider)) (push-xview-attrs al PANEL_SLIDER_END_BOXES TRUE)) (when (and update-value (typep g 'slider)) (push-xview-attrs al PANEL_NOTIFY_PROC (lookup-callback-address 'slider-notify-proc))))