
;;; 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)   ))