Question about FileManagers in Jigsaw.

Fredrik Öhrström fredrik.ohrstrom at oracle.com
Tue Mar 13 07:52:55 PDT 2012


2012-03-13 15:06, Alan Bateman skrev:
> The current build, as you know, is essentially a post-processing step so 
> the classes in the jdk repository are compiled as they have always done 
> using the bootstrap JDK + langtools. The launchers for the module-aware 
> tools (including jmod) that are used in the post-processing step are 
> built with -Xmode:legacy so they can be used in the build to create the 
> module library and compile the module-info sources and get us to a 
> module image.

Ok, see if I got this right:

We need a boot-jdk compatible: 2xboostrap_javac, bootstrap_jpkg (jpkg is
used to create jmod files, right?)
(but not bootstrap_jmod? (jmod is used to install jmod files into the
jvm, right?)

We do not really need to build a full launcher for the bootstrap jpkg do
we? We can just run the classes directly?

The bootstrap_javac will build a second bootstrap_javac with a built in
zeromod imported from the
jdk sources (potentially stripped with help of genstubs).
We could skip the second bootstrap_javac if the zeromod code and other
imported jdk sources can be
compiled using boot_jdk supported syntax, or if Genstubs could strip
them from jigsaw features?
But since they most likely contain jigsaw features and/or need module
resoultion, when compiled, and we
can't have Genstubs strip out jigsaw features, we need the second
bootstrap_javac, right?
 
> With a new build, where we compile the platform as a set of modules, 
> then we have to work out the steps to get us to the point where we have 
> langtools and a base module. 

In the future when we have shuffled langtools as module(s), we could
detect that the boot jdk
is pre jigsaw and run a makefile that backshuffles the source to legacy
structuring? It could
perhaps run Genstubs and inject the cleaned zero mod into the
backshuffled code?
Thus we could get away with a single bootstrap?

> Whether that is in module path layout or a 
> base image isn't clear to me at this point. I think, and Jon is really 
> the right person to answer this, that we have to be able to compile the 
> base module with the bootstrap JDK + langtools that has some minimal 
> emulation of Jigsaw (or javac with ZeroMod that we have today). 

Then we generate Java sources for Charsets et al.
Next step is to build the base module from shuffled (multi module)
sourcepath using the second
bootstrap_javac? Or could we just compile the whole jdk using multi
module compile?
It seems like that should be possible?

> There are details to work through. Another thing about the new build, and 
> something that Jon mentioned recently, is that the jaxp, jaxws and corba 
> repos will need to be compiled much later than they are done now (they 
> are compiled with the bootstrap JDK/javac today).
Moving the jaxp, jaxws and corba into the jdk build makes sense even
without jigsaw.

//Fredrik




More information about the jigsaw-dev mailing list