-
Notifications
You must be signed in to change notification settings - Fork 414
genmc: Build without LLVM; adjust to API changes #4697
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
|
Looks like CI has some trouble: CI should be using g++ 13.2. Is that not new enough for std::print...? |
|
Yeah apparently that needs GCC 14.1. I don't know whether there's a way to get that on Github's CI. But even if there is, if not even Ubuntu 24 has a new enough GCC I'm quite concerned that this might just be too recent. New GCC versions tend to spread very slowly and we can't make it too hard for people to build Miri. |
I'm a bit surprised that cmake configure didn't fail. But anyway I'll ensure it builds with 13.2. |
GenMC (v0.14.1) no longer depends on LLVM when built as a library. This commit adjust genmc building and shim accordingly.
GenMC v0.14.1 does not throw an error internally if the config is invalid, but rather returns an appropriate error value. This commit has setup code in Miri check the returned value, and exit if there are any errors.
The new error-reporting mechanism of GenMC changed its public API. This commit adjusts the Miri interface accordingly (all driver calls need an extra argument that represents possible debugging information).
When GenMC says that an execution should not be explored further, Miri needs to know why (e.g., so that it returns an appropriate exit value). Until now, some (erroneous) heuristics were used for that. This commit changes the Miri/GenMC API to check the scheduling result of GenMC (that now reflects the "stop type").
Now GenMC can be built as a standalone library, without LLVM dependencies.
13bc75b to
89a97b9
Compare
|
@rustbot ready |
|
Looks great, thanks! |
This PR bumps the GenMC version to 0.15.1:
r? @RalfJung
(Each commit can be reviewed separately.)