;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:Common-Lisp; Patch-File:T -*-
;;; Patch directory for System version 126
;;; Written 23-Aug-88 18:44:26 by smh (Steve Haflich) at site Gigamos Cambridge
;;; while running on Harpo from band 3
;;; with Don't-dump-a-band! Inconsistent (unreleased patches loaded) System 126.64, ZWEI 125.19, ZMail 73.2, Local-File 75.2, File-Server 24.1, Unix-Interface 13.0, Tape 24.2, Lambda-Diag 17.0, microcode 1762, SDU Boot Tape 3.12, SDU ROM 102, kold 4aug88.

(: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 "Font Editor fix: a call to FED:com-read-file was miscoded; a user moving
off a \"Read which format of font file\" menu gave an error..." "saz" NIL)
  ))