Files
saselang-bible/chapters/048-inventaire-des-points-v1-encore-ouverts.md
2026-09-13 00:12:41 +02:00

110 lines
5.2 KiB
Markdown

# 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-foreign` après audit de toute la Bible ;
- choix canonique `{expr}` vs `${expr}` à l'intérieur de `i"..."` ;
- 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`, `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`, `StackTrace` et `StackFrame` ;
- éventuels helpers Core futurs `expectOk` / `expectErr` seulement 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
- `protected` via 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 if` et de ses éventuels `else` ;
- API Core/compiler exacte de l'environnement de compilation ;
- choix final `enum` vs 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 `.saselib` après le manifest interne et niveau Zstandard canonique, après benchmark ;
- sémantique détaillée du mode `standalone` face 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 `saseldoc` aprè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.
---