Substrate VM Questions
Christos-efthymios Kotselidis
Christos.Kotselidis at manchester.ac.uk
Tue Feb 6 22:19:22 UTC 2018
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