From: Thomas F. Burdick
Subject: INTERLISP implementation
Date: 
Message-ID: <xcvd6qvvtmc.fsf@hurricane.OCF.Berkeley.EDU>
Does anyone know of a good description of the INTERLISP VM?  Pointers
to either books or papers would be good.  I got bit by a curiosity
bug, and I'm having a hard time tracking something down on my own.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               

From: Bulent Murtezaoglu
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <87n0pzgczm.fsf@acm.org>
>>>>> "TFB" == Thomas F Burdick <···@hurricane.OCF.Berkeley.EDU> writes:

    TFB> Does anyone know of a good description of the INTERLISP VM?
    TFB> Pointers to either books or papers would be good.  [...]

I have neither, though I think they exist (I am using 3-ring binders
from Xerox with juicy Interlisp titles on them -- alas the original
contents are gone).  But you can see it in action under linux!  Follow
this thread:

http://groups.google.com/groups?selm=3B05757F.D723D1E0%40removeme.gst.com

cheers,

BM
From: Carl Shapiro
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <ouyd6quvgq2.fsf@panix3.panix.com>
···@hurricane.OCF.Berkeley.EDU (Thomas F. Burdick) writes:

> Does anyone know of a good description of the INTERLISP VM?  Pointers
> to either books or papers would be good.  I got bit by a curiosity
> bug, and I'm having a hard time tracking something down on my own.

There was no canonical Interlisp virtual machine.  There were a number
of different byte-coded machines which Interlisp ran atop of, in
addition to the various stock hardware targets.

However, if you are interested in the various virtual machines
targeted by Interlisp systems through the ages, the ACM digital
library has several good papers from the 1970s and early 1980s which
describe implementation level aspects of these systems.  There was
also a document published which describes the theory of operation of
the Mesa processor.

Keep in mind that most of the virtual machines Interlisp ran on are
truly artifacts of an era where space was at a premium and
optimizations for compactness of object code were highly valued.

Oh, and since Interlisp had a laughable reference counting garbage
collector, don't expect to find any noteworthy support for a garbage
collection strategy you'd actually want to use in those systems!
From: Tim Bradshaw
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <ey38z1iwp50.fsf@cley.com>
* Carl Shapiro wrote:

> There was no canonical Interlisp virtual machine.  There were a number
> of different byte-coded machines which Interlisp ran atop of, in
> addition to the various stock hardware targets.

I think this is only partly true.  The same exact sysouts would run on
at least 1108/1109 and 1186 machines, as well as the Sun (and I
suppose now Windows/Linux) emulators.  I know this because I ran them
there.  So all of those machines must have shared the same VM.  I
suspect the other D machines may have as well - in fact possibly
InterLisp-D is just the interlisp that ran on this VM.  Obviously the
microcode that implemented the VM was different (and was C, not
microcode for the stock-HW emulators...).

There were obviously other InterLisps.

I have (on paper, and not easily accessible) a big description of the
D-machine VM somewhere (really a list of instructions + description),
although I may have lost it.

> Keep in mind that most of the virtual machines Interlisp ran on are
> truly artifacts of an era where space was at a premium and
> optimizations for compactness of object code were highly valued.

Yes, 3.7MB of real memory on an 1186, and a fully-fledged development
environment with a big screen sitting on top of it.

> Oh, and since Interlisp had a laughable reference counting garbage
> collector, don't expect to find any noteworthy support for a garbage
> collection strategy you'd actually want to use in those systems!

For its time, the GC was OK - I mean it was obviously doomed in all
sorts of ways, but it performed much better than a lot of stock-HW
systems.  The virtual memory, too - somewhere I have some benchmarks
that were done when people were considering moving from D-machines to
Suns (probably either late Sun3s or SparcStation 1s with maybe up to
16MB), showing that the Suns ate the D-machines alive (using kcl, and
maybe allegro), *until the problem got much bigger than physical
memory*, when the reverse became true.

