You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add genmc-sys crate for building GenMC C++ code.
- Implemented program features:
- Handling of atomic loads, stores, allocations and deallocations.
- Implement consistent address allocations for globals
- Non-global addresses allocated by GenMC.
- Limitation: No address randomization.
- Limitation: No address reuse.
- Handling of non-atomic memory accesses.
- Limitation: need to split up NA reads and stores into max 8 byte chunks.
- Limitation: no mixed size access support.
- Limitation: Incomplete (unsound) handling of uninitialized memory.
- Implement Pointer conversions to and from GenMC
- Limitation: Aliasing model checking must be disabled.
- Handling of Read-Modify-Write, Compare-Exchange and Atomic Exchange operations.
- Limitation: Compare-Exchange currently ignores possibility of spurious failures.
- Limitation: Compare-Exchange failure memory ordering is ignored.
- Handling of thread creation and finishing.
- Added Miri to GenMC thread id mapping.
- Implement mutex lock, try_lock and unlock.
- Make use of annotations to reduce number of blocked executions for programs with mutexes.
- Add estimation mode for Miri-GenMC.
- Limitation: Printing currently handled on C++ side (Should be moved once VerificationResult is available to Rust code)
- Thread scheduling in Miri done through GenMC, add loop over eval_entry function.
- Rebase GenMC to use new scheduler.
- Added GenMC `__VERIFIER_assume` equivalent for Miri (`miri_genmc_verifier_assume`)
- Add warnings for GenMC mode for unsupported features.
- Add a lot of test, including translation of GenMC litmus tests.
- Only run tests if 'genmc' feature enabled.
- WIP: try implementing NonNullUniquePtr wrapper for CXX.
- WIP: work on mixed atomic/non-atomics.
- Partially working, some issues with globals
- FIX: Make naming consistent with GenMC for blocked execution
Squashed changes:
- Add git support to build, move C++ files into genmc-sys crate
- Implement building GenMC-Miri after GenMC codebase split.
- Cleanup genmc-sys build, remove walkdir dependency.
- Fix printing after LLVM IO removal.
- WIP: temporarily point GenMC repo to private branch.
- WIP: Work on building without LLVM dependency.
- Fix build for Ubuntu 22
- Disable stacked borrows for GenMC tests
- Get Miri-GenMC building again after rebasing onto GenMC release 0.12.0
- Translate some Loom tests for Miri-GenMC.
- Add error for using native-lib with GenMC mode.
- Remove on_stack_empty handling except for main thread.
- Rename 'stuck' to 'blocked' to be in line with GenMC terminology.
- Enable tests that were blocked on rust-lang #116707
- Remove redundant file in compilation step.
- Clean up InterpResult<'tcx, ()>
- Improve program exit handling, remove 'thread_stack_empty' hack, clean up terminator cache leftovers.
0 commit comments