seqaid 0.1.4 → 0.1.5
raw patch · 2 files changed
+49/−35 lines, 2 filesdep ~Cabaldep ~arraydep ~containers
Dependency ranges changed: Cabal, array, containers, deepseq-bounded, directory, generics-sop, hashable, hashtables, modulespection, mtl, process, template-haskell, temporary, th-expand-syns
Files
- Seqaid/Demo.hs +25/−12
- seqaid.cabal +24/−23
Seqaid/Demo.hs view
@@ -19,23 +19,30 @@ module Main ( main ) where --module Seqaid.Demo ( main ) where + import System.Environment ( getArgs ) import System.IO.Temp import System.Directory import System.Process+ import System.Exit - leaky_version = "0.1.0.4"---leaky_version = "0.1.0.3"---leaky_version = "0.1.0.0"+ leaky_version = "0.1.0.5" -- XXX need a better way!!.... + main :: IO ExitCode main = do- tdir <- createTempDirectory "." "leaky_"+ args <- getArgs+ if args /= ["demo"]+ then do+ putStrLn "seqaid: \"seqaid demo\" is the only supported invocation at this time."+ return $ ExitFailure 1+ else do+ tdir <- createTempDirectory "." "leaky_" -- XXX Note that "cabal get" already extracts the tarball for you. #if IS_WINDOWS- let bang_lines = ""+ let bang_lines = "" #else- let bang_lines = "#!/bin/bash\nset -e\n"+ let bang_lines = "#!/bin/bash\nset -e\n" #endif- let seqaid_init_bash = bang_lines ++ "\+ let seqaid_init_bash = bang_lines ++ "\ \cabal get leaky-" ++ leaky_version ++ "\n\ \cd leaky-" ++ leaky_version ++ "\n\ \cabal configure\n\@@ -44,9 +51,15 @@ \echo\n\ \echo \"(Please see " ++ tdir ++ "/leaky-" ++ leaky_version ++ "/README for the interpretation.)\"\n\ \echo\n"- setCurrentDirectory tdir- writeFile "seqaidinit.sh" seqaid_init_bash- p <- getPermissions "seqaidinit.sh"- setPermissions "seqaidinit.sh" (p { executable = True })- system "./seqaidinit.sh"+ setCurrentDirectory tdir+ writeFile "seqaidinit.sh" seqaid_init_bash+ p <- getPermissions "seqaidinit.sh"+ setPermissions "seqaidinit.sh" (p { executable = True })+ st <- system "./seqaidinit.sh"+ case st of+ ExitSuccess -> return ExitSuccess+ ExitFailure n -> do+ putStrLn $ "Sorry, seqaid demo had a problem (status=" ++ show st ++ ").\nPlease report this bug to rasfar@gmail.com"+ return $ ExitFailure 2+ _ -> error $ "unexpected ExitCode = " ++ show st ++ "\nPlease report this bug to rasfar@gmail.com"
seqaid.cabal view
@@ -1,6 +1,6 @@ name: seqaid-version: 0.1.4+version: 0.1.5 synopsis: Dynamic strictness control, including space leak repair description: Seqaid is a GHC plugin for non-invasive auto-instrumentation of dynamic strictness (and parallelism) control, shortly to include optimisation for automated space leak relief using minimal strictification. [The optimiser is still in development however.] .@@ -134,22 +134,23 @@ -- for polymorphic types such as [a]. Now looking to extend -- the TH code to USE the GHC API, which I didn't realise -- was possible but see modulespec package...- , template-haskell <= 2.9.0.0--- , template-haskell- , modulespection <= 0.1.2.1- , th-expand-syns <= 0.3.0.4+ , template-haskell == 2.9.*+ , modulespection >= 0.1.2+ , th-expand-syns == 0.3.* -- low-level forcing libraries- , deepseq-bounded <= 0.5.3+ , deepseq-bounded >= 0.5.0 && <= 0.5.3 -- at least for IntMap- , containers <= 0.5.5.1+ , containers == 0.5.* -- or would regex-posix be better? , regex-pcre <= 0.94.4 -- to use regex API- , array <= 0.5.0.0+ , array == 0.5.* -- ended up wanting this for State, for a SYB everywhereM traversal- , mtl <= 2.1.3.1+ , mtl == 2.1.*+-- , mtl == 2.1.3.*+-- , mtl == 2.1.3.1 -- In the end (although it's already a sub-dep), seqaid did end up -- depending directly on SOP, since now there's a splice in Seqaid.TH@@ -158,11 +159,11 @@ -- decls are put there by seqaidpp [indeed that was the whole reason -- I finally crumbed and reached for a preprocessor!] -- that's -- pre-TH, so pre our ability to know whether it's a synonym or not...--- , generics-sop <= 0.1.0.4+-- , generics-sop == 0.1.* if flag(SEQABLE_ONLY) build-depends:- generics-sop <= 0.1.0.4+ generics-sop == 0.1.* if ! flag(DEMO_MODE) build-depends:@@ -173,17 +174,18 @@ -- primitive : 10 modules (hashables) -- vector : 19 modules (hashables) -- Ouch! (this only really matters for sandbox builds)- hashtables <= 1.2.0.1+ hashtables == 1.2.* -- Need to include this anyway, since this is where "hash" function -- comes from (and hashtables doesn't export it). -- For building IntMap or HashTable keys from unique strings.- , hashable <= 1.2.3.0+-- , hashable == 1.2.*+ , hashable == 1.2.3.* -- Useful in debugging...--- , sai-shape-syb <= 0.3.0+-- , sai-shape-syb == 0.3.* -- for debugging only (though deepseq-bounded re-exports these anyhow)--- , deepseq-generics <= 0.1.1.2--- , deepseq <= 1.3.0.2+-- , deepseq-generics == 0.1.1.2+-- , deepseq == 1.3.0.2 ghc-options: -optP-Wundef -fno-warn-overlapping-patterns ghc-options: -funbox-strict-fields -fwarn-tabs@@ -262,10 +264,9 @@ --other-extensions: build-depends: base == 4.*--- , seqaid == 0.1.4- , temporary <= 1.2.0.2- , directory <= 1.2.1.0- , process <= 1.2.0.0+ , temporary == 1.2.*+ , directory == 1.2.*+ , process == 1.2.* ghc-options: -funbox-strict-fields -fwarn-tabs -threaded --ghc-options: -Wall -O2 -funbox-strict-fields -fwarn-tabs -threaded @@ -297,9 +298,9 @@ , regex-base <= 0.93.2 , regex-pcre <= 0.94.4 -- (process may still be uncommented b/c using to debug...)- , process <= 1.2.0.0- , directory <= 1.2.1.0- , Cabal <= 1.18.1.3+ , process == 1.2.*+ , directory == 1.2.*+ , Cabal >= 1.18 --ghc-options: default-language: Haskell2010 ghc-options: -pgmP cpphs -optP --cpp