;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:Common-Lisp; Patch-File:T -*-
;;; Patch directory for System version 126
;;; Written 23-Oct-88 19:11:03 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Johannes Brahms from band 1
;;; with Experimental System 126.123, Experimental ZWEI 126.21, Experimental ZMail 74.9, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Lambda-Diag 18.0, Experimental Unix-Interface 15.0, Experimental Tape 26.4, Microcode 1762, SDU Boot Tape 3.14, SDU ROM 103, 10/17.

(:EXPERIMENTAL
 ((0 "System Loaded" "pld" NIL)
  (1 "SI:SHOW-VIRTUAL-MEMORY-FRAGMENTATION draws image of <all> 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 <any> 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 "Add new variable *bug-report-recipient-system* to be bound by subsystems" "JIM" NIL 2802285937)
  (118 "Make compile-file-for-falcon bind the variable
eh:*bug-report-recipient-system*" "JIM" NIL 2802291180)
  (119 "Turn on switch that enables integration of system constant values
into compiled code.  " "smh" NIL 2802375217)
  (120 "Recompiled STORAGE-DEFS DEFSUBSTs with properly folded-in constants." "keith" NIL 2802480187)
  (121 "I hope nobody really wants GRINDEF to be a special form.

It isn't now, it's a macro." "keith" NIL 2802483901)
  (122 "Remove special form definition of GRINDEF so interpreter uses new macro." "keith" NIL 2802486510)
  (123 "HOST.LISP cleanups: 1) canonicalized byte specs; 2) use GETF instead of (GET(LOCF));
3) doc strings." "keith" NIL 2802490330)
  (124 "Add COMPILER:DISCOURAGE-FEATURE, style-checker for features that ('tho
not exactly obsolete) we either \"discourage\"; allows suggesting
alternatives.

Also, discourage ZL:CALL and ZL:G-L-P for portability reasons." "keith" NIL 2802493543)
  (125 "Portability improvements to NUMER.LISP (numerical functions), particular
proper byte-spec manipulations." "keith" NIL 2802500205)
  (126 "BYTE-spec-ify QFASL functions." "keith" NIL 2802504029)
  (127 "Remove USER:SOURCE-COMPARE which earlier patch accidentally interned,
and was distinct from SRCCOM:SOURCE-COMPARE, which causes an error from
EXPORT when SYS:IO1;SRCCOM gets reloaded later." "keith" NIL 2802638841)
  (128 NIL "keith" NIL 2802640261)
  ))