jigsaw vs. jsr166 CVS
Alex Buckley
alex.buckley at oracle.com
Fri Sep 11 23:37:47 UTC 2015
Your -Xoverride value of .../src/main points to a package hierarchy
(java/util/...) but it needs to point to a module hierarchy
(java.base/java/util/...). That's the meaning of "<dir> is a directory
that contains exploded-module directories" in JEP 261.
Alex
On 9/11/2015 4:30 PM, Martin Buchholz wrote:
> I tried adding -Xoverride, but it didn't help.
>
> --- build.xml11 Sep 2015 18:43:46 -00001.177
> +++ build.xml11 Sep 2015 23:17:46 -0000
> @@ -347,6 +347,7 @@
> fork="true">
> <include name="**/*.java"/>
> + <compilerarg value="-Xoverride:${src.dir}"/>
> <compilerarg value="-Xprefer:source"/>
> <compilerarg value="-XDignore.symbol.file=true"/>
> <compilerarg value="-Xlint:all"/>
>
> I can see that the compiler is being invoked like this:
> $ ant -v compile -Djdk9.home="$HOME/jdk/jigsaw-b80"
> ...
> [javac] Compilation arguments:
> [javac] '-d'
> [javac] '/home/martin/jsr166/jigsaw/build/classes'
> [javac] '-classpath'
> [javac] '/home/martin/jsr166/jigsaw/build/classes'
> [javac] '-sourcepath'
> [javac] '/home/martin/jsr166/jigsaw/src/main'
> [javac] '-g:source,lines,vars'
> [javac] '-Xoverride:/home/martin/jsr166/jigsaw/src/main'
> [javac] '-Xprefer:source'
> [javac] '-XDignore.symbol.file=true'
> [javac] '-Xlint:all'
> [javac] '-Werror'
> [javac] '-Xdoclint:all/protected'
> [javac] '-Xmaxerrs'
> [javac] '1000'
> [javac] '-Xmaxwarns'
> [javac] '1000'
>
> Maybe the problem is that the there is *nothing but* overriding source
> files here.
> Does javac check that its actual argument source files might be in the
> Xoverride tree?
>
> Can/should we make jsr166 files itself a sub-module of java.base?
> Certainly, here in jsr166-developer-land, we act as if it were so.
> We have independent source trees, binary artifacts, etc... must be a
> module!?
> (You might not allow carving up java.util along module boundaries, but
> the reality as reflected in the bug system is that java.util contains
> portions of several "modules")
> (but oops ... circular dependencies ...)
>
>
>
> On Fri, Sep 11, 2015 at 3:49 PM, Alex Buckley <alex.buckley at oracle.com
> <mailto:alex.buckley at oracle.com>> wrote:
>
> Hi Martin,
>
> javac is compiling your classes (in the unnamed module) against all
> the named modules in the image. One of those named modules
> (java.base) contains the java.util package, so your code (in the
> unnamed module) cannot also contain that package. [That's not quite
> true but go with it for now.]
>
> What you want is the -Xoverride flag -- see the "Overriding module
> content" section of JEP 261. You'll have to rename 'main' to
> 'java.base'. Also note the open design issues around -Xoverride.
>
> Alex
>
>
> On 9/11/2015 1:51 PM, Martin Buchholz wrote:
>
> Jigsawers:
>
> I tried to use jigsaw EA with jsr166 CVS for the first time.
>
> On a fresh jsr166 CVS checkout
> (http://g.oswego.edu/dl/concurrency-interest/),
> I did:
> ~/jsr166/jigsaw $ ant -v compile
> -Djdk9.home="$HOME/jdk/jigsaw-b80"
>
> and got:
>
> [javac]
> /home/martin/jsr166/jigsaw/src/main/java/util/AbstractQueue.java:7:
> warning: package exists in another module: java.base
> [javac] package java.util;
>
> and then more seriously
>
> [javac]
> /home/martin/jsr166/jigsaw/src/main/java/util/AbstractQueue.java:36:
> error:
> cannot find symbol
> [javac] extends AbstractCollection<E>
>
> I was surprised by that -- we don't fiddle with the boot
> environment here.
> Is it not allowed to compile sources for which class files are
> in the same
> package but another module? Alternatively, does the compile time
> environment need to include all the sources for the packages being
> compiled, i.e. do I need to add sourcepath for
> jdk/src/java.base/share/classes?
>
> (Admittedly, developing jdk sources outside the jdk proper is a
> little bit
> unusual)
>
>
More information about the jigsaw-dev
mailing list