diff options
| author | Schuyler Eldridge | 2021-02-10 22:19:09 -0500 |
|---|---|---|
| committer | GitHub | 2021-02-11 03:19:09 +0000 |
| commit | 2b5466c7773c8cd7a08c48aa00d9365cbb205fd2 (patch) | |
| tree | 0bdc21b84f51ab9fb3e1a8e37a708ec2a3b186ef /core/src/main/scala/chisel3/Module.scala | |
| parent | f41e762830c5af1a92de9d8ee26e2b0de52b76ad (diff) | |
Fix stack trace trimming across Driver/ChiselStage (#1771)
* Handle MemTypeBinding in Analog
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
* Fix stack trace trimming across ChiselStage
Fix bug in stack trace trimming behavior. Now, the following is what
happens:
1. The Builder, if catching accumulated errors, will now throw a
ChiselException with a Scala-trimmed Stack trace. Previously, this
would throw the full excpetion.
2. The Elaborate phase handles stack trace trimming. By default, any
Throwable thrown during elaboration will have its stack
trace *mutably* trimmed and is rethrown. A logger.error is printed
stating that there was an error during elaboration and how the user
can turn on the full stack trace. If the --full-stacktrace option
is on, then the Throwable is not caught and only the first
logger.error (saying that elaboration failed) will be printed.
3. ChiselStage (the class), ChiselStage$ (the object), and ChiselMain
all inherit the behavior of (2).
Mutable stack trace trimming behavior is moved into an implicit
class (previously this was defined on ChiselException only) so this
can be applied to any Throwable.
No StageErrors are now thrown anymore. However, StageErrors may still
be caught by ChiselMain (since it is a StageMain).
Testing is added for ChiselMain, ChiselStage, and ChiselStage$ to test
all this behavior.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Diffstat (limited to 'core/src/main/scala/chisel3/Module.scala')
0 files changed, 0 insertions, 0 deletions
