From e8f90ef5011cf488c8eb49bd578fbb95ae841512 Mon Sep 17 00:00:00 2001 From: Jiuyang Liu Date: Tue, 8 Dec 2020 02:49:35 +0800 Subject: (encore) Builder: use LazyLogging.logger.warn to print elaboration message (#1670) * Builder: use LazyLogging.logger.warn to print elaboration message * add deprecation for chisel3.internal.ErrorLog.info. * add test to check elaboration message still exist. Co-authored-by: Kevin Laeufer --- core/src/main/scala/chisel3/internal/Builder.scala | 7 ++++--- core/src/main/scala/chisel3/internal/Error.scala | 1 + src/test/scala/chiselTests/stage/ChiselMainSpec.scala | 10 ++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/src/main/scala/chisel3/internal/Builder.scala b/core/src/main/scala/chisel3/internal/Builder.scala index d665b7bc..1c3a0005 100644 --- a/core/src/main/scala/chisel3/internal/Builder.scala +++ b/core/src/main/scala/chisel3/internal/Builder.scala @@ -10,6 +10,7 @@ import chisel3.internal.firrtl._ import chisel3.internal.naming._ import _root_.firrtl.annotations.{CircuitName, ComponentName, IsMember, ModuleName, Named, ReferenceTarget} import chisel3.internal.Builder.Prefix +import logger.LazyLogging import scala.collection.mutable @@ -324,7 +325,7 @@ private[chisel3] class DynamicContext() { val namingStack = new NamingStack } -private[chisel3] object Builder { +private[chisel3] object Builder extends LazyLogging { // Represents the current state of the prefixes given type Prefix = List[String] @@ -638,11 +639,11 @@ private[chisel3] object Builder { private [chisel3] def build[T <: RawModule](f: => T, dynamicContext: DynamicContext): (Circuit, T) = { dynamicContextVar.withValue(Some(dynamicContext)) { checkScalaVersion() - errors.info("Elaborating design...") + logger.warn("Elaborating design...") val mod = f mod.forceName(None, mod.name, globalNamespace) errors.checkpoint() - errors.info("Done elaborating.") + logger.warn("Done elaborating.") (Circuit(components.last.name, components, annotations), mod) } diff --git a/core/src/main/scala/chisel3/internal/Error.scala b/core/src/main/scala/chisel3/internal/Error.scala index bf0b9d20..6a1794ce 100644 --- a/core/src/main/scala/chisel3/internal/Error.scala +++ b/core/src/main/scala/chisel3/internal/Error.scala @@ -102,6 +102,7 @@ private[chisel3] class ErrorLog { errors += new Warning(m, getUserLineNumber) /** Emit an informational message */ + @deprecated("This method will be removed in 3.5", "3.4") def info(m: String): Unit = println(new Info("[%2.3f] %s".format(elapsedTime/1e3, m), None)) diff --git a/src/test/scala/chiselTests/stage/ChiselMainSpec.scala b/src/test/scala/chiselTests/stage/ChiselMainSpec.scala index 679677d0..a11b8a44 100644 --- a/src/test/scala/chiselTests/stage/ChiselMainSpec.scala +++ b/src/test/scala/chiselTests/stage/ChiselMainSpec.scala @@ -132,6 +132,16 @@ class ChiselMainSpec extends AnyFeatureSpec with GivenWhenThen with Matchers wit } info("As a Chisel user") + info("I compile a design") + Feature("show elaborating message") { + runStageExpectFiles( + ChiselMainTest(args = Array("-X", "high"), + generator = Some(classOf[SameTypesModule]), + stdout = Some("Done elaborating.") + ) + ) + } + info("I screw up and compile some bad code") Feature("Stack trace trimming") { Seq( -- cgit v1.2.3