on master help sign in
benchmarks now work with criterion 0.4
b3dd680aslatter
tests/BenchUUID.hs+18−9
@@ -35,18 +35,27 @@ main = do
35 n1 = (map (fromIntegral . ord) "http://www.haskell.org/") :: [Word8]
35 n1 = (map (fromIntegral . ord) "http://www.haskell.org/") :: [Word8]
36 defaultMain [
36 defaultMain [
37 bgroup "null" [
37 bgroup "null" [
38− bench "null" $ B U.null u1,
38+ bench "null" $ whnf U.null u1,
39− bench "null nil" $ B U.null U.nil
39+ bench "null nil" $ whnf U.null U.nil
40 ],
40 ],
41 bgroup "conversion" [
41 bgroup "conversion" [
42− bench "toString" $ B (rnf . U.toString) u1,
42+ bench "toString" $ nf U.toString u1,
43− bench "fromString" $ B (rnf . U.fromString) s1,
43+ bench "fromString" $ nf U.fromString s1,
44− bench "toByteString" $ B (rnf . U.toByteString) u1,
44+ bench "toByteString" $ nf U.toByteString u1,
45− bench "fromByteString" $ B (rnf . U.fromByteString) b1
45+ bench "fromByteString" $ nf U.fromByteString b1
46 ],
46 ],
47 bgroup "generation" [
47 bgroup "generation" [
48− bench "V1" $ rnf `fmap` U.nextUUID,
48+ bench "V1" $ nfIO U.nextUUID,
49− bench "V4" $ rnf `fmap` (randomIO :: IO U.UUID),
49+ bench "V4" $ nfIO (randomIO :: IO U.UUID),
50− bench "V5" $ B (rnf . U.generateNamed U.namespaceURL) n1
50+ bench "V5" $ nf (U.generateNamed U.namespaceURL) n1
51 ]
51 ]
52 ]
52 ]
53+
54+#if !(MIN_VERSION_criterion(0,4,0))
55+nf f arg = B ( rnf . f) arg
56+whnf f arg = B f arg
57+#endif
58+
59+#if !(MIN_VERSION_criterion(0,4,1))
60+nfIO act = rnf `fmap` act
61+#endif
uuid.cabal+2−2
@@ -45,12 +45,12 @@ Library
45Executable benchuuid
45Executable benchuuid
46 Main-Is: BenchUUID.hs
46 Main-Is: BenchUUID.hs
47 HS-Source-Dirs: tests .
47 HS-Source-Dirs: tests .
48− Extensions: DeriveDataTypeable
48+ Extensions: DeriveDataTypeable, CPP
49 If flag(test)
49 If flag(test)
50 Buildable: True
50 Buildable: True
51 Build-Depends: random, binary, bytestring, Crypto, maccatcher,
51 Build-Depends: random, binary, bytestring, Crypto, maccatcher,
52 time, base >=3, base < 5,
52 time, base >=3, base < 5,
53− criterion >= 0.3 && < 0.4, parallel >= 2.1 && < 2.3
53+ criterion >= 0.3 && < 0.5, parallel >= 2.1 && < 2.3
54 Else
54 Else
55 Buildable: False
55 Buildable: False
56
56