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

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