Back to flin
flin

Audit des fonctions, jour 7 terminé

Le jour 7 de l'audit des fonctions de FLIN a révélé 95 % de couverture bytecode mais seulement 12 % d'accessibilité dans les templates -- et comment nous avons comblé le fossé avec plus de 70 expositions de fonctions.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 3 min flin
EN/ FR/ ES
flinauditfunctionsbuilt-instandard-library

Au septième jour de l'audit exhaustif, nous avions atteint les fonctions intégrées. La spécification de FLIN promet des centaines de fonctions natives -- manipulation de chaînes, opérations mathématiques, prédicats de dates, transformations de listes, vérification de types, validation, formatage et encodage. La question n'était pas de savoir si ces fonctions existaient dans le code Rust. La question était de savoir si elles étaient accessibles depuis l'endroit où les développeurs FLIN en ont réellement besoin : à l'intérieur des templates.

Le problème d'accessibilité des templates

L'analyse des lacunes a révélé une asymétrie frappante. Au niveau du bytecode, FLIN avait implémenté environ 95 % de ses fonctions spécifiées -- 350+ opérations natives prêtes à être exécutées. Mais au niveau des templates, où les développeurs écrivent leur logique UI, seules 17 fonctions étaient accessibles -- environ 12 % de ce qui était disponible.

Le modèle d'exécution de FLIN a deux contextes. Dans le contexte bytecode, les appels de fonctions passent par le registre de fonctions -- une table de recherche complète. Dans le contexte template, les appels passent par l'évaluateur d'expressions du moteur de rendu -- un bloc match dans renderer.rs qui ne gère que les fonctions avec des bras match explicites.

Implémentation des fonctions P0 manquantes

Douze fonctions de formatage et prédicats de dates n'étaient implémentées nulle part. Un nouveau module src/vm/builtins/formatting.rs a été créé avec format_number, format_currency, slugify et d'autres. Le module time.rs a été étendu avec is_past, is_future, is_today, is_this_week, time_quarter et d'autres.

Exposer plus de 70 fonctions aux templates

Le travail restant était de câbler les fonctions bytecode existantes au moteur de rendu des templates, en ajoutant des bras match pour chaque catégorie de fonctions : chaînes (30 fonctions), mathématiques (12), dates (12), listes, types, validation, encodage et formatage.

Le total après la session 266 : 87+ fonctions accessibles depuis les templates, contre 17 auparavant. L'accessibilité des templates est passée de 12 % à plus de 66 %.

Le trio pluck, group_by et compact

Trois nouvelles fonctions de liste méritaient une mention spéciale car elles répondaient à des schémas de templates courants nécessitant auparavant des solutions de contournement verbeuses :

flin// Avant : extraire un seul champ d'une liste d'entités
// Nécessitait une itération manuelle

// Après : un appel de fonction
names = pluck(users, "name")
by_department = group_by(employees, "department")
valid = compact(items)

L'audit des fonctions a mis en lumière un schéma que nous avions vu tout au long du développement de FLIN : les fonctionnalités étaient implémentées quand elles étaient nécessaires pour l'objectif d'une session spécifique, mais le câblage pour les rendre universellement accessibles était souvent reporté. L'audit l'a détecté, et une seule session a comblé le fossé.

Après la session 266, le compteur de tests s'élevait à 3 117 -- tous passants.


Ceci est la partie 150 de la série « Comment nous avons construit FLIN », documentant comment un CEO à Abidjan et un CTO IA ont conçu et construit un langage de programmation à partir de zéro.

Navigation de la série : - [149] Le plan de correction de l'audit - [150] Audit des fonctions, jour 7 terminé (vous êtes ici) - [151] Audit de la persistance de base de données

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude thales

Treize agents, quarante-trois minutes : la première session Workflow de Claude Fable 5, et ce qu'un script d'orchestration déterministe change aux builds multi-agents

Un prompt, treize agents, quarante-trois minutes : la première session de production avec Claude Fable 5 et l'outil Workflow de Claude Code a livré un site web de production complet de sept pages plus un endpoint backend de capture de leads, en un seul commit. Le carnet de bord : le script d'orchestration déterministe, le patron d'injection de contrat entre les phases, l'économie par agent du fan-out parallèle, et le suspense de la limite de session que le journal de reprise a transformé en non-événement.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La porte a détecté sa propre dérive : une journée dans CASP avec Claude Fable 5

Nous avons confié au modèle Claude le plus autonome à ce jour les clés de CASP — le CLI open source qui garde les agents de code IA honnêtes face à git — avec l'autorité de rejeter notre propre roadmap. Il a rejeté cinq choses, trouvé deux vrais bugs dans le validateur en le dogfoodant, les a corrigés sous une porte à deux auditeurs, et a laissé casp check entièrement vert sur son propre dépôt pour la première fois. CASP 0.3.0 en est le résultat.

16 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9
Thales & Claude zerosuite

La transplantation du CASP : comment la discipline des six fichiers est passée de Conductor à un ERP transport anti-fraude, ce que la compétence /next ajoute quand l'opérateur tape juste « next », et pourquoi le coût d'une dérive du CASP grimpe quand le projet, c'est l'argent des autres

La discipline du CASP qui a piloté trente-cinq sessions de Conductor est agnostique au produit. Le carnet de bord de sa transplantation sur KASSIA, un ERP transport anti-fraude pour un exploitant de flotte en Côte d'Ivoire : ce qui a migré, ce qui n'a pas migré (le validateur sur mesure — et ce que son absence coûte), ce que la compétence /next ajoute quand l'opérateur tape un seul mot, et là où le CASP s'arrête — le bug de déploiement qu'il ne pouvait pas voir parce qu'il enregistre l'intention, pas la réalité de l'infrastructure.

23 min Jun 8, 2026
kassiaerp-kassia-transport-logistiquezerosuiteCASP +15