--tim
From: Carl Shapiro
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <ouyheg54q19.fsf@panix3.panix.com>
Tim Bradshaw <···@cley.com> writes:

> I think this is only partly true.  The same exact sysouts would run on
> at least 1108/1109 and 1186 machines, as well as the Sun (and I
> suppose now Windows/Linux) emulators.  I know this because I ran them
> there.  So all of those machines must have shared the same VM.  I
> suspect the other D machines may have as well - in fact possibly
> InterLisp-D is just the interlisp that ran on this VM.  Obviously the
> microcode that implemented the VM was different (and was C, not
> microcode for the stock-HW emulators...).

I don't doubt that certain D-machines and the Medley-era emulator
could have shared sysouts.  I personally never bothered to mix and
match sysouts for a rather mundane reason: the 1108 sysouts came on 8"
diskette and the 1186 sysouts were on 5 1/4" diskette.  However, I'd
be somewhat surprised if the 1132 could have shared sysouts with the
smaller hardware.

> There were obviously other InterLisps.

Sure, and other types of microcoded hardware of which the D-machines
are just one instance of.

            The virtual memory, too - somewhere I have some benchmarks
> that were done when people were considering moving from D-machines to
> Suns (probably either late Sun3s or SparcStation 1s with maybe up to
> 16MB), showing that the Suns ate the D-machines alive (using kcl, and
> maybe allegro), *until the problem got much bigger than physical
> memory*, when the reverse became true.

Interlisp also deserves credit for supporting modern wide characters
and strings (suitable for symbol names, etc.) long before anybody
else.
From: Arun Welch
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <3D9A4E38.CC01D756@deletethisanzus.com>
Carl Shapiro wrote:

> I personally never bothered to mix and
> match sysouts for a rather mundane reason: the 1108 sysouts came on 8"
> diskette and the 1186 sysouts were on 5 1/4" diskette.  

We stored all our sysouts on a file server (initially a VAX running BSD
with the PUP protocol, later an XNS file server). I don't think we ever
used the images we got for the 1186's (it took about a quarter as
many floppy changes). But I must admit those boxes that came with
the 1186 software floppies were a work of art. 

> However, I'd
> be somewhat surprised if the 1132 could have shared sysouts with the
> smaller hardware.
> 

Actually, the smaller hardware couldn't bootstrap a sysout, it had to be
done on a Dorado or Dolphin. This behaviour continued well into the
Medley days, and
getting Medley to bootstrap natively on a Sun was a non-trivial amount
of work. We had to keep one around just to bootstrap new releases for
quite some time after all other development had moved to Unix machines.

...arun
From: Tim Bradshaw
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <ey3it0luxvu.fsf@cley.com>
* Carl Shapiro wrote:
> I don't doubt that certain D-machines and the Medley-era emulator
> could have shared sysouts.  I personally never bothered to mix and
> match sysouts for a rather mundane reason: the 1108 sysouts came on 8"
> diskette and the 1186 sysouts were on 5 1/4" diskette.  However, I'd
> be somewhat surprised if the 1132 could have shared sysouts with the
> smaller hardware.

Oh, we kept all our sysouts on an XNS file server, and (I think?) the
machines could be pretty much netbooted from it, or at least you could
do something to get the sysout onto the machine.  The 1109s didn't
have a big enough disk to keep two copies, the 1186s did (40M vs 80M I
think).

> Sure, and other types of microcoded hardware of which the D-machines
> are just one instance of.

Were there other special-purpose microcoded systems that InterLisp ran
on (other than the complete set of D-machines I mean)?

--tim
From: Arun Welch
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <3D9AFFCE.8ECD2FCA@deletethisanzus.com>
Tim Bradshaw wrote:
> 
> Were there other special-purpose microcoded systems that InterLisp ran
> on (other than the complete set of D-machines I mean)?
> 

I'm not positive about this, but the BBN Jericho might fit the
description. I know it ran Interlisp, but I'm not positive that it used
a loadable microcode the way the Dmachines did.

