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.