[mvt] RFR - add support for q-types in lambda forms

Paul Sandoz paul.sandoz at oracle.com
Mon Jun 5 23:29:02 UTC 2017


> On 5 Jun 2017, at 16:12, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
> 
> 
> 
> On 05/06/17 23:18, Paul Sandoz wrote:
>>> On 5 Jun 2017, at 13:50, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
>>> 
>>> 
>>> 
>>> On 05/06/17 19:44, Remi Forax wrote:
>>>> Hi Paul,
>>>> John will say it better than me but the plan as far as i've understood is to just add a new Q basic type,
>>>> represented by __Value in the signature as Karen said.
>>> Yep - that's what the lambda form patch I've sent does - it adds a new basic type and InvokeBytecodeGenerator has been expanded to handle the new basic type Q in LF signatures.
>>> 
>>> Species classes should have an additional set of methods for binding to Q arguments. But I think these need to be spun in the bytecode, since I don't think if you name j.l.__Value in a method signature you'll get what you want at the bytecode level.
>>> 
>> What should be the signature of the Species fields bound to one or more values?
> I think
> 
> Qjava/lang/__Value
> 
> That's what we use in the signature of generated code corresponding to value-bearing lambda forms.
> 

IIUC that’s for method sigs/vreturn, so it’s all stack based.

From reading Karen’s recent response i gather that it would not be possible (at least currently) to express __Value within a field descriptor.

I suppose i should just try it...

Paul..


More information about the valhalla-dev mailing list