RÉFÉRENCE VITTE / Compilateur

Intégrés et types primitifs

Le registre bootstrap documente les symboles intégrés que cette partie du compilateur sait reconnaître avant les couches complètes de types et de sémantique.

Niveau de garantieRegistre bootstrap, backend C17 et fixtures runtime comparés séparément ci-dessous.
Source de référence : src/bootstrap/builtin/README.md
Contexte du registre

La liste ci-dessous est celle de src/bootstrap/builtin/README.md. Elle décrit le registre bootstrap, pas nécessairement chaque type que la grammaire, les fixtures ou un autre backend peuvent accepter.

Types intégrés listés

FamilleTypes
Contrôle et diagnosticvoid, never, error, bool
Entiersu8, u32, u64, usize, int, i64
Flottantsf32, f64
Textestring

Les modules et tests du dépôt utilisent également des types tels que i8, i16, i32, u16, char et d’autres. Ce décalage doit être vérifié contre la table builtin réellement compilée avant d’afficher une liste exhaustive.

Constantes et procédures

NomSignatureRôle
true, falseboolLittéraux booléens.
print, println(string) -> voidÉcriture de texte standard, avec ou sans saut de ligne.
eprint, eprintln(string) -> voidÉcriture sur le flux d’erreur, avec ou sans saut de ligne.
panic(string) -> neverArrêt anormal avec un message.
assert(bool) -> voidVérification d’une condition.
len(string) -> usizeLongueur selon le contrat du builtin.
to_string(int) -> stringConversion d’un entier en texte.
type_name(error) -> stringNom de type associé au diagnostic intégré.

Opérateurs du registre

  • Numériques : + - * / %.
  • Entiers et bits : & | ^ << >>.
  • Comparaison : == != < <= > >=.
  • Logique : and or.
  • Unaires : ! + - ~.

Le registre indique que les opérations numériques et binaires attendent actuellement des types d’opérandes correspondants. La table ne remplace ni les règles complètes de typage ni la priorité définie par la grammaire.

Vérification des intégrés

IntégréRegistreParseur / sémantiqueCompilation constatée
true, false, entiers, booléens, chaînesTypes/littéraux décrits.Exercés par les fixtures natives et runtime.Oui : types et littéraux passent par C17 et exécution.
print, println, eprint, eprintln, panic, assertListés comme procédures intégrées.Les appels sont des expressions d’appel ; le backend documente ce sous-ensemble de builtins.Émission C17 documentée par le backend ; exécution ciblée de chaque appel non prouvée par les 11 fixtures runtime.
lenListé.Accepté dans les tests chaîne.Oui : compilé et exécuté avec string_intrinsics_runtime.vit.
trim, starts_with, ends_withNe figurent pas dans la liste builtin bootstrap citée plus haut.Le pipeline les route vers compatibilité.Oui : string_intrinsics_runtime.vit compile et s’exécute via le chemin compatibilité.
to_string, type_nameListés dans le registre bootstrap.Pas de fixture d’analyse dédiée retenue.Non établis par les tests runtime audités ; ne pas inférer leur support C17 depuis leur seule présence dans le registre.

Sources : registre builtin bootstrap · builtins documentés par le backend C17 · fixture runtime de chaînes · priorité des expressions.