Micha Reiser
4818b15f3b
Only enable boxcar/loom
when loom
feature is enabled ( #869 )
Book / Book (push) Waiting to run
Book / Deploy (push) Blocked by required conditions
Release-plz / Release-plz release (push) Waiting to run
Release-plz / Release-plz PR (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-05-20 06:54:07 +00:00
Micha Reiser
96eeecb5af
Remove default PartialOrd
and Ord
derives for salsa-structs ( #868 )
Book / Book (push) Waiting to run
Book / Deploy (push) Blocked by required conditions
Release-plz / Release-plz PR (push) Waiting to run
Release-plz / Release-plz release (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-05-19 11:57:23 +00:00
Ibraheem Ahmed
516ce4fd68
update boxcar ( #865 )
Test / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Book / Book (push) Has been cancelled
Release-plz / Release-plz release (push) Has been cancelled
Release-plz / Release-plz PR (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-05-17 06:38:55 +00:00
Micha Reiser
247a9dfffb
perf: speed-up cycle-retry logic ( #861 )
...
Test / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Release-plz / Release-plz PR (push) Has been cancelled
Book / Book (push) Has been cancelled
Release-plz / Release-plz release (push) Has been cancelled
Book / Deploy (push) Has been cancelled
* Test empty cycles first
* Move check out of fetch_hot
2025-05-15 06:18:34 +00:00
Micha Reiser
7edce6e248
Fix returns(deref | as_ref | as_deref) in tracked methods ( #857 )
2025-05-09 09:09:16 +00:00
CheaterCodes
13a2bd7461
Changed return_ref
syntax to returns(as_ref)
and returns(cloned)
( #772 )
...
* Changed `return_ref` syntax to `returns(as_ref)` and `returns(cloned)`
* Implement
* renamed module for return_mode
* Rename macro, fix docs, add tests, validate return modes
* Cargo fmt
---------
Co-authored-by: Micha Reiser <micha@reiser.io>
2025-05-09 07:28:54 +00:00
Lukas Wirth
d1da99132d
Work around a rust-analyzer bug ( #855 )
2025-05-09 07:23:29 +00:00
Micha Reiser
a6793e783a
Lazy finalization of cycle participants in maybe_changed_after
( #854 )
...
* Lazy verification of cycle participants in maybe_changed_after
* Update comment
2025-05-09 07:03:54 +00:00
Lukas Wirth
af69cc1114
Do not re-verify already verified memoized value in cycle verification ( #851 )
2025-05-08 16:33:58 +00:00
Lukas Wirth
00dbf01e87
Pass cycle heads as out parameter for maybe_changed_after
( #852 )
2025-05-08 08:32:27 +00:00
Ibraheem Ahmed
2c869364a9
fix memo table growth condition ( #850 )
2025-05-08 04:23:39 +00:00
Lukas Wirth
cfa88e9a4d
Move salsa event system into Zalsa
( #849 )
...
* Move salsa event system into `Zalsa`
* Encode `None` into ShallowUpdate
This shrinks the return value from 16 to 8 bytes
2025-05-07 11:45:49 +00:00
Micha Reiser
f78a641d20
fix: incorrect caching for queries participating in fixpoint ( #843 )
2025-05-07 07:00:19 +00:00
Ibraheem Ahmed
f8cd8e7768
gate loom dependency under feature flag ( #844 )
2025-05-06 19:03:50 +00:00
Ibraheem Ahmed
54020469a3
Add loom support ( #842 )
...
* add support for loom tests
* add just script and fix comment
2025-05-06 15:36:38 +00:00
Micha Reiser
b2b82bccdb
fix: change detection for fixpoint queries ( #836 )
...
* bug: Fix missing cycle inputs
* Pass provisional as old memo to `execute_query` during fixpoint
* Remove `provisional` from remove stale output
* Revert debug code
* Update test
* Some documentation
* Clean up tests
* Fix for direct enclosing query
* Format
* More comment fiddling
* Revert copy only outputs change
* Revert `fixpoint_initial` start revision change (worth its own PR)
* Align fixpoint handling with Derived
* Preserve cycle heads when returning fixpoint initial
* Always return changed for `Fixpoint::Initial`
* Keep returning unchanged in some cases
2025-05-06 08:11:31 +00:00
Lukas Wirth
2c041763b7
refactor: Clean up some unsafety ( #830 )
2025-05-02 12:16:44 +00:00
github-actions[bot]
fa8409212d
chore: release v0.21.1 ( #829 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-01 07:22:49 +02:00
Micha Reiser
ad3dff6cb3
better debug name for interned query arguments ( #837 )
...
* feat: Improve debug name for interned query arguments
* Change name again
2025-04-30 17:20:49 +00:00
Micha Reiser
42f15835c0
bug: Avoid panic in Backtrace::capture
if query_stack
is already borrowed ( #835 )
2025-04-30 11:15:16 +00:00
Lukas Wirth
5b5e982994
refactor: Clean up function::execute
( #833 )
...
it's gotten a bit tough to reason about imo due to the different execution modes we have now
2025-04-30 08:42:14 +00:00
Micha Reiser
79afd59ed5
feat: Make attach
pub ( #832 )
2025-04-30 07:24:43 +00:00
Lukas Wirth
af811a34ce
chore: Change an assert!
to assert_eq!
( #828 )
2025-04-30 05:48:56 +00:00
github-actions[bot]
2a3a871f2a
chore: release v0.21.0 ( #811 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-29 19:13:06 +02:00
Lukas Wirth
89347c8fc9
Implement a query stack Backtrace
analog ( #827 )
2025-04-29 17:01:15 +00:00
Micha Reiser
b27e3927e9
fix: Access to tracked-struct that was freed during fixpoint ( #817 )
...
* Add test for untracked read on tracked struct created in previous cycle
* Initial fix
* Restrict seeding to memos from the same revision
* Reduce changes
* seed_outputs
* Cleanup test
* Add assertion
* Try
* Try merging outputs after query executed
* Assert logs from first execution
* Enable trace level logging
* Use `FxIndexSet` in `diff_outputs`
* Log more events
* Cleanup
* Append outputs only once
2025-04-28 14:24:33 +00:00
Andrey Nikolaev
0cbe7f86ab
fix: correct debug output for tracked fields ( #826 )
2025-04-28 13:26:50 +00:00
Lukas Wirth
d18dc7705f
fix: Fix incorrect values_equal
signature ( #825 )
2025-04-28 12:42:23 +00:00
Lukas Wirth
445b627277
refactor: Simplify ID conversions ( #822 )
2025-04-28 12:00:16 +00:00
Lukas Wirth
f915b0632e
fix: allow unused lifetimes in tracked_struct expansion ( #824 )
2025-04-28 11:50:52 +00:00
Lukas Wirth
5f149a6dff
Attempt to fix codspeed ( #823 )
2025-04-28 08:04:17 +00:00
Lukas Wirth
4fa0ee8dfc
cleanup: Remove unnecessary Array
abstraction ( #821 )
2025-04-28 07:33:31 +00:00
Lukas Wirth
9a9fb4e51b
Add a compile-fail test for a 'static
!Update
struct ( #820 )
2025-04-28 07:09:05 +00:00
Andrey Nikolaev
c75b0161ab
squelch most clippy warnings in generated code ( #809 )
2025-04-27 09:57:45 +00:00
Micha Reiser
cfdefc627b
Include struct name in formatted input-field index ( #819 )
2025-04-25 09:46:00 +00:00
Lukas Wirth
7bfeebecdf
Force inline fetch_hot
( #818 )
2025-04-24 18:06:57 +00:00
Lukas Wirth
acd057cf75
refactor: Per ingredient sync table ( #650 )
...
* Per ingredient sync table
* Put `IngredientIndex` into `SyncTable`
2025-04-24 15:13:43 +00:00
Micha Reiser
f7eea9d69b
Use DatabaseKey
for interned events ( #813 )
...
* Use `DatabaseKey` for interned events
* Tame clippy
2025-04-24 10:38:46 +00:00
Micha Reiser
e6b65312de
[refactor] More fetch_hot
simplification ( #793 )
...
* [refactor] Simplify `fetch_hot` further
* Update comment
2025-04-23 13:23:50 +00:00
Chayim Refael Friedman
db9d4f8528
Don't store the fields in the interned map ( #812 )
...
Instead, store only an `Id`, to save memory.
2025-04-22 16:26:52 +00:00
Lukas Wirth
ad4ea3f077
chore: Fix ci not always running ( #810 )
2025-04-22 12:09:29 +00:00
github-actions[bot]
201a8dd40b
chore: release v0.20.0 ( #753 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-22 13:57:53 +02:00
Lukas Wirth
f981e7d0fd
perf: Reduce memory usage by deduplicating type information ( #803 )
...
* Reduce memory usage by deduplicating type information
We were storing the type information, 3 words wide, for each memo in each slot, while it is always constant wrt. the ingredient (different slots of the same ingredients will always have the same memos in the same order). This introduces some more unsafety, and the result wasn't as fast so I also had to use some lock-free structures, but the result is worth it: this shaves off 230mb from rust-analyzer with new Salsa.
* Simplify
* Replace `RwLock` with boxcar + `AtomicPtr`
* Use TypeId and allocate instead
* Use `OnceLock` instead of atomic-ptr
---------
Co-authored-by: Chayim Refael Friedman <chayimfr@gmail.com>
2025-04-22 11:24:23 +00:00
Chayim Refael Friedman
cf9efae0da
Make interned's last_interned_at
equal Revision::MAX
if they are interned outside a query ( #804 )
...
There is an assert that `last_interned_at >= last_changed_revision`, and it can fail without this, see the added test.
2025-04-22 10:42:17 +00:00
Chayim Refael Friedman
05b4faddb5
Add a third cycle mode, equivalent to old Salsa cycle behavior ( #801 )
...
That is, directly set a value for all queries that have fallbacks, and ignore all other queries in the cycle.
Unlike old Salsa, we still need all cycle heads to be marked, and we still execute the queries to completion, but we throw their result.
2025-04-22 10:35:43 +00:00
Ben Beasley
4ab2d2784d
Update compact_str from 0.8 to 0.9 ( #794 )
2025-04-22 06:07:02 +00:00
Sean Billig
e19359cd89
chore: Implement Update
for ThinVec
( #807 )
2025-04-22 05:54:54 +00:00
Lukas Wirth
3b84ac40c6
perf: Don't push an unnecessary active query for deep_verify_memo
( #806 )
2025-04-21 14:09:18 +00:00
Lukas Wirth
883baaf8de
refactor: Inline/Outline more cold and slow paths ( #805 )
2025-04-21 10:40:22 +00:00
Lukas Wirth
ab7ecb40ca
chore: #[inline]
some things ( #799 )
2025-04-17 16:29:50 +00:00