Commit graph

13 commits

Author SHA1 Message Date
Ibraheem Ahmed
dba66f1a37
Use inventory for static ingredient registration (#934)
Some checks failed
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
* use `inventory` for static ingredient registration

* remove unnecessary synchronization from memo tables

* use global ingredient caches for database-independent ingredients

* add manual ingredient registration API

* remove static ingredient index optimization when manual registration is in use

* fix atomic imports

* simplify ingredient caches
2025-07-18 04:55:50 +00:00
Lukas Wirth
6ced42b334
Use explicit discriminants for QueryOriginKind for better comparisons (#913)
Some checks are pending
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
Carl Meyer
a95bae5119
panic with string message again for cycle panics (#898)
Some checks are pending
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
Micha Reiser
2b5188778e
fix: multithreaded nested fixpoint iteration (#882)
Some checks are pending
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
Lukas Wirth
4327d6bb94
Unwind with specific type when encountering an unexpected cycle (#856) 2025-05-22 07:40:11 +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
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
Carl Meyer
87bf6b6c2d
add WillIterateCycle event (#790)
* add WillIterateCycle event

* add iteration_count and fell_back to event
2025-04-10 13:13:17 +00:00
Carl Meyer
296a8c78da
allow reuse of cached provisional memos within the same cycle iteration (#786)
* test for caching provisional values

* add iteration-count to cycle heads

* CycleHeads insert/extend checks iteration count match

* update iteration count in cycle heads

* all tests passing

* remove debug prints

* just walk active query stack once

* switch to tracking active cycle iterations on ZalsaLocal

* Revert "switch to tracking active cycle iterations on ZalsaLocal"

This reverts commit 4ea3d850b53a449dda7af7ceb4cc565d3a64001c.

* Revert "just walk active query stack once"

This reverts commit 2d7948612be3f411c7787829ff2db74e3a575f0c.

* make ActiveQuery::iteration_count private with accessor

* iterate active query stack in reverse

* use tracing::trace! in hot path

* try a cold annotation on validate_same_iteration

* Revert "try a cold annotation on validate_same_iteration"

This reverts commit 49ceb84bb7.
2025-04-03 15:10:50 +00:00
Lukas Wirth
1bbf4c2be5
feat: Drop Debug requirements and flip implementation defaults (#756) 2025-03-15 15:14:34 +00:00
Lukas Wirth
1dc24388d1
chore: Use nextest for miri test runs (#758) 2025-03-15 10:30:23 +00:00
Carl Meyer
095d8b2b81
rewrite cycle handling to support fixed-point iteration (#603) 2025-03-10 22:25:47 +00:00