abhinav srivastav github ↗

rust / compilers / systems / arm64

abhinav
srivastav

systems · compilers · low-level

i work on rust compiler and toolchain internals, and build small systems projects to understand things from the compiler down.

focusrustc · bootstrap · llvm
systemslinux · windows · arm64
formatself · pe · dwarf · codeview · pdb
01rust

rust compiler work

work across compiler and bootstrap code, build paths, native compilation, artifact formats, and regression tests.

bootstrap / pathsmerged

path remapping across rust and native compilation

removed build-root and OUT_DIR leakage from crate metadata and bootstrap output paths, including windows-style paths. extended debug-prefix remapping into c/c++ compilation where rustc-only remapping does not apply.

repro testsmerged

reproducibility coverage for shipped artifacts

re-enabled reproducible binary testing with full debug information on linux and expanded stdlib path-remapping coverage from a single archive to the distributed .rlib set.

windows / msvcmerged + active

windows artifact reproducibility

applied /Brepro to bootstrap-built msvc artifacts with regression coverage. investigated compiler-rt archive differences down to CodeView S_OBJNAME records, object output paths, and archive member naming.

C:\build-a\...\ucmpti2.obj→ucmpti2.obj
04debugging

how i investigate build differences

the process is usually mechanical: reproduce the mismatch, narrow the artifact, inspect the relevant format, then fix the earliest unstable input.

  1. 01
    rebuild

    use the same source in intentionally different paths or environments.

  2. 02
    compare

    check hashes and isolate the first artifact that differs.

  3. 03
    inspect

    open archives, crate metadata, objects, dwarf, codeview, pdb data, or symbols.

  4. 04
    localize

    find the flag, path, record, or build input responsible for the difference.

  5. 05
    regress

    fix the cause and encode the expected behaviour in a test where it makes sense.

diffoscope · llvm-readobj · llvm-dwarfdump · llvm-pdbutil · rustc -Zls · bootstrap

abhinav srivastav

rust · compilers · systems