packages feed

shake 0.2.2 → 0.2.3

raw patch · 2 files changed

+15/−14 lines, 2 files

Files

Development/Shake/Database.hs view
@@ -106,7 +106,7 @@       deriving Show  data Result = Result-    {value :: Value -- the value associated with the Key+    {result :: Value -- the result associated with the Key     ,built :: Step -- when it was actually run     ,changed :: Step -- the step for deciding if it's valid     ,depends :: [[Key]] -- dependencies@@ -177,7 +177,7 @@         vs <- mapM (reduce []) ks         let errs = [e | Error e <- vs]         if all isReady vs then-            return $ return $ Right (0, [value r | Ready r <- vs])+            return $ return $ Right (0, [result r | Ready r <- vs])          else if not $ null errs then             return $ return $ Left $ head errs          else do@@ -187,7 +187,7 @@                 let done x = do signalBarrier wait x; return True                 case Map.lookup k s of                     Just (Error e) -> done $ Left e-                    Just Ready{} | finish -> done $ Right [value r | k <- ks, let Ready r = fromJust $ Map.lookup k s]+                    Just Ready{} | finish -> done $ Right [result r | k <- ks, let Ready r = fromJust $ Map.lookup k s]                                  | otherwise -> return False             return $ do                 (dur,res) <- duration $ blockPool pool $ waitBarrier wait@@ -215,8 +215,8 @@             case Map.lookup k s of                 Nothing -> run stack k Nothing                 Just (Loaded r) -> do-                    b <- valid k (value r)-                    logger $ "valid " ++ show b ++ " for " ++ atom k ++ " " ++ atom (value r)+                    b <- valid k $ result r+                    logger $ "valid " ++ show b ++ " for " ++ atom k ++ " " ++ atom (result r)                     if not b then run stack k $ Just r else check stack k r (depends r)                 Just res -> return res @@ -229,14 +229,14 @@                     ans <- k #= case res of                         Left err -> Error err                         Right (v,depends,execution,traces) ->-                            let c | Just r <- r, value r == v = changed r+                            let c | Just r <- r, result r == v = changed r                                   | otherwise = step-                            in Ready Result{value=v,changed=c,built=step,..}+                            in Ready Result{result=v,changed=c,built=step,..}                     runWaiting w                     return ans                 case ans of                     Ready r -> do-                        logger $ "result " ++ atom k ++ " = " ++ atom (value r)+                        logger $ "result " ++ atom k ++ " = " ++ atom (result r)                         appendJournal journal k r -- leave the DB lock before appending                     _ -> return ()             k #= w@@ -281,7 +281,7 @@ allEntries :: Database -> IO [(Key,Value)] allEntries Database{..} = do     status <- readIORef status-    return $ ordering [((k, value i), concat $ depends i) | (k,v) <- Map.toList status, Just i <- [getResult v]]+    return $ ordering [((k, result i), concat $ depends i) | (k,v) <- Map.toList status, Just i <- [getResult v]]     where         ordering :: Eq a => [((a,b), [a])] -> [(a,b)]         ordering xs = f [(a, nub b `intersect` as) | let as = map (fst . fst) xs, (a,b) <- xs]@@ -316,9 +316,9 @@     logger "Starting validity/lint checking"     bad <- fmap concat $ forM (Map.toList status) $ \(k,v) -> case v of         Ready r -> do-            good <- valid k (value r)-            logger $ "Checking if " ++ show k ++ " is " ++ show (value r) ++ ", " ++ if good then "passed" else "FAILED"-            return [show k ++ " is no longer " ++ show (value r) | not good && not (special k)]+            good <- valid k (result r)+            logger $ "Checking if " ++ show k ++ " is " ++ show (result r) ++ ", " ++ if good then "passed" else "FAILED"+            return [show k ++ " is no longer " ++ show (result r) | not good && not (special k)]         _ -> return []     if null bad         then logger "Validity/lint check passed"@@ -342,12 +342,13 @@ openDatabase logger filename version = do     let dbfile = filename <.> "database"         jfile = filename <.> "journal"+    createDirectoryIfMissing True $ takeDirectory dbfile      lock <- newLock     logger $ "readDatabase " ++ dbfile     (step, status) <- readDatabase dbfile version     step <- return $ incStep step-    +     b <- doesFileExist jfile     (status,step) <- if not b then return (status,step) else do         logger $ "replayJournal " ++ jfile
shake.cabal view
@@ -1,7 +1,7 @@ cabal-version:      >= 1.6 build-type:         Simple name:               shake-version:            0.2.2+version:            0.2.3 license:            BSD3 license-file:       LICENSE category:           Development