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.
src/bootstrap/builtin/README.mdLa 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
| Famille | Types |
|---|---|
| Contrôle et diagnostic | void, never, error, bool |
| Entiers | u8, u32, u64, usize, int, i64 |
| Flottants | f32, f64 |
| Texte | string |
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
| Nom | Signature | Rôle |
|---|---|---|
true, false | bool | Litté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) -> never | Arrêt anormal avec un message. |
assert | (bool) -> void | Vérification d’une condition. |
len | (string) -> usize | Longueur selon le contrat du builtin. |
to_string | (int) -> string | Conversion d’un entier en texte. |
type_name | (error) -> string | Nom 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é | Registre | Parseur / sémantique | Compilation constatée |
|---|---|---|---|
true, false, entiers, booléens, chaînes | Types/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, assert | Listé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. |
len | Listé. | Accepté dans les tests chaîne. | Oui : compilé et exécuté avec string_intrinsics_runtime.vit. |
trim, starts_with, ends_with | Ne 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_name | Listé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.