Intel's Open Runtime Platform Specs
prostoalex writes "The new issue of Intel Technology Journal has a lengthy article on a new platform, developed in Intel labs. The Open Runtime Platform: A Flexible High-Performance Managed Runtime Environment describes the platform that is capable of running both Java VM and Microsoft's CLI, on both Windows and Linux platforms. Full PDF version is also available."
Apparently that already runs several languages, including Python and PHP...C++ and Java are definitely supposed to be supported.
I think.
From elsewhere:
Since it is a virtual machine executing virtual assembler code, there are several different languages that compile to Parrot bytecode - it isn't limited to Perl! Here are some of the languages that have been so far done to varying degrees:
Jako, a C-like language developed for testing Parrot
Cola, likewise, but more Java-like
BASIC
Forth
...and an extremely rudimentary Perl 6 compiler...
What do we think?
We managed to create a virtual machine that is the superset of the .NET CLR and the JVM. This super-vm can compile straight into machine code for IA-32 and Itanium, and it can do it dynamically in realtime through profiling. It also has a bunch of different optimizers and garbage collectors it can pick from.
All this is implemented in C++. They use opensource class libraries to provide the classpaths.
What I would find really cool is if they can release a microcode-based CPU that runs the superset bytecode. It may simply be a microcode patch to the Itanium. That would be truely wicked.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Sorry, but this entire concept has a strange smell to me. Technically it seems cool, but I don't see the appeal of Intel and Microsoft getting in bed together one last time.
You are being MICROattacked, from various angles, in a SOFT manner.
DotGNU's Portable.net [dotgnu.org] has MS CLI and Java support. It is portable to virtually every platform, as its name implies. Im glad to see more of these next generation virtual machines in the making.
Although the pdf has a pretty comparison graph of performance with Sun's JVM (which intel wins) there is no such analysis of intel's MRTE against microsofts CLR. I dunno but suspect there is gonna be a MS EULA that absolutely forbids publishing benchmark results of the MS CLR. Either that of intel's MRTE was slower! Anyone read the EULA?
;)
:)
The only thing I got from the article was an appreciation of just how much the MS.NET developers copied the Java architecture. It would seem that to achieve the grand unification of CLR and JVM the Intel engineers just had to define a 1-1 mapping between buzzwords
(
gripe: "runtime" is only one word so it should be called MRE... i guess that name was avoided because it is associated with Jim Carey's villan in Batman Forever
)
'Be the change you want to see in the world' - Al Gore
The bytecode, if executed "as is", can be *extremely* inefficient, as the virtual machine is a stack one.
Modern JITs take a completely different approach to achieve decent performance - they reconstruct the control flow/data flow from the bytecode and then "recompile" (with heavy optimizations, that you can't really do in hardware) into native code. Translating bytecode to instructions directly (or naively) gets you very little benefit over interpretation. The problem is that you can't do more than naive translation in hardware in an efficient manner
The bytecode is very high level - so high level that you can reconstruct the sourcecode from it (modulo local var names). Hardware likes simple stuff, and as a consequence it's not good at executing it efficiently
The Raven
Java: Language is constant, others can vary.
.NET: OS is constant, others can vary.
Portable Runtime: Processor is constant, others can vary.