5.5 KiB
48. Inventaire des points V1 encore OUVERTS
Cette section constitue la checklist principale avant de considérer la Bible V1 comme suffisamment normative pour une implémentation complète.
48.1 Lexical / grammaire
Points désormais largement figés : UTF-8 source, code ASCII hors contenu textuel, whitespace non sémantique, identifiants ASCII, commentaires, Saseldoc, littéraux numériques, char, String normales/raw/multilignes, escapes, séparateurs numériques, règles de fichiers source, statements/blocs/;, absence de trailing comma, if/elseif/else, boucles de base, match, emit et noyau des patterns structurels.
Restent à fermer :
- liste exhaustive finale des mots-clés actifs, futurs et
reserved-foreignaprès audit de toute la Bible ; - choix canonique
{expr}vs${expr}à l'intérieur dei"..."; - matrice finale des préfixes de littéraux combinables (
i,r,b,c,u8/u16/u32,t, etc.) et leur disponibilité V1/V2 ; - limite normative éventuelle du nombre de
#des raw strings ; - grammaire syntaxique complète au-delà des blocs/statements déjà figés ;
- syntaxe exacte des annotations/métadonnées de code lorsqu'elles seront retenues.
48.2 Types
- domaine exact des types admissibles à
Nullable<T>avec le modèle mémoire/FFI ; - audit mécanique final de la surface Core des conversions numériques à partir de la matrice désormais largement figée ;
- règles de sous-typage interface/class au-delà des règles génériques déjà fixées ;
- callable/function types ;
- lambdas/closures ;
- variadiques (un seul variadique prévu) ;
- String : APIs avancées restantes (graphemes, normalisation/collation, builders/buffers spécialisés) ;
- exact float semantics hors conversions déjà figées (opérations arithmétiques IEEE restantes,
%, division par zéro, etc.).
48.3 Mémoire
- value/reference model ;
- object allocation ;
- ownership/move/copy/clone ;
- references/borrowing visibles ou internes ;
- allocator ;
- cycles ;
- destruction partielle ;
- thread safety ;
- raw pointers ;
- unsafe operation inventory.
48.4 Erreurs
Points désormais largement figés : hiérarchie Error / ResultError / Exception / Fault, Result::Ok / Result::Err, contraintes de Result<T,E>, absence de unwrap et ? V1, throw / throws pour les exceptions checked, fault / faults pour les faults unchecked, catch limité aux branches Exception et Fault, contrats d'override throws, causes, i18n, code de ResultError, stack trace diagnostique et sémantique LIFO/non-escaping de defer.
Restent à fermer :
- interaction exacte cleanup/destruction/unwind pendant un
Fault; - unité d'exécution exacte terminée par un
Faultnon capturé ; - constructors faillibles et construction partielle ;
- ordre exact
defer/ destructeurs automatiques avec le modèle mémoire ; - représentation Core/runtime exacte de
I18nMessage,ResultErrorCode,StackTraceetStackFrame; - politique de lint/documentation pour les
Faultexplicites non listés dansfaults; - éventuels helpers Core futurs de
Resultseulement si un besoin réel est démontré.
48.5 Contrôle de flux
- harmonisation finale des literal/named-constant patterns avec les règles générales des constantes et des types ;
- détails d'implémentation/Core des capacités Range et organisation de leurs namespaces ;
- generators/yield décision V1 ;
- lambdas ;
- async/concurrency.
48.6 Opérateurs
- signatures exactes des membres des interfaces
Op...; - relation précise PartialEqual/Equal et PartialCompare/Compare ;
- règles de comparaison hétérogène et reverse implementation ;
- index assignability formelle ;
- bitcast safe/unsafe table ;
48.7 Object model
protectedvia autres instances ;- clsmethod inheritance exact ;
- associated constants interface ;
- conflict resolution syntax when choosing among defaults ;
- visibility/default visibility if omitted (préférence actuelle : explicite) ;
- precise constructor synthesis grammar.
48.8 Packages/tooling
- grammaire finale des imports
from "vendor/package@requirement"; - format TOML sérialisé exact de
saselang.lock; - détails FFI/linker des composants physiques des variants natifs, après fixation complète de la FFI ;
- syntaxe TOML finale des features et groupes de features ;
- syntaxe exacte des directives
module.saselmod; - syntaxe exacte de
compile ifet de ses éventuelselse; - API Core/compiler exacte de l'environnement de compilation ;
- choix final
enumvs identifiant extensible pour quelques domaines Core lors de l'implémentation, sans changer le modèle conceptuel ; - liste des targets LLVM officiellement validés par la première toolchain V1 ;
- ordre final des entrées
.saselibaprès le manifest interne et niveau Zstandard canonique, après benchmark ; - sémantique détaillée du mode
standaloneface aux bibliothèques non redistribuables/dynamiques ; - grammaire CLI finale des options et sélecteurs de projet ;
- liste finale des options backend LLVM au-delà de
lto, uniquement si elles sont nécessaires ; - détails de
saseldocaprès fixation du format documentaire et des tests.
48.9 Core/SDK
- frontière Core/SDK définitive ;
- opérations avancées de bornes/ranges pour
SortedSet/SortedMap; - propagation formelle de
constdansView<T>,Option<T>,Iterator<T>et autres wrappers ; - String encodings ;
- regex ;
- filesystem/network/process ;
- math/algebra ;
- logging/tracing ;
- testing APIs ;
- reflection/TypeInfo.