Bump the sigil pins to ^0.19; the 0.17 reason has expired
The pin carried its own justification:
sigil-crypto's native codegen needs the 0.17 runtime headers to build
libsigil-crypto.a.Measured on host sigil 0.19.2, two isolated git archive trees differing only in these four pins:
^0.17: libsigil-crypto.a builds, 5891408 B sigil test FAILS
^0.19: libsigil-crypto.a builds, 5891528 B sigil test 100/100 passesThe library builds either way, so the pin does not protect what it names. What it does do is break the test harness: at ^0.17 the dev-deps resolve to sigil-test-runner 0.17.17, whose core.sgb is bytecode v10, while a 0.19 host emits v11, and sigil test dies with "unsupported bytecode version 11 (expected 10)" before running anything.
So the second half of the comment is inverted too. It warned that without these dev-deps a stale bundled (sigil crypto).sgb would be used; at ^0.17 the dev-deps ARE the staleness, one layer up. They are still needed -- at ^0.19.
The passing arm is underwritten by a product-layer sabotage control: with native/crypto.c:118 mbedtls_sha256_starts(&ctx, 0) changed to (&ctx, 1), the suite reports 97 passed / 3 failed, and the three are exactly the sha256 cases. A build failure or a harness that never ran would have reddened all 100 or none.
sigil-tls carries the same paragraph with one noun swapped and reproduces this result exactly (19/19 at ^0.19, same bytecode error at ^0.17) -- two different C surfaces, same verdict, which is what makes it a class rather than a quirk.
Patch, not minor: raising a toolchain floor looks like a compatibility change, but every consumer it could break is already broken, since ^0.17 is what makes sigil test fail on a 0.19 host. A defect is removed; no working thing stops working.
Evidence: topics/sigil-crypto-017-pin-does-not-protect-native-codegen
package.sgl | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)package.sglmodified
(package name: "sigil-crypto" version: "0.16.4" sigil: "^0.17" version: "0.16.5" sigil: "^0.19" description: "Cryptographic functions for Sigil (SHA, HMAC, ECDSA, ECDH, AES-GCM, HKDF, base64, random)" url: "https://codeberg.org/sigil/sigil-crypto" license: "BSD-3-Clause" dependencies: (list ;; Explicit sigil-lib pin: overrides the extraction-era implicit ;; sigil-stdlib/sigil-lib (^0.15 from the retired sigil-lang repo) ;; that the reintegrated monorepo test-runner chain would otherwise ;; derive. sigil-crypto's native codegen needs the 0.17 runtime ;; headers to build libsigil-crypto.a. ;; sigil-stdlib/sigil-lib (^0.15 from the retired sigil-lang repo) that ;; the reintegrated monorepo test-runner chain would otherwise derive. ;; ;; Was ^0.17, justified as "sigil-crypto's native codegen needs the 0.17 ;; runtime headers to build libsigil-crypto.a". Measured 2026-08-24 on ;; host sigil 0.19.2, two isolated trees differing only in these pins: ;; libsigil-crypto.a builds BOTH ways (5891408 B at ^0.17, 5891528 B at ;; ^0.19). The reason had expired. See ;; topics/sigil-crypto-017-pin-does-not-protect-native-codegen. (from-git url: "codeberg:sigil/sigil" package: "sigil-lib" version: "^0.17")) package: "sigil-lib" version: "^0.19")) ;; sigil-test + sigil-test-runner are required as dev-deps so ;; `sigil test` can build a test-harness binary that statically ;; sigil binary's bundled (and potentially stale) `(sigil crypto).sgb` ;; would be used instead of the local source, causing newer bindings ;; to surface as `unbound variable`. ;; ;; They must track the host runtime. At ^0.17 they resolved to ;; sigil-test-runner 0.17.17, whose core.sgb is bytecode v10, and a 0.19 ;; host emits v11: `sigil test` died with "unsupported bytecode version 11 ;; (expected 10)" before running anything. At ^0.19: 100/100 pass. dev-dependencies: (list (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.17") (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.17")) (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.19") (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.19")) ;; Native library definition libraries: (list