I agree with Brian that having spurious NPEs will not help.

I think reporting a NPE is nefarious here, the semantics of a NPE is too 
engraved in the Java dev heads,
we should report an incompatible change class error or exactly a subtype like 
by example VMHeroicEffortToProvideValueTypeMigrationFromAReferenceTypeFailError 
saying which class see the value type as a reference type (in order to be 
re-compiled).

Rémi

----- Mail original -----
> De: "Brian Goetz" <brian.go...@oracle.com>
> À: "John Rose" <john.r.r...@oracle.com>, "Remi Forax" <fo...@univ-mlv.fr>
> Cc: "valhalla-spec-experts" <valhalla-spec-experts@openjdk.java.net>
> Envoyé: Vendredi 11 Mai 2018 19:13:19
> Objet: Re: value type hygiene

> I get the motivation for this.  FTR, though, I am pretty skeptical that
> such unexpected and hard-to-explain NPEs won't show up more frequently
> than the ignorability threshold, and the result will be a perception
> that Java is unstable.  (Remember, people mix and match with libraries
> that have been compiled at all different language levels.)
> 
> On 5/10/2018 9:36 PM, John Rose wrote:
>>
>> Again, JVM could go the extra mile to make this problem
>> disappear, by re-organizing the calling sequence of the override
>> tree as soon as the first legacy method shows up.  For simplicity
>> I'd rather exclude this tactic until forced by experience to add it.
>> It seems like a heroic optimization to me, seldom used and likely
>> to be buggy.  It also seems to spoil the whole performance party
> > when one bad actor shows up, which looks dubious to me.

Reply via email to