GaloisInc / crucible

Crucible is a library for symbolic simulation of imperative programs
628 stars 42 forks source link

`crux-mir`: Restore `--no-model-internal-atomics` #1148

Open RyanGlScott opened 9 months ago

RyanGlScott commented 9 months ago

https://github.com/GaloisInc/crucible/pull/730 originally added a flag to crux-mir's translate_libs.sh script to build it in a way such that different thread interleavings are not modeled:

https://github.com/GaloisInc/crucible/blob/a8839cda3f1570ff921237ce48606a006cd26e0a/crux-mir/Concurrency.md?plain=1#L15-L22

Unfortunately, I overlooked the existence of this --no-model-internal-atomics flag when I worked on https://github.com/GaloisInc/crucible/pull/1096, and as such, https://github.com/GaloisInc/crucible/pull/1096 accidentally removed the flag altogether. What's more, I was not aware of this because the concurrency-related parts of crux-mir are not extensively tested in the CI. We should:

  1. Restore the flag, and
  2. Add some test cases that demonstrate it.