...arun
From: Carl Shapiro
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <ouysmzoojwa.fsf@panix3.panix.com>
Tim Bradshaw <···@cley.com> writes:

> Were there other special-purpose microcoded systems that InterLisp ran
> on (other than the complete set of D-machines I mean)?

Yes, see "Local Optimization in a Compiler for Stack-based Lisp
Machines", by Larry M. Masinter and L. Peter Deutsch for descriptions
of two other microprogrammed systems.
From: William Barnett-Lewis
Subject: Medly Keyboard problem (was Re: INTERLISP implementation)
Date: 
Message-ID: <63f0b8f5.0210131830.17e1351a@posting.google.com>
Tim Bradshaw <···@cley.com> wrote in message news:<···············@cley.com>...
> * Carl Shapiro wrote:
> 
> > There was no canonical Interlisp virtual machine.  There were a number
> > of different byte-coded machines which Interlisp ran atop of, in
> > addition to the various stock hardware targets.

Along these lines, I have a PC Medley image that I am trying to get to
run correctly on a Sun/Sparc VM. The keyboard handling is, no
surprise, somewhat different and I'm having a bear of a time trying to
get the image to recognise the Sun keyboard. Setting environment
variables does not seem to help -
(SETENV IL:LDEKBDTYPE 'IL:TYPE5) - for example.  

The Sun is a Sun Blade 100 with a USB type 5 keyboard - this may or
may not be relevant.

Hints, tips, suggestions, would be appreciated. I'd love one less
reason to keep a Dos partition around at all times.

Thanks,

William
From: Arun Welch
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <3D99AC85.5B4A1BFD@deletethisanzus.com>
Thomas F. Burdick wrote:
> 
> Does anyone know of a good description of the INTERLISP VM?  Pointers
> to either books or papers would be good.  I got bit by a curiosity
> bug, and I'm having a hard time tracking something down on my own.
> 

Depends on which VM you mean. The d-machine VM was documented in a set
of PARC blue-and-whites, collected together in "Papers on Interlisp-D"
by Sheil and Masinter. I don't know if it's still available, but you
could check with the PARC Librarian (if that position still exists).
There were a couple of other papers on the spaghetti stack and the
byte-code that weren't in there, but you might be able to get what you
want from PARC by just asking for "everything on Interlisp"... The one
you might want is "The Interlisp Virtual Machine Specification" by
J.S.Moore, CSL-76-5, 1976.  Most of this stuff is probably lost in the
mists, but if you get stuck bug me and I'll see if I can dig through
some boxes.

The "new", portable VM is only documented AFAIK in the sourcecode,
you'll have to talk to the folks at Venue for that (www.top2bottom.net).

...arun
From: Thomas F. Burdick
Subject: Re: INTERLISP implementation
Date: 
Message-ID: <xcvbs68yc2c.fsf@hurricane.OCF.Berkeley.EDU>
Arun Welch <·····@deletethisanzus.com> writes:

> Thomas F. Burdick wrote:
> > 
> > Does anyone know of a good description of the INTERLISP VM?  Pointers
> > to either books or papers would be good.  I got bit by a curiosity
> > bug, and I'm having a hard time tracking something down on my own.
> 
> Depends on which VM you mean. The d-machine VM was documented in a set
> of PARC blue-and-whites, collected together in "Papers on Interlisp-D"
> by Sheil and Masinter. I don't know if it's still available, but you
> could check with the PARC Librarian (if that position still exists).
> There were a couple of other papers on the spaghetti stack and the
> byte-code that weren't in there, but you might be able to get what you
> want from PARC by just asking for "everything on Interlisp"... The one
> you might want is "The Interlisp Virtual Machine Specification" by
> J.S.Moore, CSL-76-5, 1976.  Most of this stuff is probably lost in the
> mists, but if you get stuck bug me and I'll see if I can dig through
> some boxes.

Thanks to everyone who responded.  I've got these papers coming on
interlibrary loan, as we speak -- for anybody on the west coast who's
curious, the Stanford Math-CS library has them.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'