Files
saselang-bible/chapters/004-couches-de-lecosysteme-v1.md
2026-09-13 00:12:41 +02:00

3.1 KiB

4. Couches de l'écosystème V1

4.1 Saselang Language — V1 REQUIS — FIGÉ

Le langage comprend notamment :

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 :

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 :

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 Bibliothèques officielles .saselib — DIRECTION FIGÉE

Au-delà du Core et du SDK, l'écosystème Saselang peut fournir des familles de bibliothèques officielles distribuées au format .saselib.

Aucune notion spécifique d'« addon » n'est introduite.

Ces bibliothèques restent optionnelles et versionnées indépendamment lorsque leur fonction ne justifie pas une présence obligatoire dans le SDK.

Leur nom peut refléter directement la famille fonctionnelle concernée. Une famille de moteur embarqué inspirée de MapDB peut ainsi employer des noms du type :

saselang/mapdb*

sans obligation de la cacher derrière une hiérarchie générique saselang/storage*.

Le même principe s'applique aux futurs portages/réimplémentations spécialisés.

4.5 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.