Avatar for the salsa-rs user
salsa-rs
salsa
BlogDocsChangelog

fix: Remove the assert for interned structs that `last_interned_at >= last_changed_revision`

#804
Comparing
ChayimFriedman2:outside-intern
(
fafa4ca
) with
master
(
ab7ecb4
)
CodSpeed Performance Gauge
-5%
Improvements
0
Regressions
1
Untouched
11
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

amortized[SupertypeInput]Regression
benches/compare.rs::benches::inputs::Mutating Inputs::amortized[SupertypeInput]
CodSpeed Performance Gauge
-5%
4 µs
4.2 µs

Passed

amortized[Input]
benches/compare.rs::benches::inputs::Mutating Inputs::amortized[Input]
CodSpeed Performance Gauge
+1%
3.5 µs
3.5 µs
many_tracked_structs
benches/incremental.rs::benches::many_tracked_structs::many_tracked_structs
CodSpeed Performance Gauge
0%
38.3 µs
38.2 µs
accumulator
benches/accumulator.rs::benches::accumulator::accumulator
CodSpeed Performance Gauge
0%
4.3 ms
4.3 ms
converge_diverge
benches/dataflow.rs::benches::dataflow::converge_diverge
CodSpeed Performance Gauge
0%
137.7 µs
137.8 µs
new[Input]
benches/compare.rs::benches::inputs::Mutating Inputs::new[Input]
CodSpeed Performance Gauge
-1%
10.4 µs
10.5 µs
amortized[InternedInput]
benches/compare.rs::benches::inputs::Mutating Inputs::amortized[InternedInput]
CodSpeed Performance Gauge
-1%
3.4 µs
3.5 µs
new[InternedInput]
benches/compare.rs::benches::inputs::Mutating Inputs::new[InternedInput]
CodSpeed Performance Gauge
-1%
5.8 µs
5.9 µs
mutating[30]
benches/compare.rs::benches::mutating_inputs::Mutating Inputs::mutating[30]
CodSpeed Performance Gauge
-1%
14.1 µs
14.3 µs
mutating[20]
benches/compare.rs::benches::mutating_inputs::Mutating Inputs::mutating[20]
CodSpeed Performance Gauge
-1%
14 µs
14.2 µs
mutating[10]
benches/compare.rs::benches::mutating_inputs::Mutating Inputs::mutating[10]
CodSpeed Performance Gauge
-1%
13.8 µs
14 µs
new[SupertypeInput]
benches/compare.rs::benches::inputs::Mutating Inputs::new[SupertypeInput]
CodSpeed Performance Gauge
-2%
17 µs
17.3 µs

Commits

Click on a commit to change the comparison range
Base
master
ab7ecb4
-5%
Remove the assert for interned structs that `last_interned_at >= last_changed_revision` This assert was incorrect, in a subtle but important case (which caused half of rust-analyzer tests to panic): if a struct was interned inside a query, there is indeed no way to make `last_changed_revision` pass past it. But if it was created *outside* any query, it actually can. In the simplest case (which is also what happened in rust-analyzer), the same non-query function that interned it can create a new revision, then obtain its fields. I couldn't find a way to make this assert reliable, so I just deleted it. I think (hope) this assert was just defensive and not really needed, in which case removing it is fine.
fafa4ca
19 hours ago
by ChayimFriedman2
© 2025 CodSpeed Technology
Home Terms PrivacyDocs