;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:Common-Lisp; Patch-File:T -*-
;;; Patch directory for System version 123
;;; Written 19-May-88 14:02:42 by keith at site Gigamos Cambridge
;;; while running on Fish food from band 1
;;; with Experimental System 123.283, Experimental Local-File 73.6, Experimental FILE-Server 22.6, Experimental Unix-Interface 11.0, Experimental KERMIT 34.3, Experimental ZMail 71.2, Experimental Lambda-Diag 15.0, Experimental Tape 22.4, microcode 1756, SDU Boot Tape 3.14, SDU ROM 103, patch/experimental.

(:EXPERIMENTAL
 ((0 "System Loaded" "pld" NIL)
  (1 "IP assumes it is the gateway for another processor on its backplane if it
  receives a packet to forward from that processor.  If the packet has
  source routing options in it, IP shouldn't make that assumption.
Also, when IP sends an ICMP Redirect over the Share interface, it should
  send redirect-host, not redirect-network." "pld" NIL)
  (2 "When odd length packet came from Share device, was using (truncate) rather
than (ceiling).  System 123 now coexists with older systems on backplane." "pld" NIL)
  (3 "You can now add and delete gauges from the control panel whether or not
the *control-panel-screen* is exposed." "pld" NIL)
  (4 "Put Imagen Options onto system menu" "pld" NIL)
  (5 "The NETWORK package no longer imports si:define-host.  sys:network;table.lisp
should have been recompiled.  It wasn't.  Thus, generate-from-hosts2-table-2
was putting calls to network:define-host into the site files.  Recompile that
function..." "pld" NIL)
  (6 "Explorer's Ethernet address is in si:my-ethernet-address,
not in ethernet:my-ethernet-address" "pld" NIL)
  (7 "Allow :stream-flavor keyword for (tcpa:define-network-service)" "pld" NIL)
  (8 "Make the Peek display for TCP and ICMP less verbose by default.  You can change
verbosity level via mouse.  Also change tcp-socket and udp-socket display such
that if you aren't changing the verbosity level, they are not redisplayed." "pld" NIL)
  (9 "Better mouse documentation for (tcpa:set-imagen-options)" "pld" NIL)
  (10 "chaos-packet-length was returning double the packet length, resulting in bad statistics." "pld" NIL)
  (11 "Increment chaos:pkts-transmitted and chaos:pkts-received, which are statistics sent in
STS packets.  (New Network kept statistics elsewhere so didn't bother with old ones)" "pld" NIL)
  (12 "QFILE not universally good at returning Chaos packets it allocated.  Ever seen a
system with chaos:made-pkts = 7000?" "pld" NIL)
  (13 "When we are asked to forward a packet to a destination who's ethernet address we don't know,
we send an ARP packet -- but we shouldn't claim to be that protocol address unless the host
we are forwarding for is on our own backplane." "pld" NIL)
  (14 "If si:user-id is not NIL (user is logged in), yet the login time from si:login-history
is NIL (no login time), rwho-server broke trying to construct a packet to send." "pld" NIL)
  (15 "If no Internet Address, don't enable IP, TCP, etc." "pld" NIL)
  (16 "User interface for network configuration:
  - (chaos:reset), (which is no longer the function to call when you've snarfed the Ethernet)
    now suggests that you might want to call (net:configure)
  - (net:configure) now notifies you if your processor has no internet address (which can screw
    up other processors on your backplane that DO have internet addresses, if you own the
    Ethernet" "pld" NIL)
  (17 "Couldn't print a negative bignum" "pld" NIL)
  (18 "Patch to evaluator by GJC and KMC:
  1. Changes made to evaluator using VARIABLE-GLOBALLY-SPECIAL-P were done
     incorrectly -- GETL was wrapped around it in INTERPRETER-VALUE-CELL-LOCATION
     which causes an error on. e.g., (eval '(variable-boundp *foo*))
  2. Changed PROCLAIMED-SPECIAL-P to a DEFSUBST, eliminating a function call on every
     special variable reference" "erRic" NIL)
  (19 "Fix storage convention violations that could result in incorrect results from LOG, etc.  This
was responsible for the \"bignum print bombout bug\"." "rg" NIL)
  (20 "QFILE loses a chaos packet every time it receives a simple transaction packet" "pld" NIL)
  (21 "Put Network Protocols before Network Interfaces on Peek network screen" "pld" NIL)
  (22 "ethernet:exos-stats shouldn't bomb out on systems without Excelan boards" "pld" NIL)
  (23 "When we receive an Echo Reply, return the Echo Data as a string" "pld" NIL)
  (24 "A Chaos packet was being lost every time a SUPDUP connection was closed by remote end.
Caused by a combination of two problems:
  ANY Chaos stream that receives a CLS or EOF loses that packet -- it is stored in instance
    variable \"input-packet\" and never freed.  Cure: :before-close method frees input-packet.
    Also requires that :discard-input-buffer clear \"input-packet\" in addition to freeing it.
  Even if stream didn't lose a packet, SUPDUP wasn't closing the stream -- just the connection." "pld" NIL)
  (25 "When you cold boot, chaos:initialize-ncp-cold is called, which resets the meters
shown by peek -- including \"pkts-made\".  Since \"made-pkts\" does in fact have a
list of packets, this causes a discrepency.  Cure: put in some of my chaos
packet debugging functions and call the right one from initialize-ncp-cold." "pld" NIL)
  (26 "ip:setup-my-internet-address now calls ip:parse-internet-address on the network
number and subnet masks from the site file.  Thus, you can specify them in
human readable dotted-decimal rather than just as site-editor readable bignums." "pld" NIL)
  (27 "When you close IP or TCP, the Generic Server's listens get returned.  When it tries to
issue new ones, it gets errors.  It doesn't REALLY need to have a cerror, and it shouldn't
try to close a socket that is already closed -- but TCP shouldn't get an error trying to
close a never opened socket, either.  Fixes to both TCP and the Generic Server." "pld" NIL)
  (28 "If there is no Ethernet hardware, Chaos couldn't talk to other processors on backplane.
Also, when Chaos started on share and loopback devices, include own Chaos address --
which makes no operational difference, but is nice for Peek" "pld" NIL)
  (29 "(:method tcp-buffered-stream :new-output-buffer) was returning NIL if the connection
is closed.  This is a no-no -- :tyo loops until a buffer is returned.  Should just
return a buffer and let the buffer be discarded by TCP.  Ditto for udp-stream." "pld" NIL)
  (30 "(tcp-socket :close) takes an optional \"mode\" argument which defaults to :discard.
If explicitly called with NIL, it should also default to :discard -- the callers
who call it that way are simply trying to use mode :abort.  Thus: NIL or :discard
means discard further received data, T or :abort means abort the connection, and
:normal means close the connection but allow :receive operations to get further data" "pld" NIL)
  (31 "If you do (net:configure) and then (fs:reset-file-access), the file system tries
to shut down TCP connections that are not open -- but aren't marked as fully closed.
This is because when you do (net:configure), TCP requests a graceful close for all
connections -- one that sends FINs.  It should abort all connections.  Then, when
the FS closes the connection, it finds it already closed.  tcp-stream now silently
ignores trying to write on a closed connection." "pld" NIL)
  (32 "Display TCP/FTP host units on Peek File System page" "pld" NIL)
  (33 "start-failed-control-packet-send-timeout could never have worked because start-timeout
always requires a TCP socket.  Create the concept of a TCP \"global timeout\" -- one that
doesn't pertain to a specific connection." "pld" NIL)
  (34 "If TCP is closed and reopened, FTP control connections in FTP Host Units become invalid --
but ftp:*connected* remains T.  Change :setup-control-connection to re-open the control
connection if the old one has died." "pld" NIL)
  (35 "After a FTP host unit is logged into remote host, forget the user name and password.
We don't want them easily visible from Peek..." "pld" NIL)
  (36 "unix-pathname's were broken:  :parse-directory-spec of :root would return your
user home directory.  Dired of angel:// works a lot better now..." "pld" NIL)
  (37 "ftp:*history* DOES have to be an instance variable of a ftp-host-unit.
Clear it when you close the control connection." "pld" NIL)
  (38 "If a tcp-buffered-stream has input buffers queued up, data IS available, even
if the socket has closed." "pld" NIL)
  (39 "If an FTP connection is interrupted for a long time (e.g. you are loading a file which
causes other files to be loaded), the remote end can time out and send a RST.
Two problems, two cures:
  - FTP data connection now requests pessimistic window -- when no read buffers
    available, the remote end will get a zero window, which it must (per TCP spec)
    be patient about.
  - TCP-STREAM now has a cerror for :reset and :close messages (remote and local
    aborts), allowing you to treat them as end-of-file, but not assuming that
    that is what you want to do." "pld" NIL)
  (40 "FTP server was only accepting lower case parameters for file type, structure, and mode.
Thus, you couldn't set any binary mode (for QFASL files, for example.)" "pld" NIL)
  (41 "spiff up the imagen options menu." "naha" NIL)
  (42 "Fix a typo in Server FTP.  Also, default version is :newest, not :wild." "pld" NIL)
  (43 "FTP directory lists were returning non-standard plists -- if passed a file like
foo.bar#>, the plist would be for file foo.bar#12.  Make-system didn't like this." "pld" NIL)
  (44 "If si:parse-host cannot find a host-name that appears in the pack-name,
net:find-network-address-for-other-processor gets an error." "pld" NIL)
  (45 "(net:configure) now calls (net:initialize-network-buffers) to reset the
int-pkt free list -- to recover after a warm boot, for example." "pld" NIL)
  (46 "Define the various ftp-access debugging functions (fs:with-ftp-access-only, etc.)" "pld" NIL)
  (47 "Chaos CONN-FOREIGN-WINDOW-SIZE erroneously being set to 0 in RFC-MEETS-LSN" "pld" NIL)
  (48 "(net:configuration) must be before (fs:reset-file-access) initialization on system
initialization list, otherwise you hang waiting for FTP connections to close when
you warm boot." "pld" NIL)
  (49 "net:free-packet checks that the int-pkt-thread is NIL -- if it isn't, the
packet is already free." "pld" NIL)
  (50 "If a Unix system is not listed in the pack name, find-network-address-for-other-processor
must use the old way to get its Chaos address." "pld" NIL)
  (51 "I broke the (:after :init) method of ftp-probe-stream; the :truename of
a probe stream now (properly) includes the version number.  Make-system
works better...." "pld" NIL)
  (52 "Unfortunately, FTP-ACCESS as written uses the :directory-list method for both
Dired and :multiple-file-plists (called by make-system).  These want contrary
formats for the directory list: Dired wants the truename as the car, make-system
wants the pathname it specified.  Solution: :directory-list always sets up the
truename (and thus Dired's of all flavors work well), and we provide a
:multiple-file-plists method that doesn't call :directory-list, but
does the right thing itself." "pld" NIL)
  (53 "Whenever FTP Server includes a pathname in a reply (login and xpwd),
put it in quotes so user can parse it easily." "pld" NIL)
  (54 "Add :eval type for forced keyboard input for peek-top-level.
\"Addr-stat\" operation on a network interface now uses this.
Allow \"History\" operation for FTP host unit." "pld" NIL)
  (55 "FTP-HOST-UNIT now stores user home directory and simply returns stored
value on :homedir operations rather than issuing a new XPWD command
each time.  Since we never do a CWD operation, this is cool." "pld" NIL)
  (56 ":open method of a tcp-socket should call set-interface-mss with the
parsed-remote-address, not with the remote-address (which can be a
string, for example)" "pld" NIL)
  (57 "tcp:unused-local-port depends not only on remote port, but on remote-address.
tcp:assign-local-port depends on remote port and remote address.
(:method tcp-socket :open) calls the (modified) functions." "pld" NIL)
  (58 "Nasty bug in TCP: If a FIN arrived in a segment by itself, but some prior segment
had been lost, a read buffer could be marked as full -- causing it to be returned
with whatever garbage it had in it." "pld" NIL)
  (59 "string-input-streams are now more useful.  They now accept all these operations:
	     :close
	     :tyi :any-tyi
	     :tyipeek
	     :untyi
	     :pointer :get-string-index
	     :set-pointer
	     :which-operations" "naha" NIL)
  (60 "Don't :free a host unit when you remove the file stream -- just do it (as always)
when you close the data connection.  Cerror if you try an ftp-access-operation
on an unreserved host unit.  Always :setup-control-connection when allocated." "pld" NIL)
  (61 "User and Server FTP had code to Expunge Directories -- but FTP-ACCESS didn't use it.
Also soup up the preexisting code to return the number of blocks freed." "pld" NIL)
  (62 "FTP probe streams were returning bogus :truenames for files that didn't exist --
resulting in (probe-file) returning non-NIL when it shouldn't have." "pld" NIL)
  (63 "Allow :deleted and :sorted options for a the FTP-ACCESS :directory-list
method -- rather than always including deleted files and giving the list
in whatever order the server sent it." "pld" NIL)
  (64 ":ftp-error method for FTP-ACCESS now puts FTP reply line into quotes and strips off
trailing newline" "pld" NIL)
  (65 "Add non-standard XUND command to FTP to undelete a file.  Teach User FTP, Server
FTP, and FTP-ACCESS to use this." "pld" NIL)
  (66 "chaos:get-next-pkt is responsible for generating STS packets to acknowledge
packets as they are removed from the read-queue.  Some time last year, I
commented out a seemingly bogus clause from an AND that determined whether
this occurred.  Since then, we've seen Chaos connections hang for up to
minutes.  This patch replaces that clause; let's see if it cures it." "pld" NIL)
  (67 "Release 3.0 FTP doesn't seem to return creation date/time and author in directory
listing.  This was screwing up fs:lmi-lispm-directory-line-parser.  It should now
coexist with either release 3.0 or 4.0 -- you just don't get the additional
properties when talking to 3.0 hosts." "pld" NIL)
  (68 "For Peek File System on FTP-ACCESS host units:
  Show the file stream, if there is one.
  Show state of control and data connections." "pld" NIL)
  (69 "Peek File System gave an error if you (fs:reset-file-access)." "pld" NIL)
  (70 "ftp:*cin* and ftp:*cout* are stupid: replace with single variable: ftp:*control*" "pld" NIL)
  (71 "Correct user-visible spelling error in peek display." "pld" NIL)
  (72 "FTP-ACCESS: probe streams request 1 input buffer and an optimistic window..
Input, Output, and raw-directory-list streams NOT used simply for probe
request default number of buffers and pessimistic window." "pld" NIL)
  (73 "Set fs:*ftp-probe-before-open-p* to T and fs:*ftp-probe-before-open-directions*
to '(:input).  A single host unit now suffices for reading a file with FTP." "pld" NIL)
  (74 "Attempt to solve the Chaosnet \"File Input\" and \"Host Down\" hangs.
When the remote end sends a STS that indicates that all outstanding packets have
been received, but that not all are acknowledged, we clear out the send-pkt list.
If the acknowledgement is lost, we don't retransmit, as there are no packets to
retransmit.  In this case, we should send a SNS to elicit a STS with updated
acknowledgment info.  Fix to chaos:retransmission to do exactly that...
Along same lines: chaos:retransmission should count the firrst packet still on
the send list as the lowest packet number -- not last packet acknowledged." "pld" NIL)
  (75 "si:set-sys-host now allows you to specify an Internet address as a string, rather than
assuming the address is a Chaos address.  si:new-host-validation-function is no
longer a variable to funcall, but has properties :chaos and :internet which are functions." "pld" NIL)
  (76 "Enhancements to (ftp:ftp)
  - \"ls\" command's argument is now optional
  - \"lcd\" command now does something useful -- sets local pathname defaults
    so you don't need to specify host and directory when you \"get\" and \"put\"
  - set transfer mode to ASCII before \"ls\", if not that already
  - when you use the \"16bit\" command before a \"get\" or a \"put\", open the local
    file in that mode and make sure that proper 8-to-16 or 16-to-8 bit
    translation is done betwwen file and network.
  - (change to server) default version is :wild for directory list and
    :newest for file transfer -- \"ls\" now lists all versions, not just newest" "pld" NIL)
  (77 "Miscellaneous User and Server FTP cleanups
  - Random errors return :report-string in the FTP reply
  - User FTP was not properly skipping continuations
  - FTP Server Help now puts continuations on all line" "pld" NIL)
  (78 "Debugging feature: tcp:tcp-stream-mixin keeps bytes-read and bytes-written statistics." "pld" NIL)
  (79 "Really implement *ftp-server-timeout* -- the number of seconds an idle FTP server
will stick around." "pld" NIL)
  (80 "IP segment identifiers and TCP local ports are both (mod 65536).  When IP and
TCP assign these resources, they perform this modulus arithmetic -- but they
store the numbers as (potentially large) integers.  This is confusing from
peek and no more expensive to store as small integers, so do it." "pld" NIL)
  (81 "Both FTP Server and User now call (tcpa:open-easy-tcp-connection) rather than doing
it through (open).  Not only is this quicker, but we don't end up hashing pathnames
that will never be reused." "pld" NIL)
  (82 "User FTP user interface: if you type a command that requires you to be connected
and you are not connected, tell user to connect first rather than throwing her
into the error handler." "pld" NIL)
  (83 "User FTP opens a data connection, sends a LIST command to the remote host,
expecting to get a \"150 data connection open\", reads all the data from the
connection, and then expects to get a \"226 data transfer complete\".  If the
first packet is lost, and when the remote TCP retransmits it the transfer
is complete so that both replies are in one buffer, our user FTP loses
the second reply because it foolishly did a :clear-input after the first reply." "pld" NIL)
  (84 "Improve :string-for-printing methods of tcp-host-pathname and udp-host-pathname" "pld" NIL)
  (85 "Server FTP sends a \"150 Opening data connection\" before it tries to open the
connection.  It shouldn't -- if the open fails it needs to send an error
\"425 Can't open data connection\" instead." "pld" NIL)
  (86 "FTP File Access operations that result in errors now give you the option of
retrying the file operation." "pld" NIL)
  (87 "Berkeley Unix 4.2 has a bug in its FTP Server:  If you try to log in as an
unknown user, it sends two replies: a preliminary \"2xx Password required\"
followed by a \"5xx User <foo> unknown\".  Our FTP User can get around this
by skipping any replies waiting on the control connection before sending
out each command." "pld" NIL)
  (88 "Changes to User FTP, Server FTP, and FTP-ACCESS:
  - the latest spec lists several commands that we previously knew as Berkeley Unix
    extension: XMKD --> MKD, XRMD --> RMD, XPWD --> PWD, XCUP --> CDUP.
    Our server now provides each command under both names, and our user
    tries the official name first, and the old extension if that fails.
  - The ABOR command is supposed to abort the data connection (if present)
    and send a 4xx reply -- and then always send a 2xx reply to acknowledge
    the ABOR command.  It now does so.
  - When we reset a host-unit and log-out the control connection, reset the
    save working directory." "pld" NIL)
  (89 "When a tcp-stream receives a :reset message, it should take the returned output buffers
and treat them as :write-replies -- otherwise, if the caller of the :handle-replies
method was :next-output-buffer, it could wait forever." "pld" NIL)
  (90 "Had the sense of the :noerror option reversed for the :multiple-file-plists
method of fs:ftp-access" "pld" NIL)
  (91 "The :listen method for an tcp-stream (actually, for a buffered stream, the no-hang
version of :next-input-buffer) ends up calling :handle-all-replies, which can
throw you into the error handler if it detects a send-timeout.  If you are using
the :listen in a process-wait function, you get an error in the scheduler, which
is fatal.  The solution is to detect the timeout in :handle-reply, and for the
listen method to return T if a timeout occurs, but don't enter the error handler
until a blocking method (:next-input-buffer or :tyi) is called." "pld" NIL)
  (92 "chaos:transmit-int-pkt now sets the header version number to 0.  Without this,
if the int-pkt didn't happen to have a zero in that byte, the destination will
silently drop the (otherwise perfectly good) packet." "pld" NIL)
  (93 "Now that Ftp User reads and ignores bogus extra replies from the server,
ftp:command-1 needs to allow for the case of the server having closed
the connection." "pld" NIL)
  (94 "Chaosnet speedup: reinstall %blt to and from int-pkts if lambda or explorer." "pld" NIL)
  (95 "When the Flush Free File Connections process chooses an FTP Host Unit to reset,
it closes the control connection and :frees the host-unit -- without having
:reserved the host-unit.  Someone else can come along and grab it and end up
with an unreserved host-unit with a closed control connection...
Fix: :reserve the dormant host unit." "pld" NIL)
  (96 "Flush RWHO packets before a full garbage collection" "pld" NIL)
  (97 "Once User FTP has set a transfer mode, it sticks.  Therefore, don't send over
commands to enter a mode we are already in." "pld" NIL)
  (98 "The :real-login method of ftp-host-unit doesn't need the \"unix-wait\" kludge
to suck up the extra reply 4.2 BSD sends if you give an invalid user id,
as that problem has been solved in a more general fashion by patch 123.87" "pld" NIL)
  (99 "(ftp:ftp) now always initializes *type*, *struct*, *form*, *mode*, and *bytesize*
to their Standard initial values.  It used to do that by initializing keyword
arguments -- which no longer exist.  FTP-ACCESS already initializes the variables
correctly.  (ftp:cmd-close) and (ftp:lostpeer) now reset these variables to their
default initial values." "foo" NIL)
  (100 "Changes to FTP-ACCESS:
  - Always forget working directory when you :close-control-connection
  - Back to running with fs:*ftp-probe-before-open-p* set to NIL:
      - Even though it uses two host-units (one to open file, one to probe),
        when you load a series of files, all the QFASL's come on one, all
        the probes go on the other, and we don't constantly send \"TYPE A\"
        and \"TYPE L 16\" commands to switch transfer types.
      - looks better on wholine
Change to Server FTP:
  - Don't time out the Control connection if there is a data transfer in
    progress (the recipient could have been sitting in error handler for
    an hour, say.  Don't close up the connection on him.)" "pld" NIL)
  (101 "Better ordering of info on Peek Network display." "pld" NIL)
  (102 "ip:parse-internet-address no longer gives an error if you give it something
that is neither a recognizable host nor parseable as an integer.
ip:add-gateway and ip:remove-gateway now call ip:parse-internet-address on
their NETWORK and GATEWAY arguments, and allow you to default the
INTERFACE argument." "pld" NIL)
  (103 "Provide (net:with-tcp-favored) and (net:with-chaos-favored) macros to manipulate
net:*network-protocols* so that you can, for example, easily force a band transfer
to use TCP." "pld" NIL)
  (104 "Changes to EASY interface:
  - :string-for-printing always prints in decimal
  - Make \"tcphost:name.domain.remote-port#local-port\" work properly" "pld" NIL)
  (105 "TCP-STREAM and UDP-STREAM no longer call (ip:parse-internet-address), as TCP and UDP
respectively already do that very nicely and use (assert) to let you correct unknown
addresses.  TCP and UDP :open and :bind methods now include in their error messages
the bad port or address." "pld" NIL)
  (106 "Specify :keyword argument for TCP/UDP :open in TIME and FINGER User functions." "pld" NIL)
  (107 "ip:initialize-route-table shouldn't do anything if it is called with a null
default-internet-address." "pld" NIL)
  (108 "ip:setup-my-internet-address and chaos:setup-my-address now deal with the case that the
Internet and Chaos addresses change -- the *network-interfaces* must be updated so that
ARP works right." "pld" NIL)
  (109 "Beginning of Beta Test" "pld" NIL)
  (110 "If you try to send a Chaos packet to a host on another subnet to which we cannot
route, the packet ends up being broadcast.  It should be dropped." "pld" NIL)
  (111 "(net:deconfigure) needs to flush ALL the network background processes" "pld" NIL)
  (112 "chaos:transmit-int-pkt silently discards the packet if no *chaos-stream*" "pld" NIL)
  (113 "You should be able to have two processes that use a TCP stream, one that reads
and one that writes.  Unfortunately, the way the socket was handled made this
work poorly -- the reader might handle a write reply, for example, but the
writer wouldn't notice the write buffer was available.  This has been fixed." "pld" NIL)
  (114 "Simplify Telnet Server process." "pld" NIL)
  (115 "When using FTP to read and write files to a Lisp Machine, use Image transfer
type, as no character translation is needed." "pld" NIL)
  (116 "Speedup for 16-bit files in FTP-ACCESS: The binary stream uses art-16b
arrays, the TCP stream uses art-8b arrays, and these are simply
displaced onto each other, rather than forcing data copies." "pld" NIL)
  (117 "Server Telnet doesn't need a third process to do a :force-output every second." "pld" NIL)
  (118 "When IP initializes its route table, it now remembers all the directly connected network
numbers.  The si:smart-address-chooser property of :internet now takes this into account
when choosing an address from a list of addresses.  (ip:parse-internet-address) requests
usage of the smart address finder." "pld" NIL)
  (119 "Add :rename (used by Dired), :delete, and :change-properties methods to ftp-file-stream-mixin." "pld" NIL)
  (120 "It is possible to have machines on the same physical network on different Chaos subnets.
The way this used to work was that Chaos passed the subnet # through its route table and
got a 0, which would cause the packet to be broadcast.  There are a few problems with
that -- causes unnecessary network loading and packet forwarding.  New solutions:
chaos:transmit-int-pkt will attempt address translation on the original destination
address if the subnet routing failed.  chaos:receive-int-pkt will not attempt to
forward a packet that arrives on the broadcast address." "pld" NIL)
  (121 "Generalize net:move-initialization.  Make sure the (net:deconfigure) initialization appears before
the (flip level 2) initialization on the :before-cold list.  Give the user the option of deconfiguring
the network before a (full-gc).  If yes, reconfigure the network afterwards." "pld" NIL)
  (122 "If you did (hostat #o3413) and host #o3413 replied, (chaos:poll-hosts) looped because
it didn't remove the connection to the unnamed host from the list of connections." "pld" NIL)
  (123 "By analogy with IP, add some maintenance functions to Chaos:
(list-route-table), (add-gateway), (remove-gateway)
Parameterize chaos:default-routing-cost" "pld" NIL)
  (124 "SMTP connections now start off by sending a HELO message." "pld" NIL)
  (125 "By default, Imagen print-stream and Imagen print-file are silent regarding
the Imagen queue.  You can use :verbose t to get the old behavior." "pld" NIL)
  (126 "If the network is deconfigured before a full-gc, clear special variables that
refer to network data structures so that they can be reclaimed." "pld" NIL)
  (127 "In user FTP, the argument for the \"cd\" command is now optional (if omitted, the server
changes to home directory).  In server FTP, fix bug in CWD command that caused
(fs:merge-and-set-pathname-defaults) to be called twice.  Fix bug in (ftp-parse-pathname)
that caused your local host to be merged in even if you've specified another one with
a CD command." "pld" NIL)
  (128 "Disable (by default) the UDP Namespace Service -- which is a non-standard local
protocol that isn't used by anyone." "pld" NIL)
  (129 "Soup up User FTP's \"mget\" and \"mdelete\" commands: ask the remote host to expand
wildcards in each of the arguments, using NLST command.  Add a User FTP command
to do an NLST, and set up our Server's NLST to return just the string-for-dired
(which omits the host and directory) in lower case.  The result is exactly what
a Unix \"mget\" would like to see." "pld" NIL)
  (130 "Finger Server was returning a rational -- used (/ ...) when needed (rem ...)" "pld" NIL)
  (131 "Make TCP Urgent mode work for tcp-streams.
  - TCP wasn't setting urgent bit for a single byte of data
  - Netstat wasn't displaying SND.UP and RCV.UP usefully
  - tcp-stream now lets you :set-urgent-output to specify that outgoing data is Urgent.
  - tcp-stream now lets you :urgent-input to see if unread Urgent data exists." "pld" NIL)
  (132 "(tcpa:open-easy-tcp-stream) was giving the tcp-unbuffered-stream invalid init
keywords: :input-buffer-limit and :output-buffer-limit." "pld" NIL)
  (133 "By analogy with (chaos:address-parse), (ip:parse-internet-address) now returns an
additional value -- the host object corresponding to the address." "pld" NIL)
  (134 "Supdup and Telnet windows now work with Chaos or TCP.  Telnet favors TCP, SUPDUP favors Chaos.
You can connect to (tcp or chaos) \"host\", (tcp) \"host/port\", (chaos) \"host/contact-name\"." "pld" NIL)
  (135 "Allow <NETWORK> E to toggle remote echo mode in Telnet window." "pld" NIL)
  (136 "Allow Telnet user to specify \"host/known-port-name\" (such as FTP or SMTP) rather
than forcing a decimal port number." "pld" NIL)
  (137 "Telnet window assumes non-overprint mode and handles received ASCII backspaces
by backing up a character." "pld" NIL)
  (138 "Telnet Server input process now catches telnet Interrupt Process command and
sends an abort to the lisp listener.  Telnet Server now does proper option
negotiation -- you can successfully toggle remote echo." "pld" NIL)
  (139 "UDP RWHO Server process no longer just dies when its UDP socket is
closed -- it waits for UDP to be enabled and opens it again." "pld" NIL)
  (140 "FTP and SMTP control connections are supposed to be Telnet streams.  They used to
simply ignore Telnet Escape sequences, but now respond appropriately to option
negotiations." "pld" NIL)
  (141 "Add Verbose mode to Telnet, which displays telnet commands and option negotiations
sent and received." "pld" NIL)
  (142 "Our User Telnet is nice: If you type Meta-<x>, it sends the ASCII
character for <x> with the #o200 bit set.  Our Telnet Server now
understands this." "pld" NIL)
  (143 "Our Telnet Server now has a Quote character: control-v.  This will allow you
to pass any of the special interrupt characters (control-b, control-g,
control-t, and now, control-v) to the lisp listener." "pld" NIL)
  (144 "(telnet-user:kermit) needed a :force-output before entering Kermit
server mode." "pld" NIL)
  (145 "Make termcap descriptors easier to deal with, not requiring embedded Escape
characters." "pld" NIL)
  (146 "Telnet was putting you into error handler if you gave a bad host name." "pld" NIL)
  (147 "Much enhanced rubout handler for Server Telnet: Rubout erases one character,
Control-U erases all, Control-R Redisplays current input, Control-L clears
screen and redisplays current input." "pld" NIL)
  (148 "Telnet builds its open strings using decimal numbers, since that is what
open-easy-tcp-stream wants." "pld" NIL)
  (149 "Well, we really do need a :force-output process for Server Telnet -- when you exit
the debugger, your Lisp listener does a :tyi before the error handler does its
:string-out.  Also seemed to be a race condition causing the \"coroutine get\" to
not recognize when input was available.  Recode to be more defensive..." "pld" NIL)
  (150 "Control-V is now the quote character for all levels of input editing in Server Telnet:
 - Control-V Control-B --> Control-B, not break interrupt
 - Control-V Control-G --> Control-G, not abort interrupt
 - Control-V Control-T --> Control-T, not status interrupt
 - Control-V Altmode --> Altmode, not meta-bit on next character
 - Control-V Control-\\ --> Control-\\, not super-bit on next character
 - Control-V Rubout --> Rubout, not rubout one character
 - Control-V Control-U --> Control-U, not rubout all characters
 - Control-V Control-L --> Control-L, not clear screen and refresh
 - Control-V Control-T --> Control-T, not fresh-line and refresh
 - Control-V <anything> --> <anything>" "pld" NIL)
  (151 "Server Telnet's rubout handler wasn't echoing or including the :untyi'd character in its
input.  E.g., the \"(\" typed to a debugger prompt that causes it to type Eval: " "pld" NIL)
  (152 "Telnet Server: Control-S sets the output-lock, Control-Q clears it." "pld" NIL)
  (153 "User and Server telnet now agree on Lispm Keyboard conventions:
 - Super key causes Control-\\ prefix (compatible with 3.0 TCP)
 - Meta key causes Escape prefix (compatible with 3.0 TCP)
 - Break, Help, Abort, and Resume keys sent through intact
 - Clear-Input --> Control-U
 - Quote --> Control-V
 - BS, TAB, Line, Form, Rubout --> obvious ASCII translations" "pld" NIL)
  (154 "Provide (telnet-user:help) to document interrupt characters, input
editing commands, useful programs.  Server Telnet tells user about it." "pld" NIL)
  (155 "Split out network-variable cleanup tasks into (net:cleanup).
Do (net:deconfigure) (net:cleanup) before a disk-save." "pld" NIL)
  (156 "TCP/UDP servers now appear on Who Line and on Peek Server page." "pld" NIL)
  (157 "Network receiver can loop if there are no buffers available and an interface has a
packet ready." "pld" NIL)
  (158 "Really make Server Telnet's H19 etc. support work." "pld" NIL)
  (159 "(:method tv:stream-mixin :rubout-handler) calls (sheet-clear-between-cursorposes).
It should call the :clear-between-cursorposes method (the default one supplied
by tv:stream-mixin simply calls the function -- but streams can override it)." "pld" NIL)
  (160 "Ta da!  Server Telnet has full support for either tv:default-rubout-handler
or (if your terminal does cursor motion and insert and delete characters)
tv:alternate-rubout-handler.  telnet:simple-ascii-stream-terminal now
is a tv:sheet, and there is a network-terminal resource, allowing them
to be reused." "pld" NIL)
  (161 "Server Telnet now does option negotiation per spec: all options assumed initially
OFF, if command received to change to a state we are already in, no response is
sent.  Unless Go-aheads are suppressed, we now send one when enter :input-wait." "pld" NIL)
  (162 "Server Telnet now offers to do Supdup Output.  If the User Telnet accepts that,
we do it.  Our Telnet program is willing to do Supdup output -- and now talks
nicely to our Server Telnet." "pld" NIL)
  (163 "Various cleanups in Telnet Server.  All the hooks are there for a SUPDUP server.
Better **MORE** processing.  More functions shadowed in TELNET-USER: to keep
windows from being created on host." "pld" NIL)
  (164 "If displaying full help for the rubout handler directly onto the stream, redisplay
the input after the help info." "pld" NIL)
  (165 "When I souped up telnet:send-iac for Telnet, I broke it for FTP and SMTP." "pld" NIL)
  (166 "TCP SUPDUP Server." "pld" NIL)
  (167 "Various fixes to SUPDUP and Telnet servers:
  - SUPDUP passes Abort, Resume, Status keys
  - There is a network-user: package instead of a telnet-user: package
  - Servers now deal with Control-Abort, Control-Break, Abort, and Break
    similarly to keyboard process
  - :string-length method required for :insert-string and :delete-string" "pld" NIL)
  (168 "Chaos SUPDUP Server." "pld" NIL)
  (169 "Three problems found when trying TCP band transfer:
  - If a TCP Server is closed from peek, the socket in the stream is set to NIL.
    You then get an error in the scheduler when purge-servers tries to check if
    the stream is open.
  - TCP was improperly resetting hole offsets when the push-offset came exactly
    at the end of a buffer and more buffers were queued.
  - The TCP Disk Unit should close the stream with :abort t when asked to
    :dispose of the unit -- All data transfer is synchronized such that
    nothing is lost in the normal case -- and if you abort the transfer,
    the Server isn't obligated to send the reset of the band to be
    discarded by the user as it is with a normal graceful close.    " "pld" NIL)
  (170 "network-user:help is smarter about telnet-server, supdup-server, etc." "pld" NIL)
  (171 "Fix to (open \"sdu-serial-b:\" ...) [shared-device support for serial ports]:
When we add :flavor-and-init-options to (open), we really want them to happen.
Do this before open by replacing the \"last instance\" with an instance with the
desired flavor and init options.
Yes, this seems like a hard way to do something simple, but given the way
the shared devices work -- they only replace the last-instance if the flavor
type has changed -- this seems the best and most localized place to do this." "keith" NIL)
  (172 "Add some defensive code to ip:initialize-route-table for cases when the
:default-internet-routing site option is bad and for the case when
the si:*ethernet-hardware-controller* doesn't have an IP address." "pld" NIL)
  (173 "Telnet options don't take effect until the Server has responded.  In
particular, Local echoing is in effect until the Server has said
\"WILL ECHO\"." "pld" NIL)
  (174 "The :tab method of :simple-ascii-stream-terminal was broken if you did a tab
from part way into a tab stop.  E.g. 2 characters followed by TAB should
move you 6 spaces.  Instead, you got the error handler." "pld" NIL)
  (175 "Our Supdup Server and Telnet Servers now treat interrupt characters
(Abort, M-Abort, C-Abort, C-M-Abort, Break, M-Break, C-Break, C-M-Break)
the same way the keyboard process does." "pld" NIL)
  (176 "Telnet and Supdup Servers now use standard tv:io-buffer functions.
Thus, the debugger, which has its own buffer-output-function which
doesn't treat Abort as an interrupt character, works as on the console." "pld" NIL)
  (177 "Improvements to the Rubout Handler:
  Control-Meta-F, Control-Meta-B, Control-Meta-K, and Control-Meta-Rubout
   all know more about Lisp forms: symbols, strings, ' and #'
   and attempt to move over or delete such objects.
  Control-Meta-T now exists to transpose the order of the two such
   objects that surround point." "pld" NIL)
  (178 "Some Telnet Servers have bugs:  VMS Excelan doesn't trouble to respond
to DO ECHO with WILL ECHO, yet it still echoes.  4.2BSD Unix responds
to DONT ECHO with WONT ECHO, yet continues to echo.  Our Telnet needs
the ability to toggle local echo regardless of what the state of the
ECHO option is.  Thus: Network-E toggles local echo.  The old usage
of this command is available with Network-Control-E, which toggles
remote echo by sending a Telnet DO or DONT command." "pld" NIL)
  (179 "The Explorer keyboard doesn't have Greek or Top keys.  A rubout handler
command existed that documented what keys you type to get all the special
symbols.  Unfortunately, this command superceded the normal Help command.
Solution:  move it to Meta-Help.  Also make it do something meaningful
on a Lambda." "pld" NIL)
  (180 "Patch 123.169 doesn't quite do the job -- it can cause TCP not to hand up
PUSHED data immediately and to acknowledge data that hasn't been received.
Also create (tcp:print-tcp-receive-log) and make that function and
(tcp:print-tcp-log) go to *standard-output* instead of *terminal-io*." "pld" NIL)
  (181 "If your Imagen printer sometimes messes up a page in the middle of a long
listing, you will enjoy this: you can now selectively re-print such pages.
  (hardcopy-file xxx :page-list '(3 4 71 72))" "pld" NIL)
  (182 "Fix 2 problems with logical pathnames.

In FS:SET-LOGICAL-PATHNAME-HOST:
  1) Get rid of code that pushed the new host on the FS:PATHNAME-HOST-LIST.
  2) Don't allow \"unknown\" hosts to be assigned to logical hosts.
In SI:SET-SYS-HOST:
  3) Uppercase the input host name.
  4) Shadow-bind PATHNAME-HOST-LIST, so we never cache the (possibly
     temporary) new sys host.

#1,3,4 above fix a problem that arised if you set sys host to an unknown
host, unless you specified the actual primary host name in upper case; the
temporary host object generated by SET-SYS-HOST got remembered on the
FS:*PATHNAME-HOST-LIST*.  This meant you had two non-EQ versions of the
same host!  Symptoms were very strange, and hard to work around; basically,
connections to the sys host failed in various spectacular ways. 
#2 fixes a problem with user-defined logical pathnames:
SET-LOGICAL-PATHNAME-HOST and its callers formerly allowed an unknown
physical host to be assigned to the logical host.  This can prevent you
from adding/redefining the host later.  Now, error out when an unknown host
is specified." "keith" NIL)
  (183 "Change Telnet window to allow sending of all meaningful telnet commands:
  <Network> A  --> Abort Output
  <Network> <Clear-input>  --> Erase Line
  <Network> <Delete>  --> Erase Character
  <Network> P  --> Interrupt Process
  <Network> <Status>  --> Are You There" "pld" NIL)
  (184 "Our Telnet Server now does something meaningful with AYT (Are You There)
EC (Erase Character) and EL (Erase Line).  Still need to do AO (Abort
Output)..." "pld" NIL)
  (185 "Problem with rubout handler C-M-t -- Exchange Sexps: can try to
reference beyond active length of rubout handler buffer." "pld" NIL)
  (186 "Fix bug in (:property prog1 p1).  This causes things to miscompile!!" "rg" NIL)
  (187 "Remove obsolete files from TCP-USER and TCP-SERVER systems." "pld" NIL)
  (188 "Improve formatting in (tcpa:rwho) and (tcpa:ruptime)" "pld" NIL)
  (189 "Create net:network-driver-initialization-list and make it accessible to
(add-initialization) via :network-driver keyword.  Makes it easy to add
a new device driver without hacking (net:configure)" "pld" NIL)
  (190 "IP now clears out ip:*default-gateway* and ip:*default-interface* within
(ip:initialize-route-table) rather than keeping obsolete previous values.
IP differentiates between bad IP header, route failure, and address
translation failure when sending an IP packet, and TCP notes this
and passes a :host-unreachable to the user if routing failed." "pld" NIL)
  (191 "Supdup/Telnet now works properly when you specify dotted decimal addresses
(e.g. 150.0.0.16) for hosts that are not in host table." "pld" NIL)
  (192 "Abstract all of the Network Interface / Network Protocol cross-knowledge
into one variable: net:*network-configuration*.  Now you don't need to
modify (ip:setup-ip), etc. to talk to a new device driver." "pld" NIL)
  (193 "clear a couple more variables in (net:cleanup).  When doing a
(gc:full-gc :mode :system-release), leave the network deconfigured." "pld" NIL)
  (194 "Clearly nobody ever tried using gc:gc-system-release-initialization-list..." "pld" NIL)
  (195 "(ip:setup-ip) tried to do inappropriate things when the host has no
Internet Address." "pld" NIL)
  (196 "MORE processing now looks the same on Supdup/Telnet server as on console:
If More exception occurs on bottom line, next line printed goes at top,
not on that line.  If More exception occurs above bottom line, the next
MORE will appear one line up, until less than 3/4 way to top, when it
will appear on bottom line." "pld" NIL)
  (197 "Can't use (tv:notify) inside (net:configure) -- system initialization list
calls (net:configure) before window system started.  Try (tv:careful-notify)" "pld" NIL)
  (198 "Supdup server wasn't properly dealing with certain special Lisp Machine
graphics: \" "pld" NIL)
  (199 "Add three more special symbols to Rubout Handler's Meta-Help list." "pld" NIL)
  (200 "When Supdup or Telnet tries to open a connection with TCP or Chaos
and the connection attempt fails, it tries again with the other
protocol.  If that also fails, the window would not print an error
message, but would simply reprompt.  It now prints the error returned
by the first connection attempt (e.g. \"Host xxx not responding\" or
\"Remote Host xxx is unreachable\")" "pld" NIL)
  (201 "NETWORK-USER package shadows (DIRED) and (MAIL)" "pld" NIL)
  (202 "The :enable method for a network-interface now only sets the interface enabled
if the enable-function returns non-nil.  The setup-xxx functions for the various
interfaces now return what the :enable method returns." "pld" NIL)
  (203 "(net:defstream) now allows you to specify a default handler ala (defselect) --
if the struct-name is a cons, it is really (struct-name default-handler)" "pld" NIL)
  (204 "A few problems with (ip:initialize-route-table):
  - If called when we are not currently enabled for IP, but we do have an IP
    address (e.g. when just loaded proper site files), used to get an error
    in (ip:add-gateway) because we had no \"default-interface\"
  - The Share interface ended up being our *default-interface* even when we
    controlled the Ethernet." "pld" NIL)
  (205 "Don't trouble to enable the Share interface unless there are other processors." "pld" NIL)
  (206 "(ip:setup-my-internet-address) was not returning correct subnet masks
in the presence of real subnets!" "pld" NIL)
  (207 "When patch 110.125 added (gc:maybe-flip-level-2) to the :before-cold
initialization list, it was commented that maybe (disk-save) should
call it directly after all the initializations are run and pointers
forgotten.  This makes sense.  Also remove call to (chaos:reset)
from (disk-save) -- (net:deconfigure) has already been called." "pld" NIL)
  (208 "(gc:gc-off) should wait for the Garbage Collector process to finish
its current cycle and suspend itself, rather than just bludgeoning
it into submission." "pld" NIL)
  (209 "Add <net>c-Y command to supdup.  This is similar to <net>Y command, but sends stuff directly
to net, avoiding typin loop.  This prevents BUFFER-FULL if killed string is long." "rg" NIL)
  (210 "Move special knowledge of type of network interface, network protocol, transport protocol,
sockets, etc. out of NETSTAT.  A Network Interface, for example,  now can provide a
:peek-special-fields method if it wants special things available from peek." "pld" NIL)
  (211 "The 3com owner wants to forward Chaos and Internet packets for other processors on
the Nubus that don't have an Ethernet interface (i.e. Excelan).  This includes any
Unix processor, and at least the 3rd processor in a 3X3.  Add hair to
(net:configure) to try to initialize net:*processor-forwarding-alist* properly." "pld" NIL)
  (212 "Variable tcpa:*udp-rwho-server-enabled* determines whether we broadcast RWHO packets.
We receive them in any case..." "pld" NIL)
  (213 "FTP-ACCESS needs to parse directory list lines relative to :translated-pathname.
Previously, parsing against a logical pathname gave :truename a bad directory." "pld" NIL)
  (214 "Make Imagen printer work when given an FTP Raw stream as file input." "pld" NIL)
  (215 "The :close method of a TCP stream now blocks, waiting for TCP to return
:closed.  This allows user to see when there is a send-timeout for the
FIN.  Such blocking does not occur if the :close mode is :normal, which
the user specifies in order to do further receives.
Server FTP now aborts the connection if the close fails, rather than
not noticing it and leaving the user side hanging.
FTP-ACCESS now closes the LISTENing data connection if the server
indicates it will not be opening it." "pld" NIL)
  (216 "Fix typo that kept you from Inspecting a transport protocol from Peek." "pld" NIL)
  (217 "(fs:copy-directory \"A:~;\" \"B:~;\" :copy-subdirectories t) copied the root
and subdirectories of host A: into directory \"FOO\" on host B:.  This is
almost exactly what I did NOT want to happen." "pld" NIL)
  (218 "Fix the :delete-multiple-files method of the Local File System so that it
returns a list of results, one per file, and doesn't give up partway through
the list if it can't delete a file.
Fix (dired-do-file-list) so that it properly deals with a result of this
sort.  (It purported to do so, but in fact treated a returned list as
a successful result for all files.)  Add optional argument that is a
function to be called for each line where the operation failed.
Fix (dired-process-files) to supply this argument when deleting
multiple files.
Net result: you can mark a bunch of files for deletion, and only the
ones that REALLY got deleted will be marked \"d\" (or removed from the
display if you asked to Expunge)" "pld" NIL)
  (219 "I noticed that ZWEI:*KILL-HISTORY* wasn't being cleared before a disk-save.
Neither were ZWEI:*DEFINITION-NAME-HISTORY* or ZWEI:*PATHNAME-ARGUMENT-HISTORY*
although the calls to (ZWEI:MAKE-HISTORY) should have marked them to be cleared.
The bug is that ZWEI:*HISTORIES-TO-CLEAR* is defined with ZWEI:DEFGLOBAL and
was reset to NIL when ZMACS was loaded, forgetting those three histories.
All four variables should have been defined with DEFVAR instead." "pld" NIL)
  (220 "Update SELECT-PROCESSOR for :FALCON.  Add SELECT-TARGET-PROCESSOR which
is similar but operates at compile time." "rg" NIL)
  (221 "Changes to the ZWEI displayer caused serious problems if you were foolish
or unlucky enough to request a \"Lisp (Edit)\" window from the system menu.
A patch to Release 3 to \"Make ZTOP work again\" caused another problem
without really making ZTOP work.
The EDITOR-STREAM-MIXIN was also throwing away typeahead and doing too
much work for normal non-alphabetic graphic characters.
ZTOP had probllems of its own:  M-X Select Last ZTOP Buffer messed you
up really badly if you had not previously done a M-X ZTOP Mode in a buffer.
Both \"Lisp (Edit)\" windows and ZTOP should work now..." "pld" NIL)
  (222 "Fix Dired's Copy (C), Rename (R), and Srccom () commands to really use
the defaults they say they will use, rather than always using .LISP#>" "pld" NIL)
  (223 "If CHAOS:RECEIVE-INT-PKT gets a packet not for this machine, it forwards it.
If this machine does not talk directly to a network (e.g. slot 4 with 3com
owned by slot 0), it should not forward it to the ethernet owner -- it should
drop it.  This situation occurs when the slot 0 knows who slot 4 is, but slot
4 doesn't yet know.  Packets end up bouncing back and forth at a high rate..." "pld" NIL)
  (224 "When UDP broadcasts IP packets, it needs to be able to recompute the checksum for
each network after IP has chosen the broadcast address for it." "pld" NIL)
  (225 "ZTOP fixes:
  - :clear-window is a synonym for :clear-screen
  - :clear-rest-of-line is a synonym for :clear-eol
  - :string-out merely marks that redisplay is needed." "pld" NIL)
  (226 "Supdup and Telnet servers now look even more like normal Lisp consoles --
they don't erase the **MORE** when you type Abort while waiting." "pld" NIL)
  (227 "Fix Aborting out of **MORE** processing in an Editor Stream window." "pld" NIL)
  (228 "For ZWEI:EDITOR-STREAM-MIXIN:
  - better enable/disable of ibeam blinker
  - typing End while in Editor will activate, rather than throwing you back
    into Lisp listener in the middle of the buffer." "pld" NIL)
  (229 "Fix (si:make-patch-system-binary-pathname) to not leave version as :newest --
let (compile-file) match the version to that of the source file." "pld" NIL)
  (230 "Add a couple of synonyms to zwei:*stream-comtab* for convenience:
  - C-C is like C-M-Y -- yank from input history
  - M-C is like M-Y -- yank pop from input history" "pld" NIL)
  (231 "Fix zwei:editor-stream-mixin to make its Interval be a zwei:file-buffer
with an appropriate name.  Fix (tcpa:print-stream-to-imagen) to not bomb
out if the stream doesn't have a :truename." "pld" NIL)
  (232 "(:method tv:sheet :string-out) has direct-to-screen code.
(tv:sheet-string-out) calls the :string-out method.
This is exactly backwards -- things like MORE processing
expect (tv:sheet-string-out) to go directly to the screen.
Finally, zwei:editor-stream-mixin has a hope of doing MORE
processing correctly -- except that its :set-cursorpos and
:increment-cursorpos methods were broken.  Fixed...." "pld" NIL)
  (233 "When the semantics of a TCP socket were changed such that (:close NIL) meant
:discard rather than :normal, (tcp:tcp-test) should have changed too.  Also,
print sockets in order 0 --> N rather than reverse." "pld" NIL)
  (234 "If you are INSPECTing an instance and modify a slot that was not listed in
the Flavor's :settable-instance-variables, you are given an error message:
The object xxx received a :set :xxx message which went unclaimed
The message is accurate, but misleading, as INSPECT then proceeds
to set the instance variable another way.  Suppress it." "pld" NIL)
  (235 "Patches for serial IP:
  - Add :serial network interface to configuration list
  - :send method of net:network-protocol compares addresses
    with eql rather than =" "keith" NIL)
  (236 "Sigh: (zwei:stream-immediate-output) really requires that you've already
inserted the text into the buffer.  This means that if immediate output
is preceded by **MORE** processing which you abort out of, the inserted
but undisplayed text will be displayed.  But if you haven't inserted the
text yet, worse weirdness occurs." "pld" NIL)
  (237 "A Network Interface can now provide a :time-to-transmit operation which
returns the time in seconds to transmit a packet of specified size over
this network interface.  Primarily useful for serial lines...
(ip:mss) uses this and returns it as one of its values.
(tcp:set-interface-mss) uses this to choose a default user
timeout for the socket." "pld" NIL)
  (238 "(chaos:finger-lispms) had a few problems:
  - Its process wait function was exactly backwards, causing it to loop for
    5 seconds instead of sleeping, when waiting for slow Lispms to respond.
  - When printing the names of Lisp Machines that did not respond, it chose
    the third host-name to print (comment: \"winning name\").  I've never
    heard that the 3rd name was special -- print the official name instead." "pld" NIL)
  (239 "(hash-table-p (make-hash-table)) -> NIL
Make system type HASH-TABLE an alias for BASIC-HASH-TABLE.
Recompile (hash-table-p) because it uses optimized (typep).
Recompile (commonp) because it uses defsubst (hash-table-p)." "pld" NIL)
  (240 "(si:define-host) did an inadequate job of determining if it was redefining
an existing host.  It successfully detected the case where the main name
of the host was a nickname of an existing host, but didn't let you change
the main name and retain the former name as a nickname...." "pld" NIL)
  (241 "Split out Host:Directory; from Name.Type#Version for Imagen
header page." "pld" NIL)
  (242 "Fix error messages from MAKE-SYSTEM and its friend, DO-FILE-TRANSFORMATIONS.
1. In MAKE-SYSTEM's error catcher, if it can, the proceed message prints
the system name, rather than whatever was passed as the SYSTEM argument to
MAKE-SYSTEM (which can be a system object and thus ugly).
2. Where a transformation pretty name contains a format descriptor (e.g.
\"increment patch number for ~a\"), FORMAT is now applied to the pretty name
with the system symbolic name as an argument, providing the intended effect
that error proceed messages include the system name." "keith" NIL)
  (243 "Fix to GENERATE-FROM-HOSTS2-TABLE-2: if last line in 
the file SYS:SITE;HOSTS.TEXT did not have a <newline>,
then the last host didn't get defined.  Fix is to 
return from parsing loop when EOF is encountered
*and* a null string has been read." "keith" NIL)
  (244 "Fix format:scientific number (for ~\\scientific\\ directive).
The *scientific-number-power-table* was missing the \"pico\"
multiple, and was off by 3 orders of magnitude for \"femto\"
and \"atto\".  (Also, \"femto\" was misspelled.)" "keith" NIL)
  (245 "LMFS pathnames can be un-deleted." "pld" NIL)
  (246 "Delete three obsolete methods from TELNET:SIMPLE-ASCII-STREAM-TERMINAL" "pld" NIL)
  (247 "ZWEI:READ-SYSTEM-NAME was returning a system instance instead of a string
 when user takes the default (<return> returning a null string).
 This causes lossage with corruption in *zmacs-tag-table-alist*
 such that later, selecting the corresponding tag table -- e.g.
 'sel tag tab' -- aborts with STRING-LENGTH error." "keith" NIL)
  (248 "(:method tv:line-truncating-mixin :around :string-out) used (string-search-char),
which doesn't work for a rubout-handler buffer.  Use (position)...  Bug #170." "pld" NIL)
  (249 "(mismatch seq1 seq2 :from-end t) where seq2 was shorter than seq1
could loop infinitely." "pld" NIL)
  (250 "(describe-flavor) failed to list flavors directly depended upon." "pld" NIL)
  (251 "(read-from-string) and (lisp:read-from-string) with arguments that specified
that end-of-file is not an error didn't always catch end-of-file." "pld" NIL)
  (252 "(make-hash-table :size 1) now works." "pld" NIL)
  (253 "Answer notifications from remote Chaosnet host before
doing the screen notification to the local user.
This prevents wrong \"host not responding\" error message
at the remote end when the local host notification is blocked." "pld" NIL)
  (254 "When pretty-printing, print (function xxx) as #'xxx" "pld" NIL)
  (255 "ZWEI enhancements:
  - When you do Meta-., the left mouse button can be used to select a function
    from the screen.  Now, the right mouse button can be used to pull a function
    name from the screen into the mini-buffer for editing.
  - Meta-X Tags Search now has similar mouse capability, except that any atom can
    be selected, rather than just defined functions." "pld" NIL)
  (256 "EQL hash-tables didn't work for keys that were in fact EQL but not EQ --
e.g. extended numbers." "pld" NIL)
  (257 "Add ZWEI command EVALUATE-AND-PRINT-INTO-BUFFER which reads an sexp starting
at point and replaces it with what gets printed to *STANDARD-OUTPUT* by its evaluation." "RG" NIL)
  (258 "We computing package of buffer in ZWEI, make sure we start from the GLOBAL package root.
Previously, you could sometimes get gross strangeness due to the buffer package being
in another root unexpectedly." "RG" NIL)
  (259 "Due to cold-load/make-system screwup, readtables were loaded twice and si:*all-readtables*
does NOT consist exactly of the list (si:standard-readtable si:common-lisp-readtable).
Definitive cure requires new cold-load.  Adequate workaround is to set the variable..." "pld" NIL)
  (260 "(common-lisp t t) now truly does affect new Lisp Listeners and Zwei Buffers
that don't have a :readtable attribute." "pld" NIL)
  (261 "Various ZMacs clean-ups.

1. Two places to create anonymous buffer names have been standardized.
2. Fix documentation strings.
3. Promote selected commands to standard extended commands:
     Evaluate and Print Into Buffer
     Create One Buffer To Go
     Long Documentation" "keith" NIL)
  (262 "When you did Terminal-Clear-Screen, or upon a fresh cold boot, the who line
documentation string was blank, rather than saying Click right for system menu" "pld" NIL)
  (263 "For the FTP File Access method, I created a nifty macro (fs:handling-file-errors)
which is similar, but more powerful than (fs:file-operation-retry).  Wrapped
around file operations, it gives you a chance to try again if network lossage
occurs (broken connections, etc.)  QFILE is sadly lacking -- any sort of
connection screwup, and you must abort out (unless you C-M-R from the right
frame in the EH...)  Replacing a number of calls to (file-operation-retry)
in QFILE with (handling-file-errors) did wonders...having the file server
die in the middle of a lengthy make-system is no longer a big deal." "pld" NIL)
  (264 "SI:RECEIVE-BAND & Friends:  If the user supplies a SUBSET-START argument,
and no SUBSET-N-BLOCKS argument, tell the other end, don't just let it
send starting from 0, while we write to where he told us." "RWK" NIL)
  (265 "When you use Terminal-Resume to permit deexposed typeout for a window, you want
that window to have its Output Hold flag cleared too...." "pld" NIL)
  (266 "Fix zwei \"C-sh-S\" (Lisp Match Search) command.  No longer loops at end
of buffer if pattern not found.  \"#\" now matches exactly one s-exp.
Don't enter EH if given a string with nothing but delimiters." "pld" NIL)
  (267 "Improvements in ZMacs for Common-LISP programmers.

1. Reading in a buffer or parsing attribute list with Mode:CommonLISP or
Common-LISP works; puts file in LISP mode.  Done by listing the variants
as translations.
2. New command 'Common LISP Mode'.  Slightly different from 'Set Common LISP',
does more.  Makes you think you're compatible with other LISP machines.
This includes setting the :syntax attribute to \"CL\".
3. Also fix typo on DEFMAJOR LISP-MODE mode that, under bizarre/unlikely
circumstances, might have failed to set your *readtable*.

All this because of the <>100 files in CommonLISP syntax I have to compile." "keith" NIL)
  (268 "Tag Table enhancements:
  - Each Tag Table maintains its own set of Tags Search variables;
    you can now switch back and forth with Select Tag Table and
    resume a previous Tags Search
  - Tag Tables are uniquely identified by their name
  - Select Some Buffers and Select All Buffers prompt you for a
    tag table name
  - When specifying a list of buffers as a tag table, hitting End
    does NOT include this buffer" "pld" NIL)
  (269 "The famous \"why did my *print-base* become octal?\" bug.

  It turns out that *read-base*, *print-base*, and *readtable* are set to
    those appropriate to the buffer you were in whenever you do Meta-.
    and the mouse points to a function name.

  (zwei:compute-buffer-package) sets *package*, and also (can't you tell
    from its name?) *read-base*, *print-base*, and *readtable*.
  It is intended to be called only from within an editor closure.
  HOWEVER, (zwei:atom-under-mouse) calls it, and THAT function is
  called by (zwei:blink-function) which is called by the Mouse process." "pld" NIL)
  (270 "When you redefined a flavor and changed the :default-handler, the
old default-handler was retained." "pld" NIL)
  (271 "Zwei's M-X Source Compare and M-X Source Compare Merge didn't really
take the default file name they offered." "pld" NIL)
  (272 "Fix (chaos:disallow-connection?) to not reject the connection if keyword
is :notify.  Generalize sufficiently to allow both (telnet-server-function)
and (eval-server-function) to use it." "pld" NIL)
  (273 "In overwrite mode, typing in the mini-buffer didn't work." "pld" NIL)
  (274 "ZWEI command M-X Kill Some Buffers now asks about the current buffer last." "pld" NIL)
  (275 "You couldn't rename a file with FTP." "pld" NIL)
  (276 "ZMACS will now let you kill the last buffer -- it will generate a new
empty buffer for you to use." "pld" NIL)
  (277 "Only offer to deconfigure the network on a :system-release garbage collection" "pld" NIL)
  (278 "Add :readfile-init defsystem transformation by analogy to :compile-load-init" "pld" NIL)
  (279 "GO from inside a LET that did special bindings, to a higher level,
wasn't always doing an UNBIND.  GO itself was fine, this only happened
when COND thought it could optimize this branch.  Fix SIMPLEGOP to
not claim this case is simple." "RWK" NIL)
  (280 "Thank you, Bob Kerns, for fixing the compiler bug that caused SI:INTERNAL-READ
to be mis-compiled.  This patch recompiles that function...." "pld" NIL)
  (281 "When you try Meta-. on (:special-form sys:with-self-accessible) you get
  Read (sys:with-self-accessible) from what file?
This is because ZWEI doesn't reduce (:special-form XXX) into XXX.
BUT: When you try Meta-. on sys:with-self-accessible, you get gibberish:
  The definition of sys:with-self-accessible has the name
     (:internal si:special-form-funcall-error-maker 0)
  Visit (:internal si:special-form-funcall-error-maker 0)?
This is because the :source-file-name is recorded only for (:special-form XXX)
and not for XXX.

Fix to (si:special-form-function-spec-handler) to put properties onto
the symbol as well as storing in the function-spec hash table.
Fix to ZWEI to reduce (:special-form XXX) into XXX.

These changes affect only freshly loaded special forms.
Wait for System 124..." "pld" NIL)
  (282 "Create (gc:remove-previous-function-spec-definitions) and add it to
(gc:full-gc :mode :system-release)" "pld" NIL)
  (283 "ZWEI was getting the section name of a DEFSTRUCT incorrectly" "pld" NIL)
  (284 "Additional support (within ZMacs only) 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)
  ))