consumer_summary_phases.tri (2644B)
1 -- Markers for a cold, verified-source summary workload. Host timing measures 2 -- intervals between IO markers, not isolated reducer steps. 3 !import "prelude" !Local 4 !import "io" !Local 5 !import "consumers.module" M 6 !import "consumers.link" CL 7 !import "consumers.text-summary" T 8 !import "source.resolve" Resolve 9 10 sourceRoot = "__ROOT__/cas" 11 inputFile = "__INPUT__" 12 expected = "lines: __LINES__" 13 row alias hash name = pair alias (pair hash name) 14 stage = do onOk_ 15 succSource <- readFile "lib/consumer/succ.scp" 16 succHash <- M.cmPutSource sourceRoot succSource 17 countSource <- readFile "lib/consumer/text/countLines.scp" 18 countHash <- M.cmPutSource sourceRoot countSource 19 entrySource <- readFile "demos/consumers/text-summary/summary-entry.scp" 20 entryHash <- M.cmPutSource sourceRoot entrySource 21 receiverSource <- readFile "demos/consumers/text-summary/summary-receiver.scp" 22 receiverHash <- M.cmPutSource sourceRoot receiverSource 23 M.cmPutImports sourceRoot [(row "successor" succHash "succBinary") 24 (row "counter" countHash "countLines") 25 (row "entry" entryHash "summaryEntry") 26 (row "receiver" receiverHash "summaryReceiver")] 27 selections successor = [(pair "counter" (T.counterState successor)) 28 (pair "entry" t) (pair "receiver" t)] 29 names = ["successor" "counter" "entry" "receiver"] 30 lookup workers alias = (lazyMaybe (_ : t) (worker : worker) 31 (Resolve.sourceFindExternal workers alias)) 32 validated linked = (lazyResult 33 (problem _ : pure (err problem t)) 34 (_ _ : pure (ok linked t)) 35 (CL.clValidate linked)) 36 execute workers = (bind (T.summaryLexical 37 (lookup workers "counter") (lookup workers "entry") 38 (lookup workers "receiver") inputFile) 39 (outcome : putStrLn (matchBool "DONE" "WRONG" 40 (lazyBool (_ : equal? (fst outcome) 0) 41 (_ : equal? (T.render outcome) expected) 42 (equal? expected "lines: ERROR"))))) 43 run = (thenIO (putStrLn "READY") 44 (onOk_ stage (descriptor : thenIO (putStrLn "STAGED") 45 (onOk_ (M.cmLoadLocated sourceRoot descriptor) (linked : 46 thenIO (putStrLn "RESOLVED_PARSED") 47 (onOk_ (validated linked) (_ : thenIO (putStrLn "VALIDATED") 48 (onOk_ (M.cmPublishIR sourceRoot (CL.clAuthored linked) 49 names) (manifest : 50 thenIO (putStrLn "PUBLISHED") 51 (onOk_ (CL.clPrepareRows [(pair "successor" t)] sourceRoot manifest 52 (CL.clLocations linked)) (succWorkers : 53 (onOk_ (CL.clPrepareRows 54 (selections (lookup succWorkers "successor")) sourceRoot manifest 55 (CL.clLocations linked)) (workers : 56 thenIO (putStrLn "WORKERS") (execute workers)))))))))))))) 57 main = io run 58 main