RFR: 8054717: SJavac should track changes in the public apis of classpath classes!

Andreas Lundblad andreas.lundblad at oracle.com
Sun Mar 1 11:15:55 UTC 2015

On Thu, Feb 12, 2015 at 10:50:47PM +0100, Andreas Lundblad wrote:
> On Mon, Dec 15, 2014 at 11:49:06PM +0100, Andreas Lundblad wrote:
> > [...]
> > 
> > Link to web review:
> > http://cr.openjdk.java.net/~alundblad/8054717
> > 
> > Link to bug report:
> > http://bugs.openjdk.java.net/browse/JDK-8054717
> Attach: /home/alundbla/Downloads/langtools_v0.diff JDK-8066725 patch
> Version 5 up for review. (See links above.)
> A few remarks:
> 1. The attached langtools patch (currently under review) needs to be applied as well.
> 2. Two changes to CompileJavaModules.gmk are required:
>     - The classpath should be used instead of the bootclasspath (and the bootclasspath should be set to an empty direcotry)
>         -  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)"
>         +  $1_JAVAC_FLAGS := -bootclasspath "/home/alundbla/bootcp" -classpath "$$($1_CLASSPATH)"
>     - Eriks current workaround should be disabled:
>         -   $$(if $$(filter-out $$($1_SRCS), $$?), $(FIND) $$(@D) -name "*.class" $(FIND_DELETE))
>         +#  $$(if $$(filter-out $$($1_SRCS), $$?), $(FIND) $$(@D) -name "*.class" $(FIND_DELETE))

Here's the current status of this work:

- The blocking class reader issue (JDK-8066725) has now been resolved and pushed

- Joel reviewed this patch a while ago. Since then I've fixed a couple of bugs found by Erik (without changing the overall structure).

- When building a different repo, Erik discovered another issue regarding deprecation warnings. This does however reproduce without this patch applied (and was in fact independently reported by Per Liden a while ago). I filed issue JDK-8074071 to track this, but I suggest we address this in a separate patch.

In other words: I'm ready to push this work. (I'm however unsure if Joels slighly dated review is 'valid'.) We should definitely address the deprecation issue before thinking about making sjavac default in the JDK build.

-- Andreas

More information about the compiler-dev mailing list