RFR: JDK-8210031: implementation for JVM Constants API

Vicente Romero vicente.romero at oracle.com
Mon Oct 15 17:51:51 UTC 2018

adding core-libs in the loop

On 10/10/2018 12:30 PM, Vicente Romero wrote:
> Hi all,
> I have updated the webrev [1], this version removes the `implements 
> Constable` from the symbolic descriptor classes. Feedback is mostly 
> appreciated,
> Thanks,
> Vicente
> [1] http://cr.openjdk.java.net/~vromero/8210031/webrev.01/jdk12.dev.patch
> On 10/06/2018 05:00 PM, Brian Goetz wrote:
>> What we decided to do here is to hold back on “implements Constable” 
>> for the symbolic descriptor classes in the initial push of JEP-334, 
>> and then when we have the symbolic expression mode for BSMs, 
>> re-implement those in XxxDesc using that.  Implementing Constable 
>> isn’t needed until we get to the full constant folding anyway.  That 
>> linearizes the dependencies — first JEP-334, then symbolic mode BSM, 
>> then update JEP-334 classes to implement Constable using symbolic 
>> mode BSM.
>>> On Sep 13, 2018, at 9:07 PM, John Rose <john.r.rose at oracle.com> wrote:
>>> I am running a review of VM-level work on bootstrap methods
>>> which can optionally help simplify some of these APIs:
>>> http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2018-September/030084.html 
>>> Specifically, this work can be use to implement a "symbolic
>>> expression mode" for BSMs which causes the JVM to unpack
>>> constant pool nodes directly as ConstantDesc items to present
>>> to BSMs.  This might simplify the condy forms of ConstantDesc
>>> instances, if javac stores native constants to reflect, rather than
>>> lists of strings to reassemble.
>>> — John
>>> On Sep 11, 2018, at 12:50 PM, Vicente Romero 
>>> <vicente.romero at oracle.com> wrote:
>>>> Please review the first iteration of the implementation for JEP-334 
>>>> [1] JVM Constants API. The implementation can be found at [2]. 
>>>> JEP-334 introduces an API to model nominal descriptions of key 
>>>> class-file and run-time artifacts, in particular constants that are 
>>>> loadable from the constant pool and has already been the subject of 
>>>> several discussions. The implementation of this JEP has been 
>>>> publicly accessible throw the amber repo at [3] in the jep-334 
>>>> branch. Thanks to all members of the Amber project and specially to 
>>>> Brian for all the hard work on the design and the implementation of 
>>>> this API. Thanks for all the feedback we have received so far, most 
>>>> of it has been integrated in the current implementation.
>>>> Thanks,
>>>> Vicente
>>>> [1] http://openjdk.java.net/jeps/334
>>>> [2] 
>>>> http://cr.openjdk.java.net/~vromero/8210031/webrev.00/jdk.dev.patch
>>>> [3] http://hg.openjdk.java.net/amber/amber

More information about the compiler-dev mailing list