Files
saselang-bible/chapters/029-ffi-et-abi.md
2026-09-12 08:56:27 +02:00

1.2 KiB

29. FFI et ABI

29.1 ABI C — V1 REQUIS — FIGÉ

Le premier ABI externe officiellement ciblé est C :

extern "C"

29.2 extern — V1 REQUIS — FIGÉ EN PRINCIPE

extern est réservé aux déclarations qui représentent réellement une frontière de linkage/ABI.

Typiquement :

extern "C" func
unsafe extern "C" func
extern "C" union
unsafe extern "C" union

Pas de extern décoratif sur classes/interfaces/méthodes ordinaires.

29.3 FFI safety — V1 REQUIS — FIGÉ EN PRINCIPE

Une fonction externe n'est pas automatiquement unsafe par simple fait d'être externe, mais toute API dont l'appelant doit respecter des invariants externes non vérifiables doit être déclarée unsafe.

29.4 Layout/interop — V1 REQUIS — À FINALISER

À définir :

C struct layout
C enum mapping
raw pointers
strings C
callbacks
function pointers
calling conventions
variadic C
alignment/packing
ownership across FFI
error propagation across ABI

29.5 Dynamic loading — V1 RÉSERVÉ / SDK

Le chargement dynamique runtime (dlopen/LoadLibrary-like) est prévu comme fonctionnalité système/SDK et probablement unsafe, mais n'est pas une primitive fondamentale du langage.