Separating parsing and execution

Stefan Marr java at
Tue Aug 4 07:35:54 UTC 2015


> On 04 Aug 2015, at 09:15, Jaroslav Tulach <jaroslav.tulach at> wrote:
>> Where should we store the local execution state then?
>> For instance, execution profiles?
> Chris mentioned execution profiles, so I guess the answer is yes (but I have 
> no idea what execution profile is).

Most languages use nodes to profile which branches are taken, and which values are observed at certain points.
The knowledge about branches shouldn’t be a real problem, but could be a side-channel in a multi-tenant environment which leaks information that might be security sensitive.

General value profiles might be more of an issue, because it is not clear to me that multiple instances of the interpreter share things like classes. I wonder how HotSpot deals with classes from different class loaders. I imagine, this could lead more easily to polymorphic/megamorphic call sites.
In my current language of choice, I got non-concrete class-structural information, that could be used to determine identity and is stateless, so safe to share. The actual classes however are independent objects and stateful. So, they are not shared between multiple interpreters in the same VM.

Best regards

Stefan Marr
Johannes Kepler Universität Linz

More information about the graal-dev mailing list