This is the release history for the MIT Lisp Machine System software, with annotations of interesting tid-bits. Entries are based on messages sent to BUG-LISPM.
N.B. This is very much incomplete!
Date | System Release | Microcode | Release notes |
---|---|---|---|
Microcode internal convention changes | |||
06 December 1978 17:29 (EDT) | System ?? | ??? | |
08 December 1978 01:11 (EDT) | System ?? | ??? | |
EINE soon flushed | |||
EINE flushed | |||
21 April 1979 17:27 (EST) | System 5 | ??? | |
25 April 1979 04:41 (EST) | System 5.10 | ??? | |
29 May 1979 10:12 (EDT) | System 8 | ??? | |
3 June 1979 09:58 (EDT) | System 9.1 | 493 | |
12 August 1979 10:48 (EDT) | System 17.6 | ??? | |
24 August 1979 01:51 (EDT) | System 18 | 555 | |
11 September 1979 23:11 (EDT) | System 20 | 579 | |
7 March 1980 23:42 (EDT) | System 26.3 | 616 | |
Joystick "mouse" | |||
12 July 1980 02:20 (EDT) | System 30.3 | ??? | |
19 July 1980 03:00 (EDT) | System 32.1 | 674 | |
29 July 1980 02:23 (EDT) | System 32.4 | ??? | |
New Cold-Load Generator | |||
10 August 1980 04:27 (EDT) | System 36.2 | ??? | |
18 September 1980 23:30 (EDT) | System 43.0 | ??? | |
22 September 1980 03:51 (EDT) | System 44.2 | 692 | |
How to use old-style keyboards on Lisp Machines | |||
6 October 1980 00:33 (EDT) | System 45.2 | 692 | |
??? | System 46.?? | 692 | |
??? | System 72.34 | 774 | |
14 October 1981 15:32 (EDT) | System 74 | 793 | |
9 December 1981 13:58 (EST) | System 78 | 836 | |
12 February 1982 14:30 (EST) | System 79.8 | 849 | |
System 79 and 83 QFASL compatible | |||
??? | System 79.48 | 841 | |
Microcode numbers have been wrapped around to avoid confusion | |||
??? | System 83.?? | 104 | |
??? | System 85.?? | 122 | |
16 June 1982 07:01 (EDT) | System 86 | ??? | SYS86 MSG |
9 July 1982 03:03 (EDT) | System 86.56 | ??? | |
??? | System 86.59 | 148 | |
??? | System 87.?? | 164 | |
??? | System 88.?? | ??? | |
??? | System 89.?? | 183 | |
??? | System 89.?? | 201 | |
??? | System 91.?? | 204 | SYS91 MSG |
15 March 1983 20:21 (EST) | System 93 | ??? | SYS93 MSG |
2 June 1983 06:31 (EDT) | System 94 | 239 | SYS94 MSG |
19 September 1983 01:11 (EDT) | System 97 | 257 | SYS97 MSG |
??? | System 98.?? | 306 | SYS98 MSG |
Common Lisp compatible control argument to FORMAT | |||
??? | System 99.?? | 320 |
MOON@MIT-AI 11/09/78 16:23:12 Re: Microcode internal convention changes To: (BUG LISPM) at MIT-AI A-TEM has been replaced with several new specialized A registers. M-3 has been replaced with M-TEM (which also implies a new A-TEM). A new M-3 has been introduced, which behaves the same as M-1, M-2, and M-4. Nothing uses it yet. The page-fault/interrupt checking instructions have been changed. Here are the new ones: (ILLOP-IF-PAGE-FAULT) - put this where a page fault should not happen (CHECK-PAGE-READ), (CHECK-PAGE-WRITE) - these are the normal ones to use (CHECK-PAGE-{READ/WRITE}-NO-INTERRUPT) - used only inside the interrupt handler, when PGF-{R/W} retry the cycle, and when you don't want to let the interrupt handler bash the map. (CHECK-PAGE-{READ/WRITE}-SEQUENCE-BREAK) - when you want to allow sequence breaks. This one hasn't been finished yet. To review, interrupts are hardware signals that are handled entirely in microcode without swapping in any pages from the disk, without getting involved with the garbage collector, and without clobbering any registers except those that page faults clobber. Sequence breaks are (will be) macro-code interrupts which result in stack-group switching. Many comments have been changed to reflect this terminology. This version of the microcode also has some new stuff for booting. Type control-meta-control-meta-rubout to do a "cold boot". Type control-meta-control-meta-return to do a "warm boot", which is like a 1@G (doesn't do a disk-restore). Due to lack of pdp10 time, this microcode has not been debugged yet. That hopefully will happen tonight.
DLW@MIT-AI 12/06/78 17:29:01 To: (BUG LISPM) at MIT-AI A new system has been installed on CADR1. There are several important changes everyone should know about. First, the "WHat package is it in?" message is gone (yay!!). For normal user files, the system will assume that you want the USER pacakge. For files declared in PKGDCL, the system will remember as before. For those of you who have your own packages (if any), you can put the name of the package in which the file belongs into the file, by using the new "file property list" scheme, i.e. -*- Mode: Lisp; Package: Frobboz -*-. Also, the functions LOAD, FASLOAD, and READFILE will all take a package or package name as an optional second argument, and will load the file into that package. More detailed documentation is (should be, anyway) forthcoming. The default EINE environment now has Control-S set up to be String Search, and Control-R set up to be Reverse String Search. You use String Search by typing Control-S, the name of the string, and altmode; there are other winning hairy features which are in the self-documentation and are the same as those in ITS ^R String Search. The Meta-. command in EINE will now do command completion on all names that have been seen in any tags tables read in, and on the names of any sections of files being edited in section mode. The "-" character no longer does completion; use Altmode. Soon EINE will attempt to automatically find the source file of any function loaded into the machine; stand by.
MOON@MIT-AI 12/08/78 01:11:37 To: (BUG LISPM) at MIT-AI I have installed, on CADR1 only, a new microcode and world load with a couple of new features. BITBLT exists. It isn't documented yet, but you can look at the test routines in MOON;STIPPL >. Some of these will soon be installed in the system and the whole thing will be documented. Facility for the machine to do disk I/O exists; this is in SYSTEM-INTERNALS and I don't plan to document it. The routines are LMIO;DISK >, probably DISK-READ1 and DISK-WRITE1 are all anyone wants to know about at this point.
Date: 30 MAR 1979 0418-EST From: MOON at MIT-AI (David A. Moon) Sent-by: MOON0 at MIT-AI To: INFO-LISPM at MIT-AI Eine will soon be flushed, being replaced by Zwei. If you need any help in switching over, e.g. to convert your init file, contact me or MMcM
Date: 9 APR 1979 1020-EST From: BEE at MIT-AI (Bruce E. Edwards) To: INFO-LISPM at MIT-AI EINE will probably be flushed in the next release of the LM software. Is there anyone out there using it?
Date: 21 APR 1979 1727-EST From: RG at MIT-AI (Richard Greenblatt) To: INFO-LISPM at MIT-AI A new cold load (system 5 series) is installed on CADR1 and 2. It is experimental! Since a extra Q has been added to the stack-group representation, please do not recompile any system files with the earlier systems. (some of the) notable changes are: BASE and IBASE exist file properties. You can actually assure your file will be read in with the right radix!!!! If the properties appear, a BINDing sort of operation with the scope of the file occurs during readin, compilation, and operations from ZWEI buffers. also an EVALUATOR file property is defined. If set, it causes the ZWEI command cntrl-top-e (and similar) to use it instead of EVAL-PRINT. If a DEFCLASS is done when the class is already defined, it is a no-op if the instance variables of the new class would be the same as the existing class. This avoids "losing" all the methods on existing class. If instance variables have been added or deleted, the old class becomes "detached" (altho still operational) as before.
Date: 25 APR 1979 0441-EST From: moon at MIT-AI (David A. Moon) Sent-by: ___040 at MIT-AI Subject: Screen saving back experimentally To: INFO-LISPM at MIT-AI System 5.10 CC, installed on CADR4 only, has screen saving, using the new multiple-page-at-a-time paging. Let me know of any problems (I expect there are some minor ones.) I wouldn't recommend anyone trying to install this on other machines as things have to be loaded in the right order (until a new world load is made.) si:inhibit-all-screen-blting-flag is the flag which controls it if you should want to turn it off.
Date: 29 MAY 1979 1012-EDT From: RG at MIT-AI (Richard Greenblatt) Subject: series 8 cold load To: INFO-LISPM at MIT-AI the series 8 cold load is making its appearance on various machines. -------------------------- [1] Meters work differently. **incompatible change** [2] LMIO1;XGP is an initial part of the system. This means ESC-Q always available. [3] PKG-LOAD, LOAD-FILE-ALIST, and COMPILE-FILE-ALIST are available in a form which takes a functional argument. [4] The usual accumulation of bug-fixes, etc, installed. [5] A tool exists to help track down the source of "symbol appears more than once in the cold load" errors. Look in LISPM;COLDF if you ever need to use this. [6] The initial facility which allows you to augment the microcode incrementally is operational. Brave pioneers (who expect to get arrows in the back) should see RG. [1] Meters (ie counts of various events maintained by the microcode) work differently. They used to be available as variables, ONE-Q-FORWARDed to A-Memory. Problem was, 24 bits wasnt enough. Carries into the data-type field happened, eventually crashing the system when the GC looked at the corrupted data. In the new scheme, the meters are no longer directly accessible. Instead there exists (READ-METER <meter-name>) and (WRITE-METER <meter-name>). The meter names are the same as before, but note they are in the SI: package. Meters are now a full 32 bits, thus, READ-METER can return a BIGNUM. MOON;LMETER has been updated to use the new scheme. [2] YEA. [3] SI:PKG-LOAD-MAP, SI:LOAD-FILE-ALIST-MAP, and SI:COMPILE-FILE-ALIST-MAP exist (as of now, they're not in GLOBAL, in the future they will be). These all take a functional argument in the first argument position, followed by arguments as in the base form. Anytime it is decided to "do" anything (compile or load a file), the functional argument is called, with arguments indicating what is to be done. Its arranged so that if the functional argument is (FUNCTION FUNCALL), the entire effect is exactly like the base form.
Date: 3 June 1979 09:58-EDT From: David A. Moon <MOON5 at MIT-MC> Subject: New features To: info-lispm at MIT-AI In system 9.1 and microcode 493, which need to be installed together, there are a few new features: Peek modes F (file status) and % (microcode meters) A new choice in the system menu, Split Screen. You can create any number of windows of various types, and it will arrange them to fill up the screen in a reasonable array. It keeps giving you a menu of window types, and you click the types you want, Done when you're done, or Quit to flush. Package prefixes print out better. It will ask you nicely to log in instead of printing an obnoxious error message. The keyboard buffer is bigger. The keyboard buffering mechanism has been generalized to work for arbitrary input devices, mainly for HIC. See the file LMIO;UNIBUS.
Date: 12 AUG 1979 1048-EDT From: Moon at MIT-AI (David A. Moon) Sent-by: ___033 at MIT-AI Subject: New system installed To: INFO-LISPM at MIT-AI System 17.6, which has been installed on all machines except the ones in 902, should be relatively free of bugs. Note that there have been some minor incompatible changes in the window system; if you have window-oriented code that doesn't work any more, and you can't figure out how to fix it, consult RMS or me or MMcM. The main changes involved blinkers. If you find it necessary to de-install this system on some machine, be certain to send mail to bug-lispm explaining what was wrong with it. This system will be installed in 2 or 3 days on the machines in 902 unless there are complaints.
Date: 23 AUG 1979 0151-EDT From: Moon at MIT-AI (David A. Moon) Subject: Incompatible changes coming! To: INFO-LISPM at MIT-AI Lisp machine system 18 and microcode 555, which must be used together, contain some incompatible changes. Most of these probably only affect system programs, which have been fixed, but they are being announced in case any users have programs which would be affected. This system is installed on CADR1 and CADR6. It will be installed on all the other machines in a few days, so if you are going to have trouble with the new system please find out before then. The function-calling microcode has been extensively revised. The ^ and EXPT functions should now work completely. However, any user programs (hopefully there are none) that use the macros in LISPM2;SGDEFS (stack-group and pdl formats) will need to be at least recompiled and possibly revised. The way the microcode treats multiple values has been changed as the first step of making multiple values "work right". More about this later. Any programs that return multiple values should be recompiled; they will still work in system 18 due to a kludge in the microcode, but they will crash the system in system 19, because the compiler wasn't really generating the right code. Programs that receive multiple values returned by other functions have no problem. Use of the MULTIPLE-VALUE-CALL macro, and of crockish code sequences involving %OPEN-CALL-BLOCK, should no longer be necessary. The format of the item-list in a menu has been changed. Consult the documentation in the front of the file LISPM2;MENU. If you have a program that uses menus and uses other than simple a-lists as item lists, you will need to change. The :RUBOUT-HANDLER stream operation has been changed. A new argument has been added in front of the existing arguments, which is an alist of options. Normally you want to supply NIL. The RUBOUT-HANDLER-CONTROL-CHARACTER-HOOK has been flushed. Presumably no one is using it. If you need help converting your programs, and if this message isn't sufficient help, please consult me.
MOON5@MIT-MC 11/09/79 23:11:49 Re: New system installation To: INFO-LISPM at MIT-MC System 20 is now installed on CADR-3. If you need to use one of the system 19 bands, you will have to revert the microcode back from 604 to 579. When done, please remember to change it back. There is a plain system 20 and a Macsyma in system 20; hopefully someone will make a vision system 20 shortly. Installing new systems on all of these machines takes a lot of time; I would like to have users take over some of this burden. Instructions on how to do it may be found in the file AI: LMDOC; INSTAL NEWSYS. The version numbers of the current microcode and current system may be found at the front of this file. There is not yet a newer system wanting to be installed, but if you are interested you could read the file and see if it makes sense to you. However, it is easy to break the machine doing this, so if you want to be helpful but don't totally understand the instructions, please don't try to figure it out by experimentation, ask me or another Lisp machine wizard. Also, these instructions will not work in system 19; it will appear to work but the system you get will fail to boot.
Date: 7 MAR 1980 2342-EST From: Moon at MIT-AI (David A. Moon) Subject: New Lisp machine system release To: INFO-LISPM at MIT-AI System 26.3 and microcode 616 are installed on CADR-1 and CADR-6. This system has a lot of bugs fixed, and (we may hope) doesn't have more than its share of new ones. If you want to help out, follow the instructions in the file AI:LMDOC;INSTAL NEWSYS and copy this system onto your favorite machine.
Date: 21 MAY 1980 1607-EDT From: rg at MIT-AI (Richard Greenblatt) To: INFO-LISPM at MIT-AI John Purbrick's force sensitive joystick "mouse" is available for trial use. For the time being, it will live in his office, and anyone who want to try it out can drop by, pick it up, and plug it in directly in place of the regular mouse. This mouse may be particularily suitable for controlling certain kinds of parameters as opposed to pointing on the screen, altho it seems to work out fairly well for pointing as well. There is some hope that this kind of mouse could eventually be built directly into the keyboard (as suggested by Carl Hewitt), and thus be accessible without removing your hands from the keyboard.
Date: 12 JUL 1980 0220-EDT From: MOON at MIT-AI (David A. Moon) Subject: New system pre-release To: INFO-LISPM at MIT-AI System 30.3 has been tentatively installed on CADR-1 for the benefit of those who want to test their programs. There are a number of incompatible changes described later in this message which will necessitate recompilation for some people and actual program changes for those who are still using functions of the old window-system. The 30 series system will be installed on most machines sometime next week, assuming there aren't too many bugs. Please do not copy this system to any other machine yet (in fact 30.3 will not boot on a machine without a color screen, but that will be fixed in 30.4, hopefully tomorrow.) Please do not recompile any system programs in worlds older than this, as that is very likely to cause hidden bugs. Lisp machine systems 30 and above contain only the "new" window system. The vestiges of the old window system present in previous systems (with the "nws" designation) have been removed. In addition, the GLOBAL package has been cleaned up. It is advisable that you recompile your programs in this system before trying to run them, both because of symbols having changed packages and because of some other changes including the value of the #\MOUSE-n-n syntax. If you need help in converting please contact HIC, Moon, or MMcM. There is a new package, TIME. Some of the date/time functions that were formerly in the CHAOS package randomly, are now in the TIME package. They work better and present a more reasonable interface. The following symbols have been removed from GLOBAL; if you use any of these in your programs you have a problem and need to convert. Some of these symbols are obsolete, a few were misspellings, and some have been moved into SYSTEM. A lot of these symbols are used as keywords, properly requiring a colon prefix, but had been globalized so that old programs without the colon prefix would work. Said old programs will now need to be fixed. These symbols no longer exist in GLOBAL: /' /, /; /] /` ACTIVE-WINDOWS CC-LOAD-UCODE-SYMBOLS COMPLETING-READ-PROMPT-SIMPLE COMPLETING-READ-SIMPLE CONSOLE-IO-PC-PPR CURRENT-JOB CURRENT-STACK-GROUP DECODE-DEFINITION ED-INITIALIZE ED-READ-TAG-TABLE ED-REDEFINE-KEYS EDPROP EDT EDVAL EXPOSED-WINDOWS FILE-COMMAND FILE-COMMAND-BUFFER FILE-COMMAND-CAREFUL FILE-ERROR FILE-MAPPED-OPEN FILE-PROPERTY-VARIABLES FOR-CADR FORCE-KBD-INPUT FREEZE-WHO-LINE GET-UNIQUE-ID INHIBIT-AUTOEXPOSE-FLAG INHIBIT-SCREEN-RESTORATION-FLAG INHIBIT-SCREEN-SAVING-FLAG INITIAL-STACK-GROUP INTERRUPT KBD-SIMULATED-CLOCK-FCN-LIST KBD-SUPER-IMAGE-P LOCK-SCREEN-LAYOUT MAKE-TYPEOUT-STREAM MENU-CHOOSE MENU-CLASS MENU-CREATE MOUSE MULTIPLE-VALUE-PASS-BACK PAINT PC-PPR PRINT-NAME-CELL-LOCATION PROCESS-FORCED-INPUT PROCESS-FORCED-INPUT-INDEX PROCESS-INPUT-PROCESS REAL-IO SCHEDULER-STACK-GROUP SCREEN SELECTED-PROCESS SELECTED-WINDOW STANDARD-PC-PPR SWITCH-REGISTER TOP-WINDOW TRIVIAL-PROCESS UNFREEZE-WHO-LINE WHO-LINE-FROZEN WHOSTATE XOR Also a whole bunch starting with prefixes DRAW-, JOB-, MOUSE-, PC-PPR-, SCREEN-, and TV-. These have been moved into the SYSTEM package: %%HEADER-REST-FIELD %%HEADER-TYPE-FIELD %ARRAY-LEADER-LENGTH %ERROR-HANDLER-STACK-GROUP %HEADER-TYPE-ARRAY-LEADER %HEADER-TYPE-BIGNUM %HEADER-TYPE-COMPLEX %HEADER-TYPE-ERROR %HEADER-TYPE-FEF %HEADER-TYPE-FLONUM %HEADER-TYPE-RATIONAL-BIGNUM %INITIAL-STACK-GROUP %INITIALLY-DISABLE-TRAPPING ACTIVE-PROCESSES LENGTH-OF-ATOM-HEAD Moved into SI: LOCALLY-KNOWN-DEVICES These are keywords that were formerly global: ACTIVATE-P ARG1 ARG2 BINARY BLACK BLINK BLINK-FCN BLINKER-P BLOCK BOTH BOTTOM BOTTOM-MARGIN CAR-NUM-MODE CAR-SYM-MODE CDR-NUM-MODE CDR-SYM-MODE CLEAR-INPUT CLEAR-OUTPUT COMPACT-CONS COMPLETE CONFIRM CONSTRUCTOR DEFAULT-POINTER DEFS DYNAMIC END-LINE-FCN END-SCREEN-FCN FINISH FOLLOW-P FONT-MAP FONTS FORCE-OUTPUT FORM FRESH-LINE GC GROUPED-ARRAY HALF-PERIOD HEIGHT IN INCLUDE INTEGRAL-P LEFT LEFT-MARGIN LINE-IN LINE-OUT LISTEN MORE-FCN MORE-P NAME NOCOMPILE NOCONFIRM NOLOAD NORELOAD NORMAL OUT PC-PPR PDL PLANE-MASK READ-ONLY READ-POINTER RECURSIVE REFERENCES REGION-SIZE REGULAR-PDL-AREA REGULAR-PDL-SIZE RELOAD REPRESENTATION REVERSE-VIDEO-P RIGHT RIGHT-MARGIN ROVING-P SAFE SELECTIVE SET-PC-PPR SG-AREA SIDEWAYS-P SINGLE SIZE SIZE-MACRO SPECIAL-PDL-AREA SPECIAL-PDL-SIZE STATIC STRING-OUT STRUCTURE SWAP-SV-OF-SG-THAT-CALLS-ME SWAP-SV-ON-CALL-OUT TOP TOP-MARGIN UNTYI UNTYO UNTYO-MARK VISIBILITY VSP WHICH-OPERATIONS WHITE WIDTH WRITE The following symbols have been added to GLOBAL. (There may have been others added since whichever system you are used to using.) BEEP, INSPECT, %%KBD-HYPER, %%KBD-SUPER, COND-EVERY, SELECTQ-EVERY, DESTRUCTURING-BIND, GET-HANDLER-FOR, LOCATE-IN-INSTANCE, SET-IN-INSTANCE, SYMEVAL-IN-INSTANCE, DEFINE-USER-OPTION-ALIST, DEFINE-USER-OPTION, CHOOSE-USER-OPTIONS, RESET-USER-OPTIONS, WRITE-USER-OPTIONS, DEFRESOURCE, WITH-RESOURCE, ALLOCATE-RESOURCE, DEALLOCATE-RESOURCE
Date: 19 JUL 1980 0300-EDT From: Moon at MIT-AI (David A. Moon) Subject: New system pre-release To: INFO-LISPM at MIT-AI System 32.1 and microcode 674 are tentatively released. Currently they only exist on CADR-1, but very shortly they will migrate to CADR's 6 and 2; if no bugs show up I hope that this system can get installed on all the machines within a week or so. That will involve some disruption to users, although you can of course DISK-RESTORE to an older band if your programs have not yet been converted to the latest system (but don't expect great amounts of sympathy for bug reports!) In addition to the changes in system 30, mainly involving removing the vestiges of the old window-system, this system includes a relatively bug-free new window-system and editor. The garbage collector works again. This system includes the micro-compiler (ask RG if you want to know how to use it.) There are some new facilities for transferring bands between machines which are faster and hopefully more reliable. The microcode primitives for the old window-system have been removed (TV-DRAW-CHAR, TV-ERASE, etc.); if you call them unfortunately the machine will crash rather than giving you an error. There are the usual large number of small bug fixes. Any qfasl file compiled in a system before 30 should be recompiled in this system, because many symbols have been removed from the GLOBAL package. The list is at the end of this message; note that this is the same list as for system 30 except that UNTYI has also been moved from GLOBAL to USER. (It was on the list before but it was not actually moved due to an oversight.) Please do not recompile any system programs in worlds older than this, as that is very likely to cause hidden bugs. There is a new package, TIME. Some of the date/time functions that were formerly in the CHAOS package randomly, are now in the TIME package. They work better and present a more reasonable interface. Note that this includes NWATCH-ON and WHAT-DATE which many people call in their init files. The roman numeral keys on the new keyboards will only be used as mouse buttons if the "mode lock" key, located just below them, is latched down. The following symbols have been removed from GLOBAL; if you use any of these in your programs you have a problem and need to convert. Some of these symbols are obsolete, a few were misspellings, and some have been moved into SYSTEM. A lot of these symbols are used as keywords, properly requiring a colon prefix, but had been globalized so that old programs without the colon prefix would work. Said old programs will now need to be fixed. These symbols no longer exist in GLOBAL: /' /, /; /] /` ACTIVE-WINDOWS CC-LOAD-UCODE-SYMBOLS COMPLETING-READ-PROMPT-SIMPLE COMPLETING-READ-SIMPLE CONSOLE-IO-PC-PPR CURRENT-JOB CURRENT-STACK-GROUP DECODE-DEFINITION ED-INITIALIZE ED-READ-TAG-TABLE ED-REDEFINE-KEYS EDPROP EDT EDVAL EXPOSED-WINDOWS FILE-COMMAND FILE-COMMAND-BUFFER FILE-COMMAND-CAREFUL FILE-ERROR FILE-MAPPED-OPEN FILE-PROPERTY-VARIABLES FOR-CADR FORCE-KBD-INPUT FREEZE-WHO-LINE GET-UNIQUE-ID INHIBIT-AUTOEXPOSE-FLAG INHIBIT-SCREEN-RESTORATION-FLAG INHIBIT-SCREEN-SAVING-FLAG INITIAL-STACK-GROUP INTERRUPT KBD-SIMULATED-CLOCK-FCN-LIST KBD-SUPER-IMAGE-P LOCK-SCREEN-LAYOUT MAKE-TYPEOUT-STREAM MENU-CHOOSE MENU-CLASS MENU-CREATE MOUSE MULTIPLE-VALUE-PASS-BACK PAINT PC-PPR PRINT-NAME-CELL-LOCATION PROCESS-FORCED-INPUT PROCESS-FORCED-INPUT-INDEX PROCESS-INPUT-PROCESS REAL-IO SCHEDULER-STACK-GROUP SCREEN SELECTED-PROCESS SELECTED-WINDOW STANDARD-PC-PPR SWITCH-REGISTER TOP-WINDOW TRIVIAL-PROCESS UNFREEZE-WHO-LINE WHO-LINE-FROZEN WHOSTATE XOR Also a whole bunch starting with prefixes DRAW-, JOB-, MOUSE-, PC-PPR-, SCREEN-, and TV-. These have been moved into the SYSTEM package: %%HEADER-REST-FIELD %%HEADER-TYPE-FIELD %ARRAY-LEADER-LENGTH %ERROR-HANDLER-STACK-GROUP %HEADER-TYPE-ARRAY-LEADER %HEADER-TYPE-BIGNUM %HEADER-TYPE-COMPLEX %HEADER-TYPE-ERROR %HEADER-TYPE-FEF %HEADER-TYPE-FLONUM %HEADER-TYPE-RATIONAL-BIGNUM %INITIAL-STACK-GROUP %INITIALLY-DISABLE-TRAPPING ACTIVE-PROCESSES LENGTH-OF-ATOM-HEAD Moved into SI: LOCALLY-KNOWN-DEVICES These are keywords that were formerly global: ACTIVATE-P ARG1 ARG2 BINARY BLACK BLINK BLINK-FCN BLINKER-P BLOCK BOTH BOTTOM BOTTOM-MARGIN CAR-NUM-MODE CAR-SYM-MODE CDR-NUM-MODE CDR-SYM-MODE CLEAR-INPUT CLEAR-OUTPUT COMPACT-CONS COMPLETE CONFIRM CONSTRUCTOR DEFAULT-POINTER DEFS DYNAMIC END-LINE-FCN END-SCREEN-FCN FINISH FOLLOW-P FONT-MAP FONTS FORCE-OUTPUT FORM FRESH-LINE GC GROUPED-ARRAY HALF-PERIOD HEIGHT IN INCLUDE INTEGRAL-P LEFT LEFT-MARGIN LINE-IN LINE-OUT LISTEN MORE-FCN MORE-P NAME NOCOMPILE NOCONFIRM NOLOAD NORELOAD NORMAL OUT PC-PPR PDL PLANE-MASK READ-ONLY READ-POINTER RECURSIVE REFERENCES REGION-SIZE REGULAR-PDL-AREA REGULAR-PDL-SIZE RELOAD REPRESENTATION REVERSE-VIDEO-P RIGHT RIGHT-MARGIN ROVING-P SAFE SELECTIVE SET-PC-PPR SG-AREA SIDEWAYS-P SINGLE SIZE SIZE-MACRO SPECIAL-PDL-AREA SPECIAL-PDL-SIZE STATIC STRING-OUT STRUCTURE SWAP-SV-OF-SG-THAT-CALLS-ME SWAP-SV-ON-CALL-OUT TOP TOP-MARGIN UNTYI UNTYO UNTYO-MARK VISIBILITY VSP WHICH-OPERATIONS WHITE WIDTH WRITE The following symbols have been added to GLOBAL. (There may have been others added since whichever system you are used to using.) BEEP, INSPECT, %%KBD-HYPER, %%KBD-SUPER, COND-EVERY, SELECTQ-EVERY, DESTRUCTURING-BIND, GET-HANDLER-FOR, LOCATE-IN-INSTANCE, SET-IN-INSTANCE, SYMEVAL-IN-INSTANCE, DEFINE-USER-OPTION-ALIST, DEFINE-USER-OPTION, CHOOSE-USER-OPTIONS, RESET-USER-OPTIONS, WRITE-USER-OPTIONS, DEFRESOURCE, WITH-RESOURCE, ALLOCATE-RESOURCE, DEALLOCATE-RESOURCE
Date: 29 JUL 1980 0223-EDT From: Moon at MIT-AI (David A. Moon) Subject: Fixes to latest round of bugs To: (BUG LISPM) at MIT-AI System 32.4 fixes most of the bugs in 32.2 and especially 32.3. It probably even works on a machine that has been powered off. Currently this system is only on CADR-6, I'll spread it around tomorrow probably. You can make a 32.3 into a 32.4 by loading the file AI:MOON;LOAD 32.4 then doing (LOAD-32.4). Do not do this to a 32.2! Answer N to the first two redefinition questions (SPECIAL, UNSPECIAL) and Y to the third (BEEP).
Date: 4 AUG 1980 2104-EDT From: Moon at MIT-AI (David A. Moon) Subject: New cold-load generator installed To: (BUG LISPM) at MIT-AI I have installed a new cold-load generator which runs on the Lisp machine, and banished the old one to the LISPM1; directory. To run it, load the file LISPM;COLDPK, do (PKG-LOAD 'COLD), then do (COLD:MAKE-COLD "band") where band is the name (e.g. "LOD2") of the band on your local disk on which to build the cold-load. You will be asked to confirm. When MAKE-COLD comes back, you can DISK-RESTORE from that band, or make it and the appropriate microcode current and cold-boot. Once the fresh cold-load starts up, the procedure with QLD is the same from then on. The same system format definitions files, QCOM, QDEFS, and DEFMIC are used as before.
Date: 10 AUG 1980 0427-EDT From: MOON at MIT-AI (David A. Moon) To: (BUG LISPM) at MIT-AI System 36.2 and microcode 683 are installed on CADR's 4, 6, 9, and 12. If no important bugs show up they should be installed on the remaining cadrs.
Date: 18 SEP 1980 2330-EDT From: Moon at MIT-AI (David A. Moon) Subject: System 43.0 To: (BUG LISPM) at MIT-AI There is a system 43.0 on CADR-6. Please do not distribute it to any other machines as there are a number of things broken in it (some of which are my fault). There will be a replacement world built soon.
Date: 22 SEP 1980 0351-EDT From: Moon at MIT-AI (David A. Moon) Subject: New system release To: INFO-LISPM at MIT-AI System 44.2 with microcode 692 is now the "installed new" system. It is currently installed on CADR's 3, 6, and 8, and should migrate to more shortly. The main changes from system 40.1 of note (besides bug fixes) are: The process system has been revised. Processes are now flavor objects and there are some new scheduler features (I don't know if the new scheduler features claim to work yet.) Use of TOPS-20 for file storage is really supposed to work now. There are floating-point arrays. The array type symbol is ART-FLOAT. These are intended to reduce consing when doing floating-point array computations. Accessing a floating-point array is actually somewhat slower than accessing an ART-Q array with flonums in it, but storing a "temporary" flonum into an ART-FLOAT array does not create a "permanent" flonum that would later need to be garbage-collected. All floating-point arithmetic operations are now 4.5 microseconds (about 20%) faster, due to removal of some overhead.
Date: 26 SEP 1980 1403-EDT From: DLW at MIT-AI (Daniel L. Weinreb) Subject: How to use old-style keyboards on Lisp Machines. To: INFO-LISPM at MIT-AI Since some of the Lisp Machines still have old-style keyboards, here is an explanation of how to type some of the new keys on the old keyboards. To get: Type: What it is: ABORT TOP/CALL Asynchronously THROWs out of all functions running in the current process, and restarts the process from its initial function. CLEAR-INPUT CLEAR Flush unread characters (in the rubout-handler buffer). CLEAR-SCREEN FORM Erase or refresh the selected window. END TOP/RETURN Marks the end of input to some programs. HELP TOP/H Gets help, sometimes... MACRO BACKNEXT Invokes keyboard macros in the Editor and Zmail. NETWORK TOP/BREAK SUPDUP and TELNET escape. OVER-STRIKE BS Overstrike characters. SYSTEM TOP/ESC Select a window of a specified type. Type SYSTEM HELP for help. TERMINAL ESC Various terminal functions. Type TERMINAL HELP for help. HOLD-OUTPUT (used with TERMINAL) and QUOTE (used by the Inspector) are not availible on the old keyboards. More details can be found in the window system documentation written by Allan Wechsler; this is not published yet but bootleg copies are floating around.
Date: 6 OCT 1980 0033-EDT From: Moon at MIT-AI (David A. Moon) Subject: New system release To: INFO-LISPM at MIT-AI System 45.2 with microcode 692 is now available. Currently it is only on CADR-6 but it will migrate to other machines soon. This system fixes several serious bugs in 44.3. Note that system 45.2 does not have ZMAIL in it; a 45.3 with ZMAIL should come out in a day or two. The following changes may be of interest: A new special form, WITH-OPEN-FILE. This should be used in most cases rather than calling OPEN, since it arranges for proper cleanup upon abnormal exit. (WITH-OPEN-FILE (var filename options) body1 body2 ... ) evaluates the forms body1, body2, ... with var bound to a stream which is the result of (OPEN filename options). The stream is closed after evaluating the body. The stream is also closed if control is thrown out of the body, and in this case if if the file is being written the partially-written file is deleted. New hash-table facility available. Documentation is in a section of the file AI:LMMAN;FD.CON >. If you don't know about the WITH-INPUT-FROM-STRING and WITH-OUTPUT-TO-STRING special forms, documentation may be found in the file AI:LMMAN;FD.STR >. Some serious bugs in the process system have been fixed. The most noticeable was that the Abort key did not run unwind-protects! The usual large number of small bug fixes, especially to file names, processes, and typeahead. The special characters that represent function keys now display with their new-keyboard names. The page-separator now displays as <PAGE> rather than <FORM>. Typing TERMINAL/HELP will give a better display with documentation on all the function keys on the new keyboard (even if you're on an old keyboard!). A couple things have been renamed; probably few people were using them. The :DRAW-FILLED-IN-CHORD message is now :DRAW-FILLED-IN-SECTOR. If you added anything to TV:WINDOW-TYPES-ITEM-LIST you should add it to TV:DEFAULT-WINDOW-TYPES-ITEM-LIST instead; the reason is that this list can be per-screen and per-frame now. The :STATUS message returns a new value, :EXPOSED-IN-SUPERIOR.
Date: 14 October 1981 15:31-EDT From: Mike McMahon <MMcM at MIT-AI> Subject: New system release To: INFO-LISPM at MIT-AI System 74 is now released to users. This system comes with microcode 793. Except for new features it should work with the previous microcode (786) for the most part. Systems earlier than 74.21 will not work with lisp machines as file computers. Non-special variables now obey lexical scoping in compiled code, if you use LEXICAL-CLOSURE instead of FUNCTION around your internal LAMBDA-expressions. For example, (defun foo (a) (lexical-closure (lambda () a))) returns a function which returns a. Lexical closures do no consing if used in a downward direction. They are automatically consed as soon as you try to pass them upward. At some time in the future, FUNCTION may be changed to do the same thing. Note that this would be upward compatible with the previous behavior of non-special variables. Also, the interpreter may be changed to be compatible with the compiler. This would be an incompatible change to the interpreter, but would not affect any code which currently runs properly compiled. With &KEY, you can now specify the keyword and variable name for a keyword argument independently. To do this, use two levels of list structure for the variable: starting with the list which contains the name and possibly the initial value, and then replace the name with another list, containing the keyword followed by the name. For example: (defun foo (&key ((:x x-variable)) &optional ((si:y y-variable) default)) ...) It is a good idea to change functions to use &KEY, because then ARGLIST will give complete information on the keywords they accept. The first argument to BREAK is now optional; (BREAK) <=> (BREAK NIL). This means that there are two easy ways to write a breakpoint into your program: (BREAK) gets a read-eval-print loop, and (ERR) gets the error handler. (These are the programmatic equivalents of the Break and Meta-Break keys on the keyboard.) The C-M-N and C-M-P commands in the error handler will now show you the incomplete frames for functions whose arguments are still being accumulated. What you will see will include some number of already-computed arguments, plus some number of temporaries on the stack for microcoded primitives. The error handler doesn't know how to sort which are which, yet, but at least you can see them. A new function ZWEI:AUTO-FILL-IF-APPROPRIATE, analogous to ZWEI:ELECTRIC-SHIFT-LOCK-IF-APPROPRIATE. LOGIN-SETQ ZWEI:TEXT-MODE-HOOK to this in your init file and text without -*-Nofill:T-*- will be in auto fill mode. Support has been added for rational numbers. It will change relatively soon, so programs should not be made to depend on it yet. Hosts now have standard representations as instances. In particular, the HOST instance variable of a pathname is one. This change should not affect any user code. The variable CHAOS:HOST-ALIST is now gone, since the host table can handle multiple networks. SI:PARSE-HOST is the way to convert a string into a host object, from which you can get the standard name or nicknames. (SI:GET-HOST-FROM-ADDRESS num ':CHAOS) is the way to get a host object from a number. Files that have not been recompiled in a very long time will need to be recompiled for this system. The symptom is that loading them tries to send a message to an array. There is a new process-warm-boot-action, si:process-warm-boot-delayed-restart, and it is now the default instead of si:process-warm-boot-restart. The effect is that random processes do not get restarted any more before the system has finished initializing itself. Processes needed to initialize the system, such as the Keyboard and Chaosnet processes, do not use this warm-boot action. Some small bugs associated with floating-point numbers have been fixed; some numerical programs may get different results. The principal source of roundoff error in the reader (inaccurate powers of ten) has been corrected; many more numbers will be read as the best flonum approximation, although large and small numbers will still have an error of 1 least significant bit in some cases. (There are no longer any cases with an error of more than 1 LSB). A fencepost error in floating-point subtraction has been corrected; formerly if the subtrahend was exactly equal to 1.0 times the weight of the last significant bit in the minuend, the answer would be the minuend, which is incorrect. (The fact that pdp-10's have the identical bug does not make it less of a bug.) The bug in integer division reported a few weeks ago is also fixed.
Date: 9 December 1981 13:58-EST From: Mike McMahon <MMcM at MIT-AI> Subject: New system release (version 78) (270 line message) To: INFO-LISPM at MIT-AI System 78 is now released to users. It has been a long time since an official release, so this message is rather long. From now on, system release messages will be divided into two parts, to make things more pleasant for those of you who don't like reading long messages. First, we will list changes that might potentially cause problems or confuse you when you start using the new system. Second, we will list new features or important bug fixes that might help you out. If you're a Lisp Machine user, you should read the first section, but you can safely ignore the second section if you'd rather not be bothered. Table of contents: Things you should take note of: [1] System 78 requires new microcode. [2] If the QFASL and source of a file are in different directories, you must recompile the file. [3] Function specs have changed; FDEFINE, COMPILE, TRACE, et. al. are affected. [4] The :CLOSE message to a chaos stream has changed - probably you are not affected. [5] The system menu has changed - it is a more powerful superset. [6] You may get spurious warnings about redefining functions - recompile. Things you may safely ignore: [A] Streams have been changed; there is a system of flavors that you can use if you want to, though you don't have to. [B] OPEN has a new argument syntax (the old one still works). [C] WITH-OPEN-STREAM exists. [D] There are new high-level functions for using the Chaosnet. [E] New :HANDLER function spec. [F] SI:PRINT-READABLY controls unreadable forms. [G] TV sync prom is used when machine is booted. [H] Source files are remembered for all definitions. [I] Files with compile-flavor-methods ought to be recompiled if you care a lot about efficiency. [J] New features in MAKE-SYSTEM. [K] Some changes in low-level disk control. [L] The scavenger working set size can be controlled. [M] The editor tries to give you more information in its display. [N] Preparing now for coming new error system. [O] The Greek letter convention for the Control/Meta keys is obsolete. Things that you should take note of: [1] System 78 requires microcode 836. It will fail to cold-boot with the previous microcode (793). The system 74 will fail to work with the new microcode also. (Ucode versions < 810, 825, 827 and 828 go with system 74, 811, 826, 832 and up are compatible with systems 76, 77, and 78). [2] In order to interact properly with M-. in the editor, all files whose QFASL's live in a different directory than the source will need to be recompiled in system 78 (or in system 75.14 or later). The present scheme of guessing the source file pathname based on the truename of the source has proved too bug-prone, and the correct information is now recorded by the compiler. [3] Function specs have been completely reimplemented. As a side-effect of this the function spec (FOO BAR) as an abbreviation for (:PROPERTY FOO BAR) is now accepted only by defining forms such as DEFUN, DEFMACRO, and DEFSELECT; the full form must be used with the function-manipulating functions such as FDEFINE, COMPILE, TRACE, etc. Formerly the short form worked partially with these functions. If you get an error message that something is not a valid function spec, this is probably the reason. [4] The :CLOSE message to a chaos stream now behaves like the :EOF message if not given an abort-p argument. The connection is also freed, so this need not be done manually. Note that the CHAOS:STREAM function still gives bidirectional streams, but in many cases you may only want the unidirectional flavor (see below for more details). [5] The system menu has been made more useful; the "Other" command have been integrated into the menu, as have some useful screen editor commands and some commands that are like what you can do with the System key. If you just pop one up and look at the mouse documentation for each item, it should be clear what all of the commands mean. Lacking any better place to document it, I'll mention here that the function TV:ADD-TO-SYSTEM-MENU-PROGRAMS-COLUMN should be called by user programs that want to add themselves to the system menu. [6] In some obscure cases, you may get undeserved warnings about redefining system functions when you load old QFASL files into System 77. For example, if you had a defstruct with the same name as a system function, and you last compiled the file in certain system releases, this may happen. Just recompile the file in System 77 and the new QFASL file won't produce the warning. Things that you may safely ignore: [A] A major change in this system is a thorough reimplementation of streams. All old streams will continue to work; however, a system of flavors has been set up to make it easier for you to write new streams. All buffered streams in the system (e.g. files, network, mag tape) are now built out of these flavors, eliminating much duplicated code and the consequent inconsistencies and inefficiencies. This new basis for streams is not yet documented, but the source code may be found in the file SYS:IO;STREAM LISP. The :FINISH message has been changed incompatibly; it now implies a :FORCE-OUTPUT (which is what it ought to have done all along). There is a new message to streams, :STRING-IN, which reads efficiently into an array; it and :STRING-OUT are the right primitives from which to build most forms of binary record I/O. As mentioned above, the :CLOSE message to a Chaosnet stream is now consistent with all other streams. A new message to buffered streams, :READ-INPUT-BUFFER, behaves exactly like :GET-INPUT-BUFFER but returns the values ARRAY, INDEX, and LIMIT. This should be used in all new code instead of :GET-INPUT-BUFFER, which will be faded out in 1990. There has been some inconsistancy in the meaning of the optional argument to the :ADVANCE-INPUT-BUFFER message to a stream. In system 78, everything has been changed to assume it is a buffer index. This agrees with the documentation. [B] The OPEN function now accepts keyword arguments in the standard fashion, after a required first argument which is the pathname of the file to be opened. The keywords will be documented shortly. For backwards compatibility, if OPEN is given only two arguments the second argument is an option or list of options from the old set of Maclisp-compatible OPEN options. Naturally WITH-OPEN-FILE takes keywords the new way, just as OPEN does. [C] There is a new special form, WITH-OPEN-STREAM, which is completely analogous to WITH-OPEN-FILE except that you specify a form whose value is the stream, rather than arguments to OPEN. This is used with non-file streams. [D] The preferred way of interacting with the chaosnet at the highest level is now via two new functions, CHAOS:OPEN-STREAM and CHAOS:MAKE-STREAM. CHAOS:OPEN-STREAM takes a host, contact name, and set of keyword options and returns an open stream to that host. CHAOS:MAKE-STREAM takes an open connection and options and returns a stream. This is useful when the connection has been gotten via a CHAOS:LISTEN, for example. Both functions accept the following keywords: :DIRECTION - :INPUT, :OUTPUT, or :BIDIRECTIONAL. Default is :BIDIRECTIONAL. :CHARACTERS - boolean. Default is T. If non-NIL, ascii rather than binary data is to be sent. CHAOS:OPEN-STREAM also accepts these keywords relating to the connection itself: :ERROR - boolean. Default is T. A string is returned on an error for :ERROR NIL. :TIMEOUT - number of 60ths of a second. Default is 10 seconds. :WINDOW-SIZE - number. Default is like CHAOS:CONNECT formerly. [E] A new function spec (:HANDLER <flavor> <message>) refers to the function which is evoked when an object of flavor <flavor> is sent the message <message> (i.e., the element of the FLAVOR-SELECT-METHOD). This is distinct from the :METHOD function spec, which refers to the function defined in flavor <flavor>, and possibly inherited by many other flavors. [F] A new variable SI:PRINT-READABLY enables you to specify that what you are printing is intended to be read with READ again, and should not contain any unreadable forms. When SI:PRINT-READABLY is bound to non-NIL and an attempt is made to print an unreadable object, an error will be signalled on SI:PRINT-NOT-READABLE. Anyone who defines their own :PRINT-SELF messages should be aware of a new macro SI:PRINTING-RANDOM-OBJECT, which must be used to preserve the functionality of SI:PRINT-READABLY. It is documented in the source. [G] When booted, the system will now always use the TV sync prom if there is one, unless set-tv-speed was done before the disk-save. If you do a set-tv-speed and save out the band, please put something in the label comment so someone transfering the band to another machine will be aware of what has been done ("60Hz" is the usual thing to reduce hum on VMI monitors). This should decrease the incidence of seasickness. [H] The system now remembers source files for all functions, not just those named by symbols, and does not get confused by multiple definitions of different types with the same name (for instance, a function, a variable, a flavor, a defstruct, and a resource with the same name). Thus the editor M-. command is more likely to work now. The whole function spec and source file system has been reimplemented, and numerous bugs have been fixed. flavor-method-symbols (e.g. tv:basic-momentary-menu-after-deexpose-method) no longer exist; the function spec (e.g. (:method tv:basic-momentary-menu :after :deexpose) is now used for all purposes formerly served by the symbol). [I] Any files containing COMPILE-FLAVOR-METHODS should be recompiled in system 77 (or in system 75.22 or later). Old qfasl files will still work; however, the system will regard all combined-methods in them as obsolete and will generate new ones at load time; thus the COMPILE-FLAVOR-METHODS will be inutile. [J] MAKE-SYSTEM will now offer to compile and load a new version of the file containing the DEFSYSTEM for the system if it has changed. In fact, a new function SI:SET-SYSTEM-SOURCE-FILE allows you to specify what file a system is defined in before that system is loaded at all. It will then be loaded the first time MAKE-SYSTEM is done on it. This might be useful in your init file, for example. The argument to this function is the name of the system, i.e. the symbol that you would give to MAKE-SYSTEM. Note: since the system system has strong opinions about file types, this only happens when the file with the DEFSYSTEM form has a file type of LISP, i.e. an FN2 of > on ITS. Thus, if you have a file FOO PKG, and want to benefit from this feature, you should rename it to FOOPKG >. The :RECOMPILE keyword to MAKE-SYSTEM is the same now as the :COMPILE and :RELOAD keywords together. This should be easier to remember. [K] The A-MEMORY variable SYS:%DISK-READ-COMPARE-ENABLES has been renamed to SYS:%DISK-SWITCHES. Bit 2 in this variable now controls the multiple page swapout feature. When a page is swapped out and this bit is on, the system will look to see if the next higher page in virtual memory is present in physical memory and also needs to be written on disk. If so, it will be appended to the transfer. Currently the maximum size of transfer which can be built in this way is set to 20 pages. The pages in question are not actually removed from core, but just changed to READ-WRITE-FIRST status. If they are later selected for swapout before they are modified again, a disk write will be saved. A new meter, %COUNT-DISK-PAGE-WRITE-APPENDS, records the number of pages added to transfers in this way. Bit 3 in SYS:%DISK-SWITCHES now controls the multiple page swapin feature which exists in microcode version 826 and later. When a swapin is called for, the system decides how many pages it would like to transfer with one disk op. In system 78, this computation depends the area of the page being brought in. SYS:AREA-SWAP-RECOMMENDATIONS is a new area number indexed area which holds the recommended swap size minus one per area. (Ie 0 says just swap the needed page, 1 try to append one page to that, etc). The user should not store in SYS:AREA-SWAP-RECOMMENDATIONS directly, but should use (SI:SET-SWAP-RECOMMENDATIONS-OF-AREA <AREA-NUMBER> <N>) Currently, 17 is the maximum value of N which should be used. There is not much experience yet as to what are good values to put in here. (set-all-swap-recommendations 2) is a good way to turn on the feature and start seeing what happens. Exactly what the best initial setting is will be determined thru experience. Generally speaking, the more main memory the machine has, the higher the swap sizes should be. There frequently seems to be a rather dramatic improvement in context switch times (such as entering the editor for the first time, etc.) Another new meter, %COUNT-DISK-PAGE-READ-APPENDS records the number of pages added to transfers in this way. [L] The size of the scavenger working set, formerly fixed at the low value of 12 pages, may now be set at any time by (SI:SET-SCAVENGER-WS <value>). The way that this works is that main memory is divided into two pools; one pool is only used by the user program, while both the user and the scavenger contend for the other pool. The <value> is the number of pages of main memory (256 words each) in the shared pool. Setting this value higher than 12 seems to improve the performance of the GC significantly. Values of 400 seem to work well for 256K machines, larger values should probably be used for machines with more memory. Please report your experiences setting this parameter, since it is unclear at this time what the default value should be. As part of this change, the meaning of the SI:%SCAVENGER-WS-ENABLE variable has been changed. It is now the dividing point in physical memory between the two pools. (As a semi-compatibility feature, however, SI:%SCAVENGER-WS-ENABLE of NIL will still turn off the scavenger working set feature.) The former low value of the scavenger working set parameter may have accounted for unacceptable garbage collector paging performance in some applications. [M] When the editor is reading a command argument from the mini-buffer and some sort of command or filename completion is present, the blinker will have a small "c" character inside its box. Likewise, when a search string is being read that may contain special search characters (such as <and> and <or>), a small "s" character appears. This feature is experimental. Your comments on it and especially suggestions for improving it are welcome. The version of the file last read or written is now displayed in parentheses in the mode line. [N] A new object oriented error handling and condition system will be installed in one of the next few major system releases. The major change for simple programs is that functions like CHAOS:CONNECT and OPEN which take a no-error argument and now return a string of the error will instead return an error instance. Since we imagine that there are a lot of these simple programs, and to help ease you into this change, there is a new global function ERRORP in system 78. It is the same as STRINGP. When the new system is installed, it will be different, but will still correctly recognize the error return case of the above mentioned functions. [O] The old convention of using alpha to mean Control, beta to mean Meta, and so on, has been declared obsolete. The use of this convention in some system help messages has been replaced with the new convention, namely C-, M-, and so on. The FORMAT ~C directive has been changed to use the new convention. The Greek letters will continue to be accepted by #/ for compatibility only. If you see the system trying to type Greek at you using this convention, tell us and we wil put a stop to it.
Date: Friday, 12 February 1982, 14:30-EST From: David L. Andre <DLA at SCRC-TENEX> Subject: System 79 release. To: INFO-LISPM at MIT-AI Cc: DLA at SCRC-TENEX System 79.8 is now released to users. It comes with ZMail 40, LMFILE-Remote 5, Remote-File 2, and microcode 849. Copies of system 79 bands are kept on the FileComputer (LM27), and you may get a band from there at any time, regardless of who is logged in there. A number of patches before 79.8 take a long time to load. It will probably be easier for you to get a band from the FileComputer than to load those patches, if you already have a system 79 band. Table of contents: Things you should take note of: [1] New Converse subsystem for interactive messages. [2] Name changes to some editor commands. [3] PROCESS-RUN-FUNCTION and related functions have been changed slightly. [4] New function SI:LOAD-AND-SAVE-PATCHES. [5] File computers. Things you may safely ignore: [A] New user option FS:*ALWAYS-MERGE-TYPE-AND-VERSION* [B] A bug in %P-STORE-CONTENTS has been fixed. [C] Only one process at a time may run in the compiler. [D] New subst FILL-POINTER. [E] New function ERRORP. [F] Error handler now uses ERROR-OUTPUT for its IO. [G] PROCESS-RUN-FUNCTION changes. [H] New features in resources. [I] New :SELECT-METHOD function spec. [J] Some functions have moved to new files. [K] New hosts are supported as file computers. [L] Terminal B buries the selected window. [M] New PEEK S mode for information on servers. [N] MONITOR-VARIABLE and UNMONITOR-VARIABLE now actually work. [O] New functions for use in the interactive error handler (debugger). [P] Lambda macros are now supported.
Things that you should take note of: [1] This system includes the new Converse subsystem, for interactive messages between users. (qsend) or System-C will select the Converse window, which should be self-documenting (type the Help key at that window for documentation on the window, the Lisp functions, and the user-option variables). The qsend function with arguments works the same as before, except that if you don't specify a host it will search all Lisp machines on the local Chaosnet for the person to send to; in other words, all Lisp machines whose names the qsend function would accept. [2] The editor command List Multiple Callers has been renamed to Multiple List Callers for consistency (there is a whole family of these; everything with Multiple in its name now has Multiple as the first word.) The editor command List Functions has been renamed to List Definitions. [3] PROCESS-RUN-FUNCTION now does what PROCESS-RUN-TEMPORARY-FUNCTION used to do. This means that the writeup in the manual is now obsolete. PROCESS-RUN-TEMPORARY-FUNCTION is still around, but is obsolete and will go away eventually. More about this in the second section. [4] There is a new function SI:LOAD-AND-SAVE-PATCHES, which is the right thing to use if you want to load patches and save out the band. It loads any patches, and if some were made, it prints the disk label and queries you to find out which partition should be used for the dump. This function may (and should, usually) be called without logging in, so as to avoid putting the contents of your login file into the world load. It is smart about many of the common errors people make when saving bands, and therefore should avoid many of those problems. A related change is that LOAD-PATCHES now returns T if any patches were made, and NIL otherwise. [5] Access to the file computer is now loaded by default. This is the reason for the LMFILE-Remote and Remote-File systems in the herald. Interested parties are referred to LMFS;FSDOC for information on the LM file system, and to LMFILE;DOC for information on the LMFILE file system. Things that you may safely ignore: [A] A new user option FS:*ALWAYS-MERGE-TYPE-AND-VERSION* is available for those who prefer TENEX style pathname defaulting. The default algorithm for merging does NOT take the type and version from the default pathname if a name is specified. For example, on TWENEX, typing "FOO" with the default "BAR.LISP" will give "FOO", NOT "FOO.LISP". There have been some complaints from people who dislike this convention, so with FS:*ALWAYS-MERGE-TYPE-AND-VERSION* set to T, they will get the desired behavior. Most people will not want to use this. [B] A bug in %P-STORE-CONTENTS, causing it to follow invisible pointers, has been fixed. This is mentioned here since it is a low-level change that might conceivably break something. (In fact two functions in the system depended on the buggy behavior and have been fixed; other functions in the system did not work because of the buggy behavior.) [C] Only one process at a time may run the compiler. If a second process tries to enter the compiler while it is busy, a notification will be printed and the second process will wait with who-line state "Compiler". If the first process is not ever going to get out of the compiler (perhaps it is stopped with an error), you must abort it in order for the second process to proceed. This was announced in system 78, but now it really works. [D] The function FILL-POINTER, given an array, returns the fill pointer of the array. This is actually a SUBST, and so you can use SETF with it. [E] New function ERRORP. For now equivalent to STRINGP, for the benefit of the :NOERROR keyword to OPEN and corresponding arguments to DELETEF and related functions. In the new error system, these functions will return error objects rather than strings, and ERRORP will be changed to test whether something is an error object. Start converting your code. [F] The error handler now does its i/o on the stream which is the value of ERROR-OUTPUT, or what it is indirected to if it is a syn stream. It used to use TERMINAL-IO. The default value of ERROR-OUTPUT is syn to TERMINAL-IO, hence this change only makes a difference if you change ERROR-OUTPUT. The error handler bugs where QUERY-IO was bound to the wrong thing are also fixed. This may be changed again, by introducing a new stream ERROR-IO which the error handler uses, and making ERROR-OUTPUT be separately bindable. That has not been done yet, and may be a bad idea. [G] The first argument to PROCESS-RUN-FUNCTION (and the two similar functions) may now be a list of alternating keywords and values rather than a string. The keywords are: :name - a string, default "Anonymous" :restart-after-reset - boolean, default nil => :reset kills process :restart-after-boot - boolean, default nil => warm or cold boot kills :warm-boot-action - same as for make-process, except :flush does what :warm-boot-action nil does, and nil (default) means obey the :restart-after-boot keyword :priority - a number, default 0 which is standard priority :quantum - a number of 60ths of a second, default 60. process-run-restartable-function defaults :restart-after-boot and :restart-after-reset to t rather than nil. Note that the names of processes, like the names of everything else, are strings. It used to work, at least to some extent, to use any Lisp object as the name of a process, and some people have been using symbols. This no longer works, as it happens. A related change is that P in PEEK now shows more information about processes. [H] DEFRESOURCE has been changed to provide some new features and to have better paging performance. The :INITIALIZER is a form or function that sees OBJECT and its parameters as arguments, when OBJECT is about to be allocated (whether it is being reused or was just created); it may initialize the object. The :FREE-LIST-SIZE option allows you to set the size of the array of objects. [I] There is a new function spec (:SELECT-METHOD fcn-spec message). If fcn-spec contains a select-method, then this refers to the function to which the select method dispatches upon receiving <message>. It is an error if fcn-spec doesn't contain a select method, or if the select method doesn't support message. This is now used by DEFSELECT rather than making up new symbols for the functions. This also means that if a DEFSELECT is compiled in system 79, it will not load into an older system. [J] Numerous system functions are in different files now, for various reasons. This should not affect anyone. [K] VMS and Unix file systems are now supported as file servers. NOTE WELL: There are known problems with Unix pathnames with regard to alphabetic case and file-types. These reflect a low-level pathname problem, which cannot be fixed until the next system release. Be forewarned. [L] Terminal B buries the selected window. [M] In PEEK, S now displays information on the active servers. [N] MONITOR-VARIABLE and UNMONITOR-VARIABLE actually work now (they have been in the manual for some time). [O] The error handler now provides functions EH-ARG, EH-LOC, EH-VAL and EH-FUN which you can use for looking at the args, locals, values being returned and function of the current frame. Using SETF and LOCF, you can also modify these things or get their locations. EH-ARG and EH-LOC accept either the number of the arg or local (origin 0) or its name (packages do not matter), and return the value of the arg or local. EH-FUN takes no arg and returns the function this frame is calling. EH-VAL examines the values this frame is going to return, or, for a trap on exit, the values it has already returned. It allows only a number to say which value, since values do not have names. EH-VAL with no argument returns a list of all the values this frame is returning. EH-VAL with no argument cannot be SETF'd or LOCF'd, however. [P] Lambda macros are now supported. Associated functions are DEFFUNCTION, DEFLAMBDA-MACRO, DEFLAMBDA-MACRO-DISPLACE, and LAMBDA-MACRO. Interested parties are referred to LMDOC;LMACRO for more information.
Date: 15 April 1982 05:15-EST From: Richard M. Stallman <RMS at MIT-AI> Subject: System 79 and 83 QFASL files now compatible. To: INFO-LISPM at MIT-AI Both system 79 and system 83 have been patched so that files compiled in either one will load into the other and work; but you must use microcode 862 with system 79 to be sure of success. If a file compiled in system 79 is loaded into system 83, some of system 83's speed advantage in flavors with methods in that file will be forfeit. Also, in the unlikely case that you load old compiled DECLARE-FLAVOR-INSTANCE-VARIABLES functions for a flavor but do not load any old compiled methods for that flavor, it will not work automatically. Contact me if you think this is happening to you. If a file compiled in system 83 is loaded into system 79, combined methods produced by COMPILE-FLAVOR-METHODS will be ignored. This may make your program slower to start up than it used to be, but will have no other effects. It is therefore best to compile your files in system 83, so that they will get the full speed advantage when run in that system. It should be noted that system 83 has the same compatibility definitions that system 79 has, for the functions DEFUN-METHOD and INSTANCE-VARIABLE-BOUNDP needed in brand S systems. So code that has been changed to work in those systems will also work in system 83. QFASL files are not compatible between 79/83 and 204, however. I would like to apologize for not mentioning the now eliminated incompatibility of QFASL files in the system message for system 83. Sometimes when I know something by heart, I forget that other people don't know it.
Date: 16 June 1982 07:01-EDT From: Richard M. Stallman <RMS at MIT-AI> Subject: System 86 announcement To: INFO-LISPM at MIT-AI The announcement for system 86 is finished. System 86 has no known new bugs now, and several interesting new features, including tail recursion as a run-time option. See LMDOC;SYS86 MSG.
Date: 9 July 1982 03:03-EDT From: Richard M. Stallman <RMS at MIT-AI> Subject: Several new features in 86.56 To: INFO-LISPM at MIT-AI *) Default filetype is LISP. If you specify a name but no type in a pathname, the default (when not specified explicitly by the program) is now LISP rather than :UNSPECIFIC. This change is in the functions FS:MERGE-PATHNAME-DEFAULTS and FS:MERGE-AND-SET-PATHNAME-DEFAULTS. Actually, the default is the value of the variable FS:*NAME-SPECIFIED-TYPE-DEFAULT*, whose value is initially "LISP". The old behavior is obtained by setting this variable to :UNSPECIFIC. This change is usually not visible if FS:*ALWAYS-MERGE-TYPE-AND-VERSION* is non-nil, since then the type defaults from the previously used pathname even if the name is specified. However, this new default may eliminate your motivation for setting that variable. *) Twenex pathname handling is improved. The device name DSK is now canonicalized to PS in all Twenex pathnames. This avoids problems of duplicate pathnames that are different but completely synonymous. You can now specify a filetype of :UNSPECIFIC (that is, a null type) by ending the filename with a period. This is different from omitting the type entirely: a specified null type overrides all defaults; an omitted type is defaulted (to "LISP" or something else). In other words, "FOO" means "FOO.LISP.0" or some other default, but "FOO." means "FOO..0". *) Unix pathname handling is improved. Case is now completely significant in Unix pathnames, as it ought to be. You can now rename FOO to Foo and it should work. *) Compiled functions record macros. The macros found in a function being compiled are recorded in the debugging info alist of the compiled function, under the key :MACROS-EXPANDED. Thus, WHO-CALLS will work on macros if the places they were used were compiled in 86.56 or later. *) If you get an error in a background process, and a notification cannot be printed, you can now type Terminal Call to cause the error handler to be run using the cold load stream (which is what it would have done in any case before system 86). Terminal Call's normal meaning is to enter a break loop using the cold load stream. If there are pending background errors, it asks you about each one, one by one, whether you want to handle that error. If you say "N" to all of them, you get the break loop. Another useful strategy for handling this circumstance is to type Terminal Control-Clear-Input, which unlocks the window system locks. After that, the notification may print; or you may be able to select a window or do Terminal 0 S. You can tell there is an error in a background process which cannot print its notification because stars at the ends of the mouse documentation line flash. The text of the line will tell you to try Terminal Call. *) SXHASH now accepts a second argument which, if T, says that SXHASH should use the address of an object as its hash code if there is no other way to handle it. This applies to everything but numbers, symbols, strings and lists. In addition, flavor instances and named structures can now define the :SXHASH operation. This operation takes one argument, the new flag, and should return the SXHASH value for the object. This overrides use of the object's address. If the second argument is NIL, the SXHASH of an array will now be the array's active length, rather than zero. Use a second argument of T if you are not going to save the SXHASH values in files, and you are prepared to deal with the possibility that GC will move an object (or you don't intend to use GC). If you want to be completely safe, omit the second argument.
15-Mar-83 20:30:21-EST,748;000000000000 Return-path: <rms@MIT-OZ> Date: Tuesday, 15 March 1983, 20:21-EST From: Richard M. Stallman <rms@MIT-OZ> Subject: System 93 To: info-lispm-mit@MIT-OZ System 93 is now released, and documented in SRC:<L.DOC>SYS93.MSG. I don't know of any serious bugs. System 93 is now up on the file computer, so the FC file system is now accessible from 93, using the FILE protocol. This means you can get at it from other machines with CFTP. Connect to CADR27 and use a filename that begins with "FC:", assuming that CFTP does not screw you by thinking it knows the pathname syntax for CADR27. See SRC:<L.FILE2>DOC.TEXT for documentation on FC. FC still responds to its old protocol for the sake of systems before 93 and job devices on ITS.
2-Jun-83 06:33:16-EDT,521;000000000000 Return-path: <rms@MIT-OZ> Date: Thursday, 2 June 1983, 06:31-EDT From: Richard M. Stallman <rms@MIT-OZ> Subject: System 94 released. To: INFO-LISPM-MIT@MIT-OZ System 94 is now released, with microcode 239. Documentation is in SRC:<L.DOC>SYS94.MSG. User programs should be compatible with system 93. The main change is a new way notifications are presented to the user. Please try converting to system 94 as soon as possible. System 93 is not going to be patched any more unless there is an urgent need.
19-Sep-83 01:15:58-EDT,817;000000000000 Return-path: <RMS@MIT-OZ> Date: Monday, 19 September 1983, 01:11-EDT From: Richard M. Stallman <RMS@MIT-OZ> Subject: System 97 is now released. To: info-lispm-mit@MIT-OZ Documentation for System 97 is in OZ:SRC:<L.DOC>SYS97.MSG. I have been using system 97 for a month, and it is pretty solid. Make sure you use a band that uses microcode 257! Good sources of these are CADR1 and CADR18. The current version is 97.6. The most interesting improvements are: A new Common-Lisp-compatible package system. An improved undo facility, the best an editor has ever had. Incremental band saving: save just the differences between your world and the system you loaded, in a small partition. There are some incompatibilities, mostly due to Common Lisp, so make sure you read SYS97.MSG.
13-Feb-84 20:42:18-EST,4173;000000000001 Received: from MIT-MC by MIT-OZ via Chaosnet; 13 Feb 84 20:38-EST Date: Monday, 13 February 1984, 20:32-EST From: Richard Mlynarik <Mly at MIT-OZ> Subject: Coming (System 99) changes to FORMAT in the MIT lisp machine system. To: info-lispm-mit at MIT-OZ [See SYS:DOC;SYS98 MSG (oz:ps:<l.doc>sys98.msg at MIT) to see this message in a technicolor multitude of fonts.] The control argument to FORMAT will change in System 99 to be compatible with Common Lisp. There will no longer be separate functions FORMAT and CLI:FORMAT, as there are in System 98. This change will affect the following FORMAT directives: ~X ~width,padchar,commacharX Prints its argument in hexadecimal. (Analogous to ~O, ~B and ~D) This command used to be used to insert spaces into the output. Use ~numberofspaces@T to achieve the same result as the old ~numberofspacesX directive. ~F ~width,decimalplaces,scale,overflowchar,padcharF Prints a floating-point number in nonexponential notation. Multiplies by 10^scale before printing if scale is specified. Prints in width positions, with decimalplaces digits after the decimal point. Pads on left with padchar if necessary. If the number doesn't fit in width positions, and overflowchar is specified, this command just fills the width positions with that character. This directive used to just take one optional prefix control arg, which specified how many mantissa digits to print. This is the same as 2 + decimalplaces for the new FORMAT. Use ~,n+2F to achieve the same result as the old ~nF directive. ~E ~width,decimalplaces,exponentplaces,scale,overflowchar,padchar,exptcharE Prints a floating-point number in exponential notation. Prints in width positions, with exponentplaces digits of exponent. If scale (default is 1) is positive, prints scale digits before point, decimalplaces - scale + 1 after. If scale is zero, prints decimalplaces digits after the point, and a zero before if there's room. If scale is negative, prints decimalplaces digits after the point, of which the first -scale are zeros. If exptchar is specified, it is used to delimit the exponent (instead of "e" or whatever.) If overflowchar is specified, then if the number doesn't fit in the specified width, or if the exponent doesn't fit in exponentplaces positions, the field is filled with overflowchar instead. This directive used to just take one optional prefix control arg, which specified how many mantissa digits to print. This is the same as 2+decimalplaces for the new FORMAT. Use ~,n+2E to achieve the same result as the old ~nE directive. ~G ~width,decimalplaces,exponentplaces,scale,overflowchar,padchar,exptcharG Like ~E, but if the number fits without an exponent, it is printed without one. This command used to be used to go to a particular argument. Use ~argumentnumber@T to achieve the same result as the old ~argumentnumberG directive. Note: in System 98 you must use CLI:FORMAT to use the new Common Lisp style format directives. GLOBAL:FORMAT will continue to use the old directives. In System 99 these two functions will become identical, so the best thing is to update your code to use CLI:FORMAT now so that it will work in both System 98 and in future systems. Since Brand S have also announced their intention to also change the meaning of FORMAT directives to agree with Common Lisp at some time in the future, this will also be compatible change in that respect. All MIT lispms have a new instruction, CLI:FORMAT (common-lisp-incompatible-format) Please update your code.
Last modified: 2022/05/31 16:17:46 (UTC) by ams