utwente-fmt / vercors

The VerCors verification toolset for verifying parallel and concurrent software
https://utwente.nl/vercors
Mozilla Public License 2.0
53 stars 24 forks source link

Build error: java.lang.IllegalArgumentException: release version 17 not supported #1039

Closed Ellen-Wittingen closed 1 year ago

Ellen-Wittingen commented 1 year ago

Starting at commit 33212b626a842b2369404b2efbbf5a8efaafddc5 and onwards, building the project with

./mill -j 0 vercors.compile

gives the following build error:

java.lang.IllegalArgumentException: error: release version 17 not supported

It has the same behaviour on a fresh clone from respository, so it does not seem an IntelliJ issue. I am building this on Fedora with OpenJDK 17.0.6 on the path

Full stack trace:

[#1] [431/575] vercors.allSourceFiles 
From https://github.com/viperproject/carbon
[#7] [445/575] foreign-modules.project.colMeta.meta.resolvedIvyDeps 
[#7] [476/575] vercors.buildInfo.compile 
[#2] Compiling compiler interface...
[#4] [478/575] foreign-modules.project.viper.viper.silicon.resolvedIvyDeps 
From https://github.com/viperproject/silver
[#5] [484/575] foreign-modules.project.antlr.java.generate 
From https://github.com/viperproject/silicon
 * branch            a60324dd46923b861bae7b4a40f807227d693fc3 -> FETCH_HEAD
[#6] [485/575] foreign-modules.project.antlr.c.generate 
[#2] [504/575] foreign-modules.project.viper.viper.silver.compile 
[#2] Compiling compiler interface...
[#4] [508/575] parsers.allSourceFiles 
[#3] [info] compiling 9 Scala sources to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/hre/pprofProto/compile.dest/classes ...
[#1] [info] compiling 18 Scala sources to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/colMeta/meta/compile.dest/classes ...
[#7] [info] compiling 1 Scala source to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/vercors/buildInfo/compile.dest/classes ...
[#0] [info] compiling 1 Scala source to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/viper/viper/silicon/buildInfo/compile.dest/classes ...
[#2] [info] compiling 100 Scala sources to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/viper/viper/silver/compile.dest/classes ...
[#7] [info] done compiling
[#0] [info] done compiling
[#4] [509/575] foreign-modules.project.viper.viper.silicon.buildInfo.localClasspath 
[#3] [info] done compiling
[#3] [515/575] hre.compile 
[#3] [info] compiling 28 Scala sources and 3 Java sources to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/hre/compile.dest/classes ...
[#1] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/src/colhelper/ColDescription.scala:172:27: match may not be exhaustive.
[#1] [warn] It would fail on the following inputs: List(_), Nil
[#1] [warn]             parameterLists(1) match {
[#1] [warn]                           ^
[#3] [error] ## Exception when compiling 31 sources to /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/hre/compile.dest/classes
[#3] [error] java.lang.IllegalArgumentException: error: release version 17 not supported
[#3] [error] jdk.compiler/com.sun.tools.javac.main.Arguments.reportDiag(Arguments.java:889)
[#3] [error] jdk.compiler/com.sun.tools.javac.main.Arguments.handleReleaseOptions(Arguments.java:311)
[#3] [error] jdk.compiler/com.sun.tools.javac.main.Arguments.processArgs(Arguments.java:350)
[#3] [error] jdk.compiler/com.sun.tools.javac.main.Arguments.init(Arguments.java:246)
[#3] [error] jdk.compiler/com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:191)
[#3] [error] jdk.compiler/com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:119)
[#3] [error] jdk.compiler/com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
[#3] [error] sbt.internal.inc.javac.LocalJavaCompiler.run(LocalJava.scala:345)
[#3] [error] sbt.internal.inc.javac.AnalyzingJavaCompiler.$anonfun$compile$12(AnalyzingJavaCompiler.scala:172)
[#3] [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[#3] [error] sbt.internal.inc.javac.AnalyzingJavaCompiler.timed(AnalyzingJavaCompiler.scala:262)
[#3] [error] sbt.internal.inc.javac.AnalyzingJavaCompiler.compile(AnalyzingJavaCompiler.scala:161)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$2(MixedAnalyzingCompiler.scala:103)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$2$adapted(MixedAnalyzingCompiler.scala:91)
[#3] [error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$1(MixedAnalyzingCompiler.scala:91)
[#3] [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:248)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.compileJava(MixedAnalyzingCompiler.scala:61)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.compileJava0$1(MixedAnalyzingCompiler.scala:198)
[#3] [error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:211)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534)
[#3] [error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:179)
[#3] [error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:177)
[#3] [error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:463)
[#3] [error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[#3] [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[#3] [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[#3] [error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263)
[#3] [error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:418)
[#3] [error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506)
[#3] [error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:405)
[#3] [error] sbt.internal.inc.Incremental$.apply(Incremental.scala:171)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:425)
[#3] [error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[#3] [error] mill.scalalib.worker.ZincWorkerImpl.compileInternal(ZincWorkerImpl.scala:561)
[#3] [error] mill.scalalib.worker.ZincWorkerImpl.$anonfun$compileMixed0$1(ZincWorkerImpl.scala:339)
[#3] [error] mill.api.FixSizedCache.withCachedValue(FixSizedCache.scala:66)
[#3] [error] mill.scalalib.worker.ZincWorkerImpl.withCompilers(ZincWorkerImpl.scala:421)
[#3] [error] mill.scalalib.worker.ZincWorkerImpl.compileMixed0(ZincWorkerImpl.scala:338)
[#3] [error] mill.scalalib.worker.ZincWorkerImpl.compileMixed(ZincWorkerImpl.scala:306)
[#3] [error] mill.scalalib.ScalaModule.$anonfun$compile$2(ScalaModule.scala:198)
[#3] [error] mill.define.Task$TraverseCtx.evaluate(Task.scala:380)
[#3] [error] mill.eval.Evaluator.$anonfun$evaluateGroup$13(Evaluator.scala:631)
[#3] [error] scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[#3] [error] scala.Console$.withErr(Console.scala:193)
[#3] [error] mill.eval.Evaluator.$anonfun$evaluateGroup$12(Evaluator.scala:631)
[#3] [error] scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[#3] [error] scala.Console$.withOut(Console.scala:164)
[#3] [error] mill.eval.Evaluator.$anonfun$evaluateGroup$11(Evaluator.scala:630)
[#3] [error] scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[#3] [error] scala.Console$.withIn(Console.scala:227)
[#3] [error] mill.eval.Evaluator.$anonfun$evaluateGroup$8(Evaluator.scala:629)
[#3] [error] mill.eval.Evaluator.$anonfun$evaluateGroup$8$adapted(Evaluator.scala:590)
[#3] [error] scala.collection.immutable.Vector.foreach(Vector.scala:1895)
[#3] [error] mill.eval.Evaluator.evaluateGroup(Evaluator.scala:590)
[#3] [error] mill.eval.Evaluator.$anonfun$evaluateGroupCached$21(Evaluator.scala:482)
[#3] [error] scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[#3] [error] mill.eval.Evaluator.evaluateGroupCached(Evaluator.scala:473)
[#3] [error] mill.eval.Evaluator.$anonfun$parallelEvaluate$2(Evaluator.scala:298)
[#3] [error] scala.concurrent.impl.Promise$Transformation.run(Promise.scala:467)
[#3] [error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[#3] [error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[#3] [error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[#3] [error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[#3] [error] java.base/java.lang.Thread.run(Thread.java:833)
[#3] [error]            
[#1] [warn] 8 deprecations (since 2.13.0); re-run with -deprecation for details
[#1] [warn] two warnings found
[#1] [info] done compiling
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/ast/utility/Expressions.scala:17:33: match may not be exhaustive.
[#2] [warn] It would fail on the following inputs: Exists(_, _, _), Forall(_, _, _)
[#2] [warn]   def isPure(e: Exp): Boolean = e match {
[#2] [warn]                                 ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/ast/utility/QuantifiedPermissions.scala:254:36: Exhaustivity analysis reached max recursion depth, not all missing cases are reported.
[#2] [warn] (Please try with scalac -Ypatmat-exhaust-depth 40 or -Ypatmat-exhaust-depth off.)
[#2] [warn]             desugaredWithoutLet.map{
[#2] [warn]                                    ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/ast/utility/Simplifier.scala:26:32: Cannot check match for unreachability.
[#2] [warn] The analysis required more space than allowed.
[#2] [warn] Please try with scalac -Ypatmat-exhaust-depth 40 or -Ypatmat-exhaust-depth off.
[#2] [warn]     StrategyBuilder.Slim[Node]({
[#2] [warn]                                ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/cfg/Cfg.scala:111:35: match may not be exhaustive.
[#2] [warn] It would fail on the following inputs: PostconditionBlock(), PreconditionBlock()
[#2] [warn]       val mapped: Block[S2, E2] = block match {
[#2] [warn]                                   ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/cfg/Cfg.scala:156:45: match may not be exhaustive.
[#2] [warn] It would fail on the following inputs: PostconditionBlock(), PreconditionBlock()
[#2] [warn]     def label(block: Block[S, E]): String = block match {
[#2] [warn]                                             ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/parser/FastMessage.scala:59:68: match may not be exhaustive.
[#2] [warn] It would fail on the following inputs: HasLineColumn(), NoPosition, VirtualPosition(_), _
[#2] [warn]       val valuePos: SourcePosition = value.asInstanceOf[PNode].pos._1 match {
[#2] [warn]                                                                    ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/parser/FastParser.scala:249:24: match may not be exhaustive.
[#2] [warn] It would fail on the following inputs: HasLineColumn(), VirtualPosition(_), _
[#2] [warn]         val location = pos match {
[#2] [warn]                        ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/parser/FastParser.scala:321:5: match may not be exhaustive.
[#2] [warn] It would fail on the following input: Failure()
[#2] [warn]     p match {
[#2] [warn]     ^
[#2] [warn] /media/bridge/FILES/UTwente/Master/Thesis/vercors/out/foreign-modules/project/fetchViper/silverGit/repo.dest/src/main/scala/viper/silver/plugin/standard/termination/transformation/MethodCheck.scala:245:28: The outer reference in this type test cannot be checked at run time.
[#2] [warn]   private final case class Transformed() extends Info {
[#2] [warn]                            ^
[#2] [warn] 9 warnings found
[#2] [info] done compiling
1 targets failed
hre.compile java.lang.IllegalArgumentException: error: release version 17 not supported
    jdk.compiler/com.sun.tools.javac.main.Arguments.reportDiag(Arguments.java:889)
    jdk.compiler/com.sun.tools.javac.main.Arguments.handleReleaseOptions(Arguments.java:311)
    jdk.compiler/com.sun.tools.javac.main.Arguments.processArgs(Arguments.java:350)
    jdk.compiler/com.sun.tools.javac.main.Arguments.init(Arguments.java:246)
    jdk.compiler/com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:191)
    jdk.compiler/com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:119)
    jdk.compiler/com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
    sbt.internal.inc.javac.LocalJavaCompiler.run(LocalJava.scala:345)
    sbt.internal.inc.javac.AnalyzingJavaCompiler.$anonfun$compile$12(AnalyzingJavaCompiler.scala:172)
    scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
    sbt.internal.inc.javac.AnalyzingJavaCompiler.timed(AnalyzingJavaCompiler.scala:262)
    sbt.internal.inc.javac.AnalyzingJavaCompiler.compile(AnalyzingJavaCompiler.scala:161)
    sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$2(MixedAnalyzingCompiler.scala:103)
    sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$2$adapted(MixedAnalyzingCompiler.scala:91)
    sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
    sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$1(MixedAnalyzingCompiler.scala:91)
    scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
    sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:248)
    sbt.internal.inc.MixedAnalyzingCompiler.compileJava(MixedAnalyzingCompiler.scala:61)
    sbt.internal.inc.MixedAnalyzingCompiler.compileJava0$1(MixedAnalyzingCompiler.scala:198)
    sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:211)
    sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534)
    sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534)
    sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:179)
    sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:177)
    sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:463)
    sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
    sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
    sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
    sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263)
    sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:418)
    sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506)
    sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:405)
    sbt.internal.inc.Incremental$.apply(Incremental.scala:171)
    sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534)
    sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488)
    sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
    sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:425)
    sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
    mill.scalalib.worker.ZincWorkerImpl.compileInternal(ZincWorkerImpl.scala:561)
    mill.scalalib.worker.ZincWorkerImpl.$anonfun$compileMixed0$1(ZincWorkerImpl.scala:339)
    mill.api.FixSizedCache.withCachedValue(FixSizedCache.scala:66)
    mill.scalalib.worker.ZincWorkerImpl.withCompilers(ZincWorkerImpl.scala:421)
    mill.scalalib.worker.ZincWorkerImpl.compileMixed0(ZincWorkerImpl.scala:338)
    mill.scalalib.worker.ZincWorkerImpl.compileMixed(ZincWorkerImpl.scala:306)
    mill.scalalib.ScalaModule.$anonfun$compile$2(ScalaModule.scala:198)
    mill.define.Task$TraverseCtx.evaluate(Task.scala:380)
pieter-bos commented 1 year ago

It seems mill prioritizes resolving the java version from JAVA_HOME, perhaps you have an older version there? If not, I'd be interested in the supported values listed in javac --help.

Ellen-Wittingen commented 1 year ago

I do not have JAVA_HOME set to any value. However, javac --version showed I was using javac 20.

I now installed and put as default javac 17, and this solved the issue. It compiles fine now.

Ellen-Wittingen commented 1 year ago

For javac 20, it does show that it supports compiling for java 17, so that is interesting

  -profile <profile>
        Check that API used is available in the specified profile.
        This option is deprecated and may be removed in a future release.
  --release <release>
        Compile for the specified Java SE release. Supported releases: 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
  -s <directory>               Specify where to place generated source files
  --source <release>, -source <release>
        Provide source compatibility with the specified Java SE release. Supported releases: 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
  --source-path <path>, -sourcepath <path>
        Specify where to find input source files
  --system <jdk>|none          Override location of system modules
  --target <release>, -target <release>
        Generate class files suitable for the specified Java SE release. Supported releases: 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
pieter-bos commented 1 year ago

Hmm, strange. I don't think it's very fruitful to debug this further over github comments. Feel free to re-open the issue if it occurs again or you have more information.