204 lines
2.5 KiB
Markdown
204 lines
2.5 KiB
Markdown
# Exemples / DO-DON'T — Chapitre 40 — Targets, plateformes, architectures, ABI, distributions et capabilities
|
|
|
|
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
|
|
|
## Exemples extraits du 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
|
|
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
|
|
Architecture
|
|
ABI
|
|
Distribution
|
|
```
|
|
|
|
## DO / DON'T / WHY / compiler error / edge cases
|
|
|
|
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|