From 5e91911e46ffe87c4c73c2a38074c929e2c3fa65 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Mon, 29 Jul 2024 14:42:14 -0700 Subject: [PATCH] Add test tracing, fix up comments --- Cargo.toml | 2 +- src/active_query.rs | 6 +++--- src/cycle.rs | 8 +++----- src/function.rs | 2 +- src/local_state.rs | 2 +- tests/cycles.rs | 3 --- 6 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 82dd0e6d..e961c811 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ eyre = "0.6.8" notify-debouncer-mini = "0.4.1" ordered-float = "4.2.1" rustversion = "1.0" -test-log = "0.2.11" +test-log = { version ="0.2.11", features = ["trace"] } trybuild = "1.0" diff --git a/src/active_query.rs b/src/active_query.rs index 46ef8f02..105ee734 100644 --- a/src/active_query.rs +++ b/src/active_query.rs @@ -109,7 +109,7 @@ impl ActiveQuery { } /// Adds any dependencies from `other` into `self`. - /// Used during cycle recovery, see [`Runtime::create_cycle_error`]. + /// Used during cycle recovery, see [`Runtime::unblock_cycle_and_maybe_throw`]. pub(super) fn add_from(&mut self, other: &ActiveQuery) { self.changed_at = self.changed_at.max(other.changed_at); self.durability = self.durability.min(other.durability); @@ -119,7 +119,7 @@ impl ActiveQuery { } /// Removes the participants in `cycle` from my dependencies. - /// Used during cycle recovery, see [`Runtime::create_cycle_error`]. + /// Used during cycle recovery, see [`Runtime::unblock_cycle_and_maybe_throw`]. pub(super) fn remove_cycle_participants(&mut self, cycle: &Cycle) { for p in cycle.participant_keys() { let p: DependencyIndex = p.into(); @@ -128,7 +128,7 @@ impl ActiveQuery { } /// Copy the changed-at, durability, and dependencies from `cycle_query`. - /// Used during cycle recovery, see [`Runtime::create_cycle_error`]. + /// Used during cycle recovery, see [`Runtime::unblock_cycle_and_maybe_throw`]. pub(crate) fn take_inputs_from(&mut self, cycle_query: &ActiveQuery) { self.changed_at = cycle_query.changed_at; self.durability = cycle_query.durability; diff --git a/src/cycle.rs b/src/cycle.rs index 4a8a56f4..60a50304 100644 --- a/src/cycle.rs +++ b/src/cycle.rs @@ -94,17 +94,15 @@ impl std::fmt::Debug for Cycle { pub enum CycleRecoveryStrategy { /// Cannot recover from cycles: panic. /// - /// This is the default. It is also what happens if a cycle - /// occurs and the queries involved have different recovery - /// strategies. + /// This is the default. /// /// In the case of a failure due to a cycle, the panic - /// value will be XXX (FIXME). + /// value will be the `Cycle`. Panic, /// Recovers from cycles by storing a sentinel value. /// - /// This value is computed by the `QueryFunction::cycle_fallback` + /// This value is computed by the query's `recovery_fn` /// function. Fallback, } diff --git a/src/function.rs b/src/function.rs index 6cb1fd72..239d474c 100644 --- a/src/function.rs +++ b/src/function.rs @@ -69,7 +69,7 @@ pub trait Configuration: Any { /// This invokes the function the user wrote. fn execute<'db>(db: &'db Self::DbView, input: Self::Input<'db>) -> Self::Output<'db>; - /// If the cycle strategy is `Recover`, then invoked when `key` is a participant + /// If the cycle strategy is `Fallback`, then invoked when `key` is a participant /// in a cycle to find out what value it should have. /// /// This invokes the recovery function given by the user. diff --git a/src/local_state.rs b/src/local_state.rs index 03473928..28f6c857 100644 --- a/src/local_state.rs +++ b/src/local_state.rs @@ -187,7 +187,7 @@ impl LocalState { changed_at: Revision, ) { debug!( - "report_query_read_and_unwind_if_cycle_resulted(input={:?}, durability={:?}, changed_at={:?})", + "report_tracked_read(input={:?}, durability={:?}, changed_at={:?})", input, durability, changed_at ); self.with_query_stack(|stack| { diff --git a/tests/cycles.rs b/tests/cycles.rs index a37d6f6c..912f3af0 100644 --- a/tests/cycles.rs +++ b/tests/cycles.rs @@ -48,9 +48,6 @@ use salsa::Durability; // | Cross | Fallback | N/A | Tracked | both | parallel/parallel_cycle_mid_recover.rs | // | Cross | Fallback | N/A | Tracked | both | parallel/parallel_cycle_all_recover.rs | -// TODO: The following test is not yet ported. -// | Intra | Fallback | Old | Tracked | direct | cycle_disappears_durability | - #[derive(PartialEq, Eq, Hash, Clone, Debug)] struct Error { cycle: Vec,