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

5.4 KiB

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

lib
bin

Exemple 2

Saselib
NativeStatic
NativeShared

Exemple 3

NativeExecutable

Exemple 4

LLVM IR
object
assembly

Exemple 5

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

TAR POSIX/PAX
compressé par Zstandard
extension publique .saselib

Exemple 7

META-INF/saselib.manifest.toml

Exemple 8

external
standalone

Exemple 9

zip
tar
tar.gz
tar.zst

Exemple 10

deb
rpm
apk
AppImage
.run
msi
pkg
dmg
jar
browser chunks
Android packages
iOS packages

Exemple 11

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

dev
release

Exemple 13

optimization
debug-info
incremental

Exemple 14

none
low
balanced
speed
size

Exemple 15

none
line
full

Exemple 16

[profiles.dev]
optimization = "none"
debug-info = "full"
incremental = true

[profiles.release]
optimization = "speed"
debug-info = "line"
incremental = false

Exemple 17

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

[profiles.release.backend.llvm]
lto = "thin"

Exemple 19

profiles.<profile>.backend.<backend>

Exemple 20

off
thin
full

Exemple 21

--profile dev
--profile release

Exemple 22

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

<name>.saselib

Exemple 24

archive TAR POSIX/PAX
compressée par Zstandard

Exemple 25

META-INF/saselib.manifest.toml

Exemple 26

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

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

TAR POSIX/PAX
Zstandard

Exemple 29

bon ratio de compression
décompression rapide
chargement séquentiel efficace par les outils

Exemple 30

saselc
saseldoc

Exemple 31

saselc check
saselc build
saselc run
saselc test
saselc clean
saselc fetch
saselc update

Exemple 32

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

Sase IR
LLVM IR
object
assembly

Exemple 34

project.manifest.toml
saselang.lock.toml

Exemple 35

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.