-
Notifications
You must be signed in to change notification settings - Fork 112
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
Allow /prune:0
to disable pruning
#848
Conversation
I would have made it `/prune:{1,0}`, but it's harder to make that backward compatible with the current behavior.
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.
a) it's turned on earlier on the command line
Applying that pattern to all options would introduce a lot of duplication. Why not remove the earlier invocation?
b) Boogie is being used from another system like Dafny.
Can you elaborate? Boogie is invoked as a library by Dafny
The goal is indeed confusing. It seems odd to have both |
The main use case I have in mind is being able to pass I think |
I think I may be overestimating the likelihood of backward compatibility issues, having taken a look around at scripts that exist. So I'm now inclined to make this |
Why would you need a Boogie change for that? Seems like that would be a Dafny change
Does hiding the option, as Dafny does with the other Dafny-language-developer options, not work? |
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 still don't understand the use-case, but this seems fine to me.
That would also work, but this is more general. It ensures that, at the Boogie level, you can always choose specifically whether you want pruning or not, whatever the default is (or however it happened to be set earlier in whatever pipeline you're using). I think it's similar to the reasoning for |
Do you mean when you invoke the Boogie CLI?
You could already do that by adding or removing |
Or anything that passes on CLI arguments to Boogie, like Dafny.
In principle, yes. But a frequent case I encounter is the use of scripts that pass one set of arguments to Boogie and then allow additional arguments to the script to add to the built-in set. When doing that, it's often useful to add an argument that reverses a previous argument. Because of this, I generally like all tools to have the ability to set boolean flags explicitly to true or false, rather than just a flag that toggles away from the default. The way Dafny uses Boogie as a library also works essentially like that script setup. |
I see. Even though Dafny invokes Boogie as a library, it still allows passing CLI arguments to Boogie, and those can override options that were set programatically. |
Add a
/noprune
flag to turn off pruning. It's off by default, but this can be convenient if a) it's turned on earlier on the command line, or b) Boogie is being used from another system like Dafny.I would have made it
/prune:{1,0}
, but it's harder to make that backward compatible with the current behavior.