thinking about virtual machines

Marcus Daniels marcus@sysc.pdx.edu
27 Apr 1997 14:56:31 -0700


>>>>> "RC" == Richard Coleman <coleman@math.gatech.edu> writes:

RC> Maybe a two tier attack, where one group develops the LVM standard
RC> and layers it on some hardware (using Flux toolkit for example)
RC> and the second group starts with a chosen lisp implementation and
RC> start adding all the system applications that a stand-alone lispOS
RC> would require.

Yeah, personally, I don't really care about whether or not there is a
pre-existing LVM standard.  I think it is just fine to tear ahead
with a free implementation and then let interested parties work
backward to create such a standard.  What I want a usable free system
which is not predefined by what is commercially feasible.  If there are
people strictly interested a pre-existing LVM standard, they will
proceed and people like me can listen and conform to their ideas.  

RC> Now assuming we tried to develop such a standard...

RC> 2) What is wrong with the current virtual machines?  What does the
RC> java VM do wrong?  I heard someone mention that IBM has announced
RC> a new virtual machine architecture (UVM for universal virtual
RC> machine).  Does anyone know anything about this?

There is ANDF, and an ANDF target for GCC called GANDF.

RC> 3) What lisp implementations use a virtual machine architecture
RC> that we could retarget to LVM.

The CMUCL technical documentation has a chapter on their VM, it is 
the file called docs/internals/vm.tex.  I'm not sure which tar file
it is distributed with at CMU (I can't access their FTP server at the
moment); email me if you can't find it.

Scheme48 has a VM, and a minimal byte compiler.  A paper describing it
is http://www-swiss.ai.mit.edu/ftpdir/users/jar/lsc.ps.

I don't have any experience with MIT Scheme's LIAR compiler, but it appears
to be fairly portable: generating code for C, Alpha, i386, Mips, Sparc
among others.  The backend support files (written in Scheme) for C are
200K and for the i386 are 300k.  Perhaps a new backend could be written
for LVM.

Another compiler is Stalin (a STAtic Language ImplementatioN), which
generates C that is supposedly of very high quality.

Kawa (Scheme over JVM) was already mentioned, I think.

ANDF is at http://www.gr.opengroup.org/andf/.
CMUCL is at ftp://lisp-rt1.slisp.cs.cmu.edu/afs/cs/project/clisp/release
 and also   http://www.cons.org/cmucl/.
Kawa is at http://www.cygnus.com/~bothner/kawa.html.
MIT Scheme is at http://www-swiss.ai.mit.edu/scheme-home.html.
Scheme48 is at http://www-swiss.ai.mit.edu/~jar/s48.html.
Stalin is at http://www.emba.uvm.edu/~qobi/software.html.