shake 0.19.5 → 0.19.6
raw patch · 4 files changed
+12/−3 lines, 4 files
Files
- CHANGES.txt +2/−0
- shake.cabal +1/−1
- src/Development/Shake/Internal/Core/Action.hs +6/−1
- src/Development/Shake/Internal/Rules/Files.hs +3/−1
CHANGES.txt view
@@ -1,5 +1,7 @@ Changelog for Shake (* = breaking change) +0.19.6, released 2021-09-07+ #810, don't hash files in &%> if you don't have to 0.19.5, released 2021-07-04 #807, fix space leak in Database module #796, fix a bug with newCache dependencies
shake.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.18 build-type: Simple name: shake-version: 0.19.5+version: 0.19.6 license: BSD3 license-file: LICENSE category: Development, Shake
src/Development/Shake/Internal/Core/Action.hs view
@@ -99,15 +99,20 @@ pure res -- | If an exception is raised by the 'Action', perform some 'IO' then reraise the exception.+-- This function is implemented using 'actionBracket'. actionOnException :: Action a -> IO b -> Action a actionOnException act free = actionBracketEx False (pure ()) (const free) (const act) -- | After an 'Action', perform some 'IO', even if there is an exception.+-- This function is implemented using 'actionBracket'. actionFinally :: Action a -> IO b -> Action a actionFinally act free = actionBracket (pure ()) (const free) (const act) --- | Like `bracket`, but where the inner operation is of type 'Action'. Usually used as+-- | Like 'bracket', but where the inner operation is of type 'Action'. Usually used as -- @'actionBracket' alloc free use@.+--+-- The @free@ action will be run masked. The cost of 'actionBracket' is _O(n log n)_+-- in the number of simultaneous 'actionBracket' calls active in the program. actionBracket :: IO a -> (a -> IO b) -> (a -> Action c) -> Action c actionBracket = actionBracketEx True
src/Development/Shake/Internal/Rules/Files.hs view
@@ -119,7 +119,9 @@ case v of Just v -> case filesEqualValue opts old v of NotEqual -> rebuild- EqualCheap -> pure $ RunResult ChangedNothing (fromJust o) v+ -- See #810, important we pass old (which can be cheaply evaluated)+ -- and not v, which might have some lazily-evaluated file hashes in+ EqualCheap -> pure $ RunResult ChangedNothing (fromJust o) old EqualExpensive -> pure $ RunResult ChangedStore (runBuilder $ putEx $ Result ver v) v Nothing -> rebuild _ -> rebuild