Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
be03f6f
genmc: remove macOS FIXMEs
RalfJung Nov 17, 2025
e6a87b5
Merge pull request #4704 from RalfJung/genmc-macos-fixmes
RalfJung Nov 17, 2025
95c9f44
Tree Borrows no longer implies strict provenance
RalfJung Nov 17, 2025
3e3fce1
Merge pull request #4708 from RalfJung/readme-tb
RalfJung Nov 17, 2025
349e276
add shim for `_mm512_maddubs_epi16`
folkertdev Nov 17, 2025
4d7e68c
add shim for `_mm512_permutexvar_epi32`
folkertdev Nov 17, 2025
cf15397
share `permute` shim
folkertdev Nov 17, 2025
7746692
Merge pull request #4705 from folkertdev/avx512-adler32
RalfJung Nov 17, 2025
5d0c9a1
Prepare for merging from rust-lang/rust
Nov 20, 2025
4f00c22
Merge ref 'd2f887349fe3' from rust-lang/rust
Nov 20, 2025
bd940e3
Merge pull request #4713 from rust-lang/rustup-2025-11-20
RalfJung Nov 20, 2025
5e98212
change TreeVisitor to take start_idx instead of tag and remove its Er…
royAmmerschuber Nov 10, 2025
1b683cd
Merge pull request #4710 from royAmmerschuber/feature/tree-visitor
RalfJung Nov 21, 2025
f61601c
impl posix_fallocate + add tests
LorrensP-2158466 Nov 4, 2025
caf1fb9
Prepare for merging from rust-lang/rust
RalfJung Nov 21, 2025
4a08c29
Merge ref 'e22dab387f6b' from rust-lang/rust
RalfJung Nov 21, 2025
81b457e
Merge pull request #4716 from RalfJung/rustup
RalfJung Nov 21, 2025
10389e9
Merge pull request #4664 from LorrensP-2158466/fallocate-as-set_len
RalfJung Nov 21, 2025
dd7fd6d
epoll: make event delivery ready for level-triggered events
RalfJung Nov 23, 2025
19dbded
work around github macos breakage
RalfJung Nov 23, 2025
aff18bf
Merge pull request #4717 from RalfJung/epoll-level
RalfJung Nov 23, 2025
18a597c
Add libc direct tests for (get/set/unset)env functions
eduardorittner Nov 11, 2025
f880f97
Prepare for merging from rust-lang/rust
Nov 24, 2025
ffbe386
Merge ref 'd3e1ccdf40ae' from rust-lang/rust
Nov 24, 2025
6c0ba47
Merge pull request #4679 from eduardorittner/libc-env-tests
RalfJung Nov 24, 2025
4a1c4f4
Merge pull request #4718 from rust-lang/rustup-2025-11-24
RalfJung Nov 24, 2025
698c156
re-enable caching on macos runners
RalfJung Nov 24, 2025
97173a7
Merge pull request #4719 from RalfJung/macos-caching
RalfJung Nov 24, 2025
668eb1a
refactor: clean up unused LLVM SIMD
hulxv Nov 24, 2025
686487b
Merge pull request #4715 from hulxv/refactor/clean-up-unused-llvm-simd
RalfJung Nov 24, 2025
0cb11c5
libc-env test: use C string literals
RalfJung Nov 24, 2025
1d8575f
Merge pull request #4721 from RalfJung/libc-env-cstr
RalfJung Nov 24, 2025
e9e3c65
Prepare for merging from rust-lang/rust
Nov 25, 2025
5b366f9
Merge ref 'c871d09d1cc3' from rust-lang/rust
Nov 25, 2025
0b4d1bf
update lockfile
RalfJung Nov 25, 2025
59a1b11
fix build with --all-features
RalfJung Nov 25, 2025
83b11c5
try enabling riscv runner again
RalfJung Nov 25, 2025
6bb1fef
Merge pull request #4722 from rust-lang/rustup-2025-11-25
RalfJung Nov 25, 2025
9f064da
libc_util: add helpers to deal with errno-style functions
RalfJung Nov 25, 2025
05f0019
add some shared helpers for epoll tests
RalfJung Nov 25, 2025
5b2d48b
Merge pull request #4724 from RalfJung/libc-tests
RalfJung Nov 25, 2025
582e6e3
libc_utils: fix panic caller location
RalfJung Nov 25, 2025
41f3a7a
Merge pull request #4726 from RalfJung/libc-epoll
RalfJung Nov 25, 2025
7a72e45
preliminary refactor for wildcard reborrows
royAmmerschuber Nov 24, 2025
9a26fb2
Merge pull request #4723 from royAmmerschuber/feature/wildcard-root-p…
RalfJung Nov 25, 2025
2a02a72
Prepare for merging from rust-lang/rust
RalfJung Nov 28, 2025
956a6c0
Merge ref '88bd39beb342' from rust-lang/rust
RalfJung Nov 28, 2025
bfa2bfa
test that target features given in the target spec are enabled
RalfJung Nov 27, 2025
ff0910a
clippy
RalfJung Nov 28, 2025
d659758
Merge pull request #4730 from RalfJung/rustup
RalfJung Nov 28, 2025
a4b65b8
Prepare for merging from rust-lang/rust
Nov 29, 2025
0670c51
Merge ref '1eb0657f7877' from rust-lang/rust
Nov 29, 2025
b9bad1e
Merge pull request #4734 from rust-lang/rustup-2025-11-29
RalfJung Nov 29, 2025
c357b65
genmc/build,api: Move wrappers around GenMC API to single file
michaliskok Nov 27, 2025
e2c62e4
genmc/api: Use ERROR_ON instead of if (cond) ERROR()
michaliskok Nov 27, 2025
286fac0
genmc/api: Prefer early exits to joining if/else clauses
michaliskok Nov 27, 2025
d2176c3
genmc/api: Don't use macros for mutex state
michaliskok Nov 28, 2025
fafd6de
genmc/api: Remove unnecessary comments
michaliskok Nov 27, 2025
5e6d9fa
genmc/api: Use returned value from handleFree()
michaliskok Nov 27, 2025
0bcadab
genmc/api: Use returned value for handleExecutionEnd()
michaliskok Nov 28, 2025
1302f6c
genmc,tests: Throw when GenMC runs out of memory
michaliskok Nov 29, 2025
c9f27c4
diagnostics: Explain why programs might run OOM in GenMC mode
michaliskok Nov 29, 2025
68a81c4
genmc/build,tests: Update GenMC version to 0.16.1
michaliskok Nov 28, 2025
a121102
Merge pull request #4733 from michaliskok/genmc-bug-fixes
RalfJung Nov 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 9 additions & 13 deletions src/tools/miri/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ jobs:
os: ubuntu-24.04-arm
multiarch: armhf
gcc_cross: arm-linux-gnueabihf
- host_target: riscv64gc-unknown-linux-gnu
os: ubuntu-latest
multiarch: riscv64
gcc_cross: riscv64-linux-gnu
qemu: true
# Ubuntu mirrors are not reliable enough for these architectures
# (see <https://bugs.launchpad.net/ubuntu/+bug/2130309>).
# - host_target: riscv64gc-unknown-linux-gnu
# os: ubuntu-latest
# multiarch: riscv64
# gcc_cross: riscv64-linux-gnu
# qemu: true
# - host_target: s390x-unknown-linux-gnu
# os: ubuntu-latest
# multiarch: s390x
Expand All @@ -59,13 +59,6 @@ jobs:
HOST_TARGET: ${{ matrix.host_target }}
steps:
- uses: actions/checkout@v4
- name: apt update
if: ${{ startsWith(matrix.os, 'ubuntu') }}
# The runners seem to have outdated apt repos sometimes
run: sudo apt update
- name: install qemu
if: ${{ matrix.qemu }}
run: sudo apt install qemu-user qemu-user-binfmt
- name: install multiarch
if: ${{ matrix.multiarch != '' }}
run: |
Expand All @@ -75,10 +68,13 @@ jobs:
sudo dpkg --add-architecture ${{ matrix.multiarch }}
# Ubuntu Ports often has outdated mirrors so try a few times to get the apt repo
for TRY in $(seq 3); do
{ sudo apt update && break; } || sleep 30
{ sudo apt update && break; } || sleep 60
done
# Install needed packages
sudo apt install $(echo "libatomic1: zlib1g-dev:" | sed 's/:/:${{ matrix.multiarch }}/g')
- name: install qemu
if: ${{ matrix.qemu }}
run: sudo apt install qemu-user qemu-user-binfmt
- uses: ./.github/workflows/setup
with:
toolchain_flags: "--host ${{ matrix.host_target }}"
Expand Down
11 changes: 0 additions & 11 deletions src/tools/miri/Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -959,7 +959,6 @@ dependencies = [
"serde_json",
"smallvec",
"tempfile",
"tikv-jemalloc-sys",
"ui_test",
]

