@@ -6,9 +6,9 @@ import Control.DeepSeq (NFData(rnf))
66import Criterion.Main (bench, bgroup, defaultMain, nf)
77import Data.Bits
88import Data.Char (isAlpha)
9−import Data.Scientific (Scientific(..))
109import Data.Word (Word32)
1110import Data.Word (Word8)
11+import Numbers (numbers)
1212import Text.Parsec.Text ()
1313import Text.Parsec.Text.Lazy ()
1414import qualified Data.Attoparsec.ByteString as AB
@@ -74,67 +74,15 @@ main = do
7474 , bgroup "takeWhile" [
7575 bench "isAlpha" $ nf (ABL.parse (AC.takeWhile isAlpha)) bl
7676 , bench "isAlpha_ascii" $ nf (ABL.parse (AC.takeWhile AC.isAlpha_ascii)) bl
77− , bench "isAlpha_iso8859_15" $ nf (ABL.parse (AC.takeWhile AC.isAlpha_iso8859_15)) bl
77+ , bench "isAlpha_iso8859_15" $
78+ nf (ABL.parse (AC.takeWhile AC.isAlpha_iso8859_15)) bl
7879 ]
7980 , bench "word32LE" $ nf (AB.parse word32LE) b
8081 , bgroup "scan" [
8182 bench "short" $ nf (AB.parse quotedString) (BC.pack "abcdefghijk\"")
8283 , bench "long" $ nf (AB.parse quotedString) b
8384 ]
84−
85− , let strN = "1234.56789"
86− strNePos = "1234.56789e3"
87− strNeNeg = "1234.56789e-3"
88− in
89− bgroup "numbers"
90− [ let !tN = T.pack strN
91− !tNePos = T.pack strNePos
92− !tNeNeg = T.pack strNeNeg
93− in bgroup "Text"
94− [
95− bgroup "no power"
96− [ bench "double" $ nf (AT.parseOnly AT.double) tN
97− , bench "number" $ nf (AT.parseOnly AT.number) tN
98− , bench "rational" $ nf (AT.parseOnly (AT.rational :: AT.Parser Rational)) tN
99− , bench "scientific" $ nf (AT.parseOnly (AT.rational :: AT.Parser Scientific)) tN
100− ]
101− , bgroup "positive power"
102− [ bench "double" $ nf (AT.parseOnly AT.double) tNePos
103− , bench "number" $ nf (AT.parseOnly AT.number) tNePos
104− , bench "rational" $ nf (AT.parseOnly (AT.rational :: AT.Parser Rational)) tNePos
105− , bench "scientific" $ nf (AT.parseOnly (AT.rational :: AT.Parser Scientific)) tNePos
106− ]
107− , bgroup "negative power"
108− [ bench "double" $ nf (AT.parseOnly AT.double) tNeNeg
109− , bench "number" $ nf (AT.parseOnly AT.number) tNeNeg
110− , bench "rational" $ nf (AT.parseOnly (AT.rational :: AT.Parser Rational)) tNeNeg
111− , bench "scientific" $ nf (AT.parseOnly (AT.rational :: AT.Parser Scientific)) tNeNeg
112− ]
113− ]
114− , let !bN = BC.pack strN
115− !bNePos = BC.pack strNePos
116− !bNeNeg = BC.pack strNeNeg
117− in bgroup "ByteString"
118− [ bgroup "no power"
119− [ bench "double" $ nf (AC.parseOnly AC.double) bN
120− , bench "number" $ nf (AC.parseOnly AC.number) bN
121− , bench "rational" $ nf (AC.parseOnly (AC.rational :: AC.Parser Rational)) bN
122− , bench "scientific" $ nf (AC.parseOnly (AC.rational :: AC.Parser Scientific)) bN
123− ]
124− , bgroup "positive power"
125− [ bench "double" $ nf (AC.parseOnly AC.double) bNePos
126− , bench "number" $ nf (AC.parseOnly AC.number) bNePos
127− , bench "rational" $ nf (AC.parseOnly (AC.rational :: AC.Parser Rational)) bNePos
128− , bench "scientific" $ nf (AC.parseOnly (AC.rational :: AC.Parser Scientific)) bNePos
129− ]
130− , bgroup "negative power"
131− [ bench "double" $ nf (AC.parseOnly AC.double) bNeNeg
132− , bench "number" $ nf (AC.parseOnly AC.number) bNeNeg
133− , bench "rational" $ nf (AC.parseOnly (AC.rational :: AC.Parser Rational)) bNeNeg
134− , bench "scientific" $ nf (AC.parseOnly (AC.rational :: AC.Parser Scientific)) bNeNeg
135− ]
136− ]
137− ]
85+ , numbers
13886 ]
13987
14088-- Benchmarks bind and (potential) bounds-check merging.