@@ -988,16 +988,17 @@ illuminate several of Rust's unique features as we encounter them.
988
988
989
989
Rust has three competing goals that inform its view of memory:
990
990
991
- * Memory safety: memory that is managed by and is accessible to the
992
- Rust language must be guaranteed to be valid; under normal
991
+ * Memory safety: Memory that is managed by and is accessible to the
992
+ Rust language must be guaranteed to be valid. Under normal
993
993
circumstances it must be impossible for Rust to trigger a
994
- segmentation fault or leak memory
995
- * Performance: high-performance low-level code must be able to employ
996
- a number of allocation strategies; low-performance high-level code
997
- must be able to employ a single, garbage-collection-based, heap
998
- allocation strategy
999
- * Concurrency: Rust must maintain memory safety guarantees, even for
1000
- code running in parallel
994
+ segmentation fault or leak memory.
995
+ * Performance: High-performance low-level code must be able to employ
996
+ a number of allocation strategies. Tracing garbage collection must be
997
+ optional and, if it is not desired, memory safety must not be compromised.
998
+ Less performance-critical, high-level code should be able to employ a single,
999
+ garbage-collection-based, heap allocation strategy.
1000
+ * Concurrency: Rust code must be free of in-memory data races. (Note that other
1001
+ types of races are still possible.)
1001
1002
1002
1003
## How performance considerations influence the memory model
1003
1004
0 commit comments