@@ -16,9 +16,11 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
1616 benchName = drop 4 benchName0
1717
1818 general
19− | "o-1-sp" `isInfixOf` benchName = "-K36K -M16M"
19+ -- GHC-9.6 requires 32M heap vs 16M for GHC-9.4
20+ | "o-1-sp" `isInfixOf` benchName = "-K36K -M32M"
2021 | "o-n-h" `isInfixOf` benchName = "-K36K -M32M"
21− | "o-n-st" `isInfixOf` benchName = "-K1M -M16M"
22+ -- GHC-9.6 requires 32M heap vs 16M for GHC-9.4
23+ | "o-n-st" `isInfixOf` benchName = "-K1M -M32M"
2224 | "o-n-sp" `isInfixOf` benchName = "-K1M -M32M"
2325 | otherwise = ""
2426
@@ -27,6 +29,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
2729 | otherwise = ""
2830
2931 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+
3038 | "Prelude.Parallel/o-n-heap.mapping.mapM" == benchName = "-M256M"
3139 | "Prelude.Parallel/o-n-heap.monad-outer-product."
3240 `isPrefixOf` benchName = "-M256M"
@@ -57,6 +65,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
5765 -- GHC 9.4.4 requires 4M
5866 | "Data.Stream.StreamDK/o-n-space.traversable."
5967 `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"
6074
6175 -----------------------------------------------------------------------
6276
@@ -74,6 +88,13 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
7488 | "Data.Stream/o-n-space.iterated."
7589 `isPrefixOf` benchName = "-K4M"
7690
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+
7798 | "Data.Stream.ConcurrentEager/o-n-heap.monad-outer-product.toNullAp"
7899 `isPrefixOf` benchName = "-M1024M"
79100 | "Data.Stream.ConcurrentEager/o-1-space."
@@ -86,10 +107,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
86107
87108 | "Data.Array" `isPrefixOf` benchName
88109 && "/o-1-space.generation.read" `isSuffixOf` benchName = "-M32M"
110+ -- XXX GHC 9.6 onwards needs 64M, earlier it was 32M
89111 | "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
91114 | "Data.Array.Generic/o-1-space.transformationX4.map"
92− `isPrefixOf` benchName = "-M32M"
115+ `isPrefixOf` benchName = "-M64M"
93116
94117 -- XXX For --long option, need to check why so much heap is required.
95118 -- Note, if we remove the chunked stream module we need to keep the