Idea how to implement VT/VO compatibility in JVM

Stéphane Épardaud stef at epardaud.fr
Thu Jan 22 14:16:46 UTC 2015


On 01/22/2015 03:09 PM, Maurizio Cimadamore wrote:
> Well, to some extent, everything falls in the category of 'things to 
> implement'. To be honest, it's not very clear from your emails how you 
> plan to tackle those issues, and I don't mean in terms of C++ Hotspot 
> code, but merely in terms of how things should be wired up. Saying 
> there should be _some kind_ of instanceof support sounds a bit vague-ish?

Well, I assume there's a relation point back from specialised ArrayList 
classes to the ArrayList class, no?

> Backing up a bit, there are two dimensions to the problem you are 
> trying to solve; one is to have specialized(A) and erased(A) to 
> respond to the same sets of messages; I think your strategy there 
> ticks the boxes; yes, it leaves field access a bit behind, but let's 
> say that's collateral damage (although you need to prove that this 
> won't come up so frequently that it would represent a real source 
> compatibility threat).
>
> The second dimension is to have specialized(A) 'is-a' erased(A) - and 
> this is the part of the story that looks less clear.

And that's where you may be aware of technical issues that would make 
this hard that I'm not aware of yet. If it's just about being able to 
find back erased(A) from and instance of specialized(A) then it doesn't 
sound too hard, I suppose that information will be available in the 
runtime class for specialized(A), so `checkcast` and `instanceof` and 
friends can use that for checks. Pretty much the same way we'd allow 
these types to be interchangeable at compile-time from javac.



More information about the valhalla-dev mailing list