Is V? what we need ?

John Rose john.r.rose at oracle.com
Thu May 2 02:17:54 UTC 2019


It looks like we're getting somewhere; thanks for
the detailed response.  I have one targeted reply:

On May 1, 2019, at 4:38 PM, forax at univ-mlv.fr wrote:
> 
> So let's call it V*. I want also make clear that there is no proposal to not have a V*, we need it, and it's the L-version of an inline type for the VM.

That would an ugly choice, for sure.  But it's also a
full disclosure of the presence of the indirection.

…
> It's not fine to use Integer as parameter of a method. 

There's one place where Integer is OK as a method
parameter or return, and that is when you are reaching
for null as a sentinel.  I'm pretty sure I've written code
like that.

This, I think, is why V* is OK to spell as V?.  My contribution
to this conversation is to explain why, as one of Java's
lumping-not-splitting design moves, we are adjoining
the responsibilities of V* to the contract of V?.

If V? were purely a value-set variant of V, then V* and V?
would be distinct and subtly different types.  But one of
Java's super-powers is that it doesn't *do* that level of
type refinement. 

— John


More information about the valhalla-spec-observers mailing list