Mandated Export: Why?

Paul Benedict pbenedict at apache.org
Thu Jul 21 23:02:36 UTC 2016


>From the document that describes the binary module format for exports [1]:

0x1000 (ACC_SYNTHETIC)
Indicates that the dependence was not explicitly or implicitly declared in
the source of the module declaration.

0x8000 (ACC_MANDATED)
Indicates the dependence was implicitly declared in the source of the
module declaration.

I'd like to find out why ACC_MANDATED is necessary because it seems
ACC_SYNTHETIC is enough. What's keenly interesting is that the description
of ACC_MANDATED is nearly the same to what the JVMS says about
ACC_SYNTHETIC for a class: "it was generated by a compiler and does not
appear in source code" [2].

It appears something is incorrect with the description of these flags. What
is ACC_MANDATED really for and how it is useful?

[1] http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html#jigsaw-2.3
[2] https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

Cheers,
Paul


More information about the jpms-spec-observers mailing list