Skip to content
This repository was archived by the owner on Jul 21, 2026. It is now read-only.

gawk: add real pattern-processing workflows - #33

Merged
brandonpayton merged 4 commits into
mainfrom
migrate/gawk-cli
Jul 12, 2026
Merged

gawk: add real pattern-processing workflows#33
brandonpayton merged 4 commits into
mainfrom
migrate/gawk-cli

Conversation

@brandonpayton

@brandonpayton brandonpayton commented Jul 11, 2026

Copy link
Copy Markdown
Member

Purpose

Add GNU gawk 5.3.0 as a first-class Kandelo formula built through the normal SDK and fork-instrumentation path. The formula preserves real AWK processing, GNU extensions, multi-file state, and truthful missing-file behavior.

Registry contract

packages/registry/gawk/package.toml is authoritative: gawk 5.3.0, source SHA-256 ca9c16d3d11d0ff8c69d79dc0b47267e1329a69b39b799895604ed447d3ca90b, GPL-3.0-or-later, and no dependencies. The legacy registry build script defaults to 5.3.1; this formula follows the declared package contract rather than silently changing its version.

Formula contract

  • Build the verified upstream source for wasm32.
  • Preserve the registry's dependency-free feature profile by disabling NLS, dynamic extensions, readline, and MPFR.
  • Compile gawk's library, AWK, and locale search paths against stable guest Homebrew prefixes.
  • Fork-instrument the final executable.
  • Install the executable and manpage.
  • Test version reporting, field aggregation, associative arrays, regex captures, gensub, multi-file ARGIND/FNR, and missing-file exit status 2.

Source acceptance

The source formula may merge independently after a fresh source-only devil review. This PR contains no bottle block, sidecar, archive, receipt, provenance metadata, or other binary artifact, and merging it does not claim that a bottle is published or installable.

Existing runtime evidence

Earlier ABI 18 source and exact-head bottle builds passed literal brew test, Node, and Chromium coverage for the formula's processing and error paths. The audited executable imported only env/kernel, had all five wpk_fork_* exports, contained no Asyncify marker, and had no build-host or Cellar paths.

The earlier local bottle SHA-256 9d9932c1505e10539d50b646164c2075a6ae1a8ac4ee2b4061e87d4d97cd94b0 is historical implementation evidence only and is rejected for publication.

Current restack validation

The three gawk semantic commits and installed-tap loader commit were replayed unchanged onto tap main at aa99c67c632c4f5f0f6ac56850c2b325151e0b78. Before merge, an independent review refreshed current tap main at c49d4e36b141fa3806b58b684135e9cc27bb6797; the merge tree was clean and preserved the reviewed formula blob exactly.

  • git range-diff reports all four commits unchanged from the prior 19cb769 restack.
  • Every artifact-producing line after the support import is unchanged from the originally validated formula; the formula-tail SHA-256 is 97108c6b3e3cbbf59a88cf0f2c53872ec7ca1c97e13602e1f3c5f40ef5f89f7c.
  • Homebrew Ruby syntax passed through Kandelo's dev shell.
  • Formula-support tests passed: 21 runs, 186 assertions.
  • brew style inspected the formula with no offenses.
  • git diff --check passed and the worktree is clean.

No source build or runtime suite was rerun for this history/import-only restack. Current head is e3ec444dcdaa99f5c396f3055ac094d26d825c3e.

Bottle gates

Trusted bottle construction, publication, and installability claims remain gated on the applicable platform work in Automattic/kandelo#842, #873, #874, #881, #882, #885, and #888; tap #22 if a branch dry run is needed; and an exact merged-head ABI 18 build with reviewed sidecar and stock-guest Node/Chromium pour tests against published bytes.

Automattic/kandelo#867 is the merged ABI 18 baseline, not a pending gate. No platform or ABI change is made here.

@brandonpayton

Copy link
Copy Markdown
Member Author

Independent devil's-advocate source-only review at e3ec444dcdaa99f5c396f3055ac094d26d825c3e: ACCEPT.

The review downloaded and verified official GNU gawk 5.3.0 source/license metadata and confirmed that the formula correctly follows registry package.toml rather than the legacy script's drifting 5.3.1 default. A fresh configure-only run through the current SDK proved the dependency-free profile, while generated macros contained only stable guest AWK/library/locale lookup paths. Upstream direct fork() paths require the formula's final-link instrumentation.

Fresh dev-shell syntax, style, literal Tap.fetch loading, support tests (21 runs / 186 assertions), range-diff, and whitespace checks passed. The clean merge tree against c49d4e36b141fa3806b58b684135e9cc27bb6797 preserved the reviewed formula blob exactly. The diff contains only the formula and one README line, with no bottle, sidecar, archive, receipt, provenance, or binary metadata. Historical runtime/bottle evidence remains non-publication evidence. No source-formula blocker remains.

@brandonpayton
brandonpayton merged commit 580aca3 into main Jul 12, 2026
@brandonpayton
brandonpayton deleted the migrate/gawk-cli branch July 12, 2026 02:32
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant