Proposed implementation of JEP 182 in JDK 11: drop javac support for -source/-target/--release 6

Ben Evans benjamin.john.evans at
Thu May 10 18:56:26 UTC 2018

Hi Remi,

I'm going to take issue with both of your reasons. Sorry about that :)

1. That Android chose an approach to their ecosystem (adoption over
everything else) is scarcely the fault of the mainstream Java
community, and we shouldn't sacrifice our forward progress for their
potential marginal convenience. Gentle additional pressure on older
Android users to upgrade and stop being walking security liabilities
is IMO a good thing.

2. This is a major milestone, and I would argue that it is important
that it lands on an LTS release & avoid baking the capability to
generate Java 6 bytecode into the ecosystem for another LTS cycle
(which are quite long).



On Thu, May 10, 2018 at 7:38 PM, Remi Forax <forax at> wrote:
> Hi Joe,
> this is really a big change, there are two good reason to not do that now:
> - There is really a good chance that it will split the ecosystem because while Android as now adopted the OpenJDK, there are few phones that support the Android version built on top of the OpenJDK. As a library writer, i do not want to have to support two version of my library, the one compatible with 6, the once compatible with a more recent version of the OpenJDK.
>   I agree with you that 6 is an old release but we should not base our decision only on the release date of 6 but also on the current state of the ecosystem.
> - This is the kind of change that should be done at the start of the development of a release, with a notice before, and not in the middle of the development, here, you are changing the whole story of how to migrate to 11, i think developer deserves to be aware of this kind of change in advance.
> The good news is that we are now only 4 months from the start of the development of 12, which is plenty of time to announce that the support of 6 in the compiler will be remove in 12 and not a long time to wait before actually doing the actual change.
> regards,
> Rémi
> ----- Mail original -----
>> De: "joe darcy" <joe.darcy at>
>> À: "jdk-dev" <jdk-dev at>
>> Envoyé: Jeudi 10 Mai 2018 19:56:03
>> Objet: Proposed implementation of JEP 182 in JDK 11: drop javac support for -source/-target/--release 6
>> Hello,
>> As background, JEP 182 "Policy for Retiring javac -source and -target
>> Options" ( puts forth a "one plus three
>> back" policy for the supported range of -source and -target arguments to
>> javac. (As of JDK 9, a matching range of arguments is supported for the
>> --release option.)
>> This policy was formulated under the old release model before the six
>> month release cadence.
>> Under this policy, support for the 5/1.5 argument was removed in JDK 9.
>> JDK 10 added support for a 10 argument and retained all the older values
>> that were supported under JDK 9.
>> JDK 6 first shipped at the end of 2006, which will be nearly 12 years
>> before the planned JDK 11 GA date. JDK 7 first shipped in 2011.
>> Given the age of JDK 6, I think it is reasonable in 2018 for JDK 11 to
>> drop support for -source/-target/--release 1.6/6, leaving support for 7,
>> 8, 9, 10, and 11. This provides support for four rather than three older
>> versions in JDK 11, but better matches the time span of releases
>> discussed in the JEP.
>> Future code reviews of the implementation of this removal and related work
>>     JDK-8028563: Remove javac support for 6/1.6 source and target values
>>     JDK-8173606: Deprecate constructors of 7-era visitors
>> would take place on compiler-dev.
>> Comments?
>> Cheers,
>> -Joe

More information about the jdk-dev mailing list