Juice [Re: UVM and Microsoft]

Dwight Hughes dhughes@intellinet.com
Mon, 19 May 1997 21:23:58 -0500

| From: Michael Korns <mkorns@ix.netcom.com>

>> I am about to look at another approach to VM's known as Juice
   http://www.ics.uci.edu/~juice/? <<

After being quite excited about Juice, to the point of wanting
to base the entire LispOS on such an approach (not just the LispVM)
-- like they have done with Oberon -- I find myself rather 
ambivalent about it upon further study. (Don't let this hinder
your own research - Juice is truly fascinating and has a *lot* to
offer to this project.)

The aspects I do not like are: 
1) the compact AST intermediate representation cannot be efficiently
interpreted, making porting between architectures rather a pain -
native code or nothing basically (of course, we don't have to do it
exactly this way)
2) the native code generated is of rather poor quality (no fault
of theirs - they have simply tuned for speed of generation, not
optimization); their solution is an iterative form of regeneration
with optimization as a background process (applying a stage of
optimization at a time to a module (or more) at a time until the
generated code converges on its final fully optimized version)
-- which they have only begun to research. Hell of a concept -
probably a hell of a thing to fully accomplish for one language
and an OS completely based on that language, like Oberon is.
For multiple languages - yipes! Oberon is also a semantically
simple language -- I would expect that "naively" generated code
would perform worse for Lisp than for Oberon (relative to fully
optimized code).

-- Dwight