Conversation
RyanGlScott
left a comment
There was a problem hiding this comment.
Thanks! For posterity's sake, see also GaloisInc/cryptol#1967 for the Cryptol-side changes.
(We will also want to drop CVC4 support in Crux as well.)
| where n is the board-size | ||
|
|
||
| You may find that cvc4 takes a long time for solutions bigger than 5. | ||
| You may find that cvc5 takes a long time for solutions bigger than 5. |
There was a problem hiding this comment.
Happily, cvc5 does seem to do a little better than cvc4 on this problem. On my machine, it wasn't until around n = 18 where cvc5 started to chug noticeably.
| SBV.Boolector -> (["--version"] , "") | ||
| SBV.Bitwuzla -> (["--version"] , "") | ||
| SBV.CVC4 -> (["--version"] , "This is CVC4 version ") | ||
| SBV.CVC4 -> error "cvc4 not currently supported" |
There was a problem hiding this comment.
Perhaps this should say "not supported" rather than "not currently supported", given that we don't plan on re-adding cvc4 support in the future.
|
We shouldn't drop CVC4 support entirely until it's been deprecated in at least one and ideally two releases (once to warn, once to hide by default) so most of this seems premature. It is going to be marked warn-deprecated in the release currently under way (1.5) so in principle we can remove it entirely after we release 1.6. |
|
Right on. In that case we can either keep this MR here and update it later, or drop it entirely. This sort of work (removing small bits of code throughout the codebase) is something Claude is good at, so it is easy to recreate. |
|
My inclination would be to keep it, although it'll need to be rebased occasionally. If you like, I can take charge of it and attend to that in the future... |
|
Sure thing, happy to hand it over! |
643562a to
9d815fb
Compare
|
Ok, I rebased it (since it conflicted with last night's deprecation changes) and stuck on a commit to avoid the use of I'm going to mark it as a draft until the necessary deprecation cycle steps happen so it doesn't get merged by accident. |
|
Hmm, intriguing, looks like maybe we can't fail on certain cvc4 triggers? Will look into it |
|
9d815fb subtly changed SAW's behavior vis-à-vis exception handling. Before, After 9d815fb, Why is the My suggestion would be to refactor the code which defines |
|
It had previously been using However, it also looks like the id numbers arising from that enumeration appear in the on-disk solver cache, so changing it will cause existing solver caches to come unstuck. (Is that right? It sure appears that Therefore I think we should change (I also note in passing that the |
I believe so, yes. A bit unfortunate, but probably not much we can do there, short of a cache migration strategy. I'm not particularly excited about doing that, so I say we just accept the fact that we'll incur cache misses on old caches going forward.
At a high level, each
This all sounds reasonable to me. |
If I follow the docs, I think that means the constructors of |
9d815fb to
0ba7a59
Compare
* update documentation to use cvc5 * remove cvc4 related functions from the codebase * update tests to use cvc5 * use placeholders where SBV mentions cvc4 * add CHANGES entry
0ba7a59 to
be149b5
Compare
|
The version probe stuff has been merged in #3082, and I've rebased over that. |
|
FYI: I have opened GaloisInc/crucible#1766 to drop CVC4 support on the Crucible side. We should make sure to include these changes here as a submodule bump when we decide to pull the trigger on removing CVC4 support. |
|
Properly speaking, that shouldn't be until after the next SAW release; in the last release the CVC4 ops were warn-deprecated, and at least in principle they should go out in one release as hide-deprecated before they're removed entirely. |
In support of GaloisInc/cryptol#1806
Created with Claude Code and manually reviewed and edited.