packages feed

shake 0.19.5 → 0.19.6

raw patch · 4 files changed

+12/−3 lines, 4 files

Files

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