Re: Enhancing java.lang.constant for Valhalla

2021-12-16 Thread Dan Heidinga
The updated api looks pretty good for handling both L and Q descriptors. There's one case that isn't handled here though - L* descriptors. WIth the bucket 2 & 3 design, we really have 3 kinds of descriptors: L, Q, and L*. Over the years, we've spent a lot of time as an EG talking about stars on d

Re: [External] : Re: Enhancing java.lang.constant for Valhalla

2021-12-16 Thread Brian Goetz
This reminds me of an earlier version of the jl.constant API, where we tried to track the varargs bit.  In the end, we dropped this, because it washed off too easily in the API.  We could have a preload() bit that travels with the ClassDesc, which would then have to be propagated into a bit mas

Re: We have to talk about "primitive".

2021-12-16 Thread Kevin Bourrillion
Really appreciate the attention and insight here. I must respond on the installment plan. On Wed, Dec 15, 2021 at 7:15 PM John Rose wrote: > On 15 Dec 2021, at 10:42, Kevin Bourrillion wrote: > > … > The main problem I think we can't escape is that we'll still need some > word > that means only

Re: [External] : Re: Enhancing java.lang.constant for Valhalla

2021-12-16 Thread Dan Heidinga
> > This reminds me of an earlier version of the jl.constant API, where we tried > to track the varargs bit. In the end, we dropped this, because it washed off > too easily in the API. We could have a preload() bit that travels with the > ClassDesc, which would then have to be propagated into

Re: [External] : Re: Enhancing java.lang.constant for Valhalla

2021-12-16 Thread Brian Goetz
If the preload() bit is tied to the ClassDesc, do we need to worry about a bit mask in MethodTypeDesc? Isn't the MethodTypeDesc composed of ClassDesc returnType and ClassDesc[] of parameters? I feel like I'm missing some complexity here... That's how the implementation happens to work, but

Re: [External] : Re: Enhancing java.lang.constant for Valhalla

2021-12-16 Thread Dan Heidinga
> Which makes me ask ... if it really is a side channel, does it really go > *in* the ClassDesc? If it's not in the ClassDesc, then how do we communicate the side channel to users - e.g. class file generators? I recently rewatched your JVMLS talk from 2018 [1] where javac converted the jl.constan

JEP update: Primitive Classes

2021-12-16 Thread Dan Smith
First, I've made some minor revisions to the Value Objects JEP in the last couple of weeks. You can see it here: https://openjdk.java.net/jeps/8277163 Second, I've put together a draft of a revised JEP 401, Primitive Classes. This removes content that became part of the Value Objects feature, an