RFR (XS): [MVT] Support Q-types in MHs.constant()
maurizio.cimadamore at oracle.com
Wed Jul 12 13:35:44 UTC 2017
On 12/07/17 13:54, Vladimir Ivanov wrote:
> Though it looks attractive at first, I don't think it'll take us too far.
> j.l.i API is full of method handle combinators which should properly
> handle DVTs. If there's a separate place for DVT-capable combinators,
> then the combinators (all of them?) should be duplicated there and,
> moreover, special checks should be added across j.l.i API to reject
> any inputs which require DVT support. It looks like an overkill from
> both API & implementation perspective.
> IMO there's a better alternative: only keep MVT-specific API
> experimental (VCC->DVT, withers, etc) and enhance j.l.i implementation
> to support DVT-capable operations. It doesn't require any public API
> changes and enables safe removal of MVT-specific API. If there's no
> way for the user to get a DVT class, then there'll be no way to create
> any DVT-capable method handle.
Makes sense - I just wanted to make sure we had a way to 'keep the lid'
on top of valueness in MHs :-)
> Best regards,
> Vladimir Ivanov
> On 7/12/17 3:29 AM, Maurizio Cimadamore wrote:
>> Looks good
>> Moving forward I have a concern on adding more capabilities to
>> On the one hand it's cool that we're trying to tweak things so that
>> they 'just work' - that is, let devs use existing MH capabilities to
>> create/combine value-based handles.
>> On the other hand, this makes the surface area of MVT very blurry, as
>> it becomes harder to see where standard JDK ends and where MVT
>> begins. This could be problematic if, e.g. at some point we needed to
>> move all the MVT stuff under an experimental incubator module.
>> So, I'm starting to wonder if we shouldn't just add a ValueHandles
>> class, similar to MethodHandles.
>> In other words - have a ValueHandles class which contains the
>> relevant methods from ValueType plus the ones we've tweaked inside
>> MethodHandles. And have a ValueHandles.Lookup class to perform getter
>> and wither lookup on values.
>> What do you think?
>> On 11/07/17 18:43, Vladimir Ivanov wrote:
>>> Support Q-types in MHs.constant().
>>> Testing: jdk/test/valhalla/mvt/
>>> Best regards,
>>> Vladimir Ivanov
More information about the valhalla-dev