v0.2.17
This commit is contained in:
@@ -66,11 +66,51 @@ unsafe field
|
||||
|
||||
Le caractère dangereux est porté par le type/opération.
|
||||
|
||||
## 27.4 Raw pointers — V1 REQUIS — À FINALISER
|
||||
## 27.4 Pointeurs et accès mémoire bas niveau — V1 REQUIS — À FINALISER CRITIQUE
|
||||
|
||||
Les pointeurs bruts existent explicitement et leurs opérations de dereference/arithmétique autorisées doivent être précisément définies.
|
||||
Le modèle mémoire contient un sous-ensemble dédié aux pointeurs ; il ne doit pas être confondu avec les références de classe ou `Slice<T>`.
|
||||
|
||||
Les noms des types (`Ptr<T>`, `PtrMut<T>` ou autre) restent à figer.
|
||||
La spécification devra distinguer au minimum :
|
||||
|
||||
```text
|
||||
référence de classe
|
||||
accès sûr ordinaire vers un objet
|
||||
|
||||
Slice<T>
|
||||
vue sûre, bornée et contiguë sur un stockage existant
|
||||
|
||||
pointeur Saselang
|
||||
adresse explicite avec contrat de type/mutabilité à définir
|
||||
|
||||
pointeur brut / FFI
|
||||
accès mémoire bas niveau potentiellement unsafe
|
||||
|
||||
function pointer
|
||||
représentation ABI d'une cible callable, distincte des callables/closures ordinaires
|
||||
```
|
||||
|
||||
Les noms exacts des types (`Ptr<T>`, `PtrMut<T>` ou autre) restent à figer.
|
||||
|
||||
Doivent être définis explicitement :
|
||||
|
||||
```text
|
||||
nullabilité et non-null par défaut éventuel
|
||||
const T pointé et constness du pointeur lui-même
|
||||
dereference
|
||||
address-of
|
||||
arithmétique de pointeurs
|
||||
alignement
|
||||
allocation/libération manuelles
|
||||
casts entre pointeurs
|
||||
conversion pointeur <-> entier si elle existe
|
||||
pointeur opaque / équivalent éventuel de void*
|
||||
function pointers
|
||||
FFI C
|
||||
ownership ou absence d'ownership attaché au pointeur
|
||||
interaction avec allocator, lifetime interne et thread safety
|
||||
```
|
||||
|
||||
Le code ordinaire ne doit pas avoir besoin de pointeurs explicites lorsque les références de classe, arrays, slices ou autres abstractions sûres suffisent. Les opérations dangereuses doivent rester dans l'inventaire fermé `unsafe`.
|
||||
|
||||
## 27.5 Allocator — V1 REQUIS — À FINALISER CRITIQUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user