diff options
| author | David Barsky <me@davidbarsky.com> | 2024-10-04 15:48:11 -0400 |
|---|---|---|
| committer | David Barsky <me@davidbarsky.com> | 2024-10-14 10:09:22 -0400 |
| commit | d28811bccea320694a05533edfb3c5a58af9e593 (patch) | |
| tree | aad6178c68db4365c9ce21f21dd6a378dc47a8d5 /src/tools/rust-analyzer/crates/salsa/FAQ.md | |
| parent | d764d87c9fcd439d8b09c2bd59776bbea868cc46 (diff) | |
| download | rust-d28811bccea320694a05533edfb3c5a58af9e593.tar.gz rust-d28811bccea320694a05533edfb3c5a58af9e593.zip | |
chore: rename salsa to ra_salsa
Diffstat (limited to 'src/tools/rust-analyzer/crates/salsa/FAQ.md')
| -rw-r--r-- | src/tools/rust-analyzer/crates/salsa/FAQ.md | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/src/tools/rust-analyzer/crates/salsa/FAQ.md b/src/tools/rust-analyzer/crates/salsa/FAQ.md deleted file mode 100644 index 9c9f6f92da9..00000000000 --- a/src/tools/rust-analyzer/crates/salsa/FAQ.md +++ /dev/null @@ -1,34 +0,0 @@ -# Frequently asked questions - -## Why is it called salsa? - -I like salsa! Don't you?! Well, ok, there's a bit more to it. The -underlying algorithm for figuring out which bits of code need to be -re-executed after any given change is based on the algorithm used in -rustc. Michael Woerister and I first described the rustc algorithm in -terms of two colors, red and green, and hence we called it the -"red-green algorithm". This made me think of the New Mexico State -Question --- ["Red or green?"][nm] --- which refers to chile -(salsa). Although this version no longer uses colors (we borrowed -revision counters from Glimmer, instead), I still like the name. - -[nm]: https://www.sos.state.nm.us/about-new-mexico/state-question/ - -## What is the relationship between salsa and an Entity-Component System (ECS)? - -You may have noticed that Salsa "feels" a lot like an ECS in some -ways. That's true -- Salsa's queries are a bit like *components* (and -the keys to the queries are a bit like *entities*). But there is one -big difference: **ECS is -- at its heart -- a mutable system**. You -can get or set a component of some entity whenever you like. In -contrast, salsa's queries **define "derived values" via pure -computations**. - -Partly as a consequence, ECS doesn't handle incremental updates for -you. When you update some component of some entity, you have to ensure -that other entities' components are updated appropriately. - -Finally, ECS offers interesting metadata and "aspect-like" facilities, -such as iterating over all entities that share certain components. -Salsa has no analogue to that. - |
