From ac5bf6a4c953fe39fa97d77bc620c515dc9e1622 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 13 Aug 2015 18:19:01 -0700 Subject: Make error reporting reentrant --- src/main/scala/Chisel/Builder.scala | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/main/scala/Chisel/Builder.scala') diff --git a/src/main/scala/Chisel/Builder.scala b/src/main/scala/Chisel/Builder.scala index 79d1ab18..41fbb3b5 100644 --- a/src/main/scala/Chisel/Builder.scala +++ b/src/main/scala/Chisel/Builder.scala @@ -67,6 +67,7 @@ private class DynamicContext { val components = ArrayBuffer[Component]() var currentModule: Option[Module] = None val parameterDump = new ParameterDump + val errors = new ErrorLog } private object Builder { @@ -89,6 +90,9 @@ private object Builder { cmd.id } + def errors = dynamicContext.errors + def error(m: => String) = errors.error(m) + def getParams: Parameters = currentParamsVar.value def paramsScope[T](p: Parameters)(body: => T): T = { currentParamsVar.withValue(p)(body) @@ -96,8 +100,12 @@ private object Builder { def build[T <: Module](f: => T): Circuit = { dynamicContextVar.withValue(Some(new DynamicContext)) { + errors.info("Elaborating design...") val mod = f mod.setRef(globalNamespace.name(mod.name)) + errors.checkpoint() + errors.info("Done elaborating.") + Circuit(components.last.name, components, globalRefMap, parameterDump) } } -- cgit v1.2.3