96 lines
2.3 KiB
Markdown
96 lines
2.3 KiB
Markdown
# 4. Couches de l'écosystème V1
|
|
|
|
## 4.1 Saselang Language — V1 REQUIS — FIGÉ
|
|
|
|
Le langage comprend notamment :
|
|
|
|
```text
|
|
grammaire
|
|
types primitifs
|
|
types nominaux
|
|
fonctions/méthodes
|
|
classes
|
|
structs
|
|
interfaces
|
|
enums
|
|
unions
|
|
tuples
|
|
generics
|
|
contrôle de flux
|
|
erreurs/exceptions
|
|
opérateurs
|
|
unsafe
|
|
scope
|
|
visibilité
|
|
imports
|
|
compilation conditionnelle structurelle
|
|
```
|
|
|
|
## 4.2 Saselang Core — V1 REQUIS — À FINALISER
|
|
|
|
Le Core est minimal et contient les types fondamentaux non primitifs nécessaires au langage.
|
|
|
|
Les types compiler-known doivent rester rares.
|
|
|
|
Candidats actuellement nécessaires ou fortement retenus :
|
|
|
|
```text
|
|
Object
|
|
String
|
|
Result<T>
|
|
Result<T,E>
|
|
Error
|
|
ResultError
|
|
Exception
|
|
Option<T>
|
|
Nullable<T>
|
|
Range<T>
|
|
RangeIterable<T>
|
|
RangeStep<T,Step>
|
|
RangeReverse<T>
|
|
RangeReverseStep<T,Step>
|
|
RangeProgression<T,Step>
|
|
Ordering
|
|
Op...
|
|
Iterable<T>
|
|
Iterator<T>
|
|
Array<T>
|
|
StaticArray<T,N>
|
|
TypeInfo
|
|
ExitCode
|
|
```
|
|
|
|
Le fait d'être compiler-known ne transforme pas un type en primitive.
|
|
|
|
Les primitives peuvent exposer des membres standard définis par le Core sans devenir des classes. Les conversions numériques standard constituent un exemple important : leur surface API appartient au Core, tandis que le compilateur ne connaît que les règles de typage, les contrats d'intrinsics et les opérations Sase IR nécessaires à leur validation et à leur lowering.
|
|
|
|
Une capacité Core peut être conditionnée par un target lorsqu'elle ne peut raisonnablement pas être garantie partout. Une optimisation matérielle ne suffit pas à rendre une capacité conditionnelle si une implémentation logicielle conforme est raisonnable. L'absence d'une capacité réellement requise doit être diagnostiquée à la compilation pour le target choisi.
|
|
|
|
## 4.3 Saselang SDK — V1 REQUIS — À FINALISER
|
|
|
|
Le SDK fournit les fonctionnalités de bibliothèque qui ne justifient pas une sémantique spéciale du compilateur :
|
|
|
|
```text
|
|
collections
|
|
encodages explicites
|
|
regex
|
|
filesystem
|
|
networking
|
|
process
|
|
concurrence
|
|
math
|
|
algèbre
|
|
FFI helpers
|
|
plateforme
|
|
```
|
|
|
|
Le découpage exact Core/SDK doit être finalisé avant gel de l'API V1.
|
|
|
|
## 4.4 Runtime réduit — V1 REQUIS — FIGÉ EN PRINCIPE
|
|
|
|
Une application native simple ne doit pas être forcée d'embarquer un runtime monolithique.
|
|
|
|
Les services runtime doivent être ajoutés par capacités réelles.
|
|
|
|
---
|