From 9f92bac362e7a860a3522ee170c452d730a259f6 Mon Sep 17 00:00:00 2001 From: dzaima Date: Wed, 25 Jan 2023 06:35:55 +0200 Subject: [PATCH] build.bqn: react to dependencies changing by other builds properly --- build/src/build.bqn | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/build/src/build.bqn b/build/src/build.bqn index de2344d6..41783cac 100755 --- a/build/src/build.bqn +++ b/build/src/build.bqn @@ -326,21 +326,33 @@ GetCache ← { 𝕊 basename‿desc‿key: dataVersion ← 0 prevKs‿prevVs ← {a‿b: a≡dataVersion? b; ⟨⟩‿⟨⟩} •file.Exists◶⟨@, {Deserialize ⟨8‿'c',8⟩•bit._cast •FBytes 𝕩}⟩ dataPath - IsUpToDate ⇐ { 𝕊: + Find ⇐ { i ← ⊑prevKs⊐<𝕩.cacheKey - i<≠prevKs? - {@:0; ∧´ AtRoot⊸IsFileTheSame´¨𝕩} i⊑prevVs; - 0 + i<≠prevKs? i⊑prevVs; + @ + } + IsUpToDate ⇐ { + 𝕊: + 𝕩.found0≢@? + fileInfo‿depInfo ← 𝕩.found0 + ∧´ AtRoot⊸IsFileTheSame´¨ fileInfo? + depInfo≡𝕩.DepHash@ + ; + 0 } newKs‿newVs ← ⟨⟩‿⟨⟩ finalNewData ← @ FinalData ⇐ { 𝕊: finalNewData≢@?finalNewData; - jKs ← newKs∾prevKs - jVs ← newVs∾prevVs + jKs ← prevKs∾˜ {𝕩.cacheKey}¨ newKs + jVs ← prevVs∾˜ newKs {𝕨.SetVal 𝕩}¨ newVs finalNewData ↩ Serialize dataVersion⋈ (<∊jKs) /¨ jKs‿jVs } - Update ⇐ {key𝕊data: !finalNewData≡@ ⋄ newKs∾↩