Tagged memory architectures offer lots of opportunities for catching faults (which can also be sources of security issues).
However, such architectures throw up some thorny questions around how and when a collection of bits can be regarded as a valid pointer: http://shape-of-code.coding-guidelines.com/2019/05/17/c-considering-support-for-background-checks-on-pointer-values/
Interesting! By the way Rust specification is work in progress, but rustc Rust compiler includes Rust interpreter (for constexpr etc), and if I understood correctly, that interpreter also uses p-number. It is called AllocId there.
Tagged memory architectures offer lots of opportunities for catching faults (which can also be sources of security issues).
However, such architectures throw up some thorny questions around how and when a collection of bits can be regarded as a valid pointer: http://shape-of-code.coding-guidelines.com/2019/05/17/c-considering-support-for-background-checks-on-pointer-values/
Interesting! By the way Rust specification is work in progress, but rustc Rust compiler includes Rust interpreter (for constexpr etc), and if I understood correctly, that interpreter also uses p-number. It is called AllocId there.