5.4 KiB
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
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.