From 4778e22a0fe1f894d498d49d0d14e7393a9083b6 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Fri, 30 Jan 2026 22:51:04 +0800 Subject: [PATCH] Bump to mill 1.1.0 Signed-off-by: Qiming Chu --- build.sc => build.mill | 32 +++++++++++++++++++------------- common.sc => common.mill | 21 +++++++++------------ 2 files changed, 28 insertions(+), 25 deletions(-) rename build.sc => build.mill (63%) rename common.sc => common.mill (57%) diff --git a/build.sc b/build.mill similarity index 63% rename from build.sc rename to build.mill index d2a3ff7..641f502 100644 --- a/build.sc +++ b/build.mill @@ -1,29 +1,35 @@ +//| mill-version: 1.1.0 +//| mill-jvm-version: system +// Use the system JDK (e.g. JDK17) to avoid Scala 2.13.10 crashes like +// "bad constant pool index" when Mill runs on its own newer JDK. + +package build + import mill._ import mill.scalalib._ import mill.scalalib.publish._ -import $file.common object v { val scala = "2.13.10" val chiselCrossVersions = Map( - "3.5.6" -> (ivy"edu.berkeley.cs::chisel3:3.5.6", ivy"edu.berkeley.cs:::chisel3-plugin:3.5.6"), - "3.6.0" -> (ivy"edu.berkeley.cs::chisel3:3.6.0", ivy"edu.berkeley.cs:::chisel3-plugin:3.6.0"), - "5.0.0" -> (ivy"org.chipsalliance::chisel:5.0.0", ivy"org.chipsalliance:::chisel-plugin:5.0.0"), + "3.5.6" -> (mvn"edu.berkeley.cs::chisel3:3.5.6", mvn"edu.berkeley.cs:::chisel3-plugin:3.5.6"), + "3.6.0" -> (mvn"edu.berkeley.cs::chisel3:3.6.0", mvn"edu.berkeley.cs:::chisel3-plugin:3.6.0"), + "5.0.0" -> (mvn"org.chipsalliance::chisel:5.2.0", mvn"org.chipsalliance:::chisel-plugin:5.2.0"), + "6.7.0" -> (mvn"org.chipsalliance::chisel:6.7.0", mvn"org.chipsalliance:::chisel-plugin:6.7.0"), + "7.7.0" -> (mvn"org.chipsalliance::chisel:7.7.0", mvn"org.chipsalliance:::chisel-plugin:7.7.0"), ) - val scalatest = ivy"org.scalatest::scalatest:3.2.0" - val scalapar = ivy"org.scala-lang.modules::scala-parallel-collections:1.0.4" + val scalatest = mvn"org.scalatest::scalatest:3.2.0" + val scalapar = mvn"org.scala-lang.modules::scala-parallel-collections:1.0.4" } object hardfloat extends Cross[Hardfloat](v.chiselCrossVersions.keys.toSeq) trait Hardfloat - extends common.HardfloatModule + extends build.HardfloatModule with HardfloatPublishModule with Cross.Module[String] { - override def scalaVersion = T(v.scala) - - override def millSourcePath = os.pwd / "hardfloat" + override def scalaVersion = v.scala def chiselModule = None @@ -37,12 +43,12 @@ trait Hardfloat object hardfloatdut extends Cross[HardfloatDut](v.chiselCrossVersions.keys.toSeq) trait HardfloatDut - extends common.HardfloatTestModule + extends build.HardfloatTestModule with Cross.Module[String] { - override def scalaVersion = T(v.scala) + override def scalaVersion = v.scala - override def millSourcePath = os.pwd / "hardfloat" / "tests" + override def moduleDir = super.moduleDir / os.up / "hardfloat" / "tests" def hardfloatModule = hardfloat(crossValue) diff --git a/common.sc b/common.mill similarity index 57% rename from common.sc rename to common.mill index 8ccac6a..f74aaea 100644 --- a/common.sc +++ b/common.mill @@ -1,3 +1,5 @@ +package build + import mill._ import mill.scalalib._ @@ -10,18 +12,18 @@ trait HasChisel def chiselPluginJar: T[Option[PathRef]] - override def scalacOptions = T(super.scalacOptions() ++ chiselPluginJar().map(path => s"-Xplugin:${path.path}")) + override def scalacOptions = super.scalacOptions() ++ chiselPluginJar().map(path => s"-Xplugin:${path.path}") - override def scalacPluginClasspath: T[Agg[PathRef]] = T(super.scalacPluginClasspath() ++ chiselPluginJar()) + override def scalacPluginClasspath: T[Seq[PathRef]] = super.scalacPluginClasspath() ++ chiselPluginJar() // Define these for building chisel from ivy def chiselIvy: Option[Dep] - override def ivyDeps = T(super.ivyDeps() ++ chiselIvy) + override def mvnDeps = super.mvnDeps() ++ chiselIvy def chiselPluginIvy: Option[Dep] - override def scalacPluginIvyDeps: T[Agg[Dep]] = T(super.scalacPluginIvyDeps() ++ chiselPluginIvy.map(Agg(_)).getOrElse(Agg.empty[Dep])) + override def scalacPluginMvnDeps: T[Seq[Dep]] = super.scalacPluginMvnDeps() ++ chiselPluginIvy.map(Seq(_)).getOrElse(Seq.empty[Dep]) } trait HardfloatModule @@ -36,7 +38,7 @@ trait HardfloatTestModule def chiselModule = hardfloatModule.chiselModule - def chiselPluginJar: T[Option[PathRef]] = T(hardfloatModule.chiselPluginJar()) + def chiselPluginJar: T[Option[PathRef]] = hardfloatModule.chiselPluginJar() def chiselIvy: Option[Dep] = hardfloatModule.chiselIvy @@ -48,12 +50,7 @@ trait HardfloatTestModule override def moduleDeps = super.moduleDeps ++ Some(hardfloatModule) - override def defaultCommandName() = "test" + override def defaultTask() = "test" - override def ivyDeps = T( - super.ivyDeps() ++ Agg( - scalatestIvy, - scalaparIvy - ) - ) + override def mvnDeps = super.mvnDeps() ++ Seq(scalatestIvy, scalaparIvy) } \ No newline at end of file