Shell: Deliver the C/C++ toolchain lazily in guest - #1266
Open
brandonpayton wants to merge 25 commits into
Open
Conversation
The post-rebase browser guide still said only the C/C++ SDK closure was deferred. The authoritative shell manifest also keeps the ordinary Formula trees lazy while embedding Bash. Describe that shared lazy model without changing the observe-only Pages rollout.
Contributor
Phase B-1 matrix build status —
|
| Package | Arch | Status | Sha |
|---|---|---|---|
| homebrew-bootstrap | wasm32 | failed | — |
| kandelo-sdk | wasm32 | failed | — |
| mariadb-test | wasm32 | failed | — |
| mariadb-vfs | wasm32 | failed | — |
| mariadb-vfs | wasm64 | failed | — |
| redis-vfs | wasm32 | failed | — |
| rootfs | wasm32 | failed | — |
| spidermonkey | wasm32 | failed | — |
| node | wasm32 | failed | — |
| shell | wasm32 | failed | — |
| spidermonkey-node | wasm32 | failed | — |
| lamp | wasm32 | failed | — |
| nginx-php-vfs | wasm32 | failed | — |
| nginx-vfs | wasm32 | failed | — |
| node-vfs | wasm32 | failed | — |
| wordpress | wasm32 | failed | — |
Auto-generated; replaced on each push. Raw data in the publish-status workflow artifact.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Kandelo's ordinary shell cannot currently build C or C++ programs in
guest. Shipping the full compiler in every boot image would make all
shell starts pay for a large payload, including sessions that never
compile code.
This change gives Node.js and browser hosts the same authenticated,
first-use toolchain while preserving a small, usable initial shell.
Failures remain visible and retryable, and GitHub Pages stays in
observe mode until protected publication and canary evidence exist.
What changed
kandelo-sdkHomebrew Formula as a lazy dependency of thenormal shell. Its same-tap closure supplies Clang 21, libc++, and the
Kandelo SDK.
cc,c++, andwasm32posix-*through the ordinary shelllayout without fetching toolchain trees during boot.
It derives the closure from the sealed descriptor, verifies each
immutable tree before materializing it, and retries the same identity.
hello.c, and begins prefetch only after the terminal is usable.Node.js and Chromium before promotion and Pages readiness.
migration, selection, and artifact locks exact. Legacy closed lanes
reject an unfinalized toolchain root instead of silently admitting it.
and current fork-instrumentation limits.
Validation
129 skipped across 269 passing and 28 skipped files.
toolchain cases and 168 host tests.
passed.
publish-workflow trust, and documentation-link checks passed.
The full local browser asset preparation cannot complete before the new
ABI 42 Homebrew artifacts are published: the public index does not yet
contain the required
homebrew-bootstraprevision. The protectedpost-merge canary is therefore the remaining browser acceptance gate.
No syscall, libc, process, or ABI semantics changed; POSIX suites were
considered but not rerun. Performance was not measured.