Hidden classes + class data

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Thu Dec 5 17:02:26 UTC 2019


On 02/12/2019 19:55, Mandy Chung wrote:
>
>
> On 12/2/19 7:50 AM, Maurizio Cimadamore wrote:
>>
>> On 27/11/2019 01:30, Mandy Chung wrote:
>>>
>>>
>>> On 11/26/19 4:55 PM, John Rose wrote:
>>>> On Nov 26, 2019, at 3:03 PM, forax at univ-mlv.fr wrote:
>>>>> I wonder if defineHiddenClassWithClassData should not take another 
>>>>> class as parameter instead of a byte array (using the byte array 
>>>>> of that class) enabling more sharing of the bytecode and allowing 
>>>>> to do the  verification only once if 
>>>>> defineHiddenClassWithClassData is called several times with the 
>>>>> same Class.
>>>> Yes.  I’d like to try this with templates, when we get them, since
>>>> templates are supposed to share metadata with their species.
>>>>
>>>> E.g., for a lambda form of a predefined shape with 2 free variables
>>>> (a type and a MH), define it as a template with those parameters
>>>> and inject it as many times as you see distinct combinations of
>>>> those parameters.
>>>
>>> This produces a distinct Class mirror for each hidden class defined 
>>> from the same metadata (class bytes) with a different class data.
>>>
>>> Perhaps we can experiment ClassDefiner builder-like API.   I will 
>>> explore this.
>>
>> In the MVT Valhalla prototype we used to have a way to obtain a 
>> method handle using a 'method builder' (from the bytecode API used 
>> there). I think it should be possible to do the same, using a 'class 
>> builder' - so that you can actually define the contents of the class 
>> w/o specifying a byte array, down to the code attribute level. In 
>> other words, there is a big overlap with what you call a 
>> 'ClassDefiner' builder and the builders provided by the bytecode API 
>> under exploration, so I think it'd be best to try and avoid to solve 
>> the same problem twice.
>>
>
> Yes I remember that.  I agree and we should avoid solving the same 
> problem twice.  There was a plan to include the bytecode API in the 
> JDK.   Any update/news on that?

We're still hacking on that...

Maurizio

>
> Mandy


More information about the valhalla-dev mailing list