From e8c0bb05572d28df6135a04eb5ec22b49af62816 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 29 Jan 2024 20:55:16 +0100 Subject: [PATCH] Add links for arena and interning. (#1868) Co-authored-by: Yuki Okushi --- src/memory.md | 5 ++++- src/overview.md | 15 +++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/memory.md b/src/memory.md index 4072d4f33..e46a4a283 100644 --- a/src/memory.md +++ b/src/memory.md @@ -4,7 +4,10 @@ Rustc tries to be pretty careful how it manages memory. The compiler allocates _a lot_ of data structures throughout compilation, and if we are not careful, it will take a lot of time and space to do so. -One of the main way the compiler manages this is using arenas and interning. +One of the main way the compiler manages this is using [arena]s and [interning]. + +[arena]: https://en.wikipedia.org/wiki/Region-based_memory_management +[interning]: https://en.wikipedia.org/wiki/String_interning ## Arenas and Interning diff --git a/src/overview.md b/src/overview.md index 797f4d8e2..fb0b07e63 100644 --- a/src/overview.md +++ b/src/overview.md @@ -246,12 +246,15 @@ for different purposes: optimizations on it. One other thing to note is that many values in the compiler are _interned_. -This is a performance and memory optimization in which we allocate the values -in a special allocator called an _arena_. Then, we pass around references to -the values allocated in the arena. This allows us to make sure that identical -values (e.g. types in your program) are only allocated once and can be compared -cheaply by comparing pointers. Many of the intermediate representations are -interned. +This is a performance and memory optimization in which we allocate the values in +a special allocator called an +_[arena]_. Then, we pass +around references to the values allocated in the arena. This allows us to make +sure that identical values (e.g. types in your program) are only allocated once +and can be compared cheaply by comparing pointers. Many of the intermediate +representations are interned. + +[arena]: https://en.wikipedia.org/wiki/Region-based_memory_management ### Queries