Ah, no. Memory safety means prevention of access to invalid memory (i.e. the language should actively discourage you from having variables pointing to the uninitialized memory, already freed memory or memory belonging to a data structure of a different type). That is usually done by eliminating pointer arithmetic from the language, implementing bound checks and garbage collection (although Rust has lifetime tracking instead). For example, languages with garbage collection avoid use-after-free errors by forbidding programmers from explicitly freeing things — GC does that automatically once it detects there are zero references to a particular object/struct.Memory safety is implemented by paying attention to hardware addresses in the C code.
We have sandboxes for native code: emulators, hypervisors, jails. The latter two ultimately rely on the MMU (memory management unit), which obviously isn't a language property.Sandboxing is ultimately an implementation of memory safety.
It used to be an advertisement point for the Haswell family of processors: https://en.wikipedia.org/wiki/Transactional_Synchronization_Extensions. To this day those instructions are barely used and pretty much never talked about. The only thing having quicker fall from grace in the last decade that I can remember would be HP's "The Machine". (Please, google that yourself using the terms provided to you.)But, Intel's TSX fiasco??? links, please.