Juice [Re: UVM and Microsoft]

Michael Korns mkorns@ix.netcom.com
Mon, 19 May 1997 21:53:36 -0700


Dwight,

> 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.)

I just got through looking at everything Juice has. I like it in ways
similar to your own. What I don't understand is how Juice differs from a
JIT? Suppose we send a compressed Lisp S-expression across the Web,
uncompress it at the destination and eval it. Assuming the eval compiles to
native before running, we have a Juice analogous JIT. Assuming the eval
compiles to VM pcodes and emulates, we have a Juice-Java hybrid? What am I
missing here?

> 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)

I agree completely. See the above Juice-Java hybrid.

> 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 site claims execution speeds equal or better than Java JIT's. How do
we get a verification of their actual code execution speeds versus Java JIT
execution speeds?