Aller au contenu
EN FR

De FPL vers un module ABI natif

Statut documentaire : guide. La méthode est décrite dans le source ; consulter la référence ABI publique pour le sous-ensemble de marshalling réellement pris en charge.

Pourquoi ce pont existe

FPL/functionalP peut implémenter un comportement exécutable dans un modèle. Lorsque ce comportement doit appeler un module natif versionné, le Runtime peut lier un appel FPL résolu à un descripteur de méthode ABI puis l'exécuter à travers la frontière native. Cela ne remplace pas les appels Pascal ordinaires.

Source FPL -> parseur/AST -> linker ABI -> descripteur de méthode
           -> pont d'exécution -> exécuteur ABI -> module natif

Séquence d'intégration

  1. Charger le manifest ABI. Le registre de compilation résout les méthodes par identité module/type/méthode, type d'appel et disposition physique des paramètres/résultats. Taille des pointeurs et autres hypothèses doivent correspondre.
  2. Enregistrer le module natif. Employer un identifiant de module unique et non nul. Le chargeur TABINativeModule documenté est spécifique à Windows dans la version de source décrite : ne pas en inférer une portabilité du chargement natif.
  3. Configurer linker et exécuteur. Le linker reconnaît les appels, l'exécuteur prépare les arguments déclarés et le pont convertit valeurs Runtime FPL et valeurs ABI.
  4. Exécuter tant que la configuration est valide. Gérer la durée de vie registre/exécuteur ; libérer handles natifs et buffers d'erreur selon les mécanismes spécifiés.
  5. Tester succès et erreurs. Exercer manifests incompatibles, ids de modules inconnus, récepteurs invalides, types de paramètres non supportés et libération des ressources.

Ne pas confondre trois périmètres

Syntaxe FPL, vocabulaire des descripteurs ABI et pont d'exécution effectivement testé sont différents. La référence publique distingue notamment les parcours implémentés i32, pointeurs et handles des vocabulaires étendus ou partiels tels que out/inout et certaines formes de tableaux/callbacks.

Suite

Bases de functionalP · Pont FPL–ABI · Manifest · Propriété et libération

Sources LaTeX : native-abi-and-fpl-native-modules.tex ; fpl-language-essentials.tex ; running-fpl-from-radstudio-code.tex.