Explore the inner workings of miri, an interpreter for Rust's MIR (Mid-level Intermediate Representation), in this comprehensive conference talk. Delve into the architecture of miri, its role in Rust's compile-time evaluation capabilities, and its ability to simulate low-level machine operations. Learn how miri interprets both safe and unsafe Rust code, including complex libraries like the stdlib hashmap. Discover the intricacies of memory representation and reasoning, allocation handling, and evaluation contexts. Gain insights into miri's capabilities for Rust development, including its approach to local variables, statements, operators, and function calls. Understand how miri manages heap allocations, uplifts intrinsics, and handles file qualification, providing a deeper understanding of this crucial tool in the Rust ecosystem.
Overview
Syllabus
intro
allocations and log IDs
memory type
evaluation context
locals
step
statement
operators
operands
evaluation
terminator
function calls
heap allocations
uplifting intrinsics
cantqualify file
Taught by
Rust