Proposal: #ClassFileAccModule
Remi Forax
forax at univ-mlv.fr
Wed Nov 23 20:00:59 UTC 2016
fair enough,
i agree.
Rémi
----- Mail original -----
> De: "mark reinhold" <mark.reinhold at oracle.com>
> À: jpms-spec-experts at openjdk.java.net
> Envoyé: Mardi 22 Novembre 2016 17:48:35
> Objet: Proposal: #ClassFileAccModule
> Issue summary
> -------------
>
> #ClassFileAccModule --- The `ACC_MODULE` constant is currently
> specified to have the value 0x8000. This is the last available bit
> remaining across all of the various `access_flags` fields of a class
> file, and thus should be reserved for some unspecified future purpose
> where it may be useful to use the same value in all such fields.
> Alternative candidates for `ACC_MODULE` include 0x0040 (overlaps with
> `ACC_VOLATILE` and `ACC_BRIDGE`) and 0x0080 (`ACC_TRANSIENT` and
> `ACC_VARARGS`). [1]
>
> Proposal
> --------
>
> Do not change the value of this constant.
>
> The high-order bits of the `access_flags` field have long been used to
> characterize the unusual, non-class nature of some class files:
>
> - `ACC_ANNOTATION` (0x2000) indicates an annotation type, even though
> `ACC_ANNOTATION` does not apply to fields or methods, and
>
> - `ACC_ENUM` (0x4000) indicates an `enum` type, even though `ACC_ENUM`
> does not apply to methods.
>
> A binary module descriptor is a new kind of unusual class file, hence we
> have done the obvious thing and allocated the high-order bit 0x8000 for
> `ACC_MODULE`.
>
> We could try to be more clever here, but that would require attempting
> to predict the future. There are still plenty of other ways to encode
> potential future features; a value class could, e.g., be indicated by
> 0x0100. In the worst case the `access_flags` field could simply be made
> wider in some future version of the class-file specification.
>
>
> [1] http://openjdk.java.net/projects/jigsaw/spec/issues/#ClassFileAccModule
More information about the jpms-spec-experts
mailing list