Skip to content
PT

Static copy

Copied from docs/en/decisions/adp-009.md in https://github.com/poppy-team/aipo-lang (MIT). Pinned to revision ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 0051d608b5c2c15dbd58bbaf61fa6f8112830c33. The source repository remains canonical; this copy is refreshed through a sync pull request, not live.

ADP-009 — Synchronous Versioned C ABI ​

  • Status: Approved & In Implementation
  • Deciders: Poppy Team
  • Phase: Wave 6 (P05)

Context ​

To enable embedding Aipo as a scripting engine in hosts written in C, C++, Zig, or other systems languages without requiring complex Rust bindings, a stable synchronous C ABI is indispensable.


Decisions Taken ​

  1. Opaque Types:
    • aipo_vm_t, aipo_bytecode_t, aipo_value_t.
  2. Synchronous Execution:
    • Zero-allocation VM instantiation and instruction dispatch.
  3. Clean Memory Contracts:
    • Explicit cleanup and deallocation routines (aipo_vm_free).
    • Numeric diagnostic fault codes returned according to Aipo's canonical diagnostic catalog.