Make Java 8 the minimum requirement for Clojure

Description

Make Java 8 the minimum required version for Clojure.

Patches (all need to be applied):

  • 0001-vendor-asm-to-sha-88a0aa8a79df7370cd178281bdf690ac23.patch - bump vendored ASM to 6.2 release

  • update-asm-license.patch - updates ASM license in README

  • 0002-bump-javac-output-to-1.8-classfiles.patch - switch to compiling jdk8 source/target

  • 0003-Compiler-genclass-emit-jdk8-classfiles.patch - change compiler+genclass to emit jdk8 classfiles

  • clj-2363-lib-2.patch - update jdk-specific stuff in javadoc (updated jdks), annotation tests (updated jdks), reducers (removed reliance on jsr166 jar), and instant_18 (made non-conditional)

These are all independent and broken up for ease of understanding and independent update as needed.

Screener's Notes

  • the ASM vendoring was automated via a bash script (see commit message on 0001-vendor-asm-to-sha-88a0aa8a79df7370cd178281bdf690ac23.patch). I reran and compared.

  • the calls to ASM had to change slightly. Assumptions are decisions are in the commit message for 0003-Compiler-genclass-emit-jdk8-classfiles.patch.

  • the test changes in clj-2363-lib-2.patch were necessary because the tests were hard-coded against outputs from the annotations API that have expanded over time. These test are not great but are the only coverage of little-used functionality, so meh.

Environment

None

Activity

Show:
Alex Miller
June 21, 2018, 6:28 PM

Pulled relevant patches over from

Alex Miller
June 22, 2018, 10:28 PM

Need to determine whether we should include all the "new" classes in the asm update. Probably don't need asm/tree/ and some of the adapter classes.

Ghadi Shayban
June 23, 2018, 2:40 AM

I shook it down, making a new patch. asm-tree can disappear. From asm-commons we only need GeneratorAdapter and its deps.

Ghadi Shayban
June 23, 2018, 5:14 PM

added automatic vendor-asm script, hopefully useful in the future

Alex Miller
June 25, 2018, 3:22 PM

This is looking pretty good now. Builds are clean on Java 8 and 9. Java 10 fails with a known issue in the fragile serialization test per (this is not an issue with Clojure itself, specific to the test).

Completed

Assignee

Alex Miller

Reporter

Alex Miller

Labels

None

Approval

Ok

Patch

Code

Fix versions

Priority

Critical
Configure