FTR: JVM Lang Summit presentation
Remi Forax
forax at univ-mlv.fr
Sat Aug 9 00:05:23 UTC 2014
On 08/09/2014 12:48 AM, John Rose wrote:
> On Aug 8, 2014, at 2:34 PM, Remi Forax <forax at univ-mlv.fr
> <mailto:forax at univ-mlv.fr>> wrote:
[...]
>> No, indy doesn't mean automatically syntactic sugar, you can have
>> indy on methods on an API.
>
> Here's where we start having fun.
>
>> It's better to teach javac a new annotation, let say @Invokedynamic,
>> that you put on methods. javac will generate an invokedynamic with a
>> constant method handle to the implementation of the method if it
>> exist (non abstract) as bootstrap argument instead of an invoke* when
>> calling those methods.
>
> We could do that. It would allow the user of the API to issue
> unboxed, narrowed types to the call. The constant method handle would
> still have the boxed, widened types, unfortunately.
>
> To push the unboxed, narrowed types all the way into the invokeExact
> would require that javac somehow emit a recipe for specializing the
> implementation method to whatever types show up, at which point we are
> doing this:
> http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html
> <http://cr.openjdk.java.net/%7Ebriangoetz/valhalla/specialization.html>
>
> That urges the dependency question: Should Unsafe removal wait until
> we have method specialization?
> And/or: Is there a small subset of full method specialization,
> compatible with the full design, that would support VarHandle APIs?
While these two questions are very interesting , I believe we don't need
method specialization for the specific case of compareAndSet, like
Unsafe, we can have several overloads.
Rémi
(2am here, time to go to bed :)
More information about the valhalla-dev
mailing list