Substrate VM Questions

Tom Shull teshull at gmail.com
Wed Feb 7 06:22:58 UTC 2018


Thank you for the responses. Given this information I think I'll stick 
with Maxine VM for the time being. However, I hope I can find a reason 
to use Truffle in the near future.

Thanks,
Tom

 >Hi Tom,
 >
 >Just a bit of extra information regarding Maxine VM.
 >If you are interested in exploring Truffle with a research VM, there 
are plans to implement JVMCI and provide Graal/Truffle interoperability 
to Maxine by EOY.
 >Also regarding object-layout optimisations, the complementary MaxSim 
platform has been developed to also accommodate such experiments.
 >
 >Regards
 >
 >Christos
 >
 >> On 6 Feb 2018, at 22:07, Christian Wimmer <christian.wimmer at 
oracle.com> wrote:
 >>
 >> Hi Tom,
 >>
 >> On 02/06/2018 08:14 AM, Tom Shull wrote:
 >>> Hi,
 >>>     I am interested in using Substrate VM for a project in which I 
plan to make some changes to the internal JVM object layout. I would 
like to use a metacircular VM, as I feel they are much more amenable to 
these types of changes as compared to HotSpot.  Looking at its GitHub 
page, there currently seems to be very little  documentation relating to 
Substrate VM. I have appreciated the many publications/talks covering 
both Truffle and Graal, but there does not yet seem to be any for 
Substrate VM. Do you plan to include more documentation and/or publish 
papers in the near future?
 >>
 >> We plan to add more documentation, but it will take us some time to 
ramp it up. In the meantime, feel free to ask questions here on the 
mailing list.
 >>
 >>> Also, from what I can tell, it appears that unless Substrate VM is 
used with Truffle, it does not JIT-compile code. Is this correct? Do you 
plan to change this in the near future, by either adding JIT support to 
Substrate VM or including a Java/JVM implementation in Truffle? Would I 
be better off using Maxine VM instead? Ideally I would like JIT 
capabilities so that I can also add some profile-guided speculative 
optimizations.
 >>
 >> You are correct that Substrate VM does not JIT compile Java code. 
This is part of the overall design and the main differentiator of 
Substrate VM compared to Maxine VM or HotSpot VM. So dynamic class 
loading and JIT compilation (which would only be useful with dynamic 
class loading) are not coming to Substrate VM.
 >>
 >> There is an academic prototype of a Truffle based Java 
implementation. This is independent of Substrate VM, i.e., you can run 
Truffle/Java on the HotSpot VM of course too. I do not think there are 
plans to make Truffle/Java public anytime soon, and it would probably be 
too limited right now anyway to base research on it.
 >>
 >> Maxine VM is a good choice if you want to experiment with a full 
Java VM. It has JIT compilation, and already some profile-guided 
speculative optimizations.
 >>
 >> So the decision Substrate VM vs. Maxine VM depends on the direction 
of the research you want to do. Both have their advantages and 
disadvantages:
 >> * The closed-world assumption and static analysis of Substrate VM 
allows you to do global optimizations and global transformations. You do 
not need speculation because you have complete static knowledge.
 >> * The open-world assumption of Maxine VM allows you to implement 
speculative feedback-directed optimizations. You need speculation 
because you do not have any static knowledge.
 >>
 >> -Christian



More information about the graal-dev mailing list