Yemi I. D. Bedu wrote:
> Hello,
>  What do you feel about RUNTIME. IN both your examples it would be
> "JRuby". A variable of PLATFORM would handle the Windows/OpenVMS
> information. It would not matter to the code what compiler was used but
> if so, then VM could be used to specify the machine code compile type
> "Rubinius/YARV/JIT)/(Interpreted)". Then IMPLEMENTATION could equate to
> PLATORM + RUNTIME + VM. Would that be sensible? Maybe the ordering is
> not should be changed. Good day.

RUNTIME does seem more in line with "a set of features I can expect to 
be available." JRuby will have native threads, Java libraries, and 
platform-independence quirks but no continuations or C extension 
support. Rubinius will have green threads, some C extensions, and 
continuations. Ruby 1.9 will have native threads with GIL, C extensions, 
and so on. All three will have slightly different ways to access parse 
trees, instruction sequences, and runtime internals. All three will 
hopefully have the same MVM APIs. But it does seem like we're defining 
characteristics of a RUNTIME more than an IMPLEMENTATION or ENGINE, 
especially since the definition of what is the "XXX runtime" will 
probably change while the "XXX engine" remains essentially the same (or 
in the case of JRuby, the runtime stays the same and there's several 
engines driving it).

So I think I like RUNTIME.

- Charlie