v0.2.14
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -15,7 +15,7 @@ analyse sémantique
|
||||
HIR
|
||||
Sase IR
|
||||
interpréteur
|
||||
a backend LLVM
|
||||
backend LLVM
|
||||
Core V1
|
||||
SDK initial
|
||||
manifests et workspaces
|
||||
@@ -44,6 +44,17 @@ Core/SDK lorsque pertinent
|
||||
|
||||
### Exemple 4
|
||||
|
||||
```text
|
||||
source
|
||||
Core
|
||||
tooling
|
||||
packages
|
||||
artifacts
|
||||
et, lorsque défini, ABI/binaire
|
||||
```
|
||||
|
||||
### Exemple 5
|
||||
|
||||
```text
|
||||
browser runtime / extension
|
||||
browser chunks/bundling
|
||||
@@ -60,4 +71,4 @@ 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -144,6 +144,12 @@ f16 f32 f64 f128
|
||||
bitcast<float16>(value)
|
||||
```
|
||||
|
||||
### Exemple 18
|
||||
|
||||
```text
|
||||
where T implements Numeric
|
||||
```
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -14,6 +14,87 @@ enum
|
||||
union
|
||||
```
|
||||
|
||||
### Exemple 2
|
||||
|
||||
```text
|
||||
class Foo;
|
||||
struct Bar;
|
||||
```
|
||||
|
||||
### Exemple 3
|
||||
|
||||
```text
|
||||
nominalement connu
|
||||
identité du type, kind et paramètres génériques connus
|
||||
|
||||
sémantiquement complet
|
||||
déclaration, héritage, interfaces et contrats résolus
|
||||
|
||||
layout-complet
|
||||
représentation by-value, taille et alignement calculables lorsque nécessaires
|
||||
```
|
||||
|
||||
### Exemple 4
|
||||
|
||||
```text
|
||||
struct A {
|
||||
A value;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 5
|
||||
|
||||
```text
|
||||
struct A {
|
||||
B b;
|
||||
}
|
||||
|
||||
struct B {
|
||||
A a;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 6
|
||||
|
||||
```text
|
||||
struct A {
|
||||
StaticArray<A, 0> values;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
class A {
|
||||
B b;
|
||||
}
|
||||
|
||||
class B {
|
||||
A a;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
|
||||
```text
|
||||
class A extends B
|
||||
class B extends A
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
|
||||
```text
|
||||
interface A extends B
|
||||
interface B extends A
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
|
||||
```text
|
||||
cyclic inheritance
|
||||
recursive by-value layout
|
||||
```
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -15,18 +15,424 @@ 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
|
||||
class Box<T> {
|
||||
...
|
||||
}
|
||||
|
||||
struct Pair<A, B> {
|
||||
...
|
||||
}
|
||||
|
||||
interface Comparable<T> {
|
||||
...
|
||||
}
|
||||
|
||||
func identity<T>(T value) -> T {
|
||||
return value;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 3
|
||||
|
||||
```text
|
||||
Box<int32>
|
||||
Pair<String, uint64>
|
||||
Result<Data, ParseError>
|
||||
```
|
||||
|
||||
### Exemple 4
|
||||
|
||||
```text
|
||||
Box
|
||||
Result
|
||||
```
|
||||
|
||||
### Exemple 5
|
||||
|
||||
```text
|
||||
Box<int32> box = Box<int32>(42);
|
||||
```
|
||||
|
||||
### Exemple 6
|
||||
|
||||
```text
|
||||
func first<T>(T left, T right) -> T;
|
||||
|
||||
int32 a = ...;
|
||||
int32 b = ...;
|
||||
|
||||
int32 c = first(a, b);
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
func create<T>() -> T;
|
||||
|
||||
String value = create(); // ERROR
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
|
||||
```text
|
||||
String value = create<String>();
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
|
||||
```text
|
||||
func same<T>(T a, T b) -> bool;
|
||||
|
||||
int16 a = ...;
|
||||
int32 b = ...;
|
||||
|
||||
same(a, b); // ERROR
|
||||
same<int32>(a::toInt32(), b); // OK
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
|
||||
```text
|
||||
where T extends SomeClass
|
||||
where T implements SomeInterface
|
||||
```
|
||||
|
||||
### Exemple 11
|
||||
|
||||
```text
|
||||
func process<T>(T value) -> Void
|
||||
where T extends Entity
|
||||
where T implements Serializable
|
||||
where T implements Comparable<T>
|
||||
{
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 12
|
||||
|
||||
```text
|
||||
func compare<A, B>(A left, B right) -> Ordering
|
||||
where A implements Comparable<B>
|
||||
{
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 13
|
||||
|
||||
```text
|
||||
where T implements Comparable<T>
|
||||
```
|
||||
|
||||
### Exemple 14
|
||||
|
||||
```text
|
||||
where T is numeric
|
||||
where T is primitive
|
||||
where T is struct
|
||||
where T is class
|
||||
```
|
||||
|
||||
### Exemple 15
|
||||
|
||||
```text
|
||||
where T implements Numeric
|
||||
```
|
||||
|
||||
### Exemple 16
|
||||
|
||||
```text
|
||||
interface B extends A {
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 17
|
||||
|
||||
```text
|
||||
where T implements B
|
||||
where T implements A
|
||||
```
|
||||
|
||||
### Exemple 18
|
||||
|
||||
```text
|
||||
open class Base<T>
|
||||
where T implements Serializable
|
||||
{
|
||||
}
|
||||
|
||||
class Child<T> extends Base<T>
|
||||
where T implements Serializable
|
||||
{
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 19
|
||||
|
||||
```text
|
||||
class Box<T> implements Iterable<T> {
|
||||
...
|
||||
}
|
||||
|
||||
class StringList implements Iterable<String> {
|
||||
...
|
||||
}
|
||||
|
||||
class StringContainer extends Container<String> {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 20
|
||||
|
||||
```text
|
||||
class PairBox<T> implements Container<Pair<T, T>> {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 21
|
||||
|
||||
```text
|
||||
Consumer<String>
|
||||
Consumer<Array<uint8>>
|
||||
```
|
||||
|
||||
### Exemple 22
|
||||
|
||||
```text
|
||||
même nombre de paramètres génériques
|
||||
même nature type/const de chaque paramètre
|
||||
mêmes relations de contraintes
|
||||
même contrat callable après substitution
|
||||
```
|
||||
|
||||
### Exemple 23
|
||||
|
||||
```text
|
||||
Dog extends Animal
|
||||
```
|
||||
|
||||
### Exemple 24
|
||||
|
||||
```text
|
||||
Container<Dog> -> Container<Animal>
|
||||
```
|
||||
|
||||
### Exemple 25
|
||||
|
||||
```text
|
||||
in T
|
||||
out T
|
||||
+T
|
||||
-T
|
||||
wildcards Java
|
||||
```
|
||||
|
||||
### Exemple 26
|
||||
|
||||
```text
|
||||
monomorphisation
|
||||
code partagé avec metadata
|
||||
stratégie hybride
|
||||
```
|
||||
|
||||
### Exemple 27
|
||||
|
||||
```text
|
||||
struct StaticArray<T, const uint64 N> {
|
||||
...
|
||||
}
|
||||
|
||||
struct Matrix<T, const uint64 Rows, const uint64 Columns> {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 28
|
||||
|
||||
```text
|
||||
bool
|
||||
char
|
||||
uint8
|
||||
uint16
|
||||
uint32
|
||||
uint64
|
||||
uint128
|
||||
uint256
|
||||
enum simple sans payload
|
||||
```
|
||||
|
||||
### Exemple 29
|
||||
|
||||
```text
|
||||
int8..int256
|
||||
float16..float128
|
||||
String
|
||||
class
|
||||
struct arbitraire
|
||||
tuple
|
||||
enum avec payload
|
||||
```
|
||||
|
||||
### Exemple 30
|
||||
|
||||
```text
|
||||
littéraux
|
||||
const nommées déjà résolues
|
||||
paramètres const generic
|
||||
parenthèses
|
||||
opérateurs primitifs purs autorisés sur ces valeurs
|
||||
```
|
||||
|
||||
### Exemple 31
|
||||
|
||||
```text
|
||||
StaticArray<uint8, 32>
|
||||
StaticArray<uint8, PAGE_SIZE>
|
||||
StaticArray<uint8, PAGE_SIZE * 2>
|
||||
StaticArray<uint8, 1u64 << 12>
|
||||
```
|
||||
|
||||
### Exemple 32
|
||||
|
||||
```text
|
||||
StaticArray<uint8, computeSize()> // ERROR
|
||||
StaticArray<uint8, value::toUint64()> // ERROR
|
||||
```
|
||||
|
||||
### Exemple 33
|
||||
|
||||
```text
|
||||
fonction
|
||||
méthode
|
||||
constructeur
|
||||
allocation
|
||||
I/O
|
||||
état runtime
|
||||
exception
|
||||
appel d'intrinsic exposé comme callable
|
||||
```
|
||||
|
||||
### Exemple 34
|
||||
|
||||
```text
|
||||
const uint64 SIZE = ...;
|
||||
|
||||
StaticArray<uint8, SIZE>
|
||||
```
|
||||
|
||||
### Exemple 35
|
||||
|
||||
```text
|
||||
StaticArray<T, 2 + 2>
|
||||
StaticArray<T, 4>
|
||||
```
|
||||
|
||||
### Exemple 36
|
||||
|
||||
```text
|
||||
func length<T, const uint64 N>(StaticArray<T, N> array) -> uint64
|
||||
```
|
||||
|
||||
### Exemple 37
|
||||
|
||||
```text
|
||||
func strange<const uint64 N>(StaticArray<int32, N * 2> value)
|
||||
```
|
||||
|
||||
### Exemple 38
|
||||
|
||||
```text
|
||||
where N > 0
|
||||
where N <= 1024
|
||||
```
|
||||
|
||||
### Exemple 39
|
||||
|
||||
```text
|
||||
class Node<T> {
|
||||
Nullable<Node<T>> next;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 40
|
||||
|
||||
```text
|
||||
class BufferNode<T, const uint64 N> {
|
||||
Nullable<BufferNode<T, N>> next;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 41
|
||||
|
||||
```text
|
||||
class Node<T> {
|
||||
Nullable<Node<Array<T>>> next; // ERROR
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 42
|
||||
|
||||
```text
|
||||
class BufferNode<T, const uint64 N> {
|
||||
Nullable<BufferNode<T, N + 1>> next; // ERROR
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 43
|
||||
|
||||
```text
|
||||
class A<T> {
|
||||
Nullable<B<T>> b;
|
||||
}
|
||||
|
||||
class B<T> {
|
||||
Nullable<A<T>> a;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 44
|
||||
|
||||
```text
|
||||
class A<T> {
|
||||
Nullable<B<Array<T>>> b;
|
||||
}
|
||||
|
||||
class B<T> {
|
||||
Nullable<A<T>> a;
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 45
|
||||
|
||||
```text
|
||||
func recurse<T>(T value) -> Void {
|
||||
recurse<T>(value); // OK
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 46
|
||||
|
||||
```text
|
||||
func recurse<T>(T value) -> Void {
|
||||
recurse<Array<T>>(...); // ERROR
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 47
|
||||
|
||||
```text
|
||||
<T...>
|
||||
<const uint64... N>
|
||||
generic parameter packs
|
||||
wildcards
|
||||
specialization
|
||||
variance déclarative
|
||||
contraintes négatives
|
||||
```
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -66,19 +66,112 @@ wrapToTarget()
|
||||
### Exemple 6
|
||||
|
||||
```text
|
||||
tryExactToInt32()
|
||||
tryFloorToInt32()
|
||||
tryCeilToInt32()
|
||||
tryRoundToInt32()
|
||||
tryTruncateToInt32()
|
||||
tryToIntXX()
|
||||
tryToUintXX()
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
floor()
|
||||
ceil()
|
||||
round()
|
||||
truncate()
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
|
||||
```text
|
||||
value::floor()::tryToInt32()
|
||||
value::ceil()::tryToInt32()
|
||||
value::round()::tryToInt32()
|
||||
value::truncate()::tryToInt32()
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
|
||||
```text
|
||||
value::floor()::trySaturateToInt32()
|
||||
value::round()::tryWrapToInt32()
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
|
||||
```text
|
||||
NaN -> NaN
|
||||
+Infinity -> +Infinity
|
||||
-Infinity -> -Infinity
|
||||
+0 -> +0
|
||||
-0 -> -0
|
||||
```
|
||||
|
||||
### Exemple 11
|
||||
|
||||
```text
|
||||
payload NaN
|
||||
quiet/signaling bit
|
||||
signe du NaN
|
||||
représentation binaire exacte
|
||||
```
|
||||
|
||||
### Exemple 12
|
||||
|
||||
```text
|
||||
tryToFloatXX()
|
||||
exige une représentation exacte
|
||||
|
||||
tryRoundToFloatXX()
|
||||
accepte l'arrondi canonique
|
||||
refuse une valeur finie hors domaine fini destination
|
||||
|
||||
saturatingRoundToFloatXX()
|
||||
accepte l'arrondi canonique
|
||||
sature une valeur finie hors domaine vers +/-Target::Max
|
||||
```
|
||||
|
||||
### Exemple 13
|
||||
|
||||
```text
|
||||
NotFinite
|
||||
NotIntegral
|
||||
OutOfRange
|
||||
Inexact
|
||||
```
|
||||
|
||||
### Exemple 14
|
||||
|
||||
```text
|
||||
NotFinite
|
||||
NaN ou +/-Infinity lorsqu'une valeur finie est requise
|
||||
|
||||
NotIntegral
|
||||
float -> integer alors que la valeur n'est pas mathématiquement entière
|
||||
|
||||
OutOfRange
|
||||
valeur mathématique hors du domaine de la destination
|
||||
|
||||
Inexact
|
||||
valeur dans le domaine destination mais non représentable exactement
|
||||
alors que l'opération exige l'exactitude
|
||||
```
|
||||
|
||||
### Exemple 15
|
||||
|
||||
```text
|
||||
sourceType
|
||||
targetType
|
||||
sourceValue
|
||||
timestamp
|
||||
backend
|
||||
roundingMode
|
||||
```
|
||||
|
||||
### Exemple 16
|
||||
|
||||
```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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -38,10 +38,62 @@ import type foo.Token as FooToken;
|
||||
### Exemple 5
|
||||
|
||||
```text
|
||||
saselang.compiler.lexer.Token
|
||||
saselang.compiler.lexer::tokenize(...)
|
||||
src/foo/A.saseltype
|
||||
src/foo/B.saseltype
|
||||
```
|
||||
|
||||
### Exemple 6
|
||||
|
||||
```text
|
||||
import type foo.A;
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
namespace foo;
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
|
||||
```text
|
||||
charger le fichier immédiatement
|
||||
exécuter le fichier
|
||||
initialiser le fichier
|
||||
compiler ce fichier avant le fichier courant
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
|
||||
```text
|
||||
A imports B
|
||||
B imports A
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
|
||||
```text
|
||||
A imports B
|
||||
B imports C
|
||||
C imports A
|
||||
```
|
||||
|
||||
### Exemple 11
|
||||
|
||||
```text
|
||||
cycle de références de classes
|
||||
autorisé
|
||||
|
||||
cycle d'appels
|
||||
autorisé
|
||||
|
||||
cycle d'héritage
|
||||
ERROR
|
||||
|
||||
cycle de layout by-value
|
||||
ERROR
|
||||
```
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -143,6 +143,53 @@ StandardError
|
||||
|
||||
### Exemple 13
|
||||
|
||||
```text
|
||||
language.*
|
||||
core.*
|
||||
target.*
|
||||
platform.*
|
||||
sdk.*
|
||||
```
|
||||
|
||||
### Exemple 14
|
||||
|
||||
```text
|
||||
language.exceptions
|
||||
core.numeric.float128
|
||||
core.collections.array
|
||||
target.atomic.int64
|
||||
target.simd.float32
|
||||
platform.filesystem
|
||||
platform.network
|
||||
sdk.logging
|
||||
```
|
||||
|
||||
### Exemple 15
|
||||
|
||||
```text
|
||||
Language-required
|
||||
sémantique nécessaire à tout compilateur Saselang conforme
|
||||
|
||||
Core-required-for-supported-type
|
||||
contrat Core obligatoire dès que le type/capacité fondamentale existe
|
||||
sur le target
|
||||
|
||||
Core/target optional capability
|
||||
fonctionnalité réellement optionnelle ou spécifique d'un environnement
|
||||
```
|
||||
|
||||
### Exemple 16
|
||||
|
||||
```text
|
||||
instruction native disponible
|
||||
lowering/backend direct ou optimisé
|
||||
|
||||
instruction native absente
|
||||
implémentation logicielle conforme
|
||||
```
|
||||
|
||||
### Exemple 17
|
||||
|
||||
```text
|
||||
TargetFamily
|
||||
Platform
|
||||
@@ -153,4 +200,4 @@ 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,11 +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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
|
||||
Aucun bloc d'exemple explicite dans cette révision.
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -23,4 +23,4 @@ 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,11 +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.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
Aucun bloc d'exemple explicite n'est encore présent dans ce chapitre.
|
||||
Aucun bloc d'exemple explicite dans cette révision.
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
# Exemples / DO-DON'T — Chapitre 52 — Priorité de spécification après 0.2.9
|
||||
# Exemples / DO-DON'T — Chapitre 52 — Priorité de spécification après 0.2.14
|
||||
|
||||
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du 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
|
||||
1. String/Unicode + collections + Range
|
||||
2. lambdas/closures + callable model
|
||||
3. async/concurrency décision V1
|
||||
4. modèle mémoire + allocator + pointers + unsafe
|
||||
5. fautes runtime + construction/destruction cleanup
|
||||
6. Core V1 exact : Numeric, collections, erreurs, TypeInfo et autres contrats
|
||||
7. capacités target et registre canonique des capability identifiers
|
||||
8. SDK V1 initial et frontières Core/SDK
|
||||
9. FFI C exacte
|
||||
10. reflection/metadata/tests/tooling
|
||||
11. grammaire syntaxique complète et audit lexical final
|
||||
12. audit mécanique des generics/const generics/récursivité et conversions
|
||||
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
|
||||
@@ -26,4 +26,4 @@
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
Reference in New Issue
Block a user