corral
- Path: arch/maintained/corral
- 2026-07-17: build failure fixed and published,
pkgrel 1 -> 2. Confirmed
the diagnosis from the 2026-07-07 note below is still accurate and root-caused
it further: corral/semver/version/compare_versions.pony’s
_compare_pr_Fields match over (PreReleaseField, PreReleaseField)
(PreReleaseField = U64 | String) already covers all four combinations in
its four arms; the trailing else => Equal was added defensively (“should
never get here but compiler complains without it”) for an older ponyc that
didn’t do exhaustive tuple-pattern checking. Current ponyc does, and now
treats that unreachable else as a hard error instead of a warning.
- Upstream already fixed this, just not in a tagged release yet:
ponylang/corral commit 10b85e36e5c7ec4503ecb80ff51aa2342e459805 (“Switch
all CI jobs to ponyc nightly (#300)”, merged 2026-03-12) removes exactly this
else arm, plus retargets all CI workflows from ponyc:release to
ponyc:nightly docker images/downloads (unrelated to the actual bug, just CI
plumbing to catch this class of break earlier). No new pkgver exists yet –
0.9.2 (2019) is still the latest tag on GitHub.
- Fix: added that upstream commit’s
.patch URL directly as a source=() entry
(corral-0.9.2-unreachable-else.patch::https:// github.com/ponylang/corral/commit/10b85e36e5....patch),
not a hand-authored local patch file – keeps provenance tied to the real
upstream fix. Caveat: the full commit patch doesn’t apply cleanly with
plain patch -Np1 against the 0.9.2 release tarball – 3 of the CI-workflow
hunks fail (those files have drifted since 2019’s 0.9.2 tag; irrelevant to the
build anyway). Worked around in prepare() with
git init -q && git apply --include='corral/semver/version/compare_versions.pony' -p1 ... && rm -rf .git,
which applies cleanly (git apply --include= scopes application to just the
one file’s hunk, and can operate on a plain extracted-tarball directory once
git init’d, no full repo needed). Packaging-only fix (source patch, not an
upstream release), so pkgrel 1 -> 2 (plain integer bump is correct – this
is maintained/, not adapted/, see memory/PKGREL_VS_PKGVER.md).
- Test-built clean with
scripts/archlinuxaba-x86_64-build (0 compile errors;
corral/corral-debug produced – namcap’s libatomic/glibc “missing
depends” warnings are pre-existing/ unrelated to this fix, depends=() was
already empty before this change, not addressed here). Signed and published to
the private repo (x86_64). Note: publish had to be retried once after an
unrelated transient SSH failure to the repo host (euroweb.lan) – no
package-specific issue there.
Superseded (kept for context)
- Build failure during the 2026-07-07 “build all packages for x86_64”
private-repo release pass. Fails compiling
corral/semver/version/compare_versions.pony:32:
match is exhaustive, the else clause is unreachable – a stricter modern
ponyc now treats a redundant-but-harmless else arm as a hard compile error
instead of a warning. Genuine source/toolchain-version incompatibility, not an
environment setup issue like memory/corral-git.md’s CRT-object problem (same
project, different failure). Not fixed as part of that pass.