rere 0.2 → 0.2.0.1
raw patch · 2 files changed
+25/−59 lines, 2 filesdep −attoparsecdep ~aesondep ~basedep ~containersPVP ok
version bump matches the API change (PVP)
Dependencies removed: attoparsec
Dependency ranges changed: aeson, base, containers, quickcheck-instances, tasty, tasty-quickcheck
API changes (from Hackage documentation)
Files
- bench/JSON.hs +7/−41
- rere.cabal +18/−18
bench/JSON.hs view
@@ -7,19 +7,13 @@ import Prelude hiding (exponent) import Criterion.Main (bench, defaultMain, whnf)-import Data.Either (isRight)+import Data.Maybe (isJust) import System.Clock (Clock (Monotonic), diffTimeSpec, getTime) -import qualified Data.Aeson.Parser as A-import qualified Data.Attoparsec.ByteString as Atto-import qualified Data.ByteString as BS-import qualified Data.Set as Set-import qualified Text.Derp as D--#ifdef MIN_VERSION_saison-import qualified Saison.Decoding.Parser as S-import qualified Saison.Decoding.Tokens as S-#endif+import qualified Data.Aeson as A+import qualified Data.ByteString as BS+import qualified Data.Set as Set+import qualified Text.Derp as D import RERE import RERE.Examples.JSON@@ -34,32 +28,7 @@ derp p s = not $ Set.null $ D.runParse p [ D.Token c [c] | c <- s] aeson :: BS.ByteString -> Bool-aeson bs = isRight (Atto.parseOnly (A.json <* Atto.endOfInput) bs)--#ifdef MIN_VERSION_saison-saison :: BS.ByteString -> Bool-saison = go end . S.tokens where- end :: BS.ByteString -> Bool- end = BS.null . S.skipSpace-- go :: (k -> Bool) -> S.Tokens k e -> Bool- go kont (S.TkLit _ k) = kont k- go kont (S.TkText _ k) = kont k- go kont (S.TkNumber _ k) = kont k- go kont (S.TkArrayOpen arr) = goArr kont arr- go kont (S.TkRecordOpen obj) = goObj kont obj- go _ (S.TkErr _) = False-- goArr :: (k -> Bool) -> S.TkArray k e -> Bool- goArr kont (S.TkItem k) = go (goArr kont) k- goArr kont (S.TkArrayEnd k) = kont k- goArr _ (S.TkArrayErr _) = False-- goObj :: (k -> Bool) -> S.TkRecord k e -> Bool- goObj kont (S.TkPair _ k) = go (goObj kont) k- goObj kont (S.TkRecordEnd k) = kont k- goObj _ (S.TkRecordErr _) = False-#endif+aeson bs = isJust (A.decodeStrict bs :: Maybe A.Value) main :: IO () main = do@@ -90,10 +59,7 @@ putStrLn "Criterion" defaultMain [ bench "aeson" $ whnf aeson bs-#ifdef MIN_VERSION_saison- , bench "saison" $ whnf saison bs-#endif- -- , bench "rere" $ whnf (matchR jsonRE) contents+ , bench "rere" $ whnf (matchST jsonRE) contents ] -------------------------------------------------------------------------------
rere.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: rere-version: 0.2+version: 0.2.0.1 synopsis: Regular-expressions extended with fixpoints for context-free powers @@ -30,8 +30,12 @@ || ==8.4.4 || ==8.6.5 || ==8.8.4- || ==8.10.4- || ==9.0.1+ || ==8.10.7+ || ==9.0.2+ || ==9.2.8+ || ==9.4.7+ || ==9.6.3+ || ==9.8.1 source-repository head type: git@@ -57,10 +61,10 @@ -- GHC boot libraries build-depends:- , base >=4.3.0.0 && <4.16+ , base >=4.3.0.0 && <4.20 , containers ^>=0.4.0.0 || ^>=0.5.0.0 || ^>=0.6.0.1 , parsec ^>=3.1.12.0- , transformers ^>=0.3.0.0 || ^>=0.4.2.0 || ^>=0.5.2.0+ , transformers ^>=0.3.0.0 || ^>=0.4.2.0 || ^>=0.5.2.0 || ^>=0.6.1.0 -- other dependencies build-depends: QuickCheck ^>=2.14.2@@ -70,7 +74,7 @@ build-depends: void ^>=0.7.3 if !impl(ghc >=8.0)- build-depends: semigroups >=0.18.5 && <0.20+ build-depends: semigroups >=0.18.5 && <0.21 -- expose examples first, so `cabal repl` loads them. exposed-modules: RERE.Examples@@ -94,8 +98,8 @@ if (flag(rere-cfg) && impl(ghc >=7.8)) build-depends:- , fin ^>=0.2- , vec ^>=0.4+ , fin ^>=0.2 || ^>=0.3+ , vec ^>=0.4 || ^>=0.5 exposed-modules: RERE.CFG @@ -117,7 +121,7 @@ build-depends: , base , containers- , criterion ^>=1.5.5.0+ , criterion ^>=1.5.5.0 || ^>=1.6.0.0 , derp , parsec , rere@@ -142,24 +146,20 @@ other-modules: DerpConv ghc-options: -Wall -rtsopts build-depends:- , aeson ^>=1.4.6.0 || ^>=1.5.0.0- , attoparsec+ , aeson ^>=1.4.6.0 || ^>=1.5.0.0 || ^>=2.0.0.0 || ^>=2.1.0.0 || ^>=2.2.1.0 , base , bytestring , clock ^>=0.8 , containers- , criterion ^>=1.5.5.0+ , criterion ^>=1.5.5.0 || ^>=1.6.0.0 , derp , fin , parsec , rere , vec - -- extras- -- build-depends: saison- if !impl(ghc >=8.0)- build-depends: semigroups >=0.18.4 && <0.20+ build-depends: semigroups >=0.18.4 && <0.21 if !impl(ghc >=7.10) build-depends: void ^>=0.7.2@@ -179,9 +179,9 @@ , base , containers , QuickCheck- , quickcheck-instances ^>=0.3.22+ , quickcheck-instances ^>=0.3.30 , rere- , tasty ^>=1.4.0.1+ , tasty ^>=1.4.0.1 || ^>=1.5 , tasty-quickcheck ^>=0.10.1.1 if flag(rere-intersection)