;;; -*- Mode:Text; Fonts:(CPTFONTB) -*- ;;; RELEASE NOTES FOR PATCH RELEASE 3.270 ;;; (Software Update to Release 3.0) ;;; THIS IS A PRELIMINARY, WORKING DRAFT. ;;; Unresolved issues are marked by "???" ;;; To print this file on the Lowell net: (fs:hardcopy-file "tish:softserv.doc;3patch.text" :page-headings nil :file-heading nil) Release Notes for Patch Release 3.270 (Software Update to Release 3.0) LMI Part #3329-0000 Rev 1 - 2/18/87 Table of Contents 1.0 Overview 1.1 Patch Release Components 1.2 Dependencies 1.3 Update Methodology 1.3.1 Site Files and the SYS HOST 1.3.2 Miscellaneous Tips 2.0 Installation Procedure 3.0 Fixes and Features 3.1 System 3.2 Microcode 4.0 Known Limitations and Restrictions 1.0 Overview This document accompanies the patch distribution tape with LMI part number 3328-0000. This patch release is a layered update to LMI Lambda software Release 3.0 LISP. A summary of the most significant bug fixes and enhancements is in the section 'Fixes and Features', below. These patches have been provided to improve the Lambda operating environment and software integrity. Patches may be required to ensure proper functionality of optional software, system operations, or user applications. Please review the section 'Fixes and Features' to determine the impact, if any, that these patches may have on your software environment. Contact LMI Customer Service with any questions you may have. 1.1 Patch Release Components The visible effect of loading patches is to upgrade the revision levels of standard software components from the original release patch levels. The updated components are 'System Revision Level' and 'Microcode'. Here is part of the output from (PRINT-HERALD) on a "vanilla" (original LMI distribution) Release 3.0 band: System Revision Level 3.205 Microcode 1593 After loading patches into the original 3.0 band, (PRINT-HERALD) should reflect the following revision levels: System Revision Level 3.270 Microcode 1600 The following table shows the original and patched software revisions: SOFTWARE COMPONENT ORIGINAL PATCHED ------------------ -------- ------- System Revision Level 3.205 3.270 Microcode 1593 1600 Use this list to verify that patches are being loaded into the proper band and that the upgrade is successful. The complete procedure for loading and saving patches is documented in section 2 below. 1.2 Dependencies As of this writing, there are no known dependencies between patch revision level and optional software products. If any problems are encountered with optional software, contact the LMI Customer Assistance Line for further information. It is always a good idea to recompile applications code under new LMI software releases; this ensures that modifications, e.g. to system macro definitions, are incorporated in your code. 1.3 Update Methodology Although the patches can be loaded into any Release 3.0 band, the recommended procedure is to install the distribution 3.205 band and then load patches. This new band should be saved to disk with the (DISK-SAVE) function. The patched band can then be used for application of any user environment customizations that may be needed -- for example, optional software or in-house application systems and/or patches. The normal procedure is to restore the patches and microcode, save an updated band, and then recompile and test your applications to determine what changes, if any, are required to make your code consistent with the new patches. You can restore the patch distribution tape from any host that has both a tape drive *AND* network access to the SYS HOST (see below). The installation procedure automatically restores the files from the distribution tape to the SYS HOST. Note: MODIFYING LMI-PROVIDED SOURCE CODE CAN CAUSE UNPREDICTABLE SYSTEM BEHAVIOR. Compare any "local patches" you may have installed to the distributed patch files to be sure that no conflicts have been created. The commands used for loading and saving patches are explained in section 2. 1.3.1 Site Files and the SYS HOST The SYS HOST (referred to frequently in LMI documentation) is generally a Lambda system containing a slot 0 file system partition on which the "3.0 LISP Files" (sources) have been loaded. Many Lambda systems running Chaosnet or TCP/IP software can access sources, patches, and site information contained on one SYS HOST. The installation procedure assumes that patches are being loaded into a 3.205 LISP band with VALID SITE INFORMATION. It is at least necessary that each system being updated can access files on its SYS HOST, which may or not be itself. To verify access to the SYS HOST and source directories, execute (listf "SYS:SITE;") -- to list your site file entries (listf "SYS:RELEASE;") -- to list an LMI source directory If either of these commands fails, you may have a problem with site files or with the network itself; call LMI for assistance. If you have customized your site files, you can load them into a band running on your SYS HOST with the following commands: (si:set-sys-host "LM" nil nil "DIRECTORY;") (update-site-configuration-info) ...where "DIRECTORY;" is the name of your site file directory [for example, "RELEASE-3.CUSTOMER-SITE;"]. The form of SI:SET-SYS-HOST is more complicated when you need to access site files from a remote Chaosnet host. For example, to load the site files from the default directory on a SYS HOST named "LAMBDA-A" with Chaosnet address 3740 (octal), execute: (si:set-sys-host "LAMBDA-A" :lispm #o3740 "RELEASE-3.CUSTOMER-SITE;") (update-site-configuration-info) 1.3.2 Miscellaneous Tips You can, if necessary, reload the vanilla 3.0 band/microcode tape from the SDU Load program using the "install" command, as documented in the Lambda Operations Manual for Release 3. The installation steps below *must* be executed in Release 3.0 LISP. Some of the LISP commands will fail unless they are executed in the "Initial Lisp Listener" (the first window that appears on the high-resolution monitor). Always login immediately after cold-booting the Lambda. For example, to log in as "keith", execute: (login "keith" t) 2.0 Installation Procedure Follow steps 1-5 to restore patches and microcode, switch to the new microcode, and load patches into the band. Step 6 suggests using (PRINT-HERALD) to confirm that the update has worked. Then follow steps 7-8 to DISK-SAVE a new band. This new current band is now a foundation on which any site-specific customizations (e.g., optional software) can be layered. Finally, verify that your applications and normal operations work properly with the updated software. You can repeat steps 2-6 as needed to reload patches on other systems. INSTALLATION PROCEDURE [STEP 1] RESTORE PATCH FILES AND MICROCODE *** THIS STEP MUST BE EXECUTED IN THE INITIAL LISP LISTENER! Mount the patch distribution tape and execute the following: (tape:install-distribution-tape) You should be prompted as follows: Do you wish to install PATCH DISTRIBUTION TAPE #1? (Y or N) Answer 'Y' to confirm that this is the correct tape. Any other messages or error at this point may indicate that the wrong tape has been loaded. If you encounter an error indicating that "the TAPEMASTER device is currently being used" by another processor, you can press to "steal" the tape drive from the other processor. Next, a menu will appear prompting you to "Choose Installation Parameters". The options, with default values, are: - Query about each file being restored: NO - Load patches after restoring tape: NO If you plan to save a band, click on "NO" after the option "Load patches". This is because the patches should be loaded later in the installation (after cold-booting on the new microcode). To proceed, click left with the mouse on the box marked "Exit". The installation procedure will automatically restore the patch files from the tape. After the patch files are restored, you will be prompted whether to restore the microcode partition: Restore partition "ULAMBDA 1600"? (Yes or No) Answer YES to restore the new microcode to a disk partition. You will then be prompted to specify a partition to contain the new microcode; for example, Type a partition name on LAMBDA-A (unit 0) for writing partition ULAMBDA 1600 or to find one>> Enter a partition name of the form LMCn, where 'n' is the number (generally 1 through 4) of a spare microcode partition. If you do not know which partition to choose, press to list the disk label. Select a partition name; then press Control-P, enter the chosen name, and exit by pressing . After you select a partition name, you will be prompted to confirm: "Do you really want to clobber partition ...?" Answer YES to continue. After the files and microcode are restored, you should see the message "Patch installation complete." If you chose the option to "Load Patches" from the menu, the compiled patch files will be loaded into the running LISP world. This is recommended only if you want to test the patches without saving a band at this time. If you do want to save a band, the installation steps below describe how to reboot on the new microcode and load patches manually. Once the patch tape files have been restored on the SYS HOST, you can build a patched band on any system communicating with this SYS HOST by following the remaining installation steps on each system. Alternatively, you can build one band and copy it to other systems via tape or band transfer. [STEP 2] COPY NEW MICROCODE FROM SYS HOST TO OTHER HOSTS Skip this step if you are only updating one Lambda system which is its own SYS HOST. EXPLANATION: This step is only required on a network, for systems other than the one you used in STEP 1 to restore the files and microcode. For example, if the SYS HOST does not have a tape drive, you can perform STEP 1 on a different system; the files are restored to the SYS HOST, but the microcode is copied to a partition on the "local system," the one with the tape drive. So, every Lambda system on the network (except for the one you worked on in STEP 1) needs a copy of the new microcode from the SYS HOST. The microcode is copied from the SYS HOST file system. Execute the following on each system where you need a copy of the microcode: (si:load-lmc-file "SYS:UBIN;ULAMBDA.LMC" 'LMCn) ...where 'n' is the number (generally 1-4) of a spare microcode band. You will be prompted to confirm; answer YES to continue. [STEP 3] SET NEW CURRENT MICROCODE Execute (set-current-microload 'LMCn) ...where 'LMCn is the band containing the new microcode. This will cause the system to select the new microcode by default when you cold-boot. [STEP 4] COLD BOOT LISP Press Control-Meta-Control-Meta-Line to exit LISP and bring up the Newboot "Command:" prompt. If you have previously used the Newboot program to select temporary partition selections, you must cancel these overriding selections by executing Command: set-band - Command: set-uload - This will ensure that the default band/microcode specified in the disk label are selected. Execute Command: label to verify that the new microcode and original 3.0 band are selected. Then execute Command: boot to cold-boot LISP. When LISP comes up, you should see a message at the top of the screen, before the herald: "Loading error table from microcode partition". This confirms that the new microcode has been accessed. [STEP 5] LOAD PATCHES Execute (load-patches :noselective :nosite) This will load all patches into the running LISP environment. As each patch is loaded, a summary description is printed on the screen. This command can be re-executed at any time, as long as the SYS HOST is accessible. Only those patches that have not previously been loaded are loaded by LOAD-PATCHES. If you wish to review the patch comments at a later time, execute (si:print-system-modifications 'sys) ;;; Added 'sys -rpp [STEP 6] CONFIRM PATCH UPDATE LEVEL To verify the software revisions after loading patches, execute (PRINT-HERALD) and confirm the new software levels: System Revision Level 3.270 Microcode 1600 [STEP 7] SAVE BAND *** THIS STEP MUST BE EXECUTED IN THE INITIAL LISP LISTENER! Execute (disk-save 'LODn) ...where 'n' is the number (generally 1-4) of a spare load band [LOD disk partition]. You will be asked to confirm; answer YES. Answer the prompt for a herald comment with a descriptive phrase, e.g. "3.0 patch". The system will compute a disk partition comment, but it will be longer than 16 characters; you will be prompted for a shorter comment. Kill off the long comment by pressing Control-A Control-K, and enter a new one such as "3.0 patch". [??? Can't we fix this in the patches???] [STEP 8] SET CURRENT BAND After the machine re-boots, make the patched band "current" by executing (set-current-band 'LODn) ...where 'LODn is the patched band you saved in the previous step. 3.0 Fixes and Features The significant modifications included in this patch release are outlined below. 3.1 System Significant modifications to System 3.205 include: System Problem/Fix ------ ----------- 3.206 Fix CommonLISP MAKE-ARRAY (keywords not recognized). 3.207 Fix values of Boolean constants so that BOOLE and functions that depend on it like BIT-ANDC1 now behave correctly. 3.208 Make CommonLISP IF indent correctly. 3.209 Fix BIT-AND, -IOR, -XOR, -EQV, -NAND, -NOR, -ANDC1, -ANDC2, -ORC1, -ORC2, and BIT-NOT to accept a result-bit-array argument of T. Also, fix typo in CHECK-SEQUENCE-ARGUMENTS. 3.210 Fix to LISP:TIME. 3.211 Fix to TAGBODY; allow tags to be integers. 3.212 Inspector feature (inspecting named-structures). 3.213 Argument to TIME:SET-LOCAL-TIME can be universal time. 3.214 Fix TV:BASIC-MENU, TV:MENU-HIGHLIGHTING-MIXIN to accommodate strings in item lists 3.215 FIND: Fix :FROM-END T. COUNT-IF-NOT: Call COUNT-1 with correct args. COUNT, COUNT-IF, COUNT-IF-NOT: Accept :FROM-END keyword. 3.216 CommonLISP DEFSTRUCT: Create "COPY-" function if :copier option is not supplied. 3.217 Fix (nsubst '(z) '(b) '(a b) :test #'equal). 3.218 Describing a symbol uses better criteria for figuring out when it is interned in other packages. MACROLET'ed macros are now seen by local functions. 3.219 Fix NCONC to not accept non-lists. 3.220 Fix :FROM-END T in REMOVE, DELETE, etc. 3.221 Fix FORMAT args ~E and ~G. 3.222 Internal compiler fix. 3.223 Fix to RECEIVE-BAND. 3.224 Internal modifications to configuration structures for Excelan. 3.225 Handle logical-end-of-tape condition in FIND-FILE, FIND-FILE-REVERSE, etc. 3.226 Remove bogus OUTPUT-FILENAME keyword from COMPILE-FILE. 3.227 Fix typo in Common-LISP MAKE-ARRAY (:DISPLACED-INDEXED-OFFSET should be :DISPLACED-INDEX-OFFSET). 3.228 Cosmetic fixes, e.g. documentation strings. 3.229 Fix bug with TAPE:COMPARE-FILES on disk partitions. 3.230 Pretty printing of the PLIST of a special form now works. 3.231 FS:BALANCE-DIRECTORIES determines whether a file needs to be copied based on version numbers -- but it didn't preserve version numbers when copying. 3.232 Fix e.g., (SXHASH '((nil) . 5)). 3.233 In FS:BALANCE-DIRECTORIES, if two files have the same version number, but one has a later creation date, the later file should be copied. 3.234 Fix SUB-APROPOS. 3.235 Fix arg to FORMAT in GC. 3.236 Fix Common-LISP ASSOC and RASSOC to use the :KEY keyword. 3.237 Fix redisplayer of RH buffer to call :STRING-OUT with the END argument supplied, avoiding possible bombouts due to STRING-LENGTH. [??? Oh? ] --dunno. Why not suppress some of the detail, e.g.: Fix to rubout handler buffer redisplay function 3.239 Fix printing regions and buffers of Zwei buffers (e.g. ZMail, Converse) that don't use zmacs-buffers. 3.240 ALLOCATE-DMABUF lost a buffer each and every time its PROCESS-WAIT function was called more than once before the scheduler let it run again. 3.241 Use `ERROR-RESTART' instead of `CATCH-ERROR-RESTART' in (FTP:CMD) so that the FTP command loop will be reentered as expected. 3.242 Bind *PRINT-RADIX* to NIL in (FTP:CMD) to prevent garbage from being printed with numbers by PRINC and PRIN1. 3.243 Fix MAPCAN and MAPCON so that they NCONC properly. 3.244 Change METER:RESUME-GC-PROCESS so that both arrest reasons are removed and the GC actually starts again. 3.245 Use ARRAY-LENGTH instead of STRING-LENGTH on fat-strings. Fixes ZMacs non-incremental delimited search problem. 3.246 Make sure that all host nicknames are put in the right order on the "HOSTL" list. [??? what list ???] -- some internal thing, right? Nicknames with a long domain suffix were getting shuffled to the end, where the host's "official" name was supposed to go. 3.247 Make SIGNAL-PROCEED-CASE work with proceed types (the keys of the clauses) that are not symbols, numbers, or characters. Make ASSERT work with PLACE expressions that are not just variables. For both macros, the problem cases already worked in the evaluator, but not in compiled code. 3.248 Add :CLEAR-INPUT and :CLEAR-OUTPUT methods to UNIX-STREAMs. Call the new methods from the :CLOSE method. Also, if :CLOSE is called with ABORTP non-NIL, it drops pseudo-carrier on the line for 1-second. 3.249 Make STRING and ALPHALESSP handle bignums correctly. 3.250 Remove CHAR-STANDARD documentation string. 3.251 1. Retransmitting an RFC doesn't clobber the window to 65535. 2. All updating of send window and handling of acknowledgment occurs in RECEIPT. 3. Do not use the "packets received" field of a received STS packet as an ACK field; simply use it to remove packets from the send queue. 4. When on an Explorer, call the specific Explorer functions directly. 3.253-6 Implement new file system directory format (see below). 3.257 Improve behavior of tape software when using multiple tapes. 3.258 Add site initialization which plugs chaos address into proc-conf. 3.259 Fix condition signalling and handling for local file errors. 3.260 Change file system types and default devices at site-option time. 3.261 Add error checking to CHAOS:LAMBDA-GET-NEXT-PKT. 3.262 Fix to DISK-RESTORE. 3.263 Fix to scheduler. 3.264 Improve zmail address parsing. 3.265 Add TV:GET-BOW-MODE: Returns T if screen is composed of white characters on a black background. 3.266 Fixes to codewalker: * The expansion functions of local macros are always defined in the top level environment. * Do not bind macro/function environment to NIL when walking the results of a macroexpansion; fixes ZL:MACROEXPAND-ALL of things like (macrolet ((x () 'x) (y (thing) `(car ,thing))) (y (x))) 3.267 MAKE-SEQUENCE: allow TYPE to be (vector bit), (vector double-float), etc. 3.268 Fix View File of large font files. 3.269 Fix C-Sh-C in Zmail buffers 3.270 No longer advise user to report tape device driver or hardware error to LMI (e.g., when an attempt is made to LIST-FILES on a blank tape). 3.2 Microcode Microcode 1600 includes an important modification to the Garbage Collector; it fixes a problem that caused intermittent LISP crashes. 3.3 New file system directory format [Get GJC to write something on this. Has to be installed by user with (fs:install-new-lm-version) ] 4.0 Known Limitations and Restrictions Some bugs have been reported since the initial release of 3.0, and thus are not listed in the 3.0 manual "Known Bugs and Limitations". The following is a current list of significant bugs that are not fixed as of this patch update: [??? Need final list !!!]