-
Notifications
You must be signed in to change notification settings - Fork 16
Refactor barstools for new versions of things. #35
Conversation
grebe
commented
Dec 19, 2018
- No handlebars (not being published for Scala 2.12)
- Update for new annotations APIs
- Do better options parsing
The BOOM test is failing because of assignment to Also, I've updated options parsing to simply extend the firrtl options parser. I want to do this so you can invoke barstools exactly like firrtl. If someone could provide an example fir + anno and a barstool command doing something interesting, I would like to test that my options parsing + updated annotations handling actually works. |
Is it similar to the error in #34? |
Assignment to For options parsing, Treadle does this: https://github.com/freechipsproject/treadle/blob/b8660e87946b1d5b352462310afa5eb75908e8ca/src/main/scala/treadle/Driver.scala. @seldridge is working on making it better, might be worth checking with him. @chick as well. |
Yes, it's like #34 (number 2 with all the VOIDs). I think it's just an old version of BOOM before all the initialization checks happened. |
5760072
to
9364343
Compare
@edwardcwang I think we need to settle on one format, but I don't think conf is the right one long-term, either. IMO we need a more verbose output from --repl-seq-mem (or a --repl-seq-mem-mdf e.g.) |
For now how about we just have both options and when we figure out the "one format to rule them all", we can add an option for that? I don't think an extra option is going to hurt anybody here. |
I am OK with that. I'll add the old option back in. |
- No handlebars (not being published for Scala 2.12) - Update for new annotations APIs Bump sbt-dependency-graph to 0.9.2 for this scala version
Also, don't rename TestHarness.
…ak as soon as any additional external/blackbox modules are added to the test harness. The test harness should detect external modules and not rename them instead of what is happening here.
083b3f2
to
5952431
Compare
Ensure backwards compatiblity by using -m for MDF input and -n for conf input. Also fix the naming scheme for memory ports.
5952431
to
1789a49
Compare
case ("-n" | "--macro-conf") :: value :: tail => | ||
parseArgs(map + (Macros -> value) + (MacrosFormat -> "conf"), costMap, forcedMemories, tail) | ||
case ("-m" | "--macro-mdf") :: value :: tail => | ||
parseArgs(map + (Macros -> value) + (MacrosFormat -> "mdf"), costMap, forcedMemories, tail) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if they specify both?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will take the last option specified. I think this is intuitive enough behavior to leave it as is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for the hard work
This provides a data structure wrapper around the existing memory conf format which contains both reading and writing methods, making it easier to write code that needs to read the format.
This provides a data structure wrapper around the existing memory conf format which contains both reading and writing methods, making it easier to write code that needs to read the format.
This provides a data structure wrapper around the existing memory conf format which contains both reading and writing methods, making it easier to write code that needs to read the format.
* Copy MemConf.scala from ucb-bar/barstools#35 into memlib. This provides a data structure wrapper around the existing memory conf format which contains both reading and writing methods, making it easier to write code that needs to read the format. * Add MemConf tests and use a Map[MemPort, Int] for port lists instead of a Seq[MemPort] which is a bit less fragile.
…ce#1041) * Copy MemConf.scala from ucb-bar/barstools#35 into memlib. This provides a data structure wrapper around the existing memory conf format which contains both reading and writing methods, making it easier to write code that needs to read the format. * Add MemConf tests and use a Map[MemPort, Int] for port lists instead of a Seq[MemPort] which is a bit less fragile.
* Copy MemConf.scala from ucb-bar/barstools#35 into memlib. This provides a data structure wrapper around the existing memory conf format which contains both reading and writing methods, making it easier to write code that needs to read the format. * Add MemConf tests and use a Map[MemPort, Int] for port lists instead of a Seq[MemPort] which is a bit less fragile.