bash: add the first-class Kandelo shell formula#38
Merged
Conversation
a6e58d2 to
23f0533
Compare
6a1892c to
79d6c70
Compare
23f0533 to
93567f2
Compare
c270843 to
c4bedae
Compare
30d0823 to
6190502
Compare
6190502 to
42ae37e
Compare
Member
Author
|
Exact-head devil review: ACCEPT for source/build integration at
This accepts source merge only. Bottle publication remains blocked on Automattic/kandelo#874 and the other gates listed in the PR body, followed by a stock-Kandelo build/pour using the ncurses Homebrew bottle. |
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.
Purpose
Add GNU Bash 5.2.37 as an idiomatic staged-source Kandelo formula backed by the tap's ncurses dependency root.
Bash registers cleanup callbacks with several native C signatures, then dispatches them through a single
void (*)(void *)unwind path. WebAssembly enforces indirect-call signatures, so passing Bash's remainingvoid (void)callbacks directly can trap during real source, timed-read, andfcunwinds. This formula normalizes the callback surface instead of masking those runtime paths.Change
void (void *)signature, including wrappers formaybe_pop_dollar_vars,reset_timeout, andset_verbose_flag; remove the unusedbashline_reinitializewrapper.rlim_t,mbsnrtowcs,ulimit, absent non-target functions, and ncurses-ltinfo.make install, including Bash,bashbug, manuals, Info, HTML, and upstream documentation.fcreplay, language features, pipelines, command substitution, recursive exec/wait, process substitution, and signal delivery intest do.Dependency ancestry
Ncurses source PR #8 is merged. This branch is based directly on tap
mainatf49db74(File merged).Current head:
42ae37e8f80ffd435f03f897d6ac1ae4eedc8d96.Formula SHA-256:
34561219c4c309e268a91024f7433f5394b5999b0eca62f6c742ee2418086453.The diff contains only
Formula/bash.rband its README row. It contains no bottle block, sidecar, or binary artifact.Source/build validation
Run through Kandelo's
scripts/dev-shell.sh:brew style: one file, no offenses.git diff --check origin/main...HEAD: passed.config.hvalue andTERMCAP_LIB = -ltinfo.wasm-objdumpreports all three new wrappers as(i32) -> nil; the obsolete wrapper and incompatible direct registrations are absent.fcinput replays the command twice.Independent devil's-advocate review accepts this exact formula blob for source/build integration, contingent on #874 landing before bottle publication.
I did not build, optimize, fork-instrument, pour, or runtime-test a Homebrew Bash bottle. This is source acceptance, not a bottle claim.
Bottle gates
The authoritative ABI 18 Bash bottle must be rebuilt only after the following main-repo platform PRs land:
Tap PR #22 is additionally required only for a branch-based pre-merge bottle dry run.
The exact-head bottle build must consume final libcxx and ncurses bottles through Homebrew. Source-keg and poured-bottle tests must run in a stock Kandelo guest on Node and Chromium, with Homebrew receipts and provenance proving ncurses came from its prior bottle.
Automattic/kandelo#864 and #867 are merged platform baseline. No ABI change is made here. Firefox, WebKit, wasm64, and any historical local Bash bottle are not claimed.