diagrams-builder 0.4.0.6 → 0.4.1
raw patch · 6 files changed
+60/−44 lines, 6 filesdep +lensdep ~diagrams-cairodep ~diagrams-libdep ~diagrams-postscript
Dependencies added: lens
Dependency ranges changed: diagrams-cairo, diagrams-lib, diagrams-postscript, diagrams-svg
Files
- CHANGES.markdown +6/−0
- diagrams-builder.cabal +12/−10
- src/Diagrams/Builder.hs +26/−24
- src/Diagrams/Builder/Modules.hs +14/−8
- src/tools/diagrams-builder-cairo.hs +1/−1
- src/tools/diagrams-builder-ps.hs +1/−1
CHANGES.markdown view
@@ -1,3 +1,9 @@+0.4.1 (24 November 2013)+------------------------++ - bug fix: avoid ambiguity errors when parsing unknown operators+ - update to work with diagrams-1.0+ 0.4.0.6 (2 October 2013) ------------------------
diagrams-builder.cabal view
@@ -1,5 +1,5 @@ name: diagrams-builder-version: 0.4.0.6+version: 0.4.1 synopsis: hint-based build service for the diagrams graphics EDSL. description: @diagrams-builder@ provides backend-agnostic tools for@@ -47,7 +47,7 @@ Diagrams.Builder.Modules Diagrams.Builder.CmdLine build-depends: base >=4.2 && < 4.7,- diagrams-lib >=0.6 && < 0.8,+ diagrams-lib >=0.6 && < 1.1, hint ==0.3.*, directory, filepath,@@ -94,9 +94,10 @@ filepath, directory, diagrams-builder,- diagrams-lib >= 0.6 && < 0.8,- diagrams-cairo >= 0.6 && < 0.8,- cmdargs >= 0.6 && < 0.11+ diagrams-lib >= 0.6 && < 1.1,+ diagrams-cairo >= 0.6 && < 1.1,+ cmdargs >= 0.6 && < 0.11,+ lens >= 3.8 && < 3.11 executable diagrams-builder-svg main-is: diagrams-builder-svg.hs@@ -113,8 +114,8 @@ filepath, directory, diagrams-builder,- diagrams-lib >= 0.6 && < 0.8,- diagrams-svg >= 0.8.0.1 && < 0.9,+ diagrams-lib >= 0.6 && < 1.1,+ diagrams-svg >= 0.8.0.1 && < 1.1, blaze-svg >= 0.3.3 && < 0.4, bytestring >= 0.9.2 && < 0.11, cmdargs >= 0.6 && < 0.11@@ -134,6 +135,7 @@ filepath, directory, diagrams-builder,- diagrams-lib >= 0.6 && < 0.8,- diagrams-postscript >= 0.6 && < 0.8,- cmdargs >= 0.6 && < 0.11+ diagrams-lib >= 0.6 && < 1.1,+ diagrams-postscript >= 0.6 && < 1.1,+ cmdargs >= 0.6 && < 0.11,+ lens >= 3.8 && < 3.11
src/Diagrams/Builder.hs view
@@ -3,7 +3,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-orphans #-} ----------------------------------------------------------------------------- -- |@@ -37,32 +37,34 @@ ) where -import Control.Monad (guard, mplus, mzero)-import Control.Monad.Trans.Maybe (MaybeT, runMaybeT)-import Crypto.Hash (Digest, MD5,- digestToHexByteString, hash)-import qualified Data.ByteString.Char8 as B-import Data.List (nub)-import Data.List.Split (splitOn)-import Data.Maybe (catMaybes, fromMaybe)-import Data.Typeable (Typeable)-import System.Directory (doesFileExist,- getDirectoryContents,- getTemporaryDirectory,- removeFile)-import System.FilePath (takeBaseName, (<.>), (</>))-import System.IO (hClose, hPutStr, openTempFile)+import Control.Monad (guard, mplus, mzero)+import Control.Monad.Trans.Maybe (MaybeT, runMaybeT)+import Crypto.Hash (Digest, MD5,+ digestToHexByteString,+ hash)+import qualified Data.ByteString.Char8 as B+import Data.List (nub)+import Data.List.Split (splitOn)+import Data.Maybe (catMaybes, fromMaybe)+import Data.Typeable (Typeable)+import System.Directory (doesFileExist,+ getDirectoryContents,+ getTemporaryDirectory,+ removeFile)+import System.FilePath (takeBaseName, (<.>),+ (</>))+import System.IO (hClose, hPutStr,+ openTempFile) -import Language.Haskell.Exts (ImportDecl, Module (..),- ModuleName (..), importModule,- prettyPrint)-import Language.Haskell.Interpreter hiding (ModuleName)+import Language.Haskell.Exts (ImportDecl, Module (..),+ importModule, prettyPrint)+import Language.Haskell.Interpreter hiding (ModuleName) import Diagrams.Builder.CmdLine import Diagrams.Builder.Modules-import Diagrams.Prelude hiding (e, (<.>))-import System.Environment (getEnvironment)+import Diagrams.Prelude hiding ((<.>)) import Language.Haskell.Interpreter.Unsafe (unsafeRunInterpreterWithArgs)+import System.Environment (getEnvironment) deriving instance Typeable Any @@ -298,9 +300,9 @@ -> IO (String, Maybe (a -> a)) -hashedRegenerate upd dir src = do+hashedRegenerate upd d src = do let fileBase = hashStr src- files <- getDirectoryContents dir+ files <- getDirectoryContents d case any ((fileBase==) . takeBaseName) files of True -> return (fileBase, Nothing) False -> return (fileBase, Just (upd fileBase))
src/Diagrams/Builder/Modules.hs view
@@ -11,12 +11,13 @@ module Diagrams.Builder.Modules where -import Data.Function (on)-import Data.List (foldl', isPrefixOf, groupBy, sortBy, nub)-import Data.Ord (comparing)+import Data.Function (on)+import Data.List (foldl', groupBy, isPrefixOf, nub,+ sortBy)+import Data.Ord (comparing) -import Language.Haskell.Exts-import Language.Haskell.Exts.SrcLoc (noLoc)+import Language.Haskell.Exts+import Language.Haskell.Exts.SrcLoc (noLoc) ------------------------------------------------------------ -- Manipulating modules@@ -52,9 +53,15 @@ -- Haskell code, producing a @Module@ or an error message. doModuleParse :: String -> Either String Module doModuleParse src =- case parseFileContents src of+ case parseFileContentsWithMode parseMode src of ParseFailed _ err -> Left err ParseOk m -> return m+ where+ parseMode+ = defaultParseMode+ { baseLanguage = Haskell2010+ , fixities = Nothing+ } -- | Remove all the literate comments and bird tracks from a literate -- Haskell file. Has no effect on non-literate source.@@ -76,7 +83,7 @@ addPragmas :: [String] -> Module -> Module addPragmas langs (Module l n p w e i d) = Module l n (f p) w e i d where f [] = [LanguagePragma noLoc (map Ident langs)]- f (LanguagePragma loc ps : rest) = LanguagePragma loc (ps ++ map Ident langs) : rest+ f (LanguagePragma lpLoc ps : rest) = LanguagePragma lpLoc (ps ++ map Ident langs) : rest f (x : rest) = x : f rest -- | Add some imports to a module if necessary.@@ -116,4 +123,3 @@ -- | Convert a @ModuleName@ to a @String@. getModuleName :: ModuleName -> String getModuleName (ModuleName n) = n-
src/tools/diagrams-builder-cairo.hs view
@@ -37,7 +37,7 @@ [] [ "Diagrams.Backend.Cairo" ] (hashedRegenerate- (\hash opts -> opts { cairoFileName = mkFile hash ext })+ (\hash opts -> opts & cairoFileName .~ mkFile hash ext) dir ) case res of
src/tools/diagrams-builder-ps.hs view
@@ -27,7 +27,7 @@ [] [ "Diagrams.Backend.Postscript" ] (hashedRegenerate- (\hash opts -> opts { psfileName = mkFile hash })+ (\hash opts -> opts & psfileName .~ mkFile hash ) dir )