On 5/23/2017 12:54 PM, Stephan Herrmann wrote:
The 2017-05-18 draft of JLS indicates that automatic modules are beyond the
scope of JLS.
I'm puzzled what that should mean for a compiler.
At face value it seems to say that compilers need not care about automatic
modules. Instead I'd expect JLS to state that the host system must be able
to discover automatic modules "as if by invocation of
ModuleFinder.of(Path...)." or similar.

Which is it?

Can you quote the text of concern?

Automatic modules are not a source artifact, so their specification is found in the API portion of the JPMS spec rather than in the JLS. The JLS has traditionally not specified how a compiler interprets non-source artifacts, e.g., the JLS says nothing about whether the host system understands a "class path" or that such a thing might identify non-source artifacts like JAR files. The analog in the Java SE 9 era is that it's up to a compiler to choose to support a thing called the "module path" and to identify non-source artifacts on it; I do not see how the JLS can say anything for that. Once a compiler has made the choice, then the JPMS specifies that certain non-source artifacts must be interpreted as automatic modules, at which point they're "just" named modules that a modular compilation unit's 'requires' directive can refer to.

Alex

Reply via email to