On ecj and @Override annotations for interface methods

Mark Wielaard mark at klomp.org
Thu Sep 18 03:54:03 PDT 2008


Hi Andrew,

On Thu, 2008-09-18 at 11:28 +0100, Andrew John Hughes wrote:
> Does anyone recall why we stopped using 1.6, other than, as a target, it gives
> little benefits?  Lillian made this commit:
> 
> 2008-05-20  Lillian Angel  <langel at redhat.com>
> 
> 	* Makefile.am: Updated JAVAC calls so ecj wrapper script is used.
>         * Makefile.in: Regenerated.
> 	* aclocal.m4: Likewise.
> 	* configure: Likewise.
> 	* javac.in: Updated to use source 1.6 instead of 1.5.
> 
> which I don't know the reasoning behind (it also changed the behaviour so
> that javac.in was always used in ecj builds, slowing things down if the
> system ecj was native).  mjw then reverted us back to 1.5:
> 
> 2008-05-25  Mark Wielaard  <mark at klomp.org>
> 
> 	* Makefile.am: Use -source 1.5 whenever possible.
>         * Makefile.in: Regenerated.
> 	* javac.in: Use -1.5.
> 
> Debian stable's version would be too old (3.2.1) but we don't support this
> fully anyway, and stable will soon change to lenny, which I presume
> will have a newer version.

See:
http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2008-May/001990.html

Change was indeed made to keep bootstrapping on "older" platforms
working.

Another issue is that although -target 1.6 looks like it is supported by
the free VMs, because they just ignore the bigger major number, there is
no public documentation about the class file format changes. So the
compiler might actually generate 1.6 class files that aren't supported,
but we cannot know since the changes aren't publicly documented (we now
of course have the sources, so we could inspect what is being generated,
but as far as I know nobody did that yet).

Cheers,

Mark




More information about the distro-pkg-dev mailing list