Readability and other terminology

mark.reinhold at mark.reinhold at
Thu Sep 17 14:54:11 UTC 2015

2015/9/9 1:48 -0700, david.lloyd at
> ...
> 3) Readability and other terminology
> "Readability" is the term that we were calling "visibility" up until 
> this point, correct?

No, readability is a new concept, distinct from visibility.  Readability
is a relation between modules, computed during resolution by interpreting
the `requires` clauses in module declarations.  Visibility, by contrast,
is a relation between types.

>                       And the term "implied readability" is what I would 
> have erstwhile called a transitive dependency.

No, readability and dependence are related but distinct concepts.

If module A depends upon module B (`requires B`), and B depends upon C,
then A depends transitively upon C.  The resolver will construct a module
graph in which A reads B, and B reads C.  There will be a path in the
graph from A to C, but that doesn't mean that A reads C.  For that to
happen, B must `requires public` C, which during resolution will cause
an implied read edge to be added from A directly to C.

> Also, "exports" in this document appear to apply only to package names 
> and not module dependency names.


- Mark

More information about the jpms-spec-experts mailing list