Skip to main content

load_captured_args

Function load_captured_args 

Source
pub fn load_captured_args(
    cache_dir: &Path,
    target_triple_filter: Option<&str>,
) -> Result<HashMap<String, CapturedRustcInvocation>>
Expand description

Walk cache_dir, deserialise every *.json produced by whisker-rustc-shim, and collapse duplicates per crate by keeping the most-recent timestamp. Empty / unparseable files are skipped with a warning rather than aborting the whole load — a partial fat build shouldn’t take the dev loop down.

target_triple_filter restricts the load to entries whose captured --target matches. Multi-arch fat builds (e.g. iOS Simulator on Apple Silicon, which xcodebuild compiles for both aarch64-apple-ios-sim and x86_64-apple-ios) write one JSON per (crate, triple) pair; without the filter the newest-timestamp wins regardless of triple, leaving the patcher likely to pick the wrong arch and emit an .o that fails to link into the runtime dylib (found architecture 'x86_64', required architecture 'arm64'). Pass None to disable filtering (host / single-arch paths).