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