4 ms·
This is a "meta-circular VM". It's a Java program that interprets JVM bytecode. Since the Java program itself is running on the JVM, it actually uses the under
by richdougherty 9y ago
This is a "meta-circular VM".
It's a Java program that interprets JVM bytecode. Since the Java program itself is running on the JVM, it actually uses the underlying JVM to do a lot of the work.
This means you get a relatively fast VM but it will be a lot easier to code and debug than using a systems programming language like C++.
But why?
- The original paper (https://dl.acm.org/citation.cfm?id=2400689&dl=ACM&coll=DL https://dl.acm.org/citation.cfm?id=2400689&dl=ACM&coll=DL) thought of Maxine as "a highly approachable VM research platform and a productive basis for research and teaching." You can see on the roadmap (https://github.com/beehive-lab/Maxine-VM/wiki#roadmap https://github.com/beehive-lab/Maxine-VM/wiki#roadmap) that they're exploring the cutting edge of VM research.
- I do a lot of tricky network programming - threads and IO. I'd love to have a VM which I could exactly control the threading and IO behaviour so that I could test tricky situations. If this VM is easy to embed in my programs and runs fast enough then it would be fascinating to try it out for writing testing code.
- tsujamin 9y agoAs per my other comment, at runtime there is no underlying "HotSpot" or other JVM, only when the bootstrap classes are compiled during the build process.
- pjmlp 9y agoThe bootstrap process makes use of a JIT pass with intrisics to generate the core image that is then used to execute the remaining part of Maxine.