This commit is contained in:
2026-09-12 08:56:27 +02:00
parent 426aa92d0d
commit 18306bdc8c
116 changed files with 11080 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
# Exemples / DO-DON'T — Chapitre 0 — Statuts normatifs
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,63 @@
# Exemples / DO-DON'T — Chapitre 1 — Trajectoire d'implémentation
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
frontend complet
lexer
parser
AST
analyse sémantique
HIR
Sase IR
interpréteur
a backend LLVM
Core V1
SDK initial
manifests et workspaces
gestion des dépendances
outils initiaux
```
### Exemple 2
```text
représentable par le backend
mais non officiellement supportée par la toolchain Saselang
```
### Exemple 3
```text
compiler frontend
semantic analysis
Sase IR
interpreter
tooling
package/build tooling
Core/SDK lorsque pertinent
```
### Exemple 4
```text
browser runtime / extension
browser chunks/bundling
WebAssembly
JVM
JavaScript
TypeScript
Android packaging
iOS packaging
backends/ABI supplémentaires
outillage avancé
cibles spécialisées
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,116 @@
# Exemples / DO-DON'T — Chapitre 2 — Principes généraux du langage
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
and comme alias de &&
or comme alias de ||
=== en plus de l'identité explicite
++ et --
ternaire ?: si les formes productrices de `match`/`if` avec `emit` couvrent le besoin
```
### Exemple 2
```text
&& / || short-circuit
& / | / ^ logique eager sur bool
```
### Exemple 3
```text
keywords
identifiers
numeric literals
operators
punctuation
syntactic whitespace
namespace syntax
```
### Exemple 4
```text
String literals
char literals
ordinary comments
Saseldoc comments
```
### Exemple 5
```text
U+0020 SPACE
U+0009 TAB
U+000A LF
U+000D CR
```
### Exemple 6
```regex
[A-Za-z_][A-Za-z0-9_]*
```
### Exemple 7
```text
_value // utilisateur autorisé
__value // réservé interne
```
### Exemple 8
```text
( ) grouping, calls, control headers, parameters
[ ] indexing et constructions définies par leur grammaire
{ } blocks et constructions à accolades
; fin d'un statement ou d'une déclaration sans corps
, séparation de deux éléments ; séparateur de listes init/update dans for
. qualification de namespace
:: qualification de membre/symbole
=> séparateur grammatical pattern -> bloc dans match
= assignment
+ - * / % arithmetic
& | ^ ~ bitwise/logical selon type ; | sépare aussi les alternatives d'un pattern
! logical negation / !=
< > comparaison, shifts et syntaxe générique selon contexte
.. famille de délimiteurs de Range, avec >.., ..< et >..<
' char delimiter
" String delimiter
_ identifiant / séparateur numérique / wildcard de pattern selon contexte
```
### Exemple 9
```text
# raw-string delimiter et shebang autorisé seulement selon sa règle dédiée
@ réservé hors commentaires/Saseldoc
$ réservé, notamment pendant la finalisation de l'interpolation
? réservé sans sémantique V1 encore attribuée
` réservé/interdit à l'utilisateur
\ uniquement selon les règles d'escape des littéraux
```
### Exemple 10
```text
Map<String,List<int32>>
```
### Exemple 11
```text
{
int32 myvar = 42;
}
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,41 @@
# Exemples / DO-DON'T — Chapitre 3 — Architecture de compilation
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
Source
-> lexer
-> parser
-> AST
-> modèle sémantique
-> HIR
-> Sase IR
-> backend / interpréteur
```
### Exemple 2
```text
HIR
Sase IR
bytecode dérivé de Sase IR
```
### Exemple 3
```text
machine code
object file
native executable
static library
dynamic/shared library
textual assembly
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,77 @@
# Exemples / DO-DON'T — Chapitre 4 — Couches de l'écosystème V1
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
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
```
### Exemple 2
```text
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
```
### Exemple 3
```text
collections
encodages explicites
regex
filesystem
networking
process
concurrence
math
algèbre
FFI helpers
plateforme
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,149 @@
# Exemples / DO-DON'T — Chapitre 5 — Types primitifs
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
int8 int16 int32 int64 int128 int256
uint8 uint16 uint32 uint64 uint128 uint256
float16 float32 float64 float128
bool
char
```
### Exemple 2
```text
-> Void
Result<Void,E>
Result<Void>
```
### Exemple 3
```text
func save() -> Result<Void> {
...
return Result::Ok(Void);
}
```
### Exemple 4
```text
Void value;
field Void
Option<Void>
Nullable<Void>
Array<Void>
Range<Void>
```
### Exemple 5
```text
value::toString()
float16::fromInt32(value)
```
### Exemple 6
```text
overflow statiquement prouvable -> erreur de compilation
overflow dynamique -> faute runtime déterministe
```
### Exemple 7
```text
wrapping
saturating
checked
```
### Exemple 8
```text
statique -> erreur compilation
dynamique -> faute runtime
```
### Exemple 9
```text
a == (a / b) * b + (a % b)
```
### Exemple 10
```text
42 decimal
0b101010 binary
0o52 octal
0x2a hexadecimal
```
### Exemple 11
```text
1_000_000
0b1010_1100
0xffff_ffff
1.234_567
1.0e1_000
```
### Exemple 12
```text
1.0
0.5
42.25
1e6
1.5e-3
```
### Exemple 13
```text
i8 i16 i32 i64 i128 i256
u8 u16 u32 u64 u128 u256
f16 f32 f64 f128
```
### Exemple 14
```text
42i32
42u64
1.5f16
```
### Exemple 15
```text
0x1.0p0
0x1.8p1
0x1.ffp10
0x1.0p-20
```
### Exemple 16
```text
1f16
1::toFloat16()
```
### Exemple 17
```text
bitcast<float16>(value)
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,26 @@
# Exemples / DO-DON'T — Chapitre 6 — Types, variables, constantes et scopes
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
{
int32 value = 1;
}
{
int32 value = 2;
}
```
### Exemple 2
```text
foo(a(), b(), c())
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,19 @@
# Exemples / DO-DON'T — Chapitre 7 — Types nominaux et fichiers `.saseltype`
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
class
struct
interface
enum
union
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,54 @@
# Exemples / DO-DON'T — Chapitre 8 — Classes et `Object`
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
open
ou
final
```
### Exemple 2
```text
abstract
```
### Exemple 3
```text
this instance courante
super instance de la classe parente immédiate
cls classe courante dans une clsmethod
parent classe parente immédiate dans une clsmethod
```
### Exemple 4
```text
super::super
parent::parent
```
### Exemple 5
```text
this::field
token::kind()
Type::member
super::method()
```
### Exemple 6
```text
Object::sameInstance(Object other) -> bool
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,18 @@
# Exemples / DO-DON'T — Chapitre 9 — Structs
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
private
module
package
public
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,11 @@
# Exemples / DO-DON'T — Chapitre 10 — Enums algébriques
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,28 @@
# Exemples / DO-DON'T — Chapitre 11 — Tuples
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
(int32, String)
```
### Exemple 2
```text
(int32 id, String name) = value;
```
### Exemple 3
```text
tuple[0]
tuple[1]
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,40 @@
# Exemples / DO-DON'T — Chapitre 12 — Unions
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
int*
uint*
float*
```
### Exemple 2
```text
public unsafe union RawValue
```
### Exemple 3
```text
bool
char
raw pointers
fixed compatible arrays
FFI-safe trivial structs
compatible unsafe unions
```
### Exemple 4
```text
public unsafe extern "C" union NativeValue
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,45 @@
# Exemples / DO-DON'T — Chapitre 13 — Interfaces
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
nom
+ ordre des paramètres
+ type de chaque paramètre
```
### Exemple 2
```text
type de retour
visibilité
fallibilité / Result
throws
contraintes génériques pertinentes
modificateurs contractuels pertinents
```
### Exemple 3
```text
module
package
public
```
### Exemple 4
```text
public interface Ring<T> {
public const T Zero;
public const T One;
}
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,32 @@
# Exemples / DO-DON'T — Chapitre 14 — Generics
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
Array<T>
Result<T,E>
OpAdd<Lhs,Rhs,Out>
```
### Exemple 2
```text
syntaxe des contraintes
variance ou absence de variance
contraintes multiples
specialization éventuelle
monomorphisation vs représentation partagée
contraintes sur types primitifs
const generics pour StaticArray<T,N>
generic methods
inférence éventuelle des arguments génériques à l'appel
wildcards/existentials éventuels
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,53 @@
# Exemples / DO-DON'T — Chapitre 15 — Fonctions, méthodes et `clsmethod`
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
func fonction libre
method méthode d'instance
clsmethod méthode de classe
operator implémentation d'un contrat opérateur
```
### Exemple 2
```text
opération infaillible
-> retourne directement T
opération pouvant produire une erreur récupérable
-> retourne Result<T>
ou Result<T,E>
```
### Exemple 3
```text
method length() -> uint64
method containsKey(K key) -> bool
Object::sameInstance(Object other) -> bool
func min(int32 a, int32 b) -> int32
```
### Exemple 4
```text
func readFile(String path) -> Result<String, IoError>
method parse(String input) -> Result<Value, ParseError>
```
### Exemple 5
```text
return value;
return Result::Ok(value);
return Result::Ok(Void);
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,64 @@
# Exemples / DO-DON'T — Chapitre 16 — Dispatch, override et modificateurs
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
visibility
-> safety
-> linkage / ABI
-> type / dispatch modifiers
-> override
-> declaration kind
```
### Exemple 2
```text
Name<...>
-> extends ...
-> implements ...
```
### Exemple 3
```text
public final class User
public open class Service
public abstract class Base
public unsafe extern "C" union NativeValue
protected open method calculate(...)
protected override method calculate(...)
protected final override method calculate(...)
```
### Exemple 4
```text
open method
```
### Exemple 5
```text
abstract method
```
### Exemple 6
```text
override method
```
### Exemple 7
```text
final override method
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,51 @@
# Exemples / DO-DON'T — Chapitre 17 — Construction et destruction
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
private
protected
module
package
public
```
### Exemple 2
```text
private
module
package
public
```
### Exemple 3
```text
C -> B -> A
```
### Exemple 4
```text
this::field
this::method()
super::method()
escape/capture/pass de this
```
### Exemple 5
```text
destruct() {
...
}
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,259 @@
# Exemples / DO-DON'T — Chapitre 18 — `Result`, erreurs et exceptions
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
Object
└── Error
├── ResultError
└── Exception
```
### Exemple 2
```text
public final class ParseError extends ResultError {
}
public final class FileNotFoundException extends Exception {
}
```
### Exemple 3
```text
message: String
cause: Option<Error>
i18nMessage: Option<I18nMessage>
```
### Exemple 4
```text
message
message humain canonique / fallback
cause
erreur causale purement informative
peut contenir un ResultError ou une Exception
n'est pas automatiquement propagée
i18nMessage
clé et paramètres de localisation
ne contient pas un tableau de traductions
```
### Exemple 5
```text
code: ResultErrorCode
```
### Exemple 6
```text
code -> stable, machine-readable, non localisé
message -> humain, canonique / fallback
i18nMessage -> localisation externe
```
### Exemple 7
```text
throw exception;
```
### Exemple 8
```text
Result::Ok(T)
Result::Err(E)
```
### Exemple 9
```text
E doit être ResultError ou un descendant de ResultError
```
### Exemple 10
```text
Result<Data,ResultError>
Result<Data,ParseError>
Result<Void,ResultError>
```
### Exemple 11
```text
Result<Data,Error>
Result<Data,Exception>
Result<Data,FileNotFoundException>
```
### Exemple 12
```text
Result<T>
```
### Exemple 13
```text
Result<T,ResultError>
```
### Exemple 14
```text
return Result::Ok(value);
return Result::Err(error);
```
### Exemple 15
```text
result::expectOk(...)
result::expectErr(...)
```
### Exemple 16
```text
ResultError -> Exception
Exception -> ResultError
```
### Exemple 17
```text
throw ParseException(..., Option::Some(parseError));
```
### Exemple 18
```text
catch (FileNotFoundException error) {
return Result::Err(FileResultError(..., Option::Some(error)));
}
```
### Exemple 19
```text
T + throws -> interdit
Result<T,E> -> valide sans throws
Result<T,E> + throws -> valide
```
### Exemple 20
```text
throws IOException
```
### Exemple 21
```text
supprimer entièrement des exceptions déclarées
restreindre une famille à une ou plusieurs sous-familles compatibles
gérer localement tout ou partie des exceptions du contrat parent
```
### Exemple 22
```text
throw FileNotFoundException(...); // valide
throw ParseError(...); // erreur
throw Error(...); // erreur
```
### Exemple 23
```text
catch (IOException error) {
throw error;
}
```
### Exemple 24
```text
try { ... }
try { ... } finally { ... }
finally { ... }
```
### Exemple 25
```text
try {
...
} catch (SpecificException error) {
...
} catch (ParentException error) {
...
} finally {
...
}
```
### Exemple 26
```text
catch (FileNotFoundException error) {
...
} catch (IOException error) {
...
}
```
### Exemple 27
```text
catch (IOException error) {
...
} catch (FileNotFoundException error) {
...
}
```
### Exemple 28
```text
fin normale du try
fin normale d'un catch
return traversant la construction
throw propagé
break / continue traversant la construction
Exception non capturée par les catch
```
### Exemple 29
```text
return
throw
break
continue
emit
```
### Exemple 30
```text
index hors limites
division entière par zéro
overflow checked
représentation mémoire invalide
borne dynamique invalide lors d'une construction directe lorsque la règle du type le définit
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,287 @@
# Exemples / DO-DON'T — Chapitre 19 — Contrôle de flux
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
if (condition) {
action();
} elseif (otherCondition) {
otherAction();
} else {
fallback();
}
```
### Exemple 2
```text
int32 result = if (x > 10) {
emit 1;
} elseif (x > 5) {
emit 2;
} else {
emit 3;
};
```
### Exemple 3
```text
Option<uint32> result = if (condition) {
emit Option::Some(42);
} else {
emit Option::None;
};
```
### Exemple 4
```text
match (value) {
pattern1 => {
statements;
}
pattern2 => {
statements;
}
_ => {
statements;
}
}
```
### Exemple 5
```text
literal pattern
enum variant pattern
tuple pattern
struct pattern
typed binding pattern
wildcard _
alternative pattern avec |
nested pattern
Range pattern si et seulement si le Range est valide selon les règles de Range
```
### Exemple 6
```text
1 | 2 | 3 => {
...
}
```
### Exemple 7
```text
A(uint32 value) | B(uint32 value) => {
use(value);
}
```
### Exemple 8
```text
Color::Red => {
...
}
```
### Exemple 9
```text
Result::Ok(uint32 value) => {
use(value);
}
Result::Err(Error error) => {
handle(error);
}
```
### Exemple 10
```text
Result::Ok(_) => {
...
}
```
### Exemple 11
```text
(0, 0) => {
origin();
}
(int32 x, 0) => {
horizontal(x);
}
(int32 x, int32 y) => {
other(x, y);
}
```
### Exemple 12
```text
Point {
x: 0,
y: int32 vertical
} => {
use(vertical);
}
```
### Exemple 13
```text
Point {
x: 0,
y: _
}
```
### Exemple 14
```text
SomeEnum::PointValue(
Point {
x: 0,
y: int32 y
}
) => {
use(y);
}
```
### Exemple 15
```text
int32 result = match (value) {
0 => {
emit 10;
}
_ => {
emit 20;
}
};
```
### Exemple 16
```text
int32 result;
result = if (condition) {
emit 1;
} else {
emit 2;
};
```
### Exemple 17
```text
return V1 requis
break V1 requis
continue V1 requis
yield réservé pour generators/coroutines si non finalisé en V1
```
### Exemple 18
```text
while (condition) {
...
}
dowhile (condition) {
...
}
for (initialization; condition; update) {
...
}
foreach (Type item in iterable) {
...
}
```
### Exemple 19
```text
dowhile (condition) {
statements;
}
```
### Exemple 20
```text
for (;;) {
...
}
```
### Exemple 21
```text
while (true) {
...
}
```
### Exemple 22
```text
for (i = 0, j = 5; i < x || j < y; i += 1, j += 1) {
...
}
```
### Exemple 23
```text
foreach (Type item in iterable) {
...
}
```
### Exemple 24
```text
until (...) -> utiliser while (!...)
repeat ... until -> utiliser dowhile (!...)
unless (...) -> utiliser if (!...)
loop { ... } -> utiliser while (true) { ... }
```
### Exemple 25
```text
;
;;
foo();;
```
### Exemple 26
```text
foo(first, second, third); // valide
foo(first, second, third,); // invalide
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,234 @@
# Exemples / DO-DON'T — Chapitre 20 — Opérateurs
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
OpPositive<T>
OpNegate<T>
OpAdd<Lhs,Rhs,Out>
OpSubtract<Lhs,Rhs,Out>
OpMultiply<Lhs,Rhs,Out>
OpDivide<Lhs,Rhs,Out>
OpRemainder<Lhs,Rhs,Out>
```
### Exemple 2
```text
Vector3 * float64 -> Vector3
Matrix * Vector3 -> Vector3
Timestamp + Duration -> Timestamp
Timestamp - Timestamp -> Duration
```
### Exemple 3
```text
OpBitNot<T>
OpBitAnd<Lhs,Rhs,Out>
OpBitOr<Lhs,Rhs,Out>
OpBitXor<Lhs,Rhs,Out>
OpShiftLeft<T,Out>
OpShiftRight<T,Out>
```
### Exemple 4
```text
statique -> erreur compilation
dynamique -> faute runtime
```
### Exemple 5
```text
unsigned -> logical zero-fill
signed -> arithmetic sign extension
```
### Exemple 6
```text
!a
a && b
a || b
```
### Exemple 7
```text
a & b
a | b
a ^ b
```
### Exemple 8
```text
OpPartialEqual<Lhs,Rhs>
OpEqual<T>
```
### Exemple 9
```text
OpPartialEqual<T,T>
```
### Exemple 10
```text
réflexive
symétrique
transitive
```
### Exemple 11
```text
public enum Ordering {
Less,
Equal,
Greater,
Unordered
}
```
### Exemple 12
```text
OpPartialCompare<Lhs,Rhs>
OpCompare<T>
```
### Exemple 13
```text
OpIndex<Index,Read>
OpIndexMut<Index,Write>
```
### Exemple 14
```text
container[index]
container[index] = value
```
### Exemple 15
```text
Map<K,V>
OpIndex<K,Option<V>>
OpIndexMut<K,V>
```
### Exemple 16
```text
if (a = b) { ... }
x = (a = b);
a = b = c;
```
### Exemple 17
```text
+= -= *= /= %=
&= |= ^=
<<= >>=
```
### Exemple 18
```text
lecture
+ opérateur fondamental surchargeable
+ réaffectation
```
### Exemple 19
```text
value is Type
```
### Exemple 20
```text
value is Animal // true
value is Dog // true
value is Labrador // true
```
### Exemple 21
```text
!(value is Type)
```
### Exemple 22
```text
value instanceof ConcreteClass
```
### Exemple 23
```text
value instanceof Animal // false
value instanceof Dog // false
value instanceof Labrador // true
```
### Exemple 24
```text
!(value instanceof ConcreteClass)
```
### Exemple 25
```text
bitcast<T>(value)
```
### Exemple 26
```text
1. qualification / membre . ::
2. appel / indexation () []
3. préfixes +x -x !x ~x
4. multiplicatifs * / %
5. additifs + -
6. shifts << >>
7. relation / type < <= > >= is instanceof
8. égalité == !=
9. bitwise AND &
10. bitwise XOR ^
11. bitwise OR |
12. logique short-circuit AND &&
13. logique short-circuit OR ||
```
### Exemple 27
```text
a < b < c -> interdit
a == b == c -> interdit
```
### Exemple 28
```text
a < b && b < c
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,110 @@
# Exemples / DO-DON'T — Chapitre 21 — Strings, Unicode et encodages
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
Utf8String
Utf16String
Utf32String
AsciiString éventuel
Bytes
```
### Exemple 2
```text
byte
code unit
Unicode scalar
code point
grapheme cluster
```
### Exemple 3
```text
'A'
'é'
'中'
'😀'
'\n'
'\u{1F600}'
```
### Exemple 4
```text
"..." String normale, escapes actifs
"""...""" String normale multiligne
r"..." String brute
r"""...""" String brute multiligne
i"..." String interpolée
i"""...""" String interpolée multiligne
ir"..." interpolation + contenu brut, réservé
b"..." bytes, réservé
br"..." bytes bruts, réservé
u8"..." texte encodé UTF-8 explicitement, réservé
u16"..." texte encodé UTF-16 explicitement, réservé
u32"..." texte encodé UTF-32 explicitement, réservé
c"..." chaîne compatible C, réservé
cr"..." chaîne C brute, réservé
t"..." template structuré, réservé
```
### Exemple 5
```text
i"Hello {name}"
i"Hello ${name}"
```
### Exemple 6
```text
"""
first
second
"""
```
### Exemple 7
```text
r"simple"
r#"He said "hello"."#
r##"contains "# inside"##
```
### Exemple 8
```text
r"""..."""
r#"""..."""#
```
### Exemple 9
```text
\\ backslash
\" double quote
\' single quote
\n newline
\r carriage return
\t horizontal tab
\0 NUL
\u{...} Unicode scalar
```
### Exemple 10
```text
b"\x00\x7f\x80\xff"
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,124 @@
# Exemples / DO-DON'T — Chapitre 22 — Collections et itération
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
Vector<T>
```
### Exemple 2
```text
a..b [a, b] bornes basse et haute incluses
a>..b (a, b] borne basse exclue, borne haute incluse
a..<b [a, b) borne basse incluse, borne haute exclue
a>..<b (a, b) bornes basse et haute exclues
```
### Exemple 3
```text
Range<uint64> ids = 1..100;
```
### Exemple 4
```text
NaN interdit comme borne
+Infinity interdit comme borne
-Infinity interdit comme borne
valeur finie autorisée
```
### Exemple 5
```text
a..a contient exactement a
a>..a vide
a..<a vide
a>..<a vide
```
### Exemple 6
```text
range::lower()
range::upper()
range::includesLower()
range::includesUpper()
range::isEmpty()
range::contains(value)
```
### Exemple 7
```text
Range<T> intervalle ordonné
RangeIterable<T> parcours canonique vers l'avant
RangeStep<T,Step> parcours avant avec pas explicite
RangeReverse<T> parcours canonique vers l'arrière
RangeReverseStep<T,Step> parcours arrière avec pas explicite
RangeProgression<T,Step> valeur de progression produite
```
### Exemple 8
```text
(range)::step(step)
```
### Exemple 9
```text
RangeStep<int32,int32>
RangeStep<int32,uint32>
RangeStep<char,uint32>
RangeStep<Date,Duration>
```
### Exemple 10
```text
(range)::reverse()
(range)::reverse()::step(step)
```
### Exemple 11
```text
range
[::reverse()]
[::step(step)]
```
### Exemple 12
```text
(250u8..255u8)::step(2u8)
```
### Exemple 13
```text
250 252 254
```
### Exemple 14
```text
(1..10)::step(4)
```
### Exemple 15
```text
1 5 9
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,73 @@
# Exemples / DO-DON'T — Chapitre 23 — `Option<T>` et `Nullable<T>`
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
Option<int32>
Option<String>
Option<MyStruct>
Option<MyClass>
```
### Exemple 2
```text
Option<MyClass>::None
```
### Exemple 3
```text
Nullable<MyClass>::Null
```
### Exemple 4
```text
T?
```
### Exemple 5
```text
Option<Nullable<MyClass>> autorisé
Nullable<Option<MyClass>> interdit
Nullable<Nullable<MyClass>> interdit
```
### Exemple 6
```text
Option::None
Option::Some(Nullable<MyClass>::Null)
Option::Some(instance non nulle)
```
### Exemple 7
```text
Option<T> absence sémantique
Nullable<T> nullabilité représentationnelle
```
### Exemple 8
```text
match (value) {
Option::Some(uint32 number) => {
...
}
Option::None => {
...
}
}
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,84 @@
# Exemples / DO-DON'T — Chapitre 24 — Casts et conversions
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
conversion de valeur
cast de hiérarchie nominale
bitcast de représentation binaire
```
### Exemple 2
```text
int8 small = ...;
int32 large = small; // ERROR
int32 explicitLarge = small::toInt32(); // OK
```
### Exemple 3
```text
Dog dog = ...;
Animal animal = dog;
Serializable serializable = dog;
```
### Exemple 4
```text
Animal animal = ...;
if (animal is Dog) {
// animal est raffiné en Dog ici.
}
```
### Exemple 5
```text
toTarget()
conversion exacte et totale
tryToTarget()
conversion exacte pour la valeur courante, récupérable si impossible
roundToTarget()
perte de précision explicitement acceptée, conversion totale
tryRoundToTarget()
perte de précision explicitement acceptée, mais conversion pouvant échouer
saturateToTarget()
saturation explicite lorsqu'aucun arrondi supplémentaire n'est nécessaire
saturatingRoundToTarget()
arrondi + saturation explicitement annoncés
wrapToTarget()
wrapping entier explicite
```
### Exemple 6
```text
tryExactToInt32()
tryFloorToInt32()
tryCeilToInt32()
tryRoundToInt32()
tryTruncateToInt32()
```
### Exemple 7
```text
annexes/A-numeric-conversions.md
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,11 @@
# Exemples / DO-DON'T — Chapitre 25 — Lambdas, closures, callables et generators
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,23 @@
# Exemples / DO-DON'T — Chapitre 26 — Async et concurrence
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
async/await ou autre modèle
Future/Promise Core ou SDK
threads natifs
structured concurrency éventuelle
cancellation
synchronisation
interaction avec Result/throws
interaction avec destruction déterministe
runtime minimal
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,44 @@
# Exemples / DO-DON'T — Chapitre 27 — Mémoire, références et `unsafe`
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
value vs reference semantics
object allocation
moves/copies/clones
borrow/reference semantics si nécessaire
escape analysis
lifetimes internes
partial construction
partial destruction
cycles éventuels
resource ownership
thread-safety implications
```
### Exemple 2
```text
unsafe { ... }
unsafe func
unsafe method
unsafe clsmethod
unsafe construct
unsafe union
```
### Exemple 3
```text
unsafe variable
unsafe constant
unsafe field
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,67 @@
# Exemples / DO-DON'T — Chapitre 28 — `defer` et nettoyage
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
{
acquireA();
defer {
releaseA();
}
acquireB();
defer {
releaseB();
}
work();
}
```
### Exemple 2
```text
releaseB();
releaseA();
```
### Exemple 3
```text
fin normale
return
throw
break
continue
emit quittant le scope concerné
```
### Exemple 4
```text
throw
-> unwind des scopes quittés
-> defer de ces scopes, LIFO
-> catch correspondant éventuel
-> defer du scope catch, LIFO
-> finally éventuel
-> continuation normale ou propagation
```
### Exemple 5
```text
return
throw
break
continue
emit
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,40 @@
# Exemples / DO-DON'T — Chapitre 29 — FFI et ABI
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
extern "C"
```
### Exemple 2
```text
extern "C" func
unsafe extern "C" func
extern "C" union
unsafe extern "C" union
```
### Exemple 3
```text
C struct layout
C enum mapping
raw pointers
strings C
callbacks
function pointers
calling conventions
variadic C
alignment/packing
ownership across FFI
error propagation across ABI
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,25 @@
# Exemples / DO-DON'T — Chapitre 30 — Réflexion, métadonnées et tests
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
informations compiler-known
métadonnées conservées dans le binaire
réflexion runtime optionnelle
```
### Exemple 2
```text
compiler
test
documentation/tooling
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,39 @@
# Exemples / DO-DON'T — Chapitre 31 — Fichiers source V1
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
src/compiler/lexer/Token.saseltype
namespace compiler.lexer;
public final class Token { ... }
```
### Exemple 2
```text
<source_root>/main.saselrun
```
### Exemple 3
```text
module.saselmod
```
### Exemple 4
```text
doc module-wide
deprecated module-wide
policies module-wide (ex: forbid unsafe)
requirements de feature
target/capability requirements lorsque pertinent
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,33 @@
# Exemples / DO-DON'T — Chapitre 32 — Source root, modules et namespaces
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
src
```
### Exemple 2
```text
src/saselang/compiler/lexer/Token.saseltype
```
### Exemple 3
```text
namespace saselang.compiler.lexer;
```
### Exemple 4
```regex
[a-z][a-z0-9_]*
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,47 @@
# Exemples / DO-DON'T — Chapitre 33 — Imports et résolution des noms
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
import type saselang.compiler.lexer.Token;
import func saselang.compiler.lexer.tokenize;
import const saselang.compiler.config.MaxDepth;
import var saselang.runtime.state.CurrentMode;
```
### Exemple 2
```text
class
struct
enum
interface
union
```
### Exemple 3
```text
import type foo.Token;
```
### Exemple 4
```text
import type foo.Token as FooToken;
```
### Exemple 5
```text
saselang.compiler.lexer.Token
saselang.compiler.lexer::tokenize(...)
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,112 @@
# Exemples / DO-DON'T — Chapitre 34 — Packages, identité et collisions de namespaces
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
vendor/package
```
### Exemple 2
```text
vendor/package@version
```
### Exemple 3
```text
vendor/package@requirement
```
### Exemple 4
```text
saselang/core@1.4.0
saselang/compiler-core@^0.8
acme/http-client@>=2.5,<3.0
sdl/sdl@3.1.*
```
### Exemple 5
```regex
[a-z][a-z0-9]*(?:-[a-z0-9]+)*
```
### Exemple 6
```text
namespace parser.ast;
public class Node
```
### Exemple 7
```text
instance de package résolue
+ namespace
+ symbole
```
### Exemple 8
```text
acme/parser@2.4.1 :: parser.ast.Node
other/parser@5.0.0 :: parser.ast.Node
```
### Exemple 9
```text
from "vendor/package@requirement"
```
### Exemple 10
```text
import func some.namespace::function from "sdl/sdl@2.1.*" as sdlfun1;
import type some.namespace.Type from "acme/parser@^3.0" as ParserType;
```
### Exemple 11
```text
sdl/sdl@2.1.*
sdl/sdl@^3.0
```
### Exemple 12
```text
import func ... from "sdl/sdl@2.1.*" as sdlfun1;
import func ... from "sdl/sdl@^3.0" as sdlfun2;
```
### Exemple 13
```text
sdl/sdl@2.1.*
sdl/sdl@^3.0
```
### Exemple 14
```text
sdl/sdl@>=1.0
sdl/sdl@^4.5
```
### Exemple 15
```text
sdl/sdl@^3.0
sdl/sdl@3.1.*
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,233 @@
# Exemples / DO-DON'T — Chapitre 35 — Manifests et workspaces
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
workspace.manifest.toml
project.manifest.toml
```
### Exemple 2
```toml
manifest-version = 1
```
### Exemple 3
```toml
manifest-version = 1
[workspace]
projects-root = "projects"
members = [
"core",
"compiler",
"sdk",
]
[workspace.output]
build-root = "build"
temp-build-root = ".saselang/tmp"
[workspace.defaults.project]
vendor = "saselang"
version = "0.1.0"
license = "..."
authors = ["..."]
repository = "..."
[workspace.defaults.source]
root = "src"
[workspace.defaults.build]
profile = "dev"
target = "host"
[workspace.defaults.paths]
dependencies = ["vendor"]
native-libraries = ["native/lib"]
native-includes = ["native/include"]
[workspace.dependencies."saselang/core@^1.0"]
source = "registry"
[workspace.dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"
[workspace.dependencies."local/tools@^1.0"]
source = "local"
path = "../shared/tools"
```
### Exemple 4
```text
build-root
racine des sorties de build persistantes
temp-build-root
racine des fichiers temporaires/intermédiaires de build
```
### Exemple 5
```text
workspace.defaults.project
workspace.defaults.source
workspace.defaults.build
workspace.defaults.paths
```
### Exemple 6
```text
scalaire absent dans le projet
-> valeur workspace héritée
scalaire présent dans le projet
-> remplacement
liste absente dans le projet
-> liste workspace héritée
liste présente dans le projet
-> remplacement complet de la liste
```
### Exemple 7
```text
vendor/package@requirement
```
### Exemple 8
```text
workspace
local
git
registry
native
system
```
### Exemple 9
```toml
manifest-version = 1
[project]
vendor = "acme"
name = "my-application"
version = "1.2.0"
type = "bin"
description = "..."
license = "..."
authors = ["..."]
repository = "..."
[source]
root = "src"
[build]
profile = "dev"
target = "host"
[paths]
dependencies = ["vendor"]
native-libraries = ["native/lib"]
native-includes = ["native/include"]
[dependencies]
"saselang/core@^1.0" = { workspace = true }
[build.dependencies]
[dev.dependencies]
[dev.unit.dependencies]
[dev.integration.dependencies]
[dev.environment.dependencies]
```
### Exemple 10
```text
vendor
name
version
type
```
### Exemple 11
```text
description
license
authors
repository
```
### Exemple 12
```text
src
```
### Exemple 13
```text
profile
target
```
### Exemple 14
```text
dependencies
native-libraries
native-includes
```
### Exemple 15
```toml
[dependencies]
"saselang/core@^1.0" = { workspace = true }
```
### Exemple 16
```toml
[dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"
```
### Exemple 17
```text
valeurs intrinsèques/defaults du langage/toolchain
< workspace.defaults.*
< project.manifest.toml
< options explicites de la commande de build lorsque l'option est conçue pour être overridable
```
### Exemple 18
```text
lib
bin
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,95 @@
# Exemples / DO-DON'T — Chapitre 36 — SemVer et politique de releases
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
MAJOR.MINOR.PATCH
```
### Exemple 2
```text
MAJOR -> rupture de compatibilité publique
MINOR -> ajout rétrocompatible
PATCH -> correction rétrocompatible
```
### Exemple 3
```text
pre -> alpha -> beta -> rc -> stable
```
### Exemple 4
```text
pre développement/intégration active ; fonctionnalités incomplètes possibles
alpha ensemble cohérent et testable ; API encore susceptible d'évoluer
beta fonctionnalités prévues essentiellement complètes ; stabilisation
rc candidat à la release ; changements limités aux corrections nécessaires
stable aucun identifiant de prerelease
```
### Exemple 5
```text
X.Y.Z-0.pre.N
X.Y.Z-1.alpha.N
X.Y.Z-2.beta.N
X.Y.Z-3.rc.N
X.Y.Z
```
### Exemple 6
```text
1.4.0-0.pre.3
1.4.0-1.alpha.1
1.4.0-2.beta.2
1.4.0-3.rc.1
1.4.0
```
### Exemple 7
```text
X.Y.Z-0.pre.N.fix.M
X.Y.Z-1.alpha.N.fix.M
X.Y.Z-2.beta.N.fix.M
X.Y.Z-3.rc.N.fix.M
```
### Exemple 8
```text
1.4.0-3.rc.2
1.4.0-3.rc.2.fix.1
1.4.0-3.rc.3
```
### Exemple 9
```text
1.4.0
```
### Exemple 10
```text
1.4.1
```
### Exemple 11
```text
X.Y.Z+build.N
X.Y.Z+doc.N
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,260 @@
# Exemples / DO-DON'T — Chapitre 37 — Dépendances et scopes
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
kind = nature logique de la dépendance
source = moyen utilisé pour la localiser/résoudre
```
### Exemple 2
```text
saselang
native
```
### Exemple 3
```text
workspace
registry
local
git
artifact
system
```
### Exemple 4
```toml
[dependencies."vendor/package@requirement"]
kind = "saselang"
source = "registry"
locator = "saselang"
```
### Exemple 5
```toml
foo = "^1.2"
foo = "../foo"
```
### Exemple 6
```text
vendor/package@requirement
```
### Exemple 7
```toml
[dependencies."acme/math@^2.4"]
kind = "saselang"
source = "git"
locator = "https://example.org/acme/math.git"
```
### Exemple 8
```toml
[dependencies."acme/local-tools@^1.0"]
kind = "saselang"
source = "local"
locator = "../local-tools"
```
### Exemple 9
```toml
[dependencies."acme/parser@=1.4.2"]
kind = "saselang"
source = "artifact"
locator = "../libs/parser.saselib"
```
### Exemple 10
```toml
[dependencies."sdl/sdl@^3.0"]
kind = "native"
source = "system"
locator = "SDL3"
```
### Exemple 11
```toml
[workspace.dependencies."sdl/sdl@^3.0"]
kind = "native"
source = "system"
locator = "SDL3"
```
### Exemple 12
```toml
[dependencies."sdl/sdl@^3.0"]
kind = "native"
source = "workspace"
```
### Exemple 13
```text
dependencies
build.dependencies
dev.dependencies
dev.unit.dependencies
dev.integration.dependencies
dev.environment.dependencies
```
### Exemple 14
```text
dev.benchmark.dependencies
dev.documentation.dependencies
dev.example.dependencies
```
### Exemple 15
```text
dev.unit effective =
dependencies
+ dev.dependencies
+ dev.unit.dependencies
```
### Exemple 16
```text
vendor/package
```
### Exemple 17
```text
sdl/sdl@2.1.*
sdl/sdl@^3.0
```
### Exemple 18
```text
sdl/sdl@^3.0
sdl/sdl@3.1.*
```
### Exemple 19
```text
vendor/package@requirement
```
### Exemple 20
```text
vendor/package@requirement
```
### Exemple 21
```text
sdl/sdl@^3.0
```
### Exemple 22
```text
Linux -> libSDL3.so / SONAME approprié
Windows -> SDL3.dll + import library éventuelle
macOS -> libSDL3.dylib ou framework approprié
```
### Exemple 23
```toml
[dependencies."sdl/sdl@^3.0"]
kind = "native"
source = "system"
locator = "SDL3"
[[dependencies."sdl/sdl@^3.0".variants]]
platform = "linux"
library = "SDL3"
[[dependencies."sdl/sdl@^3.0".variants]]
platform = "windows"
library = "SDL3"
```
### Exemple 24
```text
target-family
platform
architecture
abi
distribution
distribution-version
capabilities
```
### Exemple 25
```text
variant A : platform=linux, architecture=x86_64
variant B : platform=linux, abi=gnu
```
### Exemple 26
```text
library
linkage = auto | static | shared
deployment = auto | external | bundled
search-paths
include-paths
```
### Exemple 27
```text
runtime-files
link-files/import-libraries
frameworks
system-packages
resources
plugins
```
### Exemple 28
```text
=1.4.7
^4.5
~1.4.2
3.1.*
>=1.0
>=1.2,<2.0
```
### Exemple 29
```text
import type namespace.Type
from "vendor/package@requirement"
as LocalType;
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,114 @@
# Exemples / DO-DON'T — Chapitre 38 — Resolver et lockfile
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
identity vendor/package
selector vendor/package@requirement
resolved instance vendor/package@MAJOR.MINOR.PATCH
```
### Exemple 2
```text
A -> foo/bar@^2.0
B -> foo/bar@^2.5
```
### Exemple 3
```text
A -> foo/bar@^2.0
B -> foo/bar@^3.0
```
### Exemple 4
```text
1. conservation des versions déjà verrouillées lorsqu'elles restent valides ;
2. minimisation du nombre d'instances distinctes ;
3. versions SemVer compatibles les plus élevées lorsqu'une nouvelle résolution est nécessaire.
```
### Exemple 5
```text
vendor/package@1.2.3
```
### Exemple 6
```text
saselang.lock
```
### Exemple 7
```text
project.manifest.toml
saselang.lock
```
### Exemple 8
```text
workspace.manifest.toml
saselang.lock
projects/.../project.manifest.toml
```
### Exemple 9
```text
identité vendor/package
selector/requirement d'origine
version exacte résolue
kind
source exacte
locator stable lorsque pertinent
checksum/intégrité lorsque pertinent
commit exact pour Git
features résolues
instances multi-version
graphe de dépendances
conditions target/features pertinentes
```
### Exemple 10
```text
normal
utilise le lock ;
le complète/corrige si nécessaire ;
n'upgrade pas gratuitement
locked
interdit toute modification du lock ;
échoue si le graphe demandé n'est pas reproductible
update
recherche volontairement de nouvelles versions compatibles
```
### Exemple 11
```text
resolved-package-instance
+ namespace
+ symbol
```
### Exemple 12
```text
acme/foo@1.0.0 :: data.Node
acme/foo@2.0.0 :: data.Node
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,88 @@
# Exemples / DO-DON'T — Chapitre 39 — Features, `module.saselmod` et compilation conditionnelle
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
activer une dépendance optionnelle
activer un module
sélectionner une capacité/backend fonctionnel de library
contraindre d'autres features
```
### Exemple 2
```text
requires
conflicts
one-of
at-least-one
```
### Exemple 3
```text
namespace ...;
```
### Exemple 4
```text
doc ...
deprecated ...
forbid unsafe
requires feature ...
requires capability ...
requires target ...
```
### Exemple 5
```text
forbid unsafe
requires feature
requires capability
requires target
```
### Exemple 6
```text
ne produit jamais de valeur ;
ne peut jamais être utilisé comme expression ;
ne peut dépendre que d'informations déterminables à la compilation.
```
### Exemple 7
```text
des déclarations top-level complètes ;
des blocs d'implémentation dans le corps d'une callable.
```
### Exemple 8
```text
language version
compiler version
Core/SDK version
package identity/version
features actives
dépendances résolues
profile
artifact
target family
platform
architecture
ABI
endianness
pointer width
capabilities
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,156 @@
# Exemples / DO-DON'T — Chapitre 40 — Targets, plateformes, architectures, ABI, distributions et capabilities
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
TargetFamily
Platform
Architecture
ABI
Distribution
Capability
Feature
ArtifactKind
ExportFormat
```
### Exemple 2
```text
Endianness
PackageType
Linkage
Deployment
```
### Exemple 3
```text
Platform
Architecture
ABI
Distribution
Capability
ArtifactKind
ExportFormat
```
### Exemple 4
```text
Platform::Linux
Platform::Windows
Architecture::X86_64
Architecture::AArch64
ABI::Gnu
Distribution::Debian
Capability::FileSystem
ArtifactKind::NativeExecutable
```
### Exemple 5
```text
Native
Embedded
```
### Exemple 6
```text
Browser
Wasm
Jvm
JavaScript
```
### Exemple 7
```text
Linux
Windows
MacOS
FreeBSD
Android
iOS
None
```
### Exemple 8
```text
X86
X86_64
Arm
AArch64
RiscV32
RiscV64
Wasm32
```
### Exemple 9
```text
Gnu
Musl
Msvc
Darwin
Eabi
Eabihf
None
```
### Exemple 10
```text
Debian
Ubuntu
Rhel
Fedora
Arch
Alpine
```
### Exemple 11
```text
résoudre/découvrir des dépendances système ;
exprimer des contraintes d'environnement de distribution ;
produire des packages/export formats spécifiques.
```
### Exemple 12
```text
Heap
FileSystem
Environment
Process
Threads
Network
Sockets
Clock
DynamicLoading
SharedMemory
StandardInput
StandardOutput
StandardError
```
### Exemple 13
```text
TargetFamily
Platform
Architecture
ABI
Distribution
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,351 @@
# Exemples / DO-DON'T — Chapitre 41 — Artifacts, exports, profils et réservation des formats futurs
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
lib
bin
```
### Exemple 2
```text
Saselib
NativeStatic
NativeShared
```
### Exemple 3
```text
NativeExecutable
```
### Exemple 4
```text
LLVM IR
object
assembly
```
### Exemple 5
```text
identité vendor/package
version exacte
version de format saselib
API publique
métadonnées de types/generics nécessaires
Sase IR ou représentation compilable équivalente
dépendances requises
features pertinentes
contraintes de target/capability lorsque nécessaires
intégrité/métadonnées
```
### Exemple 6
```text
TAR POSIX/PAX
compressé par Zstandard
extension publique .saselib
```
### Exemple 7
```text
META-INF/saselib.manifest.toml
```
### Exemple 8
```text
external
standalone
```
### Exemple 9
```text
zip
tar
tar.gz
tar.zst
```
### Exemple 10
```text
deb
rpm
apk
AppImage
.run
msi
pkg
dmg
jar
browser chunks
Android packages
iOS packages
```
### Exemple 11
```text
package type = bin
artifact = NativeExecutable
target family = Native
platform = Linux
architecture = X86_64
ABI = Gnu
distribution = Debian (optionnel/réservé)
export format = Deb (futur)
```
### Exemple 12
```text
dev
release
```
### Exemple 13
```text
optimization
debug-info
incremental
```
### Exemple 14
```text
none
low
balanced
speed
size
```
### Exemple 15
```text
none
line
full
```
### Exemple 16
```toml
[profiles.dev]
optimization = "none"
debug-info = "full"
incremental = true
[profiles.release]
optimization = "speed"
debug-info = "line"
incremental = false
```
### Exemple 17
```text
désactiver les contrôles d'overflow définis par Saselang
modifier la sémantique d'un index hors limites
modifier l'ordre d'évaluation
modifier la représentation sémantique des types
changer les règles Result/throws
désactiver les vérifications de sûreté du langage
faire varier la validité d'un programme Saselang autrement que par une limite propre au backend/target
```
### Exemple 18
```toml
[profiles.release.backend.llvm]
lto = "thin"
```
### Exemple 19
```text
profiles.<profile>.backend.<backend>
```
### Exemple 20
```text
off
thin
full
```
### Exemple 21
```text
--profile dev
--profile release
```
### Exemple 22
```text
browser runtime définitif
WASM/JVM/JS backends
packaging Android/iOS
.deb/.rpm/.apk/.msi/.dmg
installation automatique de dépendances système sur toutes les distributions
```
### Exemple 23
```text
<name>.saselib
```
### Exemple 24
```text
archive TAR POSIX/PAX
compressée par Zstandard
```
### Exemple 25
```text
META-INF/saselib.manifest.toml
```
### Exemple 26
```text
version du format saselib
identité vendor/package
version exacte SemVer du package
compatibilité de version du langage Saselang
nature/portabilité de la bibliothèque
inventaire logique des contenus présents
requirements de dépendances
features pertinentes
contraintes de target/capabilities
métadonnées FFI/native nécessaires
informations d'intégrité prévues par la version de format
```
### Exemple 27
```text
Sase IR
métadonnées publiques/types/generics
artifacts binaires spécifiques à certains targets
ressources
documentation
autres données définies par une version future du format
```
### Exemple 28
```text
TAR POSIX/PAX
Zstandard
```
### Exemple 29
```text
bon ratio de compression
décompression rapide
chargement séquentiel efficace par les outils
```
### Exemple 30
```text
saselc
saseldoc
```
### Exemple 31
```text
saselc check
saselc build
saselc run
saselc test
saselc clean
saselc fetch
saselc update
```
### Exemple 32
```text
check
résolution du projet et des dépendances nécessaires
parsing, analyse sémantique et validations
pas de génération de l'artifact final
build
compilation et génération de l'artifact demandé
run
réservé à un projet de type bin
build si nécessaire puis exécution
transmet explicitement les arguments du programme
test
découverte/compilation/exécution des tests selon les règles V1
utilise les scopes dev appropriés
clean
supprime les sorties de build et temporary build de la racine concernée
ne supprime ni manifest ni lockfile
ne purge pas implicitement les caches globaux de dépendances
fetch
résout et récupère les dépendances nécessaires sans construire l'artifact
utilise le lock existant et le complète seulement si nécessaire
update
demande explicitement une nouvelle résolution compatible avec les requirements
met à jour le lockfile
peut cibler tout le graphe ou un selector/une identité précise
```
### Exemple 33
```text
Sase IR
LLVM IR
object
assembly
```
### Exemple 34
```text
project.manifest.toml
saselang.lock.toml
```
### Exemple 35
```text
visibilités incluses
format de sortie
chemin de sortie
base path / base URL lorsque le format le nécessite, notamment HTML
projet/package/workspace ciblé
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,15 @@
# Exemples / DO-DON'T — Chapitre 42 — `main` et `ExitCode`
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
func main(Array<String> args) -> Result<ExitCode>
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,77 @@
# Exemples / DO-DON'T — Chapitre 43 — Documentation et tests de conformité
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
README
sommaire
un fichier Markdown par chapitre
un fichier compagnon examples + DO/DON'T par chapitre
annexes référencées
manifest de distribution
```
### Exemple 2
```text
version cible
version de base
fichiers ajoutés
fichiers modifiés
fichiers supprimés
hashes des fichiers livrés
```
### Exemple 3
```text
DO
DON'T
WHY
compiler error
edge cases
```
### Exemple 4
```text
// commentaire de ligne
/* commentaire de bloc */
```
### Exemple 5
```text
/// documentation de ligne
/** documentation de bloc */
```
### Exemple 6
```text
@file-path
@package
@author
@created
@updated
@file-version
```
### Exemple 7
```text
@file-path chemin documentaire attendu, normalement relatif à la racine du package
@package identité/coordonnée du package concerné
@author auteur/contributeur associé
@created date de création documentaire
@updated date ou timestamp de dernière mise à jour documentaire
@file-version version propre au fichier, distincte de la version package
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,28 @@
# Exemples / DO-DON'T — Chapitre 44 — Browser — FUTUR V3+
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
sources
-> semantic compile
-> résolution manifest/features/saselmod/compile if
-> Browser IR / bytecode
-> bundle/chunks
-> browser runtime interpreter
```
### Exemple 2
```text
source unit
-> browser compilation unit
-> chunk transportable
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,23 @@
# Exemples / DO-DON'T — Chapitre 45 — Autres backends/cibles — FUTUR V3+
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
WebAssembly
JVM bytecode
JavaScript
TypeScript
Android
iOS
BSD supplémentaires
embedded avancé
interpréteurs spécialisés
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,20 @@
# Exemples / DO-DON'T — Chapitre 46 — Quantique — FUTUR LOINTAIN / RÉSERVÉ
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
qoperation
quantum
measure
adjoint
controlled
Qubit
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,43 @@
# Exemples / DO-DON'T — Chapitre 47 — Concepts rejetés ou déconseillés
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
traits séparés des interfaces en V1
multiple class inheritance
implicit returns
global general type inference for variable identity
variable shadowing while previous declaration visible
operator aliases sans différence sémantique
user-defined arbitrary operator symbols
operator ++ / --
operator === / !==
operator >>>
C preprocessor #ifdef/#define
switch/case fallthrough
errdefer
general static keyword when clsmethod suffices
match guards `when` / `if`
loop/until/repeat/unless comme synonymes de structures existantes
magic getters/setters
mandatory native GC
```
### Exemple 2
```text
reflection runtime obligatoire
metaprogramming transformant silencieusement le code
features combinatoires non contraintes
package hybride `lib+bin`
exports/reexports dans module.saselmod
transitive dependencies importables sans déclaration directe
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,11 @@
# Exemples / DO-DON'T — Chapitre 48 — Inventaire des points V1 encore OUVERTS
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,26 @@
# Exemples / DO-DON'T — Chapitre 49 — Éléments V1 RÉSERVÉS mais non obligatoires à implémenter immédiatement
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
.saselscript
yield si generators différés
browser-binary
Sasemark
hexadecimal floating literals si différés de V1
b/br byte-string literals
u8/u16/u32 explicit-encoding literals
c/cr C-string literals
t structured-template literals
certaines combinaisons de préfixes texte utiles
certains backends/tooling hooks
noms nécessaires pour éviter collisions futures
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,25 @@
# Exemples / DO-DON'T — Chapitre 50 — Éléments FUTURS V3+ identifiés
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
browser runtime/extension définitif
browser chunks/bundler optimisé
browser-binary définitif
WebAssembly backend complet
JVM backend
JavaScript/TypeScript backends
Android packaging
iOS packaging
packagers OS avancés
runtime capability discovery avancée
quantum/QPU
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,11 @@
# Exemples / DO-DON'T — Chapitre 51 — Invariants de conception
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.

View File

@@ -0,0 +1,29 @@
# Exemples / DO-DON'T — Chapitre 52 — Priorité de spécification après 0.2.9
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
1. terminer casts/conversions numériques + matrice Core
2. generics + contraintes + const generics
3. String/Unicode + collections + Range
4. lambdas/closures + callable model
5. async/concurrency décision V1
6. modèle mémoire + allocator + pointers + unsafe
7. fautes runtime + construction/destruction cleanup
8. Core V1 exact et capacités target
9. SDK V1 initial et frontières Core/SDK
10. FFI C exacte
11. reflection/metadata/tests/tooling
12. grammaire syntaxique complète et audit lexical final
13. audit complet de toutes les sections V1 REQUIS — À FINALISER
14. consolidation examples / DO-DON'T / conformance tests
15. plan d'implémentation du compilateur/interpréteur V1
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.