v0.2.12
This commit is contained in:
95
chapters/004-couches-de-lecosysteme-v1.md
Normal file
95
chapters/004-couches-de-lecosysteme-v1.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# 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.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user