;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:Common-Lisp; Patch-File:T -*- ;;; Patch directory for System version 124 ;;; Written 7-Jul-88 02:58:00 by keith (Keith Corbett) at site Gigamos Cambridge ;;; while running on Breaking Glass from band 1 ;;; with Experimental System 124.128, Experimental Local-File 74.3, Experimental File-Server 23.1, Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, Tiger 28.0, microcode 1761, SDU Boot Tape 3.14, SDU ROM 103, Beta 3 plus patches. (:EXPERIMENTAL ((0 "System Loaded" "pld" NIL) (1 "tv:*system-keys* was initialized to a set of windows that supposedly would always be in the system. Well, we removed FED, and now System-F gives you an error. Several fixes: - System-Help won't list known-to-be-absent flavors - System- beeps, not bombs, on absent flavors - (tv:add-system-key) won't add an entry that is (equal) to an existing entry. - the various system-keys are now created when the file defining the window is loaded." "pld" NIL) (2 "Attempt to make band transfers reliable. Clean up old code. Remove calls to obsolete machine-dependent functions." "pld" NIL) (3 "Change (si:service-disk-partition) to have the keyword arguments :subset-start and :subset-n-blocks. Update (si:copy-disk-partition) (si:compare-disk-partition) and (si:copy-disk-partition-background) to pass these parameters. These protocol-independent functions now have all the features of (si:receive-band), (si:transmit-band) and (si:compare-band)." "pld" NIL) (4 "Do not force user to login to use TCP versions of band transfer, finger, host time." "pld" NIL) (5 "If you do (hostat 'foo) where foo is an unknown host, hostat hangs forever. This is because (chaos:poll-hosts) doesn't trouble to remove hosts with no known Chaos address from its connection list." "pld" NIL) (6 "Additional support within ZMacs for Mode:CommonLISP or Mode:Common-LISP. Now, a file can be read into a buffer with the CommonLISP mode translation, and the :readtable and :syntax attributes will be preset to CommonLISP values. This means that (again, within ZMacs only), these files -- which probably came from a LISP machine distributed by other companies who shall go nameless -- will get read in properly. At this point, the user should still do 'Update Attribute List' manually, otherwise s/he will never see the values of the attributes that get set for CommonLISP mode." "keith" NIL) (7 "Performance improvements for TCP Band Transfer: - TCP-STREAM provides a :build-more-buffers method for increasing read or write buffers after stream is opened. - Disk Server calls this - Disk User asks for lots of buffers for the direction of I/O - No :force-output until the end of a long series of writes - TCP-STREAM gives CONNECTION-CLOSED error if :send-output-buffer fails, rather than just ignoring it." "pld" NIL) (8 "The TCP background process depends on variable *background-wakeup-time* to tell it that timeouts are armed. Setting of this is not interlocked. I noticed a TCP socket that was hung because it had a timeout armed but the variable was NIL. Hence, the background process did nothing. Don't let this happen..." "pld" NIL) (9 "FTP User and Server now use lots of buffers for their data connections for the appropriate direction of I/O." "pld" NIL) (10 "When TCP Disk Server was asked to WRITE a partition, it didn't increment the disk address between disk-writes." "pld" NIL) (11 "Create variables tcp:*tcp-stream-whostate* and udp:*udp-stream-whostate* that you can bind to something more meaningful than \"TCP socket I/O\" or \"UDP socket I/O\"" "pld" NIL) (12 "Make use of new TCP whostate feature in User FTP and FTP-ACCESS." "pld" NIL) (13 "Forgot a whostate in FTP-ACCESS. Also add some protection to ensure host units get freed if you abort while TCP connections are closing." "pld" NIL) (14 "User FTP shouldn't bomb trying to send a QUIT command on a connection that is already closed." "pld" NIL) (15 "If you abort while closing a file, it may be really closed but remain on the who line." "pld" NIL) (16 "Jim O'Dell's suggested change to logical pathname parsing - \".\" parses like \";\", so logical pathnames support LISPM directory delimiter style in addition to the standard style. I.e., \"sys:hardcopy.tiger;\" can be used instead of \"sys:hardcopy;tiger;\" - whichever is preferred. This might make some programs work more easily." "keith" NIL) (17 "Certain redisplay degrees caused an error when using variable width fonts; the reason was a call (in zwei:window-redisplay-dis-line) to an extinct function in the FED package, fed:font-char-min-raster-width. Replaced with GLOBAL:FONT-RASTER-WIDTH." "saz" NIL) (18 "Certain pieces of FED are used by ZWEI. Separate those out from FED into a new sub-system of System: Font-Utilities." "pld" NIL) (19 "The Peek File System display now successfully notices when the access method has changed for a host." "pld" NIL) (20 "Changes to File Host access: - You can now (send host :set-access flavor) to change the file access for that particular host. If the access method is inappropriate, NIL is returned, else the new file access. - (fs:reset-file-access) has been extended. The new calling sequence is (fs:reset-file-access &optional hosts flavor) Hosts can be a string, symbol, or host object, or a list of such items. If NIL, all hosts are used. If flavor is specified, that access flavor will be used, if appropriate, for all the hosts. If flavor is NIL, the current access is reset but no new one is chosen." "pld" NIL) (21 "I deleted resource fs:simple-art-16b-buffer from ftp-access because it was no longer needed in that file -- but server FTP still needs it. Restored...." "pld" NIL) (22 "Reset Chaosnet before disk-save." "keith" NIL) (23 "Give user warning and prescriptive notification when booting as AMNESIA. To do this well, defined CHAOS:AMNESIA-ADDRESS, the system constant specifying the Chaos address for an amnesiac system. Also defined (CHAOS:AMNESIA-P) to return whether the system is AMNESIA. Now, when the system determines its own address and host information (e.g., cold-boot), the user will get a warning notification with suggestions on how to get site information. -Keith and PLD" "keith" NIL) (24 "FQUERY enhancements: - If timeout, say \" -- timeout\" rather than just \"timeout\" - If reading with :tyi (e.g. y-or-n-p), Clear-Screen will clear the screen and reprompt." "pld" NIL) (25 "In prompting mechanism for FQUERY, modified printing of timeout values to use TIME:PRINT-INTERVAL-OR-NEVER. This gives much more intelligible intervals; for example, (Automatic default after 1 week 3 days, Y) instead of (Automatic default after 864000 seconds, Y) This new behavior shows up, of course, in Y-OR-N-P-WITH-TIMEOUT and friends." "keith" NIL) (26 "(fed:font-char-min-raster-width) does, in fact, exist...." "pld" NIL) (27 "If you forcibly take the 3com controller with (si:set-processor-owning-ethernet), you are now warned that unless the former 3com owner is dead, it must do a (net:configure)." "pld" NIL) (28 "The code that was added to (zwei:last-resort-possibility) to deal with package roots was totally broken...." "wkf" NIL) (29 "Peek File System now successfully notices when access type has changed, but didn't notice when an access with no host-units acquired some host units." "pld" NIL) (30 "When you Abort out of Opening a file with FTP-ACCESS, you have to reset the host unit -- control/data connection can be in weird states." "pld" NIL) (31 "In ZMacs, if you find a file which is/was associated with a buffer, it may have been deleted behind your back. ZMacs probes to see if the file still exists. Now ZWEI:FIND-FILE probes properly and gives the user a message; before, you could get an error [sending messages to a supposed stream which is actually NIL returned from OPEN for PROBE]." "keith" NIL) (32 "Put (ZWEI:CLEAR-ALL-HISTORIES) onto :gc-system-release initialization list." "pld" NIL) (33 "The buffers used by a TCP buffered stream are now a resource." "pld" NIL) (34 "Further support for CommonLISP mode file attribute for reader, loader, etc. Given 'Mode:CommonLISP' or 'Mode:Common-LISP', FS:FILE-EXTRACT-ATTRIBUTE-LIST now infers 'Readtable:CL'. Same for 'SYNTAX:CL'. Note that we don't override any attribute that is actually listed on the mode line. If any system code depends on 'Mode:LISP', a file with 'Mode:CommonLISP' will be a problem, but I haven't found any such cases. The readtable really matters for successful compilation, loading, etc." "keith" NIL) (35 "The resource matcher for a TCP:SIMPLE-ART-8B-BUFFER now looks for array-length = to the specified length, not >=. TCP really works best if the buffers are exactly the length of specified MSS..." "pld" NIL) (36 "Add a few Imports/Exports to NETWORK package." "pld" NIL) (37 "Create parameter fs:*ftp-access-record-history* to control whether FTP commands are recorded" "pld" NIL) (38 "Funny interaction between the process opening a file via FTP-ACCESS and the wholine: If one is in the process of doing a probe to get the property list when the other asks for the property list, the second gets a NIL. Not a problem if the wholine is second, but can cause an error if the wholine was first. Add an interlock." "pld" NIL) (39 "(cli:read-from-string) didn't handle eof-error-p correctly." "pld" NIL) (40 "If you run with fs:*ftp-access-record-history* set to NIL, you can no longer tell exactly what the Server FTP didn't like about your access request." "pld" NIL) (41 "When a :write-data request failed, a tcp-buffered-stream was losing its buffer." "pld" NIL) (42 "SUPDUP command Control-Y to send most recently killed string through connection used to require you to type \"." "saz" NIL) (63 "(copy-seq ) now preserves the fill pointer." "keith" NIL) (64 "(array-initialize), which is called by (make-array) did the wrong thing for zero dimensional arrays." "pld" NIL) (65 "(array-in-bounds-p) is supposed to return T IFF the subscripts it is given are all legal for the array it is given. It didn't require them to be integers, and, in fact, blew up if the were non-numeric." "pld" NIL) (66 "The SETF methods for the common lisp functions \"bit\" and \"sbit\" assumed that the arrays were one-dimensional." "pld" NIL) (67 "Problems with (adjust-array): - NEW-DIMENSIONS was required to be a list - It didn't type check that the dimensions were fixnums - couldn't handle 0-dimensional arrays (big deal...)" "pld" NIL) (68 "Fix up (make-string-input-stream): - properly handles the EOF argument to :tyi, :any-tyi, :tyipeek - calls stream-default handler to deal with operations it does not implement itself." "pld" NIL) (69 "FORMAT bugs: - ~:@P didn't back up an argument - ~0& did a fresh-line" "pld" NIL) (70 "Make FORMAT-STRING-STREAM ignore a :beep operation. Make FQUERY's readline function only call the stream with a :rubout-handler operation if the stream can handle it." "pld" NIL) (71 "Patch 124.63 caused bit arrays created by the reader via #*10101... to have fill pointers." "pld" NIL) (72 "Provide alternate-macro-definitions for PROG1 and PROG2 -- Steele claims these are macros, although we implement them as functions." "pld" NIL) (73 "UDP, UDP-STREAM, UDP-RWHO-SERVER fixes: - When a UDP socket is already in use, properly print the port number in the error - UDP-STREAM's :read-packet function will optionally return the exact packet it received rather than always copying the data - UDP Rwho Server uses this feature and no longer throws away a UDP buffer every time it receives a packet" "pld" NIL) (74 "First: (setq x '(a b c)) Then, `(a ,@x b) --> (a a b c b) but `#(a ,@x b) -- error" "pld" NIL) (75 "(setf (macro-function ) ) returned T, not " "pld" NIL) (76 "(make-hash-table) with an integer :rehash-threshold and unspecified :actual-size caused an error." "pld" NIL) (77 "You could try to :untyi past the beginning of a string-input-stream" "pld" NIL) (78 "(open \"file\" :direction :probe) to a non-Lisp machine using QFILE constructed a bogus open message. (open \"file\" :direction nil) worked fine." "pld" NIL) (79 "(setf (caaar x) y) was expanding like (setf (caar x) y)" "keith" NIL) (80 "Both the Gray Manual and Steele claim that (evenp) and (oddp) gave errors if their argument was a complex number. As coded, they instead always returned NIL, since the software canonicalizes complex numbers with zero imaginary parts into real numbers." "pld" NIL) (81 "Define new setf method for (fill-pointer). If you wish to reference the fill-pointer as (array-leader 0), you can store what you want in it, but if you reference it via (fill-pointer ...) there is now stricter checking of the new value." "pld" NIL) (82 "Yet another implementation of `#(...)" "pld" NIL) (83 "Common Lisp defines (unread-char) as returning NIL. Zetalisp does not define a return value. Return NIL..." "pld" NIL) (84 "Common Lisp defines the return value of PSETQ to be NIL; Zetalisp says it is undefined. Conform...." "pld" NIL) (85 "setf method for (fill-pointer) really wants to check (array-has-leader-p), not (array-has-fill-pointer-p), otherwise (make array ... :fill-pointer x) gets an error -- fill pointer initialized to NIL counts as no fill pointer." "pld" NIL) (86 "Try to find alternative packages if ZWEI's Meta-X Install Command fails to find a function definition for the target command in the current package." "saz" NIL) (87 "For people who like to modify their readtables... SET-MACRO-CHARACTER now signals a legible error when passed certain kinds of invalid CHAR arguments. For example, don't let the caller set syntax for a character with special bits (font, control, meta, etc.)." "keith" NIL) (88 "If you call FORMAT with a synonym-stream for *standard-output*, your Lambda loops in the microcode, as FORMAT binds *standard-output* to the stream. Similarly for a synonym-stream to a synonym-stream to *standard-output*, etc. Cure: create (si:follow-all-syn-streams), which is like (si:follow-syn-stream) but follows to the end of indirection. FORMAT now uses this..." "pld" NIL) (89 "CHAOS:FINGER-LISPMS (-F) formatting fixes -- the control string now allots more space for each NAME and TIME argument. All the columns now line up nicely, even if a machine has been idle for 10:00 or more." "saz" NIL) (90 "Fixes to (make-array): - In error messages, print number of dimensions, array-rank-limit, and dimension lists in decimal. - Code that purported to restrict arrays with named-structure-symbol to being one-dimensional could never work." "pld" NIL) (91 "SIgh. Create ARRAY: package so that QCOPT, with its K-only modifications, loads successfully. Completely meaningless to the Lambda..." "pld" NIL) (92 "When used on wildcard arguments, Zwei's Meta-X Copy File and Meta-X Rename File now display the intended from- and to- pathnames during the request for confirmation." "saz" NIL) (93 "For Zwei's Meta-X Finish Patch: \"Release this patch?\" minibuffer query now parenthetically tells you to: \"answer N if you are not completely sure that it works\", rather than \"answer N if you have not completely sure that it works\"." "saz" NIL) (94 "ZWEI fixes: - correct user visible spelling errors in documentation of a few commands. - com-install-command nicely dwimifies the package, but wasn't remembering the dwimification." "pld" NIL) (95 "Fix error compiling a simple variable binding case: (defun foo1 (x) (let ((x x)) x))" "keith" NIL) (96 "Common Lisp compatible error checks in ADJUST-ARRAY: - you can't displace an array to itself - you can't displace an array to an array which is indirected (to any level) to the first array. - you can't displace an array to another array of different type. Note that you can still (make-array) displaced across array types, and, in fact, this works for various kinds of number arrays. Fails badly, however, if you try to displace an art-q to an art-string." "pld" NIL) (97 "When you select a new tag table in ZWEI, retain the old search string if no tags search had been in progress for that table. Compatible with behavior before parallel tags search feature added..." "pld" NIL) (98 "Yet more system crash prevention in ADJUST-ARRAY: - You can't displace an array that would extend beyond the end of the other array. - Nicer printing of the array types in type-mismatch message." "pld" NIL) (99 "(bit-xxx) functions operate only on arrays of same rank and dimensions" "pld" NIL) (100 "Is this the last change to (adjust-array)? No more bugs from test suite... Argument checking: - If you specify :displaced-index-offset without :displaced-to, default the latter to the current indirect array. Error if none. - Generate error if more than one of (:initial-element, :initial-contents, :displaced-to) is given." "pld" NIL) (101 "Fix problems with behaviour of ZWEI command SET PACKAGE. Mostly, improve chances of finding a default package (take from global *PACKAGE* if Zwei's *DEFAULT-PACKAGE* is NIL, or USER as a last resort which should never occur). This solves problem when user hit Return and Zwei offered to create the NIL package. (That is strangeness, indeed.) Also rationalize prompts, error exits, and documentation string, which now says: Change the package associated with buffer or file. Specify a new package to be used when interning symbols read from this buffer; for example, evaluating or compiling parts of the buffer. This much does not affect operations on the file itself, only this ZMACS buffer. To specify a package that doesn't already exist, you must exit the first prompt with Control-Return, or type Return twice. Then you must confirm with /\"Yes/\". If you answer the first prompt with just Return, you will be asked whether to use a package chosen by default based on the current environment. Then you must confirm whether to use the default. You will also be asked whether to change the attribute list in the text. If you answer yes, the buffer's first line is modified to say that it belongs in the new package. This will affect all operations on the file, once you save the buffer. Then you will be asked whether to resectionize the buffer. If you say yes, all the functions definitions in the buffer will be recorded under symbols in the new package.\"" "keith" NIL) (102 "Print quantities grammatically in all cases for the following Zwei commands: Count Occurrences, Count Words, Count Lines, and Count Characters." "saz" NIL) (103 "ZWEI incremental search understands Control-W to append word at cursor to the search string." "smh" NIL) (104 "Fix (TREE-EQUAL x y :test-not 'eql). Also give error if you give both :test and :test-not keywords to TREE-EQUAL. Make same argument check in: ASSOC COUNT DELETE DELETE-DUPLICATES FIND MISMATCH NINTERSECTION NSET-DIFFERENCE NSET-EXCLUSIVE-OR NSUBLIS NSUBST NSUBSTITUTE POSITION RASSOC REMOVE REMOVE-DUPLICATES SEARCH SUBLIS SUBST SUBSTITUTE As it turns out, the only Common Lisp functions that already DID do this check were: ADJOIN INTERSECTION MEMBER SET-DIFFERENCE SET-EXCLUSIVE-OR SUBSETP UNION" "pld" NIL) (105 "\"(PROCLAIM ...)\" forms now get placed into .QFASL files MORE GLOBALLY: Top-level PROCLAIM forms now get passed to any compiler processing function. So we had to teach ZWEI to deal with PROCLAIM as it does with SPECIAL, DECLARE, and RANDOM -- by simply EVAL'ing the top-level form. -Keith and PLD" "keith" NIL) (106 "If (si:maybe-reload-system-declaration) chooses to load the file with the DEFSYSTEM in it, the message will go to *query-io* rather than to *standard-output*. This is consistent with (load) and (readfile)." "pld" NIL) (107 "Fix PUSHNEW, which was mis-optimized under certain (slightly bizarre) circumstances. The optimized code was applying the :TEST function to its arguments in the wrong order; now we call TEST on the ITEM, compared to the ELEMENT in the PLACE being compared. This was obviously a problem only for TEST functions which care about argument order. For example, (let((x '(1 2 3))) (pushnew 4 x :test '<)) returned (1 2 3), not (4 1 2 3). Check it with ADJOIN or MEMBER. [ASIDE: In fact, let's implement PUSHNEW purely in terms of ADJOIN, and so forth. This kind of bug used to exist in other CL sequence functions, which were also over-hairified. A comment in the code notes that ADJOIN should be optimized, not PUSHNEW. That is, PUSHNEW should be implemented in terms of ADJOIN. I agree with all my heart. The optimizer is just a potential source of lossage, since 1) ADJOIN is already highly optimized, and 2) the MEM--- functions being optimized for are mostly microcoded. If nobody objects, I will flush OPTIMIZE-PUSHNEW for release 5.]" "keith" NIL) (108 "Miscellaneous improvements - interface, logic, etc. - for ZMacs tag tables. 1. List Tag Tables has spaces between table displays, and doesn't use typeout window unless there's more than 'Done.'. 2. In some places avoid bad logic if current tag table is not set, but there's at least one in the table. This was being done variously; define (ZMACS-CURRENT-TAG-TABLE) to straighten this out. Use it a few places. 3. When reading system names from mini-buffer, make C-Sh-Y work (insert default so user can edit it). Similar for SELECT-TAG-TABLE. 4. In SELECT-TAG-TABLE, prompt for confirmation if there are no tag tables read in. Apparently either most, or all, hosts don't actively support the tag table file format; so make sure this is what user wanted, and avoid time-consuming chunking leading to useless messages. Also, when prompting for tag table, print default." "keith" NIL) (109 "Added ZMacs command List-Tag-Buffers. Displays the associated buffers for a tag table that have been read in. Display is mouse-sensitive like List-All-Buffers. Also displays the buffer that is the :CURRENT-PATHNAME in the search path. To do this, I added a parameter to the utility function TAG-TABLE-BUFFERS, so that it can pass a DEFAULT-P argument to SELECT-TAG-TABLE. I used this so that by default LIST-TAG-BUFFERS asks the user to select a tag table for the command. Control-U (or any numeric arg) is an escape hatch; the currently selected tag table, if there is one, will be displayed." "keith" NIL) (110 "Malformed PSETQs generally get caught during expansion of the generated SETQ form. One exception: an odd number of arguments turned into things like (SETQ ... NIL ...) which generated a misleading error. Now this error is caught during PSETQ expansion." "keith" NIL) (111 "More tag table housekeeping and fixes. Make ZWEI:TAGS-SEARCH-SYSTEM-POSSIBILITY a good citizen with other tag table launchers. Tag table names in *ZMACS-TAG-TABLE-ALIST* really, truly have to be strings. I taught various functions to respect this. Now, agreeing to search through the microcode for a function source won't kill off other tag table utilities." "keith" NIL) (112 "3 MISC instructions, INTERNAL-=, INTERNAL-<, and INTERNAL-> ended up in the si: package, not the system: package. Thus, compiler:internal-xxx were entirely different symbols. They still ended up being optimized into the appropriate MISC instructions EXCEPT when a multiple-value call was required, which actually generated a function call to compiler:internal-xxx -- which was not fdefined. Cure: perform package hackery to make sure the right symbols are in the right packages. Next cold load, they WILL be in the system: package to start with." "pld" NIL) (113 "Problems with calls to DEFF in the cold load file QFCTNS. Many, but not all, DEFF calls referred to the load-time function binding of the true function argument. Example: (DEFF SAMEPNAMEP #'STRING=) Some of them were severe bugs, in that the actual functions were not defined at the time of the cold load of QFCTNS. (That is, the troublesome calls were forward references.) This means you get a bogus error FUNCALLing them. Even the \"working\" references were buggy, because redefining the actual function would not affect the synonym. Solution: change all DEFF calls in QFCTNS to use (QUOTE symbol), not (FUNCTION symbol). We will have to investigate other system files for this problem. Also, updated DEFF's documentation to warn against using a function as the argument rather than a symbol." "keith" NIL) (114 "Fix up ZWEI mini-buffer default strings. C-Sh-Y gives a user-meaningful message if there is no default. Tags Search and Set Package have meaningful defaults. The generalized interface READ-FUNCTION-NAME-OR-STRING respects the externally bound default." "keith" NIL) (115 "DISK-SAVE now turns off GC after completing before-cold-initializations. Also print more meaningful messages, e.g. to let user know \"shut-down\" procedure is running." "keith" NIL) (116 "(si:system-source-files) returns the list of source files in a system and its component subsystems. Currently, it goes through the subsystems in REVERSE order. Looking at current callers of this function, there is no reason why it should do this. A human, calling ZWEI's \"Find System Files\", for example, would prefer the subsystems in normal order. Fix it." "pld" NIL) (117 "Bug in (make-broadcast-stream): If you send a broadcast stream a :send-if-handles operation, each stream receives a :send-if-handles :send-if-handles message." "pld" NIL) (118 "FQUERY fixes. Aside from various logic improvements: 1. now works with :TYPE :READLINE option. 2. :ANY choice is handled better in prompt and help string. FQUERY will display \"anything, Y, or N\" when :ANY is the first or intermediate choice. You see \"F, Z, or anything else\" when :ANY is last. 3. You can specify :ANY for the entire choice-list, which is just like (:ANY) -- only one choice, \"type anything\". --Keith + PLD" "keith" NIL) (119 "The handling of numeric arguments in Zwei's COM-SET-POP-MARK (ZMacs' Control-Space) was incorrectly coded. Now it works as advertised." "keith" NIL) (120 "Zwei's List-Tag-Table-Buffers now prints the search string context, if any, for the tag table. Carefully calculate buffer name string length and search string length to display! Misc. other logical and cosmetic improvements." "keith" NIL) (121 "ZWEI commands that make a tag table \"current\" (the one to do subsequent searches in) call a function MAKE-TAG-TABLE-CURRENT to do so. When there is a current search context for the new current tag table, this function will select the buffer and move to the point of the search context (where the search left off before). Now, before selecting a buffer and moving there, push the previous point on the point-pdl so the user can go back, e.g. with Control-Meta-Space." "keith" NIL) (122 "For CL defstructs of (:type vector) that generate the so-called type PHONY-VECTOR structure, the type predicate was expanding into something that blew up calling ZEROP with two arguments. Simple fix to the DEFSUBST. -Keith" "keith" NIL) (123 "In MAKE-ARRAY and ARRAY-SIZE-IF-MADE: Fix logic dealing with NAMED-STRUCTURE-SYMBOL in combination with LEADER-LENGTH and N-DIMENSIONS. The restriction should be stated (and coded!) as: \"Named-structure arrays without leaders must be one-dimensional.\" You now get that error if and only for something like: (make-array '(2 2) :named-structure-symbol 'FOO) ...whereas the following is acceptable (and failed before): (make-array '(2 2) :named-structure-symbol T)" "keith" NIL) (124 "Fix ZWEI:DOCUMENT-KEY so command function names print on normal output streams." "keith" NIL) (125 "Prefixing ZMacs' Tags Search with an augmented numeric argument (e.g. Control-U) now causes the \"new\" search to resume at the \"old\" search point. This is handy, for example, if Control-. has been redefined by a different command, and you want to pick up a tags search where you left off. This is not a random enhancement I just stuck in after the code freeze -- this is a crucial facility I need to edit callers and Tags Search at the same time while I fix problems in system 125." "keith" NIL) (126 "TV:WRITE-USER-OPTIONS now writes out :host-or-nil variables as \"(si:parse-host )\" rather than as #." "saz" NIL) (127 "SI:MAKE-DMA-BUFFER was working by accident. Discovered as a problem running TAPE software. This is the only occurrence in the SYSTEM system I can find that was making the mistaken assumption that an array's named-structure-symbol was by default stored in the array leader. (See the recent patch to MAKE-ARRAY.) Solution: wherever you want the NAMED-STRUCTURE-SYMBOL stored in the array leader, specify a postive :LEADER-LENGTH also." "keith" NIL) (128 "By popular demand, Jim's fix to ZMacs' COM- R-DIRED. The key sequence Control-1 Control-X D should \"show only files with the same first name as the current file\". Now that works as advertised. " "keith" NIL) (129 NIL "keith" NIL) ))