Aller au contenu
EN FR

Pont FPL vers ABI

Statut documentaire : architecture — voir Maturité et preuves.

Objectif

Le moteur contient un pont d'exécution permettant à un appel FPL résolu de franchir la frontière ABI native. Cette page documente son comportement architectural, pas les types privés de l'implémentation.

flowchart LR
    FPL[Expression FPL] --> LINK[Résolution ABI]
    LINK --> DESC[Descripteur]
    FPL --> VALUES[Valeurs Runtime FPL]
    VALUES --> CONVERT[Conversion en valeurs ABI]
    DESC --> EXEC[Executor ABI]
    CONVERT --> EXEC
    EXEC --> RESULT[Résultat ABI]
    RESULT --> BACK[Conversion vers valeur FPL]

Sous-ensemble de conversion actuel

Le pont inspecté convertit les arguments FPL vers ABI pour integer/i32, pointeur et handle. Il reconvertit les résultats void, integer/i32, pointeur et handle. Les types non supportés échouent explicitement.

Vérification de type

Le pont vérifie le type Runtime FPL face au descripteur ABI avant l'exécution. Un paramètre entier n'accepte pas silencieusement une valeur pointeur. Les paramètres non nullable rejettent également l'absence de valeur.

Receiver

Le receiver d'instance est porté comme valeur pointeur opaque côté FPL et n'est transformé en handle natif qu'à la frontière ABI.

Suivi des résultats possédés

Quand l'ABI renvoie un handle owned, le pont conserve les métadonnées de résultat associées au pointeur. La libération de la valeur FPL route alors le release via l'executor et efface le pointeur.

Le pont libère également par défense les résultats encore suivis lors de sa destruction. La libération explicite reste préférable pour un cycle de vie prévisible.

Tests au niveau source

La suite actuelle compile des expressions source, les lie à un manifeste ABI, exécute constructeur ou méthode d'instance, récupère pointeur/handle et libère les résultats owned.

Le chemin FPL vers natif est donc une capacité architecturale implémentée et testée, pas uniquement un design de manifeste.

Frontière documentaire

Ce mécanisme est utile aux développeurs avancés pour comprendre que les capacités natives publiées peuvent participer à l'exécution FPL. Les classes internes du pont et layouts privés ne font pas partie du contrat public.