Draft JEP: Incubating Language and VM Features
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Jan 22 20:14:40 UTC 2018
Whilst I support the use of the minor_version field as proposed, with
this proposed bit, and the additional bit proposed by John Rose earlier
in this thread, the value is trending away from being a "minor version
number" and towards being "version flags".
-- Jon
On 1/22/18 11:44 AM, Alex Buckley wrote:
> On 1/22/2018 11:21 AM, Remi Forax wrote:
>> ----- Mail original -----
>>> De: "Alex Buckley" <alex.buckley at oracle.com> À: "jdk-dev"
>>> Let's suppose we have a Java SE 11-compliant JVM implementation and
>>> a 55.0 class file. You're saying that a new kind of entry in the
>>> constant pool is a cleaner way to signal the presence of class file
>>> content that's incubating in SE 11 than a non-zero minor_version.
>>> Please explain why because I don't see it.
>>
>> No, i do not propose to mark an experimental class with an unknown
>> constant pool constant.
>>
>> I said that using a class attribute to mark expertimental classes is
>> better because it doesn't change the semantics of the classfile
>> version.
>
> First, you keep saying experimental but I tried very hard in the JEP
> to distingush incubating features from experimental features. I sent a
> mail about this last week but it seems to have missed the mark again.
> Incubating != experimental.
>
> Moving on, it appears you want to ring-fence the minor_version item.
> You do not want it to have a first-class meaning, even in new class
> files (SE 11 and greater). Why not?
>
>> But this come with an issue if the experimental feature add
>> a new constant pool constant and the VM doesn't support experimental
>> features, in this peculiar case, i said that throwing an error
>> because the class is invalid because it contains an invalid constant
>> pool constant instead of throwing an error because the VM doesn't
>> support experimental classes is Ok.
>
> It's not very nice for the user if a JVM implementation sometimes
> rejects unsupported incubating content cleanly (based on detecting the
> attribute) while at other times throwing errors for the
> really-unsupported unsupported incubating content (in the constant pool).
>
> Alex
More information about the jdk-dev
mailing list