;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:Common-Lisp; Patch-File:T -*- ;;; Patch directory for System version 126 ;;; Written 19-Oct-88 16:45:38 by JIM at site Gigamos Cambridge ;;; while running on Maurice Ravel from band 3 ;;; with Experimental System 126.111, Experimental ZWEI 126.20, Experimental ZMail 74.9, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Unix-Interface 15.0, Experimental Tape 26.4, Experimental Lambda-Diag 18.0, microcode 1762, SDU Boot Tape 3.14, SDU ROM 102, Kenv 10/4. (:EXPERIMENTAL ((0 "System Loaded" "pld" NIL) (1 "SI:SHOW-VIRTUAL-MEMORY-FRAGMENTATION draws image of regions; limit used to be 256. Correct quantity is now SI:NUMBER-OF-REGIONS. -Keith" "pld" NIL) (2 "Add :force-p keyword to (ethernet:exos-stats) to query the board even if the interface is not enabled. Needed by (ethernet:netspy)..." "keith" NIL) (3 "Change these macros (used by cross compiler) to allow watching *open-frames* change a bit easier." "RWK" NIL) (4 "Give correct byte specifications to sys:%%fasl-group-check and sys:%%fasl-group-flag." "pld" NIL) (5 "PROCLAIM-UNSPECIAL was completely brain damaged. Apparently it had never been exercised. Now it and (PROCLAIM '(UNSPECIAL FOO)) both work." "smh" NIL) (6 "System-Help now prints keystroke characters with a remark. Example:  (Top-L)" "pld" NIL) (7 "The arglists for tcpa:define-network-service and tcpa:subprocess were screwed up, even though they explicitly did (declare (arglist ...)) This is because the symbol GLOBAL:ARGLIST was not imported into the NETWORK package. Fix the package and recompile the macros..." "pld" NIL) (8 "Completely changes how definitions and declarations are maintained local to a file compilation, preparatory to providing real cross-compilation support. A new first-class object exists, called a COMPILATION-ENVIRONMENT. The variable COMPILER:*COMPILATION-ENVIRONMENT* can be bound to one of these. GETDECL and PUTDECL have been modified, and these vars no longer exist: FILE-LOCAL-DECLARATIONS, FILE-SPECIAL-LIST, FILE-UNSPECIAL-LIST. Also includes a couple K-compatibility customizations to QCP1." "smh" NIL) (9 "Implements some new #+ and #- syntax for cross compilation: #+(TARGET FOO) looks for FOO on COMPILER:*TARGET-FEATURES* For symmetry and completeness: #-(LOCAL FOO) looks for FOO on *FEATURES*" "smh" NIL) (10 "Add :IMPRESS and :DVI to canonical file types. Put them, and :BOTEX, on the lists that COPY-FILE is supposed to look at to determine whether a file is :CHARACTERS T or NIL. (It doesn't, but that is the story for another patch.) " "keith" NIL) (11 "a udp-socket now lets you specify :gauge-name on open" "pld" NIL) (12 "Moved *TARGET-FEATURES* to SI package. Made #+(TARGET ...) ignore *TARGET-FEATURES* if null." "smh" NIL) (13 "COMPILE-FILE now takes an additional keyword arg: :EXPLICIT-COMPILATION-ENVIRONMENT. This is passed through to QC-FILE." "smh" NIL) (14 "Aesthetic gesture: Added :GIGAMOS to *FEATURES*." "smh" NIL) (15 "The DIRECTORY function was bombing out over TCP/FTP. Teach FS:FTP-ACCESS to ignore the :FAST option to DIRECTORY-LIST." "keith" NIL) (16 "Added *FASD-INDIRECT-ARRAY* in preparation for further cross-compilation changes." "smh & RWK" NIL) (17 "Added canonical file types :FBIN and :FDEF. Obsoleted :KFASL." "smh & RWK" NIL) (18 "Function COMPILE-STREAM: Remove bogus conditionalization. Function COMPILE-FILE-DRIVER: Keyword interface for what used to be QC-FILE (which remains for compatability, but calls COMPILE-FILE-DRIVER now). The arglist was getting quite out of hand! Adds :target-computer, :target-features, :environment-pathname, and :byte-size keyword args to the functionality of QC-FILE. Function COMPILE-FILE: Use COMPILE-FILE-DRIVER. Function COMPILE-FILE-FOR-FALCON: Call the cross compiler, and write an environment file, too. Function QC-FILE: Now a compatability stub. Call COMPILE-FILE-DRIVER to do the work. Function WRITE-COMPILATION-ENVIRONMENT: Write a compilation environment to an FDEF file. Function LOAD-TO-COMPILATION-ENVIRONMENT-INTERNAL: Used by the FDEF files. Variable *FALCON-ENVIRONMENT*: Environment holding global information about the Falcon system. Variable SI::*FALCON-FEATURES*: Features list for the Falcon. Initially: (:falcon :gigamos :lexical :commonlisp :loop :defstruct :lispm :mit :lmi :common :sort :fasload :string :newio :roman :trace :grindef :grind) -- smh & RWK" "smh&RWK" NIL) (19 "Variable SI::*LAMBDA-FEATURES*: Add this to describe the Lambda target. Variable SI::*FALCON-FEATURES*: Put this in the right file. Function SI::PROB-FROCESSOR: Conditionalize this to work on the Falcon." "RWK" NIL) (20 "SI:COMBINED-SDU-SERIAL-STREAM-FLAVOR had a FORMAT bug, and returned an incorrect flavor name when :ASCII was T." "keith" NIL) (21 "Fix FTP-ACCESS paths :OPEN method so that probe calls return NIL when file does not exist. Most straight-forward way is to return stream iff probe stream finds a TRUENAME for file from the PROBE-DIRECTORY-LIST. Also had to implement proper handling of :ERROR and :IF-DOES-NOT-EXIST. Now, things like this work: (open \"angel:/usr/spool/mail/keith\" :direction :probe)" "keith" NIL) (22 "Improve interface to DISK-SAVE. SI:GET-NEW-SYSTEM-VERSION now takes :QUERY keyword (which DISK-SAVE uses). If non-NIL, offers user chance to edit the system label string. This solves a problem whereby DISK-SAVE no longer gave an opportunity to specify your own partition comment. That happened when we changed all the loaded standard systems (except SYSTEM) s.t. they do not appear in the disk label comment by default. Other presentability improvements thanks to SAZ. -Keith" "keith" NIL) (23 "Fixed setf-method for GETF. Now this will work (gasp!): (setf (getf (gethash symbol (structure-slot-accessor frob)) indicator) new)" "smh" NIL) (24 "Fixed over-optimized optimizer for GETF. Previously (GETF (FOO) 'PROPERTY) would blow up in compilation." "smh" NIL) (25 "The COMPILATION-DEFINE mechanism now knows about COMPILATION-ENVIRONMENTs ... sort-of." "smh" NIL) (26 "Minor bug in COMPILE-FILE-FOR-FALCON" "smh" NIL) (27 "QCOMPILE0 knows about COMPILATION-ENVIRONMENTs for arglist purposes" "smh" NIL) (28 "ARGLIST knows about COMPILATION-ENVIRONMENTs" "smh" NIL) (29 "Make sure :LAMBDA is on the si:*features* list. It was accidentally clobbered by an earlier patch, now repaired." "RWK" NIL) (30 "Delete :FOR-FALCON from the features list, since it's not a feature. Use #+(TARGET FALCON) instead." "RWK" NIL) (32 "Preliminary patching for FASLOAD changes, so the real patch will be able to load itself! Define the various new FASL ops, and the new names for the stream buffer variables. Define the variables: Variable *FASL-NIBBLE-8BIT*: T if using 8-bit bytes. Variable *FASL-NIBBLE-PEEK*: Holding tank for peeked-at nibble. Variable *FASL-BYTE-SIZE*: 16 for now, but will become 8. Use *FASL-BYTE-SIZE* in various functions: FASLOAD, QFASL-FILE-PLIST, FASL-APPEND Function FASLOAD-INTERNAL: Bind the new variables needed by the rest of it." "RWK" NIL) (34 "Patch in new QFASL.QFASL, which can read the 8bit QFASL files, etc." "RWK" NIL) (35 "New debugging function COMPILER:PRINT-COMP-ENV which prints the content of a COMPILATION-ENVIRONMENT object in readable form." "smh" NIL) (36 "Minor fix to new define-setf-method for getf." "smh" NIL) (37 "New QFASD, to write 8bit files." "RWK" NIL) (38 "New MAKE-SYSTEM changes to handle :FOR-FALCON, saving and loading environment files, etc." "RWK" NIL) (39 "Add *SYSTEM-LOAD-BINARY-FILE-TYPE* to the frobs bound here." "rg" NIL) (40 "Add FASD-INDEX, and make FASL-OP-K-IMMEDIATES and FASD-K-LOAD-TIME-EVALS." "wkf" NIL) (41 "Fix package inadequacy in array-type optimizations for K cross compilation. This will eventually be better fixed such that array-type args will be quoted symbols instead of groady numbers." "smh" NIL) (42 "Force FDEF files version number to track source file version number." "smh" NIL) (43 "Add two extra args to COMPILE-LOAD-INIT-CONDITION to keep make-system from blowing out." "JIM" NIL) (44 "The Fixup code for the in-core datastructures for systems in patch System 126.38 didn't find some transformation types salted away in the dependencies lists for component systems (sigh). Fix them up harder." "RWK" NIL) (45 "Fix multitudinous bugs in the Falcon compiled-function FBIN format and code. Note expecially: DON'T USE FASD-FIXED!!! (It's a subroutine of FASD-CONSTANT, which (among other things, is responsible for putting the object in the fasd-table.) This is one of a half-dozen ways the FASD and FASL tables were out of synch. Also, eliminate numerous gratuitous hirsute operations which really just wanted to be subroutines of the main operation." "RWK" NIL) (46 "FBIN: Flush FASL-OP's no longer used due to previous patch." "RWK" NIL) (47 "Bump the FASL version to 2. Version 1 QFASL files are still compatible, but this obsoletes version 1 FBIN files." "RWK" NIL) (48 "Take my debugging print statement of FASD-K-COMPILED-FUNCTION, sigh." "RWK" NIL) (49 "Make QFASL-STREAM-PROPERTY-LIST setup *FASL-NIBBLE-8BIT*" "smh" NIL) (50 "Further refinement of qfasl-stream-property-list to bind *fasl-nibble-peek* to nil." "JIM" NIL) (51 ";; don't send the property list down to the K ;; until the K can handle bignums and the fleabit compiler can handle progv --pfc" "PFC" NIL) (52 "On the Falcon WITH-STACK-LIST(*) now compile into a simple LET and make no attempt to stack cons." "smh" NIL) (53 "For printing MAKE-SYSTEM file transformations, when an input file arg is NIL, print nothing at all. Print, for example, \"Loading FOO.QFASL\", instead of \"Loading FOO.QFASL and NIL\". Also, for LOAD-SITE-FILE transformation, changed \"Loading site files on account of\" to \"Loading site files because of\"." "keith" NIL) (54 "FASL streams \"remember\" the internal FASL version on the FASL stream property list receiver. SI:QFASL-STREAM-PROPERTY-LIST and FS:FILE-ATTRIBUTE-LIST now have the :FASL-VERSION property, whose value is the stream's internal FASL version." "keith" NIL) (55 "Improvements to READ-INTERN-SOFT: 1) When a symbol was not found, it signalled an inappropriate error, e.g. claiming the current package was auto-exporting merely if it wasn't read-locked. 2) This function is supposed to enforce the restriction that forbids interning new symbols into read-locked and auto-exporting packages. Generally, this worked; but things like the following generated a continuable error: (read-from-string \"GLOBAL:YOU-LOSE\") Now, READ-INTERN-SOFT acts true to its name, and signals a fatal error. If an uninterned symbol in a \"normal\" package is read, the resume option is still allowed. (The proceed message is somewhat misleading, though.) 3) The name READ-INTERN-SOFT was somewhat of a misnomer, since it always signalled some error or other when a symbol was not found. Now, it accepts an optional argument, ERROR-P. Now, when a symbol is not found, if ERROR-P is non-NIL (the default), an appropriate error is signalled; otherwise, NIL is returned." "keith" NIL) (56 "Improve interface to SI:MAYBE-SET-SYSTEMS-RELEASED. This gets called when we do a full GC in mode :SYSTEM-RELEASE, typically when the system status is changing. Now, prompt to release some, all, or none of the patchable systems. Also offer to set the system release status (printed by PRINT-HERALD) to any of the stanard values." "keith" NIL) (57 "Tighten up use of SI:*RELEASE-STATUS* in PRINT-HERALD. Make a list of standard release keywords, SI:RELEASE-STATUS-KEYWORDS. Add :OBSOLETE keyword. Also, first shot at the Falcon's herald, almost the same as Lambda's." "keith" NIL) (58 "More informative error message text." "smh" NIL) (59 "Improved compiler internal error messages." "smh" NIL) (60 "The PATCH-VERSION structure now stores and prints the universal time at which the patch was started. The change is upward compatible. The intention is to aid correlating a patch with file changes and unexpected lossages." "smh" NIL) (61 "Dummy patch to test patch system changes." "smh" NIL 2797265021) (62 "FBIN files with bignums can now be loaded on the K w/o crashing it. Therefore we can fasd the file property list with its bignum time. -pfc" "RG" NIL) (63 "UNFASL-FILE now handles FBIN files !! Please use it. Coming soon ... disassembled K code as well. --pfc" "PFC" NIL 2797279426) (64 "The macroexpansion of DEFCONSTANT now puts a CONSTANT-FOR-COMPILATION property into the compilaton-environment, and pass1 knows how to find these properties. Constants so defined will now be substituted into compiled code. This is a slight change to lambda compiler semantics." "smh" NIL 2797279622) (65 "improved unfasling of K-FUNCTIONs pfc" "PFC" NIL 2797359174) (66 "Remove ancient leftover debugging code from screendump code." "smh" NIL 2797444856) (67 "Accept a host object as valid disk unit specification (e.g. for PRINT-DISK-LABEL). Also, give PRINT-DISK-LABEL a useful documentation string, with examples." "keith" NIL 2797952558) (68 "Minor economization of screen real estate when printing internal PROGDESC structures in the compiler." "smh" NIL 2798227301) (69 "Cosmetics -- doc-string for SI:PRINTING-RANDOM-OBJECT, with a better example (a :PRINT-FUNCTION for a DEFSTRUCT) and corrected arg-list." "keith" NIL 2798674247) (70 "New SETF method for DOCUMENTATION. Now, the following works: (setf (documentation 'foo) \"FOO is a useless function.\") " "keith" NIL 2798674644) (71 "When warm-booting the Lambda, the SDU can clobber bits on the exposed window. In particular, this is annoying when the label gets clobbered. (Not every user knows about [Terminal]+[Clear-Screen], which refreshes everything; and see last comment, below). This patch creates a warm-initialization to redraw the labels on every window. (We don't know how many, where, may have been clobbered.) To facilitate this, (:METHOD TV:ESSENTIAL-LABEL-MIXIN :REDRAW-LABEL) is provided. It erases, then draws, a window's label. A more radical approach would redisplay all windows, but some windows go blank; look at, and try, TV:KBD-SCREEN-REDISPLAY. I feel redrawing just the labels is a nice compromise, since it cleans up the worst case only." "keith" NIL 2798681604) (72 "Major cleanup of (what was a mostly useless) documentation string for DEFFLAVOR." "keith" NIL 2798689875) (73 "Revised OPENING-FRAMES macro (affects cross compiler only)." "smh" NIL 2798742466) (74 "Enhanced previous patch to DEFCONSTANT to be robust if the value form is not evaluable at compile time. There is still potential backward incompatibility if the form is evaluable but the value cannot be fasdumped, e.g. it contains a package or stream object. Caveat!" "smh" NIL 2798848730) (75 "Teach COMPILER:MAKE-OBSOLETE to tell the difference between special forms, macros, functions, and random (undefined) \"constructions\"." "keith" NIL 2798854652) (76 "Mark two Lambda processor-dependent functions, WITH-STACK-LIST and WITH-STACK-LIST*, as obsolete. The compiler warnings will help snarf out any occurrences that have to go away, e.g. when we next recompile the entire system. Also fix misleading doc string for SELF-EVALUATING-P." "keith" NIL 2798855114) (77 "I moved all the special forms from EVAL.LISP to SPECIAL-FORMS.LISP; this patch fixes the source file attributes for each function therein. (This is part of evaluating the scope of porting the new interpreter.)" "keith" NIL 2799087512) (78 "Change COMPILER:WARN to use COPY-TREE to push its &rest args onto list of compiler warnings. It was using SI:COPY-OBJECT-TREE to copy all levels of its args in temporary areas. With GC, this isn't needed; and, compile-time forms are usually simple enough, that we shouldn't have to be paranoid (and time-consuming) about copying 12 levels of structure! Another benefit: the modified definition will port. Also improve doc string, and mention new severity keyword :NOT-PORTABLE." "keith" NIL 2799171335) (79 "Restricted DEFCONSTANT so that the compiler only substitutes the compile-time value if it is NUMBERP, SYMBOLP, or CHARACTERP." "smh" NIL 2799176450) (80 "Implement simple nicknames for logical hosts. Use :NICKNAMES keyword on FS:SET-LOGICAL-PATHNAME-HOST to add nicknames when defining/modifying a logical host." "keith" NIL 2799181998) (81 "Fix earlier patch to MAKE-OBSOLETE and call it again to fix messages issued by compiling WITH-STACK-LIST or WITH-STACK-LIST*. (FORMAT whoops.)" "keith" NIL 2799260212) (82 "COMPILER:WARN's first return value is not predictable (comes from complex warning recording activity). Give it a second value I can use to recognize when compiler style checkers have issued a warning as their last act (all that I can find do so). Note that (from now on) style checkers should respect this convention that, when a style violation is detected, the last thing done before exit is to call COMPILER:WARN appropriately." "keith" NIL 2799294415) (83 "Implement less simple-minded compiler style checking. Compiler was invoking style checkers on every call to optimize a given form. This frequently causes duplicate warnings for a given mis-formed call. Also, it is very easy to generate multiple duplicate errors within one DEFUN; typically, only one warning is enough to show the user what to change. New scheme is controlled by compiler variable, so those who want lots of compiler warnings can turn the new feature off. The variable doc string explains how it works: (defvar *just-once-for-style-checkers-per-inner-form* T \"If non-NIL, user only gets one style-check warning within a top-level form, for a given combination of style-checker function and form (function call). T means condense for all style-checkers; can also be a list of style-checker functions to condense in this fashion.\")" "keith" NIL 2799296261) (84 "Better SI:SELECT-PROCESSOR. More informative messages for ill-formed clauses. Use a style checker at compile time to note missing/bogus processor codes. (Now we don't get double the warnings, double the fun.) EVALuators calling this macro don't get warned of missing alternatives, but who evaluates this? Other random doc string cleanups within the LMMAC.LISP file." "keith" NIL 2799302509) (85 "The documentation on TYPECASE, ECASE, etc., were wretched, useless, inaccurate, and so forth." "keith" NIL 2799304196) (86 "I took a pass over all the style-checkers in QCOPT - lots of the most important functions - and fixed up warnings to 1) unify the way problems are displayed, and 2) improve warning content. Enthusiasts note: also implemented a way to style-check a function call against the published, \"human readable\" argument list, when it differs; e.g, STRING-SEARCH, which supports two different calling sequences, and only gets checked at compile time for &REST ARGS, not keywords. The existing style check mechanism for doing that was lame, and the general fix was useful elsewhere." "keith" NIL 2799356945) (87 "Further rationalize/fix style checkers (and some optimizers), particularly some broken argument checkers, e.g. SIGNP, FORMAT." "keith" NIL 2799434845) (88 "People who use subprimitives in a compiler should have a lambda stuffed ... Added a test to keep another Lambda compiler bug from crashing the whole lambda passing a bad arg to a subprimitive." "smh" NIL 2799960535) (89 "Implement style checker on system functions that expect byte specifier arguments. Try to warn about obviously non-portable arguments; the typical situation we want to flush out is calling, e.g., LDB with a numeric constant. Here is an example of a function that calls LDB and DPB several ways that are non-portable: (defun tester-ng (ppss wrd) (compiler-let ((compiler:*just-once-for-style-checkers-per-inner-form* nil)) (ldb #(1 2 3) wrd) (ldb nil wrd) (ldb t wrd) (ldb :keyword wrd) (ldb (* ppss 3) wrd) (dpb #b1010 261. wrd) (dpb #o17 (max 3 5) 77.) (ldb (times ppss 3) wrd))) << While compiling TESTER-NG >> LDB called with an invalid BYTE specifier \"#(1 2 3)\"; this is not portable LDB called with a null BYTE specifier; this is not portable LDB called with T as a BYTE specifier; this is not portable LDB called with the keyword :KEYWORD as a BYTE specifier; this is not portable LDB called with a call to * as a BYTE specifier; this may not be portable DPB called with the numeric constant 261 as a BYTE specifier; this is not portable DPB called with a call to MAX as a BYTE specifier; this may not be portable LDB called with a call to TIMES as a BYTE specifier; this may not be portable Any function, such as BYTE, that is known to return a portable byte specifier will not generate a warning if it has a non-NIL COMPILER:LEGAL-BYTE-SPECIFIER property. If anybody has such a need frequently, this could be modified to look at a function-internal declaration." "keith" NIL 2800050044) (90 "If not already bound, bind COMPILER:*P1VALUE* in optimizer interface COMPILER-OPTIMIZE-EXTERNAL (just used BY COM-COMPILER-OPTIMIZE) so certain optimizers don't crap out." "keith" NIL 2800066349) (91 "Generate portability warning for (ZL:MAKE-ARRAY ... :TYPE 'ART-Q-LIST). This is just to find occurrences when compiling the system -- needed to help determine whether/how to implement for Falcon." "keith" NIL 2800068010) (92 "Optimization of (ZL:MAKE-ARRAY ... :FILL-POINTER T) was causing run-time error from SI:SET-FILL-POINTER because a \"new\" fill-pointer must be a fixnum. The optimized form, of course, isn't really asking for a new fill-pointer, it's supposed to initialize it to the length of the array. Solution is to use specified array dimension. In all working cases (when fill-pointer is legal, for one-dimensional arrays) this is the value for the fill-pointer, as caller intended." "keith" NIL 2800127114) (93 "Compiler and macroexpander changes for cross compilation. During cross compilation SETF methods for the host machine are not seen. COM-CROSS-COMPILE now sets up an affects *FALCON-ENVIRONMENT*. New commands: COM-MACRO-EXPAND-[ALL-]CROSS-COMPILERLY." "smh" NIL 2800468153) (94 "Defined SI:TYPE-SPECIFIER-P, which returns a canonicalized form of its argument if it is a valid type specifier (otherwise, it returns NIL)." "saz" NIL 2800471569) (95 "New variable to support cross compilation: COMPILER:*TARGET-COMPUTER*" "smh" NIL 2800529907) (96 "Add :CROSS-COMPILE-LOAD-FALCON-ENVIRONMENT defsystem macro, :FASLOAD-FALCON-ENVIRONMENT and :CROSS-COMPILE transformations. Only use these in the rare case when you need to cross-compile during a compilation for the Lambda. Normally, you use the normal transformations, and the :FOR-FALCON keyword to MAKE-SYSTEM." "RWK" NIL 2800540583) (97 "More changes to macro expansion and declared-definition in support of cross compilation. SHould not affect native lambda compilation." "smh" NIL 2800557315) (98 "Patch from Marc Rinfret (Silicart). Prevents Chaos property list stream (stream :PROPERTIES method) from getting jumbled command string. Unfortunately, this functionality isn't working for other reasons I haven't figured out yet." "keith" NIL 2800566394) (99 "More changes for cross compilation to make setf and locf methods available to the right frobbers at the right times. Again, should be transparent to native lambda compilation." "smh" NIL 2800643188) (100 "Make LISP:WARN work with *BREAK-ON-WARNINGS*. Was blowing out with problem within SIGNAL-CONDITION. This is a quick and dirty fix -- probably not ultimate. Problems: 1. Works by mixing FERROR into COMMON-LISP-WARNING flavor. This seems like some kind of breach of categories, but using the WARNING flavor alone doesn't provide any error handler at all. (That is what you would want for a warning that could never break!) 2. WARN does not really work like the existing doc string, which makes a distinction between *BREAK-ON-WARNINGS* and EH:*SIGNAL-ON-WARNINGS*. The code does not make a distinction, maybe the error handler does in SIGNAL-CONDITION, but this is not obvious. Let's leave this for further research. --Keith & SMH" "keith" NIL 2800897113) (101 "Make RENAME-FILE and DELETE-FILE work for logical pathnames. (Again.) There are some wild-card cases that still don't work for kind of pathnames." "keith" NIL 2801147583) (102 "Forms returned by DEFSTRUCT, for structures that include byte fields, no longer include pre-digested (numeric constant) byte specifiers. That was not portable. The new behaviour is, in a way, more consistent with documentation describing how byte fields are computed. Tests indicate that this change does not affect behaviour of DEFSTRUCT. (Testing also revealed other severe bugs in this feature.)" "keith" NIL 2801163830) (103 "Improvements to SRCCOM (Source Compare utilities): 1. Add new parameter, *ESCAPE-CHARACTER-IGNORE-FLAG*, which provides the capability of ignoring escape characters in input files (e.g., font changes). *ESCAPE-CHARACTER-IGNORE-FLAG*, if non-NIL, is either: a) A character to be ignored, or b) A list whose CAR is the escape character and whose CADR is the number of succeeding characters to ignore. This applies to :TEXT source comparison only. 2. Fix up SOURCE-COMPARE doc string. 3. SRCCOM:SOURCE-COMPARE is the most useful user interface routine provided. Export it, and import into USER package." "keith" NIL 2801254463) (104 "The 3COM ethernet hardware interface apparently can sometimes get a single, amazingly bogus packet (via microcode); seems to occur when other-slot processor is not booted, but is configured. Next packet received is always good, when I've reproduced the problem. Unfortunately, this was causing an error in the cold load stream fro SI:SET-FILL-POINTER. Fixed to record (as a new category of) error and keep going (booting should proceed!)." "fileserver" NIL 2801781097) (105 "1) Logic fix to INVOKE-STYLE-CHECKER. 2) Define MAYBE-INVOKE-STYLE-CHECKER to centralize testing style-check flags, ensure arg is symbol, etc. May come in handy in COMPILE-DRIVER?" "keith" NIL 2801795366) (106 "Add function ASSIGN-VALUES-ALIST." "rg" NIL 2801855732) (107 "Moderately hairy patch to DEFSTRUCT: Sort subslot fields in order that provides better handling by constructor form. Fixes the most pathological of problems with constructors for structures with byte fields (ZetaLISP style). You may not get the fields initialized in the \"obvious\" order, but at least the constructor doesn't blow up. The order of initialization is fairly predictable, but still differs from the manual; but I don't believe I've broken any cases that even sort of worked before." "keith" NIL 2801857141) (108 "First pass at proper compiler style-check handling of top-level file and buffer forms (e.g. IF, DEFSTRUCT). Anything more innerward seems to get handled with optimizers, but top-level forms weren't. Now, style-check before, after macro-expansion of top-level forms, within PROGN, etc. In a related move, ZWEI's main interval compiling interface now nulls out the style-check once-per-inner-form database (so top-level style warnings don't get too obnoxious)." "keith" NIL 2801857685) (109 "EXPAND-MACRO-CALL changed so that cross compilation will not use local SUBSTs on the compiling machine. MACROs from the compiling machine are still used with a warning, if there is no macro for the target." "smh" NIL 2801861372) (110 "Implement style checks on DEFSTRUCT. Gives intelligible warnings about malformed structure names and subslots (e.g. invalid byte fields)." "keith" NIL 2801861860) (111 "Improve checking of byte field slots; warn if more than one defined (it can break the constructor badly!); don't assume a slot is a CONS!" "keith" NIL 2801866169) (112 "Minor cosmetic changes to cross compiler warnings." "smh" NIL 2802195564) (113 "1. Clean up processor-specific stuff in PATCH.LISP (mostly for PRINT-HERALD). 2. When printing SYSTEM-ADDITIONAL-INFO string in WRITE-RESPONSIBILITY-COMMENT, make sure resulting string is contained within one line by transforming newlines (stripping from ends, turning into spaces within). Fixes bad screw when your system comment has embedded returns; can't load a patch file made under such conditions!" "keith" NIL 2802198405) (114 "Fix to COMPILER:P1 for DEFCONSTANT. Current state of thought is that the compiler should fold in constants defined by DEFCONSTANT when they are EQL-comparable objects. Recent patch to do this wasn't working. This patch fixes bug from that patch in handling of the 'COMPILER:CONSTANT-FOR-COMPILATION property. Open issue: compiling a DEFCONSTANT doesn't emit code so that after loading, the constant symbol is once again a CONSTANT-FOR-COMPILATION. (Got that?) This could cause strange, confusing behaviour. But that's why we're here." "keith" NIL 2802212671) (115 "Sanitize/portabilize/doc-string-ize TIME comparison functions. QUIZ: How many bits in the CPU clock time values on an N-bit machine?" "keith" NIL 2802214176) (116 "Eliminate gratuitous use of WITH-STACK-LIST* in TYPEP." "KEITH" NIL 2802216327) (117 NIL "JIM" NIL 2802285937) ))