Modules and javac

Alex Buckley Alex.Buckley at Sun.COM
Fri Apr 10 16:03:12 PDT 2009


Evidently jigsaw-dev drops PDF attachments.

The presentation is available at 
http://openjdk.java.net/projects/jigsaw/doc/ModulesAndJavac.pdf

Alex

Alex Buckley wrote:
> This mail concerns the Reference Implementation of JSR 294, rather than 
> the Jigsaw module system.
> 
> * Introduction
> 
> The Java Language Specification (JLS) defines the syntax and semantics 
> of the Java programming language. It does not mention "javac". It speaks 
> of a "host system" which is required to make compilation units ("source 
> files") observable and report compile-time errors. The physical 
> locations of compilation units and the text of compile-time errors are 
> left as implementation details of the host system.
> 
> javac is the Reference Implementation of a compiler for the Java 
> programming language. javac embodies a "host system", and has 
> implementation-specific features such as "class path" ($CLASSPATH and 
> -classpath) that are not defined by any JCP specification, including the 
> JLS.
> 
> * javac and JSR 294
> 
> JSR 294 defines Java language features for modularity. These language 
> features are module dependencies and accessibility. Both imply that the 
> module to which a compilation unit belongs is known at compile-time. For 
> such a module, the host system must determine the physical location of 
> its module compilation unit ("module-info").
> 
> The attached presentation examines how to extend javac to locate 
> module-info files, whether compiling source for one module or multiple 
> modules. The key insight is that javac's "class path" mechanism should 
> be augmented with a "module path" mechanism.
> 
> Like "class path", "module path" is an implementation detail of the host 
> system. A further implementation detail is that javac may, depending on 
> its configuration, consult a module system to a) obtain classes from a 
> module library, and b) obtain help in selecting one version of a module 
> when multiple versions are available.
> 
> Alex



More information about the jigsaw-dev mailing list