Skip to main content

Module abi

Module abi 

Source
Expand description

The runtime ABI manifest: one row per praxis_* symbol the JIT can call.

Everything the compiler needs to know about a runtime wrapper — its exact symbol name, its parameter and return kinds, and whether calling it can allocate or fault — is one row in [runtime_symbols!] below, so no two places can drift about a symbol’s signature or its effects.

A call target is a RuntimeSymbol, not a string. Adding a wrapper means adding a row here and one arm to praxis_runtime::abi::address; both are exhaustive matches, so anything else that must change is a compile error rather than a runtime surprise.

This crate is the right home because it is the lowest common dependency of the compiler crates that need the manifest (praxis-mir, praxis-codegen-cranelift) and of praxis-runtime, which supplies the addresses.

Structs§

AbiSig
One wrapper’s full ABI: what it takes, what it gives back, what it may do.

Enums§

AbiKind
The kind of one ABI parameter — what a value in that position is, which fixes the machine type the caller must pass.
AbiRet
What a wrapper returns.
Effect
The one answer to “does calling this need a root set, or a fault check?”
RuntimeSymbol
Every praxis_* runtime wrapper generated code may call.