|
84 | 84 | //! have to change, and is it worse or better now? Would any patterns become truly inexpressible? |
85 | 85 | //! Could we carve out special exceptions for those patterns? Should we? |
86 | 86 | //! |
87 | | -//! A secondary goal of this project is to see if we can disamiguate the many functions of |
| 87 | +//! A secondary goal of this project is to see if we can disambiguate the many functions of |
88 | 88 | //! pointer<->integer casts enough for the definition of `usize` to be loosened so that it |
89 | 89 | //! isn't *pointer*-sized but address-space/offset/allocation-sized (we'll probably continue |
90 | 90 | //! to conflate these notions). This would potentially make it possible to more efficiently |
|
163 | 163 | //! of pointers and `usize` (and `isize`), and defining a pointer to semantically contain the |
164 | 164 | //! following information: |
165 | 165 | //! |
166 | | -//! * The **address-space** it is part of (i.e. "data" vs "code" in WASM). |
| 166 | +//! * The **address-space** it is part of (e.g. "data" vs "code" in WASM). |
167 | 167 | //! * The **address** it points to, which can be represented by a `usize`. |
168 | 168 | //! * The **provenance** it has, defining the memory it has permission to access. |
169 | 169 | //! |
|
246 | 246 | //! be using AtomicPtr instead. If that messes up the way you atomically manipulate pointers, |
247 | 247 | //! we would like to know why, and what needs to be done to fix it.) |
248 | 248 | //! |
249 | | -//! Something more complicated and just generally *evil* like a XOR-List requires more significant |
| 249 | +//! Something more complicated and just generally *evil* like an XOR-List requires more significant |
250 | 250 | //! changes like allocating all nodes in a pre-allocated Vec or Arena and using a pointer |
251 | 251 | //! to the whole allocation to reconstitute the XORed addresses. |
252 | 252 | //! |
|
257 | 257 | //! special attention at all, because they're generally accessing memory outside the scope of |
258 | 258 | //! "the abstract machine", or already using "I know what I'm doing" annotations like "volatile". |
259 | 259 | //! |
260 | | -//! Under [Strict Provenance] is is Undefined Behaviour to: |
| 260 | +//! Under [Strict Provenance] it is Undefined Behaviour to: |
261 | 261 | //! |
262 | 262 | //! * Access memory through a pointer that does not have provenance over that memory. |
263 | 263 | //! |
|
0 commit comments