tree-diff 0.3.0.1 → 0.3.1
raw patch · 9 files changed
+55/−124 lines, 9 filesdep −base-compatdep −bytestring-builderdep −generic-derivingdep ~Diffdep ~QuickCheckdep ~aeson
Dependencies removed: base-compat, bytestring-builder, generic-deriving, nats, semigroups, transformers, void
Dependency ranges changed: Diff, QuickCheck, aeson, ansi-terminal, ansi-wl-pprint, base, bytestring, containers, criterion, data-array-byte, deepseq, hashable, parsers, primitive, scientific, semialign, strict, tagged, tasty, tasty-golden, tasty-quickcheck, these, time, trifecta, unordered-containers, uuid-types, vector
Files
- ChangeLog.md +4/−0
- src/Data/TreeDiff/Class.hs +6/−33
- src/Data/TreeDiff/Expr.hs +0/−3
- src/Data/TreeDiff/Golden.hs +0/−2
- src/Data/TreeDiff/OMap.hs +5/−11
- src/Data/TreeDiff/Parser.hs +0/−2
- src/Data/TreeDiff/Pretty.hs +1/−1
- tests/Tests.hs +1/−9
- tree-diff.cabal +38/−63
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.3.1++- Support GHC-8.6.5...9.10.1+ ## 0.3 - Breaking change:
src/Data/TreeDiff/Class.hs view
@@ -1,14 +1,12 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DefaultSignatures #-}+{-# LANGUAGE EmptyCase #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-}-#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708-{-# LANGUAGE EmptyCase #-}-#endif -- | A 'ToExpr' class. module Data.TreeDiff.Class ( ediff,@@ -20,10 +18,9 @@ GToExpr, ) where -import Data.Foldable (toList)-import Data.List (sort)-import Data.List.Compat (uncons)-import Data.Proxy (Proxy (..))+import Data.Foldable (toList)+import Data.List (sort, uncons)+import Data.Proxy (Proxy (..)) import GHC.Generics (Constructor (..), Generic (..), K1 (..), M1 (..), Selector (..), U1 (..), V1, (:*:) (..), (:+:) (..))@@ -43,10 +40,6 @@ import Data.Word import Numeric.Natural (Natural) -#ifdef MIN_VERSION_generic_deriving-import Generics.Deriving.Instances ()-#endif- import qualified Data.Monoid as Mon import qualified Data.Ratio as Ratio import qualified Data.Semigroup as Semi@@ -94,11 +87,9 @@ import qualified Data.HashSet as HS -- aeson-import qualified Data.Aeson as Aeson-#if MIN_VERSION_aeson(2,0,0)+import qualified Data.Aeson as Aeson import qualified Data.Aeson.Key as Key import qualified Data.Aeson.KeyMap as KM-#endif -- strict import qualified Data.Strict as Strict@@ -107,11 +98,7 @@ import Data.These (These (..)) -- primitive-import qualified Data.Primitive as Prim--#if MIN_VERSION_base(4,9,0)-import Data.Array.Byte (ByteArray (..))-#endif+import qualified Data.Primitive as Prim -- $setup -- >>> :set -XDeriveGeneric@@ -202,11 +189,7 @@ gsumToExpr (R1 x) = gsumToExpr x instance GSumToExpr V1 where-#if __GLASGOW_HASKELL__ >= 708 gsumToExpr x = case x of {}-#else- gsumToExpr x = x `seq` error "panic: V1 value"-#endif instance (Constructor c, GProductToExpr f) => GSumToExpr (M1 i c f) where gsumToExpr z@(M1 x) = case gproductToExpr x of@@ -561,13 +544,11 @@ instance ToExpr Aeson.Value -#if MIN_VERSION_aeson(2,0,0) instance ToExpr Key.Key where toExpr = stringToExpr "Key.concat" . unconcat T.uncons . Key.toText instance ToExpr a => ToExpr (KM.KeyMap a) where toExpr x = App "KM.fromList" [ toExpr $ KM.toList x ]-#endif ------------------------------------------------------------------------------- -- strict@@ -601,11 +582,3 @@ -- | @since 0.2.2 instance ToExpr Prim.ByteArray where toExpr ba = App "Prim.byteArrayFromList" [toExpr (Prim.foldrByteArray (:) [] ba :: [Word8])]--#if !MIN_VERSION_primitive(0,8,0) && MIN_VERSION_base(4,9,0)--- | @since 0.2.2-instance ToExpr ByteArray where- toExpr (ByteArray ba) = App "byteArrayFromList" [toExpr (Prim.foldrByteArray (:) [] (Prim.ByteArray ba) :: [Word8])]-#endif---- TODO: add more instances
src/Data/TreeDiff/Expr.hs view
@@ -9,9 +9,6 @@ exprDiff, ) where -import Prelude ()-import Prelude.Compat- import Control.DeepSeq (NFData (..)) import Data.Semialign (alignWith) import Data.These (These (..))
src/Data/TreeDiff/Golden.hs view
@@ -4,8 +4,6 @@ ) where import Data.TreeDiff-import Prelude ()-import Prelude.Compat import System.Console.ANSI (SGR (Reset), setSGRCode) import Text.Parsec (eof, parse) import Text.Parsec.Text ()
src/Data/TreeDiff/OMap.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveFunctor #-} -- | Map which remembers the 'fromList' order. -- This module is minimal on purpose.@@ -15,18 +14,13 @@ elems, ) where -import Data.List (sortBy)-import Data.Ord (comparing)-import Data.Semialign (Semialign (..))-import Data.These (These (..))-import Control.DeepSeq (NFData (..))+import Control.DeepSeq (NFData (..))+import Data.List (sortBy)+import Data.Ord (comparing)+import Data.Semialign (Semialign (..))+import Data.These (These (..)) -#if MIN_VERSION_containers(0,5,0) import qualified Data.Map.Strict as Map-#else-import qualified Data.Map as Map-#endif- import qualified Test.QuickCheck as QC -- $setup
src/Data/TreeDiff/Parser.hs view
@@ -8,8 +8,6 @@ import Control.Applicative (many, optional, (<|>)) import Data.Char (chr, isAlphaNum, isPunctuation, isSymbol)-import Prelude ()-import Prelude.Compat import Text.Parser.Char (CharParsing (anyChar, char, satisfy)) import Text.Parser.Combinators (between, (<?>))
src/Data/TreeDiff/Pretty.hs view
@@ -28,7 +28,7 @@ import Data.Either (partitionEithers) import Data.TreeDiff.Expr import Numeric (showHex)-import Text.Read.Compat (readMaybe)+import Text.Read (readMaybe) import qualified Data.TreeDiff.OMap as OMap import qualified Text.PrettyPrint as HJ
tests/Tests.hs view
@@ -1,21 +1,15 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveGeneric #-} module Main (main) where +import Data.Array.Byte (ByteArray (..)) import Data.Proxy (Proxy (..)) import Data.Word (Word8) import GHC.Generics (Generic)-import Prelude ()-import Prelude.Compat import Test.QuickCheck (Property, counterexample, (===)) import Test.Tasty (TestTree, defaultMain, testGroup) import Test.Tasty.Golden.Advanced (goldenTest) import Test.Tasty.QuickCheck (testProperty) -#if MIN_VERSION_base(4,9,0)-import Data.Array.Byte (ByteArray (..))-#endif- import qualified Data.HashSet as HS import qualified Data.Primitive as Prim import qualified Text.Parsec as P@@ -161,9 +155,7 @@ -- test that we have both instances. data ByteArrays = ByteArrays Prim.ByteArray-#if MIN_VERSION_base(4,9,0) ByteArray-#endif deriving Generic instance ToExpr ByteArrays
tree-diff.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: tree-diff-version: 0.3.0.1+version: 0.3.1 synopsis: Diffing of (expression) trees. category: Data, Testing description:@@ -44,21 +44,15 @@ README.md tested-with:- GHC ==7.4.2- || ==7.6.3- || ==7.8.4- || ==7.10.3- || ==8.0.2- || ==8.2.2- || ==8.4.4- || ==8.6.5- || ==8.8.4- || ==8.10.7- || ==9.0.2- || ==9.2.7- || ==9.4.4- || ==9.6.1- , GHCJS ==8.4+ GHC ==8.6.5+ || ==8.8.4+ || ==8.10.7+ || ==9.0.2+ || ==9.2.8+ || ==9.4.8+ || ==9.6.5+ || ==9.8.2+ || ==9.10.1 extra-source-files: fixtures/exfoo.expr@@ -86,51 +80,34 @@ -- GHC boot libraries build-depends:- , base >=4.5 && <4.19- , bytestring ^>=0.9.2.1 || ^>=0.10.0.2 || ^>=0.11.0.0- , containers ^>=0.4.2.1 || ^>=0.5.0.0 || ^>=0.6.0.1- , deepseq ^>=1.3.0.0 || ^>=1.4.0.0+ , base >=4.12.0.0 && <4.21+ , bytestring ^>=0.10.8.2 || ^>=0.11.0.0 || ^>=0.12.0.2+ , containers ^>=0.6.0.1 || ^>=0.7+ , deepseq ^>=1.4.4.0 || ^>=1.5.0.0 , parsec ^>=3.1.13.0 , pretty ^>=1.1.1.0- , text ^>=1.2.3.0 || ^>=2.0- , time >=1.4 && <1.5 || >=1.5.0.1 && <1.6 || >=1.6.0.1 && <1.7 || >=1.8.0.2 && <1.9 || >=1.9.3 && <1.13+ , text ^>=1.2.3.0 || ^>=2.0 || ^>=2.1+ , time ^>=1.8.0.2 || ^>=1.9.3 || ^>=1.10 || ^>=1.11 || ^>=1.12 build-depends:- , aeson ^>=1.4.6.0 || ^>=1.5.6.0 || ^>=2.0.0.0 || ^>=2.1.0.0- , ansi-terminal >=0.10 && <0.12- , ansi-wl-pprint ^>=0.6.8.2- , base-compat >=0 && <0.13 || ^>=0.13- , bytestring-builder ^>=0.10.8.2.0- , hashable ^>=1.2.7.0 || ^>=1.3.0.0 || ^>=1.4.0.1- , parsers ^>=0.12.10- , primitive >=0.7.1.0 && <0.8 || ^>=0.8- , QuickCheck ^>=2.14.2- , scientific ^>=0.3.6.2- , semialign >=1.2.0.1 && <1.3 || ^>=1.3- , strict >=0.4.0.1 && <0.5 || ^>=0.5- , tagged ^>=0.8.6- , these >=1.1.1.1 && <1.2 || ^>=1.2- , unordered-containers ^>=0.2.8.0- , uuid-types ^>=1.0.3- , vector ^>=0.12.0.0 || ^>=0.13.0.0-- if impl(ghc <7.5)- build-depends: ghc-prim-- if !impl(ghc >=8.0)- build-depends: semigroups >=0.19.1 && <0.21-- if !impl(ghc >=7.8)- build-depends: generic-deriving >=1.13.1 && <1.15-- if !impl(ghc >=7.10)- build-depends:- , nats ^>=1.1.2- , transformers ^>=0.3.0.0 || ^>=0.4.2.0 || >=0.5.2.0 && <0.6 || ^>=0.6- , void ^>=0.7.3+ , aeson ^>=2.2.0.0+ , ansi-terminal ^>=1.1+ , ansi-wl-pprint ^>=1.0.2+ , hashable ^>=1.4.4.0+ , parsers ^>=0.12.11+ , primitive ^>=0.9.0.0+ , QuickCheck ^>=2.14.2 || ^>=2.15+ , scientific ^>=0.3.8.0+ , semialign ^>=1.3.1+ , strict ^>=0.5+ , tagged ^>=0.8.8+ , these ^>=1.2.1+ , unordered-containers ^>=0.2.20+ , uuid-types ^>=1.0.6+ , vector ^>=0.13.1.0 if (impl(ghc >=8) && !impl(ghc >=9.4))- build-depends: data-array-byte >=0.1.0.1 && <0.2+ build-depends: data-array-byte ^>=0.1.0.1 other-extensions: CPP@@ -158,7 +135,6 @@ , ansi-terminal , ansi-wl-pprint , base- , base-compat , parsec , primitive , QuickCheck@@ -174,11 +150,10 @@ -- extra dependencies build-depends:- , tasty ^>=1.2 || ^>=1.3.1 || ^>=1.4.2- , tasty-golden ^>=2.3.1.1- , tasty-quickcheck ^>=0.10.1- , trifecta >=2 && <2.2-+ , tasty ^>=1.5+ , tasty-golden ^>=2.3.5+ , tasty-quickcheck ^>=0.10.3+ , trifecta ^>=2.1.4 benchmark tree-diff-bench default-language: Haskell2010@@ -195,5 +170,5 @@ -- extra dependencies build-depends:- , criterion ^>=1.6.0.0- , Diff ^>=0.4.0+ , criterion ^>=1.6.3.0+ , Diff ^>=0.5