5.0 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 generics et contraintes ;
- 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 ; - finalisation de la matrice exhaustive des conversions numériques Core et de ses noms composés ;
- règles de sous-typage interface/class ;
- generics complets ;
- const generics ;
- callable/function types ;
- lambdas/closures ;
- variadiques (un seul variadique prévu) ;
- String/index Unicode ;
- exact float semantics.
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, Result::Ok / Result::Err, contraintes de Result<T,E>, absence de unwrap et ? V1, throw / throws, contrats d'override/interface, sélection ordonnée des catch, finally non-escaping, causes, i18n, code de ResultError, stack trace d'Exception liée au throw, et sémantique LIFO/non-escaping de defer.
Restent à fermer :
- faute runtime/panic/fatal error ;
- constructors faillibles et construction partielle ;
- interaction exacte cleanup/destruction pendant fault ;
- ordre exact
defer/ destructeurs automatiques avec le modèle mémoire ; - représentation Core/runtime exacte de
I18nMessage,ResultErrorCode,StackTraceetStackFrame; - éventuels helpers Core futurs
expectOk/expectErrseulement 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 ;
- collections V1 ;
- String encodings ;
- regex ;
- filesystem/network/process ;
- math/algebra ;
- logging/tracing ;
- testing APIs ;
- reflection/TypeInfo.