On 11:58 Wed 27 Jul , Kelly O'Hair wrote: > > On Jul 27, 2011, at 11:04 AM, Dr Andrew John Hughes wrote: > > > Hi, > > > > Can someone please tell me why: > > > > http://hg.openjdk.java.net/jdk8/tl/jdk/rev/cf4edfcd7119 > > > > reverted my earlier fix: > > > > http://hg.openjdk.java.net/jdk8/tl/jdk/rev/80368890a2a0 > > > > without any discussion? > > My apologies, the webrev should have been made public. > > > > > The correct fix would have been to bump the boot source language/target > > class > > versions to 7, not erase the lines altogether. > > Unfortunately, that did not work with jdk7 as a boot
Why was this? I don't understand why anything would fail with javac -source 7 -target 7 over just javac. , and jdk6 won't work as a boot jdk > soon anyway. Well, yes I assumed this patch was related to moving to OpenJDK7 as the minimum bootstrap JDK. > Since we will be requiring a jdk7 as the boot jdk, I did not feel it was > needed > to even specify this. Anything compiled with the boot javac technically > doesn't care what > the source/target is, or should, and the class files created just need to > work with the boot jdk, > and should not be shipped as part of the jdk8 being built. > > When I looked at the Makefiles, there was no comment as to why we even had to > set the -source > or -target options when using the boot javac at all. > My conclusion was that it was unnecessary, and deleting these lines made > 'jdk7 as boot' work. > > If that was wrong I apologize, why does this matter? > It means that we are depending on whatever defaults the bootstrap javac uses rather than being explicit. In most cases, that might not cause a problem but I know I've run into problems with this and I think it better to be safe than sorry, as you don't know what the bootstrap javac is or what its default is. If we expect the bootstrap javac to produce java 7 class files, it should be set explicitly: http://blogs.oracle.com/darcy/entry/build_advice_set_source_target I think I've hit it mostly with using ecj as the bootstrap javac, but it couldcause an issue during development if the bootstrap javac started producing 1.8 code by default but the VM used wasn't capable of handling it. Unlikely maybe, but I think it's better to have this set explicitly and just avoid such issues altogether. > -kto > > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > Support Free Java! > > Contribute to GNU Classpath and IcedTea > > http://www.gnu.org/software/classpath > > http://icedtea.classpath.org > > PGP Key: F5862A37 (https://keys.indymedia.org/) > > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37