packages feed

regex-tdfa 1.2.2 → 1.2.3

raw patch · 8 files changed

+39/−9 lines, 8 filesdep +semigroupsdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: semigroups

Dependency ranges changed: base

API changes (from Hackage documentation)

- Text.Regex.TDFA.NewDFA.Uncons: instance Text.Regex.TDFA.NewDFA.Uncons.Uncons (Data.Sequence.Seq GHC.Types.Char)
- Text.Regex.TDFA.Sequence: instance Text.Regex.Base.RegexLike.RegexContext Text.Regex.TDFA.Common.Regex (Data.Sequence.Seq GHC.Types.Char) (Data.Sequence.Seq GHC.Types.Char)
- Text.Regex.TDFA.Sequence: instance Text.Regex.Base.RegexLike.RegexLike Text.Regex.TDFA.Common.Regex (Data.Sequence.Seq GHC.Types.Char)
- Text.Regex.TDFA.Sequence: instance Text.Regex.Base.RegexLike.RegexMaker Text.Regex.TDFA.Common.Regex Text.Regex.TDFA.Common.CompOption Text.Regex.TDFA.Common.ExecOption (Data.Sequence.Seq GHC.Types.Char)
+ Data.IntMap.CharMap2: instance Data.Semigroup.Semigroup (Data.IntMap.CharMap2.CharMap a)
+ Data.IntMap.EnumMap2: instance GHC.Classes.Ord k => Data.Semigroup.Semigroup (Data.IntMap.EnumMap2.EnumMap k a)
+ Data.IntSet.EnumSet2: instance Data.Semigroup.Semigroup (Data.IntSet.EnumSet2.EnumSet e)
+ Text.Regex.TDFA.CorePattern: instance Data.Semigroup.Semigroup Text.Regex.TDFA.CorePattern.SetTestInfo
+ Text.Regex.TDFA.NewDFA.Uncons: instance Text.Regex.TDFA.NewDFA.Uncons.Uncons (Data.Sequence.Internal.Seq GHC.Types.Char)
+ Text.Regex.TDFA.Sequence: instance Text.Regex.Base.RegexLike.RegexContext Text.Regex.TDFA.Common.Regex (Data.Sequence.Internal.Seq GHC.Types.Char) (Data.Sequence.Internal.Seq GHC.Types.Char)
+ Text.Regex.TDFA.Sequence: instance Text.Regex.Base.RegexLike.RegexLike Text.Regex.TDFA.Common.Regex (Data.Sequence.Internal.Seq GHC.Types.Char)
+ Text.Regex.TDFA.Sequence: instance Text.Regex.Base.RegexLike.RegexMaker Text.Regex.TDFA.Common.Regex Text.Regex.TDFA.Common.CompOption Text.Regex.TDFA.Common.ExecOption (Data.Sequence.Internal.Seq GHC.Types.Char)
- Text.Regex.TDFA.Sequence: regexec :: Regex -> (Seq Char) -> Either String (Maybe (Seq Char, Seq Char, Seq Char, [(Seq Char)]))
+ Text.Regex.TDFA.Sequence: regexec :: Regex -> (Seq Char) -> Either String (Maybe ((Seq Char), (Seq Char), (Seq Char), [(Seq Char)]))

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 1.2.3++* Added `Semigroup` instances for some types (h/t Herbert Valerio Riedel).+ # 1.2.2  * New maintainer.
Data/IntMap/CharMap2.hs view
@@ -10,7 +10,7 @@ import Data.List as L (map) import qualified Data.IntMap as M import qualified Data.IntSet as S(IntSet)-import Data.Monoid(Monoid(..))+import Data.Semigroup as Sem  #ifndef __GLASGOW_HASKELL__ unsafeChr = chr@@ -18,9 +18,12 @@  newtype CharMap a = CharMap {unCharMap :: M.IntMap a} deriving (Eq,Ord,Read,Show) +instance Sem.Semigroup (CharMap a) where+  CharMap x <> CharMap y = CharMap (x `mappend` y)+ instance Monoid (CharMap a) where   mempty = CharMap mempty-  CharMap x `mappend` CharMap y = CharMap (x `mappend` y)+  mappend = (<>)  instance Functor CharMap where   fmap f (CharMap m) = CharMap (fmap f m)
Data/IntMap/EnumMap2.hs view
@@ -3,16 +3,19 @@ import Data.Foldable(Foldable(..)) import qualified Data.IntMap as M import qualified Data.IntSet.EnumSet2 as S (EnumSet(..))-import Data.Monoid(Monoid(..))+import Data.Semigroup as Sem import Prelude import qualified Prelude as L (map)  newtype EnumMap k a = EnumMap {unEnumMap :: M.IntMap a}   deriving (Eq,Ord,Read,Show) +instance Ord k => Sem.Semigroup (EnumMap k a) where+  EnumMap x <> EnumMap y = EnumMap (x `mappend` y)+ instance Ord k => Monoid (EnumMap k a) where   mempty = EnumMap mempty-  EnumMap x `mappend` EnumMap y = EnumMap (x `mappend` y)+  mappend = (<>)  instance Ord k => Functor (EnumMap k) where   fmap f (EnumMap m) = EnumMap (fmap f m)
Data/IntSet/EnumSet2.hs view
@@ -2,14 +2,17 @@  import qualified Data.IntSet as S import qualified Data.List as L (map)-import Data.Monoid(Monoid(..))+import Data.Semigroup as Sem  newtype EnumSet e = EnumSet {unEnumSet :: S.IntSet}   deriving (Eq,Ord,Read,Show) +instance Sem.Semigroup (EnumSet e) where+  EnumSet x <> EnumSet y = EnumSet (x `mappend` y)+ instance Monoid (EnumSet e) where   mempty = EnumSet mempty-  EnumSet x `mappend` EnumSet y = EnumSet (x `mappend` y)+  mappend = (<>)  (\\) :: (Enum e) => EnumSet e -> EnumSet e -> EnumSet e (\\) (EnumSet s1) (EnumSet s2) = EnumSet ((S.\\) s1 s2)
Text/Regex/TDFA/CorePattern.hs view
@@ -42,6 +42,7 @@ --import Data.Maybe(isNothing) import Data.IntSet.EnumSet2(EnumSet) import qualified Data.IntSet.EnumSet2 as Set(singleton,toList,isSubsetOf)+import Data.Semigroup as Sem import Text.Regex.TDFA.Common {- all -} import Text.Regex.TDFA.Pattern(Pattern(..),starTrans) -- import Debug.Trace@@ -87,9 +88,12 @@ -- This is a set of WhichTest where each test has associated pattern location information newtype SetTestInfo = SetTestInfo {getTests :: EnumMap WhichTest (EnumSet DoPa)} deriving (Eq) +instance Semigroup SetTestInfo where+  SetTestInfo x <> SetTestInfo y = SetTestInfo (x Sem.<> y)+ instance Monoid SetTestInfo where   mempty = SetTestInfo mempty-  SetTestInfo x `mappend` SetTestInfo y = SetTestInfo (x `mappend` y)+  mappend = (Sem.<>)  instance Show SetTestInfo where   show (SetTestInfo sti) = "SetTestInfo "++show (mapSnd (Set.toList) $ Map.assocs sti)
Text/Regex/TDFA/NewDFA/Engine.hs view
@@ -122,6 +122,7 @@     let obtainNext = join (readSTRef storeNext)     return obtainNext +  goNext :: STRef s (ST s [MatchArray]) -> ST s [MatchArray]   goNext storeNext = {-# SCC "goNext" #-} do     (SScratch s1In s2In (winQ,blank,which)) <- newScratch b_index b_tags     _ <- spawnStart b_tags blank startState s1In offsetIn
Text/Regex/TDFA/NewDFA/Engine_FA.hs view
@@ -86,6 +86,7 @@   comp :: C s   comp = {-# SCC "matchHere.comp" #-} ditzyComp'3 aTags +  goNext :: ST s [MatchArray]   goNext = {-# SCC "goNext" #-} do     (SScratch s1In s2In (winQ,blank,which)) <- newScratch b_index b_tags     spawnAt b_tags blank startState s1In offsetIn
regex-tdfa.cabal view
@@ -1,5 +1,5 @@ Name:                   regex-tdfa-Version:                1.2.2+Version:                1.2.3 License:                BSD3 License-File:           LICENSE Copyright:              Copyright (c) 2007, Christopher Kuklewicz@@ -11,7 +11,7 @@ Synopsis:               Replaces/Enhances Text.Regex Description:            A new all Haskell "tagged" DFA regex engine, inspired by libtre Category:               Text-Tested-With:            GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1+Tested-With:            GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.1 Build-Type:             Simple extra-source-files:   CHANGELOG.md@@ -35,6 +35,17 @@                       , mtl                       , parsec                       , regex-base >= 0.93.1++  -- Support Semigroup instances uniformly+  --+  -- See also+  --  https://prime.haskell.org/wiki/Libraries/Proposals/SemigroupMonoid#RecommendedVariant+  --+  -- NB: This is the same logic `parsec.cabal` uses, so this doesn't+  -- add any new dependency that isn't already incurred by+  -- `regex-tdfa`'s transitive deps+  if !impl(ghc >= 8.0)+    build-depends:      semigroups == 0.18.*    other-modules:          Paths_regex_tdfa   Exposed-Modules:        Data.IntMap.CharMap2