Expand Down Expand Up @@ -1504,16 +1503,6 @@ dependencies = [
"cfg-if",
]

[[package]]
name = "tikv-jemalloc-sys"
version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b"
dependencies = [
"cc",
"libc",
]

[[package]]
name = "tinystr"
version = "0.8.2"
Expand Down
1 change: 0 additions & 1 deletion src/tools/miri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ nix = { version = "0.30.1", features = ["mman", "ptrace", "signal"], optional =
ipc-channel = { version = "0.20.0", optional = true }
capstone = { version = "0.13", optional = true }

# FIXME(genmc,macos): Add `target_os = "macos"` once https://github.com/dtolnay/cxx/issues/1535 is fixed.
[target.'cfg(all(target_os = "linux", target_pointer_width = "64", target_endian = "little"))'.dependencies]
genmc-sys = { path = "./genmc-sys/", version = "0.1.0", optional = true }

Expand Down
2 changes: 0 additions & 2 deletions src/tools/miri/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -496,8 +496,6 @@ to Miri failing to detect cases of undefined behavior in a program.
of Rust will be stricter than Tree Borrows. In other words, if you use Tree Borrows,
even if your code is accepted today, it might be declared UB in the future.
This is much less likely with Stacked Borrows.
Using Tree Borrows currently implies `-Zmiri-strict-provenance` because integer-to-pointer
casts are not supported in this mode, but that may change in the future.
* `-Zmiri-tree-borrows-no-precise-interior-mut` makes Tree Borrows
track interior mutable data on the level of references instead of on the
byte-level as is done by default. Therefore, with this flag, Tree
Expand Down
12 changes: 3 additions & 9 deletions src/tools/miri/genmc-sys/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ mod downloading {
/// The GenMC repository the we get our commit from.
pub(crate) const GENMC_GITHUB_URL: &str = "https://github.com/MPI-SWS/genmc.git";
/// The GenMC commit we depend on. It must be available on the specified GenMC repository.
pub(crate) const GENMC_COMMIT: &str = "aa10ed65117c3291524efc19253b5d443a4602ac";
pub(crate) const GENMC_COMMIT: &str = "22d3d0b44dedb4e8e1aae3330e546465e4664529";

/// Ensure that a local GenMC repo is present and set to the correct commit.
/// Return the path of the GenMC repo and whether the checked out commit was changed.
Expand Down Expand Up @@ -178,14 +178,8 @@ fn compile_cpp_dependencies(genmc_path: &Path, always_configure: bool) {
// These are all the C++ files we need to compile, which needs to be updated if more C++ files are added to Miri.
// We use absolute paths since relative paths can confuse IDEs when attempting to go-to-source on a path in a compiler error.
let cpp_files_base_path = Path::new("cpp/src/");
let cpp_files = [
"MiriInterface/EventHandling.cpp",
"MiriInterface/Exploration.cpp",
"MiriInterface/Mutex.cpp",
"MiriInterface/Setup.cpp",
"MiriInterface/ThreadManagement.cpp",
]
.map(|file| std::path::absolute(cpp_files_base_path.join(file)).unwrap());
let cpp_files = ["MiriInterface/Exploration.cpp", "MiriInterface/Setup.cpp"]
.map(|file| std::path::absolute(cpp_files_base_path.join(file)).unwrap());

let mut bridge = cxx_build::bridge("src/lib.rs");
// FIXME(genmc,cmake): Remove once the GenMC debug setting is available in the config.h file.
Expand Down
5 changes: 4 additions & 1 deletion src/tools/miri/genmc-sys/cpp/include/MiriInterface.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,11 @@ struct MiriGenmcShim : private GenMCDriver {
void handle_fence(ThreadId thread_id, MemOrdering ord);

/**** Memory (de)allocation ****/

auto handle_malloc(ThreadId thread_id, uint64_t size, uint64_t alignment) -> uint64_t;
auto handle_free(ThreadId thread_id, uint64_t address) -> bool;

/** Returns null on success, or an error string if an error occurs. */
auto handle_free(ThreadId thread_id, uint64_t address) -> std::unique_ptr<std::string>;

/**** Thread management ****/
void handle_thread_create(ThreadId thread_id, ThreadId parent_id);
Expand Down
265 changes: 0 additions & 265 deletions src/tools/miri/genmc-sys/cpp/src/MiriInterface/EventHandling.cpp

This file was deleted.

Loading
Loading