;;; -*- 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 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 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-, it sends the ASCII character for 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 --> " "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: A --> Abort Output --> Erase Line --> Erase Character P --> Interrupt Process --> 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 c-Y command to supdup. This is similar to 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 , 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 ( 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) ))