5 ms·
I don’t know much about Rust, but Swift can prevent data races at compile time by using the Actor type.
by turdprincess 3y ago
I don’t know much about Rust, but Swift can prevent data races at compile time by using the Actor type.
- astrange 3y agoIt could catch them before that using ownership, at the cost of lower performance. Though Swift concurrency is mostly about "concurrency" not "parallelism", which is the one that has data races.
- saagarjha 3y agoOwnership hasn’t shipped yet.
- astrange 3y agoIt has an ABI-level ownership thing already. What's missing is ways to control it.
- tialaramex 3y agoIf your concurrency strictly can't involve parallelism then sure, no data races, but also then your performance is miserable on modern hardware. If your concurrency can invoke parallelism, then you need to explicitly protect against data races, or else you need to define what happens (Java does this, nobody else has) or else you shrug and say too bad now the program is nonsense, you lose (C, C++, Go, many modern languages do this, it is easier)
- astrange 3y ago> If your concurrency strictly can't involve parallelism then sure, no data races, but also then your performance is miserable on modern hardware. Often worth it when that hardware is battery-powered though. Using those extra cores isn't free.