-
Notifications
You must be signed in to change notification settings - Fork 12
Unified wrapper script for CPROVER tools #4
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
Conversation
tautschnig
left a comment
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.
I've implementation suggestions via 2 extra commits, which should be squashed. Let me know what you think about my comments.
2ls.inc
Outdated
| OPTIONS["termination"]="--termination --competition-mode" | ||
| OPTIONS["overflow"]="--k-induction --signed-overflow-check --competition-mode" | ||
| OPTIONS["memsafety"]="--k-induction --pointer-check --memory-leak-check --bound\ | ||
| s-check --competition-mode" |
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.
May I suggest to break this line at a whitespace?
For all of these: would it be bad idea to move --k-induction --competiton-mode into the run() function, at which point CBMC and 2LS would be using the same OPTIONS? Thus the entire OPTIONS declaration could be moved into the common file, and values could be overwritten when necessary?
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.
That's possible if $PROP is available in the the run() function so that I can distinguish between safety and termination.
2ls.inc
Outdated
| run() | ||
| { | ||
| $TOOL_BINARY --graphml-witness $LOG.witness $BIT_WIDTH $PROPERTY --function $\ | ||
| ENTRY $BM >> $LOG.ok 2>&1 |
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.
Again, I would suggest to break the line at a whitespace.
Run the Makefile to build the tool wrapper script from tool-wrapper.inc and tool-specific includes which define tool and executable names as well as a run function, currently provided for CBMC and 2LS. tool-wrapper.inc contains a mapping from SV-COMP properties to the CPROVER property instrumentation options.
8b39b01 to
5e479a5
Compare
|
@tautschnig, I have squashed your Makefile improvements and moved the options block into the common wrapper script. |
tautschnig
left a comment
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.
Looks good to me!
The Makefile now builds the tool wrapper script from tool-wrapper.inc
and tool-specific includes which define tool and executable names
as well as mappings from properties to tool options,
currently provided for CBMC and 2LS.