Skip to content

Fix bad hollow-pipelining implementation#12

Merged
dzbarsky merged 2 commits intohermeticbuild:mainfrom
walter-zeromatter:user/wgray/proper-hollow
Apr 10, 2026
Merged

Fix bad hollow-pipelining implementation#12
dzbarsky merged 2 commits intohermeticbuild:mainfrom
walter-zeromatter:user/wgray/proper-hollow

Conversation

@walter-zeromatter
Copy link
Copy Markdown

  • reverts 496f7a4, which was LLM hallucination induced performance regressions
  • cherrypicks b55be1b

Switches to using -Zno-codegen (same as buck2's rust rules) from the custom --rustc-quit-on-rmeta. This is a more supported path, which simplifies the process wrapper and fixes some issues that can happen due to killing an active rustc (See rust-lang/rust#143278)

    Replace the process wrapper's rmeta-interception approach (kill rustc
    after metadata emission) with rustc's -Zno-codegen flag, which produces
    a hollow rlib containing metadata and MIR but no object code. This is
    the same approach used by Buck2.

    Key changes:
    - Metadata action uses  to
      produce a hollow rlib (_meta.rlib) instead of raw .rmeta files
    - Remove --rustc-quit-on-rmeta flag, LineOutput::Terminate, and all
      associated kill logic from the process wrapper
    - Full action emits only --emit=link (no longer includes metadata)
    - Set RUSTC_BOOTSTRAP=1 on both metadata and full actions for SVH
      compatibility (required for the unstable -Zno-codegen flag)
@walter-zeromatter walter-zeromatter changed the title User/wgray/proper hollow Fix bad hollow-pipelining implementation Apr 10, 2026
@dzbarsky dzbarsky merged commit bd11387 into hermeticbuild:main Apr 10, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants