on master help sign in
Change benchmark mem requirements for GHC 9.6
efecb26Harendra Kumar
benchmark/bench-runner/Main.hs+27−4
@@ -16,9 +16,11 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
16 benchName = drop 4 benchName0
16 benchName = drop 4 benchName0
17
17
18 general
18 general
19+ -- GHC-9.6 requires 32M heap vs 16M for GHC-9.4
19− | "o-1-sp" `isInfixOf` benchName = "-K36K -M16M"
20+ | "o-1-sp" `isInfixOf` benchName = "-K36K -M32M"
20 | "o-n-h" `isInfixOf` benchName = "-K36K -M32M"
21 | "o-n-h" `isInfixOf` benchName = "-K36K -M32M"
22+ -- GHC-9.6 requires 32M heap vs 16M for GHC-9.4
21− | "o-n-st" `isInfixOf` benchName = "-K1M -M16M"
23+ | "o-n-st" `isInfixOf` benchName = "-K1M -M32M"
22 | "o-n-sp" `isInfixOf` benchName = "-K1M -M32M"
24 | "o-n-sp" `isInfixOf` benchName = "-K1M -M32M"
23 | otherwise = ""
25 | otherwise = ""
24
26
@@ -27,6 +29,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
27 | otherwise = ""
29 | otherwise = ""
28
30
29 benchSpecific
31 benchSpecific
32+ -- GHC-9.6 requires 64M, earlier it was 16M
33+ | "Data.Fold/o-n-heap.key-value.toHashMapIO (max buckets) sum" == benchName =
34+ "-M64M"
35+
36+ -----------------------------------------------------------------------
37+
30 | "Prelude.Parallel/o-n-heap.mapping.mapM" == benchName = "-M256M"
38 | "Prelude.Parallel/o-n-heap.mapping.mapM" == benchName = "-M256M"
31 | "Prelude.Parallel/o-n-heap.monad-outer-product."
39 | "Prelude.Parallel/o-n-heap.monad-outer-product."
32 `isPrefixOf` benchName = "-M256M"
40 `isPrefixOf` benchName = "-M256M"
@@ -57,6 +65,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
57 -- GHC 9.4.4 requires 4M
65 -- GHC 9.4.4 requires 4M
58 | "Data.Stream.StreamDK/o-n-space.traversable."
66 | "Data.Stream.StreamDK/o-n-space.traversable."
59 `isPrefixOf` benchName = "-K4M"
67 `isPrefixOf` benchName = "-K4M"
68+ -- GHC-9.6 requires 64M, earlier it was 32M
69+ | "Data.Stream.StreamDK/o-n-heap.buffered.readsPrec pure streams" == benchName =
70+ "-M64M"
71+ -- GHC-9.6 requires 64M, earlier it was 32M
72+ | "Data.Stream.StreamDK/o-n-heap.buffered.showPrec Haskell lists" == benchName =
73+ "-M64M"
60
74
61 -----------------------------------------------------------------------
75 -----------------------------------------------------------------------
62
76
@@ -74,6 +88,13 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
74 | "Data.Stream/o-n-space.iterated."
88 | "Data.Stream/o-n-space.iterated."
75 `isPrefixOf` benchName = "-K4M"
89 `isPrefixOf` benchName = "-K4M"
76
90
91+ -- GHC-9.6 requires 64M, earlier it was 32M
92+ | "Data.Stream/o-n-heap.buffered.showPrec Haskell lists" == benchName =
93+ "-M64M"
94+ -- GHC-9.6 requires 64M, earlier it was 32M
95+ | "Data.Stream/o-n-heap.buffered.readsPrec pure streams" == benchName =
96+ "-M64M"
97+
77 | "Data.Stream.ConcurrentEager/o-n-heap.monad-outer-product.toNullAp"
98 | "Data.Stream.ConcurrentEager/o-n-heap.monad-outer-product.toNullAp"
78 `isPrefixOf` benchName = "-M1024M"
99 `isPrefixOf` benchName = "-M1024M"
79 | "Data.Stream.ConcurrentEager/o-1-space."
100 | "Data.Stream.ConcurrentEager/o-1-space."
@@ -86,10 +107,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
86
107
87 | "Data.Array" `isPrefixOf` benchName
108 | "Data.Array" `isPrefixOf` benchName
88 && "/o-1-space.generation.read" `isSuffixOf` benchName = "-M32M"
109 && "/o-1-space.generation.read" `isSuffixOf` benchName = "-M32M"
110+ -- XXX GHC 9.6 onwards needs 64M, earlier it was 32M
89 | "Data.Array" `isPrefixOf` benchName
111 | "Data.Array" `isPrefixOf` benchName
90− && "/o-1-space.generation.show" `isSuffixOf` benchName = "-M32M"
112+ && "/o-1-space.generation.show" `isSuffixOf` benchName = "-M64M"
113+ -- XXX GHC 9.6 onwards needs 64M, earlier it was 32M
91 | "Data.Array.Generic/o-1-space.transformationX4.map"
114 | "Data.Array.Generic/o-1-space.transformationX4.map"
92− `isPrefixOf` benchName = "-M32M"
115+ `isPrefixOf` benchName = "-M64M"
93
116
94 -- XXX For --long option, need to check why so much heap is required.
117 -- XXX For --long option, need to check why so much heap is required.
95 -- Note, if we remove the chunked stream module we need to keep the
118 -- Note, if we remove the chunked stream module we need to keep the