-
-
Notifications
You must be signed in to change notification settings - Fork 0
[#446 Tier 1 #5 follow-up] Idris2 ABI proof-carrier doc for wasm_export_call #498
Copy link
Copy link
Open
Labels
bindingsABI, FFI, WASM, and cross-language interop surfacesABI, FFI, WASM, and cross-language interop surfacesfeeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes thereFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes therepriority:p2Normal - queue itNormal - queue itscope:repoConfined to this repositoryConfined to this repositorystatus:readyFully specified and ready to be picked upFully specified and ready to be picked uptier-1AS bindings top-50 Tier 1 (idaptik blockers)AS bindings top-50 Tier 1 (idaptik blockers)
Description
Activity
Metadata
Metadata
Assignees
Labels
bindingsABI, FFI, WASM, and cross-language interop surfacesABI, FFI, WASM, and cross-language interop surfacesfeeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes thereFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes therepriority:p2Normal - queue itNormal - queue itscope:repoConfined to this repositoryConfined to this repositorystatus:readyFully specified and ready to be picked upFully specified and ready to be picked uptier-1AS bindings top-50 Tier 1 (idaptik blockers)AS bindings top-50 Tier 1 (idaptik blockers)
Context
Closed #455 (the WASM-exports calling pattern kickoff) shipped via PR #467 with the Deno-ESM lowering of
wasm_export_call+ theWasmValueopaque type.Per the owner's Option-B scope breakdown, the Idris2 ABI pattern doc was deferred to a follow-up per the estate directive "Zig = APIs + FFIs, Idris2 = ABIs":
This issue tracks that.
Scope
A proof-carrier-shaped Idris2 ABI document for the
wasm_export_callsurface and itsWasmValuetagged scalar. The general estate Idris2-ABI pattern is documented atdocs/reference/ABI-FFI.md(RSR-template form, project-agnostic); this issue specialises it for the wasm-exports binding.What to ship
A new spec under
docs/specs/(suggested:wasm-export-call-idris2-abi.adoc) covering:WasmValueas a dependent or refinement-shaped carrier (WasmI32 : Bits32 -> WasmValue, etc.), expressing the four-variant kind discipline that the JS/Zig FFI implementations check at runtime.wasm_export_call's name-lookup-by-string side condition (export name resolves; failure mode isOption<WasmValue>orResult<WasmValue, WasmCallErr>).WasmValueRepr(paired with the Zig dispatcher in the sister follow-up).docs/reference/ABI-FFI.md(general pattern) +docs/specs/zig-ffi-patterns.adoc(FFI half) +bindings-roadmap.adocrow 41 (Idris2 ABI Tier 5 binding).Acceptance
docs/specs/with proper DOC-FORMAT + SPDX header.bindings-roadmap.adoc(Tier 5 row Document the migration story for code that needs algebraic effect handling #41) and from the Zig-FFI patterns doc..idrfile underidris2/abi/if the tree has that convention) referenced and committed.Refs
docs/reference/ABI-FFI.md(template)docs/specs/zig-ffi-patterns.adoc(PR Roadmap tracking + Zig-FFI doc (#19) + hex/base64 encoding (#25) + Int-division codegen fix (#478) #474)