Lisp Machine System Release History

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!

DateSystem ReleaseMicrocode
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
03 June 1979 09:58 (EDT)System 9.1493
12 August 1979 10:48 (EDT)System 17.6
24 August 1979 01:51 (EDT)System 18555
11 September 1979 06:08 (EDT)System 19
System 19.4 has sequence breaks!
15 September 1979 01:35 (EDT)System 19.4
6 October 1979 10:06 (EDT)System 20579
07 March 1980 23:42 (EDT)System 26.3616
Joystick "mouse"
12 July 1980 02:20 (EDT)System 30.3
19 July 1980 03:00 (EDT)System 32.1674
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.2692
How to use old-style keyboards on Lisp Machines
06 October 1980 00:33 (EDT)System 45.2692
07 October 1980 23:58 (EDT)System 46.1692
27 November 1980 01:22 (EST)System 50.9701
06 December 1980 23:20 (EST)System 51.1705
18 December 1980 20:19 (EST)System 53.15707
05 January 1981 21:23 (EST)System 55715
22 January 1981 03:54 (EST)System 56
03 February 1981 23:09 (EST)System 59
03 March 1981 04:13 (EST)System 65.0739
04 April 1981 01:38 (EST)System 66.14747
15 April 1981 21:31 (EST)System 67.1752
05 May 1981 23:12 (EDT)System 68.9
05 June 1981 01:58 (EDT)System 69757
22 June 1981 03:03 (EDT)System 70.4766
11 July 1981 18:06 (EDT)System 71.??767
31 July 1981 23:13 (EDT)System 72.??774
System 72.34774
30 September 1981 01:05:42System 73.10
14 October 1981 15:32 (EDT)System 74793
09 December 1981 13:58 (EST)System 78836
12 February 1982 14:30 (EST)System 79.8849
System 79 and 83 QFASL compatible
System 79.48841
Microcode numbers have been wrapped around to avoid confusion
12 April 1982 07:08 (EST)System 83.??104
12 May 1982 04:52 (EDT)System 85122
16 June 1982 07:01 (EDT)System 86
09 July 1982 03:03 (EDT)System 86.56
System 87164
System 88.??
System 89.??183
System 89201
System 91204
15 March 1983 20:21 (EST)System 93
02 June 1983 06:31 (EDT)System 94239
19 September 1983 01:11 (EDT)System 97257
System 98306
Common Lisp compatible control argument to FORMAT
System 99.??320

Microcode internal convention changes

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.
    

System ??

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.
    

System ??

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.
    

EINE soon flushed

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
    

EINE flushed

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?
    

Joystick "mouse"

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.
    

New Cold-Load Generator

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.
    

How to use old-style keyboards on Lisp Machines

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.
    

System 79 and 83 QFASL compatible

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.
    

Common Lisp compatible control argument to FORMAT

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: 2025/06/05 08:57:25 (UTC) by ams