Skip to content

ci(abi): typecheck the Idris2 ABI in CI (G34)#52

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/axiom-jl-registry-infra-kr7t4a
Jul 2, 2026
Merged

ci(abi): typecheck the Idris2 ABI in CI (G34)#52
hyperpolymath merged 1 commit into
mainfrom
claude/axiom-jl-registry-infra-kr7t4a

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Closes the G34 hole: the ABI-FFI gate ran a Julia structural conformance check and a Zig FFI build, but nothing ever ran idris2 on the ABI itself. The 8 proof modules (Types, Layout, Foreign, Proofs, Semantics, Invariants, FfiSeam, Capstone — landed across PRs #38/#42/#43/#44/#45) were authored and locally verified against Idris2 0.7.0 but never compiler-checked in CI. A future edit could break a proof and the gate would stay green.

Changes

  • .github/workflows/abi-ffi-gate.yml: new idris2-abi job running idris2 --typecheck julianiser-abi.ipkg in the SHA-pinned ghcr.io/stefan-hoeck/idris2-pack container (the same prebuilt image the Axiom.jl idris2-abi-check job uses — avoids a ~10-min Chez/Idris2 source build). Header comment updated to describe all three jobs.
  • .tool-versions: uncomment idris2 0.7.0 (pins the version the proofs were verified against, for local asdf use). Nothing auto-installs from it, so this is documentation-only.

RSR Quality Checklist

Required

  • Tests pass — idris2 --typecheck julianiser-abi.ipkg and idris2 --build julianiser-abi.ipkg both exit 0 on all 8 modules (verified locally, Idris2 0.7.0)
  • No banned language patterns (YAML workflow + .tool-versions only)
  • No banned functions (believe_me/postulate/sorry) — the ABI modules are unchanged by this PR; the new job enforces their absence going forward
  • SPDX headers intact (workflow retains its MPL-2.0 header; no source files added)
  • No secrets, credentials, or .env files included

As Applicable

  • ABI/FFI changes validated — CI now typechecks src/interface/abi/ on every push/PR; the existing structural + Zig jobs are untouched

Testing

Ground-truthed with Idris2 0.7.0:

  • cd src/interface/abi && idris2 --typecheck julianiser-abi.ipkg → exit 0
  • idris2 --build julianiser-abi.ipkg → exit 0
  • YAML parses; job list = conformance, zig-build, idris2-abi; working-directory path src/interface/abi/julianiser-abi.ipkg exists.

The pinned container image is the identical digest already green in Axiom.jl's equivalent idris2-abi-check job.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1


Generated by Claude Code

The ABI-FFI gate did a Julia structural conformance check and a Zig FFI
build, but nothing ever ran idris2 on the ABI itself — so the 8 proof
modules (Types, Layout, Foreign, Proofs, Semantics, Invariants, FfiSeam,
Capstone) were authored and locally verified against Idris2 0.7.0 but
never compiler-checked in CI. A future edit could break a proof and the
gate would stay green.

Adds an idris2-abi job running 'idris2 --typecheck julianiser-abi.ipkg'
in the SHA-pinned stefan-hoeck/idris2-pack container (same image Axiom.jl
uses), and uncomments idris2 0.7.0 in .tool-versions for local asdf use.
Verified locally: both --build and --typecheck exit 0 on all 8 modules.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
@hyperpolymath hyperpolymath marked this pull request as ready for review July 2, 2026 13:30
@hyperpolymath hyperpolymath merged commit f6ed4fe into main Jul 2, 2026
6 checks passed
@hyperpolymath hyperpolymath deleted the claude/axiom-jl-registry-infra-kr7t4a branch July 2, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants