Lukas Wirth
d28d66bf13
fix: Fix phantom data usage in salsa structs affecting auto traits ( #932 )
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 / Test (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-07-04 20:47:07 +00:00
Lukas Wirth
fc00eba89e
Fix heap_size
option not being preserved in tracked impls ( #930 )
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 / Test (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-07-02 12:34:02 +00:00
Ibraheem Ahmed
7ab42086d1
update papaya ( #928 )
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 / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-06-28 05:31:53 +00:00
github-actions[bot]
572d144b33
chore: release v0.23.0 ( #877 )
...
Test / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
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
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-27 11:40:54 +02:00
Lukas Wirth
f384ab538e
Emit self ty for query debug name of assoc function queries ( #927 )
2025-06-27 09:23:25 +00:00
Ibraheem Ahmed
d44f638408
Replace ingredient cache with faster ingredient map ( #921 )
...
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
* replace ingredient cache with faster ingredient map
* avoid checking for downcasters in ingredient cache slow-path
* pre-size ingredient map
* avoid double lookup in ingredient creation slow-path
2025-06-27 07:19:58 +00:00
Ibraheem Ahmed
0666e2018b
add option to track heap memory usage of memos ( #925 )
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 / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-06-25 20:26:49 +00:00
Vincent Esche
8d14c0251e
Hide generated structs of tracked functions from docs via #[doc(hidden)]
( #917 )
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 / Shuttle (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-25 11:19:56 +00:00
Ibraheem Ahmed
c145596ef8
Add API to dump memory usage ( #916 )
...
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 / Test (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
* add memory usage information hooks
* gate memory usage API under `salsa_unstable` feature
* use snapshot tests for memory usage API
2025-06-20 17:15:43 +00:00
Lukas Wirth
87a730fccf
Revert "Assert size for interned Value" & Mark Slot
trait as unsafe ( #915 )
...
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 / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
* Revert "Assert size for interned `Value`"
This reverts commit 793dc41921
.
* Mark `Slot` trait as unsafe
2025-06-15 04:47:24 +00:00
Lukas Wirth
8528bab609
feat: Update
derive field overwrite support ( #747 )
...
Release-plz / Release-plz PR (push) Has been cancelled
Book / Book (push) Has been cancelled
Release-plz / Release-plz release (push) Has been cancelled
Test / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
* `Update` derive field overwrite support
* Allow overwriting tracked struct field update functions
2025-06-13 17:17:39 +00:00
Ibraheem Ahmed
b8cdd300a0
add an option to tune interned garbage collection ( #911 )
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-13 06:17:45 +00:00
Lukas Wirth
6ced42b334
Use explicit discriminants for QueryOriginKind
for better comparisons ( #913 )
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 / Benchmarks (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Shuttle (push) Waiting to run
2025-06-12 18:32:33 +00:00
Ibraheem Ahmed
04053c1ce3
fix race in MemoTableTypes
( #912 )
Book / Book (push) Waiting to run
Book / Deploy (push) Blocked by required conditions
Release-plz / Release-plz PR (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Shuttle (push) Waiting to run
Release-plz / Release-plz release (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-12 04:15:06 +00:00
Ibraheem Ahmed
09627e4505
update boxcar ( #910 )
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 / Benchmarks (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Shuttle (push) Waiting to run
2025-06-11 20:41:01 +00:00
Ibraheem Ahmed
dc9066d667
use latest revision for dependencies on interned values ( #908 )
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-11 06:03:30 +00:00
Ibraheem Ahmed
4161bd727f
remove high-durability values from interned LRU ( #907 )
2025-06-11 05:28:08 +00:00
puuuuh
8924db1441
Preserve attributes on interned/tracked struct fields ( #905 )
...
Release-plz / Release-plz PR (push) Waiting to run
Book / Book (push) Waiting to run
Book / Deploy (push) Blocked by required conditions
Release-plz / Release-plz release (push) Waiting to run
Test / Test (push) Waiting to run
Test / Benchmarks (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Shuttle (push) Waiting to run
* Preserve attributes on interned/tracked structs
* Pass unknown attributes from fields to getter functions in inputs
2025-06-10 06:34:54 +00:00
Lukas Wirth
8d3455f0e6
Assert size for interned Value
( #901 )
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 / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-06-06 03:53:37 +00:00
Ibraheem Ahmed
60026c0dd8
reduce size of interned value metadata ( #903 )
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-05 05:26:48 +00:00
Carl Meyer
a95bae5119
panic with string message again for cycle panics ( #898 )
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-04 15:15:22 +00:00
Lukas Wirth
38a3c9e06d
Use Revision
and Durability
directly in input Value
( #902 )
...
`Stamp` contains a lot of padding bytes, wasting 7 bytes per field for inputs due to the array packing.
By packing each field into a separate array we regain that space
2025-06-04 14:26:49 +00:00
Lukas Wirth
2c57c5628b
Fix flaky parallel_join test ( #900 )
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-06-04 12:24:15 +00:00
Lukas Wirth
5d11ab9837
Bump MSRV to 1.85 ( #899 )
...
Co-authored-by: Lukas Wirth <me@lukaswirth.de>
2025-06-04 10:44:35 +00:00
Ibraheem Ahmed
15c28cdf88
Simple LRU garbage collection for interned values ( #839 )
...
* simple LRU garbage collection for interned values
* shard interned values
* gate memo size assertion to 64-bit platforms
* extend internal documentation for interned structs
* remove `first_interned_at` field from interned values
* clarify difference between tracked and interned structs
* only keep track of low durability interned values for garbage collection
2025-06-04 08:09:04 +00:00
Lukas Wirth
ac6fe534fd
Capture execution backtrace when throwing UnexpectedCycle
( #883 )
...
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
Co-authored-by: Lukas Wirth <me@lukaswirth.de>
2025-06-03 18:54:24 +00:00
Micha Reiser
79c2eac5e5
Store tracked struct ids as ThinVec on Revisions ( #892 )
...
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
* Store tracked struct ids as Vec on Revisions
* Use reserve
* Discard changes to tests/parallel/cycle_a_t1_b_t2_fallback.rs
* Try boxed slice
* Use thinvec
* Ensure old-outputs are dropped if new revisions has no tracked struct ids
* Discard changes to tests/parallel/cycle_a_t1_b_t2_fallback.rs
2025-06-03 08:09:15 +00:00
Micha Reiser
14318b7266
Update dependencies, remove unused heck
dependency ( #894 )
...
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
* Store tracked struct ids as Vec on Revisions
* Use reserve
* Discard changes to tests/parallel/cycle_a_t1_b_t2_fallback.rs
* Try boxed slice
* Use thinvec
* Update dependencies, remove unused heck
* Discard changes to src/function/diff_outputs.rs
* Discard changes to src/tracked_struct.rs
* Discard changes to src/zalsa_local.rs
* Discard changes to tests/parallel/cycle_a_t1_b_t2_fallback.rs
2025-06-02 10:00:52 +00:00
Micha Reiser
2b5188778e
fix: multithreaded nested fixpoint iteration ( #882 )
...
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
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
* Set `validate_final` in `execute` after removing the last cycle head
* Add runaway query repro
* Add tracing
* Fix part 1
* Fix `cycle_head_kinds` to always return provisional for memos that aren't verified final (They should be validated by `validate_same_iteration` or wait for the cycle head
* Fix cycle error
* Documentation
* Fix await for queries depending on initial value
* correctly initialize queued
* Cleanup
* Short circuit if entire query runs on single thread
* Move parallel code into its own method
* Rename method, add self_key to queued
* Revert self-key changes
* Move check *after* `deep_verify_memo`
* Add a test for a cycle with changing cycle heads
* Short circuit more often
* Consider iteration in `validate_provisional`
* Only yield if all heads result in a cycle. Retry if even just one inner cycle made progress (in which case there's a probably a new memo)
* Fix hangs
* Cargo fmt
* clippy
* Fix hang if cycle initial panics
* Rename `cycle_head_kind` enable `cycle_a_t1_b_t2_fallback` shuttle test
* Cleanup
* Docs
2025-06-01 08:45:37 +00:00
Micha Reiser
80fb79e910
Set validate_final
in execute
after removing the last cycle head ( #890 )
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
2025-05-31 13:06:39 +00:00
Ibraheem Ahmed
8aaeb708d0
Pack QueryEdge
memory layout ( #886 )
...
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 / Shuttle (push) Waiting to run
Test / Benchmarks (push) Waiting to run
* pack `QueryEdge` into 12 bytes
* document internals of `QueryEdge`
2025-05-30 13:30:27 +00:00
Ibraheem Ahmed
0c39c08360
Lazily allocate extra memo state ( #888 )
...
* lazily allocate extra memo state
* lazily allocate accumulators
* simplify `QueryRevisionsExtra`
2025-05-30 13:28:40 +00:00
Ibraheem Ahmed
5750c8448f
Pack QueryOrigin
memory layout ( #885 )
...
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 / Benchmarks (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Shuttle (push) Waiting to run
* pack `QueryOrigin` into 13 bytes
* nits
Co-authored-by: David Barsky <me@davidbarsky.com>
---------
Co-authored-by: David Barsky <me@davidbarsky.com>
2025-05-29 20:00:50 +00:00
Micha Reiser
40d7844a7a
Restrict memo size assertion to 64bit platforms ( #884 )
Release-plz / Release-plz release (push) Waiting to run
Release-plz / Release-plz PR (push) Waiting to run
Test / Shuttle (push) Waiting to run
Test / Test (push) Waiting to run
Test / Miri (push) Waiting to run
Test / Benchmarks (push) Waiting to run
Book / Book (push) Waiting to run
Book / Deploy (push) Blocked by required conditions
2025-05-29 08:47:10 +00:00
puuuuh
f9a9bb2a6a
Don't report stale outputs if there is newer generation in new_outputs ( #879 )
...
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 / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Shuttle (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
* Don't report stale outputs if there is newer generation in new_outputs
* Remove outdated comment, add explanation why we ignore generation in diff_outputs
2025-05-27 17:44:15 +00:00
Micha Reiser
e1fe3698ce
Fix hang in nested fixpoint iteration ( #871 )
2025-05-27 17:06:34 +00:00
Lukas Wirth
db4c4dfc93
Add debug spans for new_revision
and evict_lru
( #881 )
2025-05-27 06:02:25 +00:00
Micha Reiser
393cf7c7de
Add fetch span ( #875 )
...
* Add fetch span
* Use `{}`
* Only add fetch span in debug builds
2025-05-26 16:51:02 +00:00
Lukas Wirth
b1b8b4333c
shrink_to_fit IdentityMap
before storing it ( #816 )
2025-05-26 13:02:27 +00:00
Chayim Refael Friedman
2a54667121
Allow lifetimes in arguments in tracked fns with >1 parameters ( #880 )
2025-05-26 04:50:43 +00:00
Ibraheem Ahmed
0414d89327
Replace loom with shuttle ( #876 )
...
* replace loom with shuttle
* inline `empty_cycle_heads`
* ignore failing shuttle test
2025-05-23 15:28:51 +00:00
Ibraheem Ahmed
f7b08562ed
Use generational identifiers for tracked structs ( #864 )
...
* use generational identifiers for tracked structs
* increase ID generations to 32-bits
* remove `created_at` field from tracked structs
* clean up tracked struct IDs to handle overflow
* log tracing message for leaked tracked structs
2025-05-23 14:18:03 +00:00
github-actions[bot]
a12bf313a4
chore: release v0.22.0 ( #840 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-23 12:38:34 +02:00
Vincent Esche
e859218dea
Allow creation of tracked associated functions (without self
) ( #859 )
...
* Rename file "setup_method_body.rs" to "setup_tracked_method_body.rs"
* Rename macro `setup_method_body!` to `setup_tracked_method_body!`
* Add support for tracked associated functions
* Rename struct `MethodArguments` to `AssociatedFunctionArguments`
(since every method is an associated function, but not every associated function is a method)
2025-05-23 10:19:12 +00:00
Micha Reiser
678f51a745
Short-circuit block-on
if same thread ( #862 )
...
Test / Test (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 / Miri (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
* Short-circuit `block_on` if same thread
* Avoid acquiring the lock
2025-05-22 09:26:17 +00:00
Lukas Wirth
18dc594dea
Skip release-plz jobs on forks ( #873 )
2025-05-22 08:12:01 +00:00
Lukas Wirth
4327d6bb94
Unwind with specific type when encountering an unexpected cycle ( #856 )
2025-05-22 07:40:11 +00:00
Wilco Kusee
9489764ad9
chore: Remove jar mentions from book ( #775 )
...
* Remove references to jar terminology
* Update or remove invalid code links in book
2025-05-22 09:34:29 +02:00
Lukas Wirth
2d4321e989
Implement an !Update
bound escape hatch for tracked fn ( #867 )
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 / Test (push) Has been cancelled
Test / Miri (push) Has been cancelled
Test / Benchmarks (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2025-05-20 15:36:34 +00:00
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