Files
saselang-bible/examples/041-artifacts-exports-profils-et-reservation-des-formats-futurs-examples.md
2026-09-13 10:20:16 +02:00

352 lines
5.4 KiB
Markdown

# 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/faults
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.