-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use Lumberjack for crux output of messages, exceptions, CruxSimulation, and ProvedGoals. #755
Conversation
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.
Assuming CI passes, LGTM.
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.
This is excellent. I love having more consistent output from all of the Crux instantiations. I don't see any changes to the crux-mir
test output files, though. Do they still go through?
Thanks! Not all of crux-mir is passing yet; I don't have the right configuration to run them locally, so I'm patching them up based on CI results and will get them green before I merge. |
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.
Seems like a good improvement to me!
I looked at the crux-mir Is it intentional that |
… crux-mir output duplication.
0c77b2b
to
b6d3fa1
Compare
This also standardizes the output for various front-ends, ergo the changes in the golden test results, which are all just wording and formatting changes, nothing substantive.
The general approach here is to move the formatting of output into the LogAction provided by lumberjack. In the core code, anything which should be output or logged is done via a call with the original, structured object. The LogActions are usually created at initialization time and different LogActions can be used for different configurations (e.g. if Crux is outputting to something like an IDE, it could use a LogAction that emits JSON-formatted messages instead of the colorized, human readable messages that the default loggers emit). By passing the structure object to the output routine, more decisions can be made on how to handle the output.