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 +4/−0
- Data/IntMap/CharMap2.hs +5/−2
- Data/IntMap/EnumMap2.hs +5/−2
- Data/IntSet/EnumSet2.hs +5/−2
- Text/Regex/TDFA/CorePattern.hs +5/−1
- Text/Regex/TDFA/NewDFA/Engine.hs +1/−0
- Text/Regex/TDFA/NewDFA/Engine_FA.hs +1/−0
- regex-tdfa.cabal +13/−2
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