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.
Pulled relevant patches over from
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.
I shook it down, making a new patch. asm-tree can disappear. From asm-commons we only need GeneratorAdapter and its deps.
added automatic vendor-asm script, hopefully useful in the future
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).