GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2023-09-07T09:41:40Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/23899Nightly primops test failed on Darwin2023-09-07T09:41:40ZBryan Rbryan@haskell.foundationNightly primops test failed on DarwinJob [#1649852](https://gitlab.haskell.org/ghc/test-primops/-/jobs/1649852) failed for test-primops@e7d5ce0be2f2a56fc2103ae3d2267101fcfc8f7f
Via nightly pipeline https://gitlab.haskell.org/ghc/ghc/-/pipelines/83410Job [#1649852](https://gitlab.haskell.org/ghc/test-primops/-/jobs/1649852) failed for test-primops@e7d5ce0be2f2a56fc2103ae3d2267101fcfc8f7f
Via nightly pipeline https://gitlab.haskell.org/ghc/ghc/-/pipelines/834109.8.2Ben GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/24258GHC 9.6.3 intermittently crashes non-deterministically while compiling large ...2024-01-09T10:34:55ZBen GamariGHC 9.6.3 intermittently crashes non-deterministically while compiling large code baseA client has an application which crashes GHC 9.6.3 non-deterministically with either a `SIGSEGV` or `SIGBUS`. Unfortunately this is quite tricky to reproduce. The program in question is being compiled with parallel compilation on an AAr...A client has an application which crashes GHC 9.6.3 non-deterministically with either a `SIGSEGV` or `SIGBUS`. Unfortunately this is quite tricky to reproduce. The program in question is being compiled with parallel compilation on an AArch64 (Graviton 2) machine running Ubuntu 22.04. I have reproduced the crash using both the upstream GHC 9.6.3 bindist and my own build. However, I have yet to observe the issue when compiling `ghc` against the `-debug` RTS.9.6.4Ben GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/23789error: unknown type name ‘clockid_t’ from bytestring bump2023-09-19T17:01:49ZJaro Reinderserror: unknown type name ‘clockid_t’ from bytestring bump@clyring the bytestring bump (https://gitlab.haskell.org/ghc/ghc/-/commit/43578d60bfc478e7277dcd892463cec305400025) causes my build to fail with:
```
from libraries/bytestring/cbits/is-valid-utf8.c:53:0: error:
/n...@clyring the bytestring bump (https://gitlab.haskell.org/ghc/ghc/-/commit/43578d60bfc478e7277dcd892463cec305400025) causes my build to fail with:
```
from libraries/bytestring/cbits/is-valid-utf8.c:53:0: error:
/nix/store/llmhxawhz6c4jqgjapbmsmz02579js0s-ghc-9.6.2-with-packages/lib/ghc-9.6.2/lib/x86_64-linux-ghc-9.6.2/rts-1.0.2/include/rts/OSThreads.h:38:5: error:
error: unknown type name ‘clockid_t’
38 | clockid_t timeout_clk;
| ^~~~~~~~~
|
38 | clockid_t timeout_clk;
| ^
`cc' failed in phase `C Compiler'. (Exit code: 1)
```
I can reproduce this on a clean build following the steps on ghc.dev:
```
git clone --recurse-submodules https://gitlab.haskell.org/ghc/ghc.git
git clone https://github.com/alpmestan/ghc.nix
nix develop ghc.nix
cd ghc
./boot && ./configure
hadrian/build -j
```
@alanz also reported seeing this issue on #ghc9.4.7ZubinZubinhttps://gitlab.haskell.org/ghc/ghc/-/issues/23378Windows: runtime linker regression (isatty) with GHC 9.4.5+2023-10-12T10:48:42ZRyan ScottWindows: runtime linker regression (isatty) with GHC 9.4.5+_(Originally spun off from https://gitlab.haskell.org/ghc/ghc/-/issues/23309#note_497937 )_
Given the following two files, distilled from the `text-ansi` library:
```hs
-- A.hs
module A where
import Foreign.C.Types
import System.IO.Un..._(Originally spun off from https://gitlab.haskell.org/ghc/ghc/-/issues/23309#note_497937 )_
Given the following two files, distilled from the `text-ansi` library:
```hs
-- A.hs
module A where
import Foreign.C.Types
import System.IO.Unsafe
isatty :: Bool
isatty =
unsafePerformIO (c_isatty 1) == 1
{-# NOINLINE isatty #-}
foreign import ccall unsafe "isatty"
c_isatty :: CInt -> IO CInt
```
```hs
-- B.hs
{-# LANGUAGE TemplateHaskell #-}
module B where
import Foreign.C.String
import Language.Haskell.TH
import A
$(do runIO $ print isatty
return [])
```
If you compile this with GHC 9.4.4 or earlier, it will run as expected:
```
$ ghc-9.2.7 -fforce-recomp B.hs
[1 of 2] Compiling A ( A.hs, A.o )
[2 of 2] Compiling B ( B.hs, B.o )
False
```
If you compile this with GHC 9.4.5 or later, however, the runtime linker will crash on the `isatty` symbol:
```
$ ghc-9.4.5 -fforce-recomp B.hs
[1 of 2] Compiling A ( A.hs, A.o )
[2 of 2] Compiling B ( B.hs, B.o )
ghc-9.4.5.exe: | C:\Users\winferno\Documents\Hacking\Haskell\A.o: unknown symbol `isatty'
ghc-9.4.5.exe: Could not load Object Code C:\Users\winferno\Documents\Hacking\Haskell\A.o.
<no location info>: error:
```
(Also, the error message appears _before_ the "`error:`" part, which is odd. That isn't the main point of this issue, however.)
This is almost certainly an unintended side effect of !9475. A similar issue was diagnosed in #23309, but unlike that issue, the issue here is not caused by a missing `mingwex` dependency. If you compile the program with `-lmingwex`, the same runtime linker crash still occurs. The patch in !10360 does not fix the issue here either.9.4.6Ben GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/22886Lack of eta-expansion causes big perf regression in text2023-09-10T02:17:51ZMatthew PickeringLack of eta-expansion causes big perf regression in textSee also #23092
On the current state of the 9.6 branch we see quite uniform regressions in performance of `text`. The benchmarks are relative to a 9.4.4 baseline.
```
All
Builder
Comparison
LazyText: OK...See also #23092
On the current state of the 9.6 branch we see quite uniform regressions in performance of `text`. The benchmarks are relative to a 9.4.4 baseline.
```
All
Builder
Comparison
LazyText: OK (0.84s)
1.40 ms ± 41 μs, same as baseline
Int
Decimal
Positive
1: OK (0.35s)
26.8 ns ± 1.6 ns, 13% less than baseline
2: OK (0.40s)
35.9 ns ± 1.4 ns, 9% less than baseline
3: OK (0.74s)
37.8 ns ± 3.7 ns, same as baseline
4: OK (0.42s)
37.4 ns ± 1.7 ns, 12% less than baseline
5: OK (6.51s)
46.7 ns ± 3.2 ns, 7% less than baseline
6: OK (6.13s)
43.9 ns ± 1.3 ns, 8% less than baseline
7: OK (0.91s)
48.2 ns ± 1.5 ns, same as baseline
8: OK (0.51s)
48.2 ns ± 4.1 ns, 17% less than baseline
9: OK (0.34s)
57.6 ns ± 5.1 ns, 8% less than baseline
10: OK (1.10s)
58.5 ns ± 1.8 ns, 22% less than baseline
11: OK (0.24s)
66.8 ns ± 6.0 ns, 16% less than baseline
12: OK (1.27s)
67.6 ns ± 1.1 ns, 15% less than baseline
13: OK (0.45s)
81.7 ns ± 4.2 ns, 12% less than baseline
14: OK (0.45s)
84.0 ns ± 5.1 ns, 10% less than baseline
15: OK (0.30s)
92.0 ns ± 9.0 ns, 13% less than baseline
16: OK (0.30s)
93.5 ns ± 8.0 ns, 11% less than baseline
17: OK (0.33s)
103 ns ± 7.0 ns, same as baseline
18: OK (0.32s)
102 ns ± 5.8 ns, 13% less than baseline
19: OK (0.34s)
110 ns ± 9.4 ns, 8% less than baseline
Negative
2: OK (0.73s)
35.7 ns ± 1.7 ns, 4% less than baseline
3: OK (0.27s)
34.4 ns ± 2.7 ns, 9% less than baseline
4: OK (0.45s)
38.4 ns ± 1.9 ns, 11% less than baseline
5: OK (0.28s)
38.3 ns ± 3.6 ns, 10% less than baseline
6: OK (0.50s)
44.8 ns ± 3.8 ns, same as baseline
7: OK (0.50s)
44.1 ns ± 1.8 ns, same as baseline
8: OK (0.34s)
51.1 ns ± 3.8 ns, same as baseline
9: OK (0.34s)
51.0 ns ± 4.3 ns, 10% less than baseline
10: OK (0.25s)
61.3 ns ± 6.1 ns, same as baseline
11: OK (0.38s)
59.4 ns ± 5.8 ns, same as baseline
12: OK (0.42s)
69.8 ns ± 2.7 ns, same as baseline
13: OK (0.42s)
69.7 ns ± 3.2 ns, same as baseline
14: OK (0.30s)
85.8 ns ± 7.2 ns, same as baseline
15: OK (0.88s)
87.5 ns ± 6.1 ns, same as baseline
16: OK (0.33s)
94.6 ns ± 5.9 ns, 11% less than baseline
17: OK (0.33s)
94.1 ns ± 7.6 ns, same as baseline
18: OK (0.37s)
116 ns ± 8.4 ns, 8% more than baseline
19: OK (0.37s)
106 ns ± 9.6 ns, same as baseline
20: OK (0.24s)
115 ns ± 11 ns, same as baseline
Empty: OK (0.54s)
23.3 ns ± 1.6 ns, 10% less than baseline
Show
1: OK (0.53s)
11.1 ns ± 836 ps, 20% less than baseline
2: OK (0.31s)
19.5 ns ± 1.5 ns, same as baseline
3: OK (0.67s)
31.1 ns ± 850 ps, same as baseline
4: OK (0.31s)
40.4 ns ± 3.2 ns, 17% less than baseline
5: OK (0.35s)
49.6 ns ± 4.1 ns, 14% less than baseline
6: OK (0.68s)
64.1 ns ± 3.1 ns, same as baseline
7: OK (0.46s)
72.6 ns ± 3.8 ns, same as baseline
8: OK (0.47s)
83.9 ns ± 4.0 ns, 7% less than baseline
9: OK (0.54s)
95.3 ns ± 3.2 ns, same as baseline
10: OK (0.60s)
107 ns ± 9.8 ns, 15% less than baseline
11: OK (1.15s)
119 ns ± 2.6 ns, same as baseline
12: OK (0.26s)
128 ns ± 12 ns, 16% less than baseline
13: OK (0.44s)
143 ns ± 13 ns, same as baseline
14: OK (0.46s)
154 ns ± 8.6 ns, 7% less than baseline
15: OK (0.46s)
164 ns ± 12 ns, same as baseline
16: OK (0.51s)
176 ns ± 8.1 ns, 4% less than baseline
17: OK (0.31s)
184 ns ± 12 ns, same as baseline
18: OK (0.34s)
196 ns ± 17 ns, same as baseline
19: OK (0.36s)
208 ns ± 16 ns, same as baseline
Concat
append: OK (0.51s)
41.5 ns ± 2.5 ns, 6% less than baseline
concat: OK (0.28s)
135 ns ± 12 ns, same as baseline
write: OK (0.33s)
43.3 ns ± 4.1 ns, same as baseline
DecodeUtf8
html
Strict: OK (0.80s)
39.6 μs ± 700 ns, 14% less than baseline
Stream: OK (0.80s)
41.0 μs ± 985 ns, 21% less than baseline
StrictLength: OK (0.44s)
79.3 μs ± 3.1 μs, same as baseline
StrictInitLength: OK (0.43s)
77.6 μs ± 7.7 μs, same as baseline
Lazy: OK (0.47s)
41.8 μs ± 3.2 μs, 15% less than baseline
LazyLength: OK (0.44s)
80.1 μs ± 5.2 μs, same as baseline
LazyInitLength: OK (0.77s)
77.8 μs ± 4.3 μs, 8% less than baseline
xml
Strict: OK (1.26s)
8.95 ms ± 816 μs, same as baseline
Stream: OK (0.15s)
17.3 ms ± 1.7 ms, 11% less than baseline
StrictLength: OK (0.56s)
15.4 ms ± 1.5 ms, 13% less than baseline
StrictInitLength: OK (0.58s)
15.9 ms ± 461 μs, same as baseline
Lazy: OK (0.31s)
18.0 ms ± 849 μs, same as baseline
LazyLength: OK (0.56s)
15.8 ms ± 617 μs, same as baseline
LazyInitLength: OK (0.29s)
16.0 ms ± 1.3 ms, same as baseline
ascii
Strict: OK (1.19s)
8.35 ms ± 111 μs, 5% less than baseline
Stream: OK (0.37s)
23.4 ms ± 853 μs, same as baseline
StrictLength: OK (1.11s)
15.6 ms ± 1.0 ms, 15% less than baseline
StrictInitLength: OK (1.10s)
15.6 ms ± 966 μs, 8% less than baseline
Lazy: OK (0.36s)
22.9 ms ± 1.4 ms, 6% less than baseline
LazyLength: OK (0.54s)
15.7 ms ± 364 μs, 12% less than baseline
LazyInitLength: OK (0.29s)
16.4 ms ± 1.6 ms, 10% less than baseline
russian
Strict: OK (0.48s)
676 μs ± 58 μs, same as baseline
Stream: OK (0.59s)
952 μs ± 37 μs, same as baseline
StrictLength: OK (0.42s)
1.40 ms ± 57 μs, same as baseline
StrictInitLength: OK (0.82s)
1.35 ms ± 85 μs, same as baseline
Lazy: OK (0.33s)
968 μs ± 64 μs, same as baseline
LazyLength: OK (0.26s)
1.55 ms ± 101 μs, same as baseline
LazyInitLength: OK (0.26s)
1.55 ms ± 120 μs, same as baseline
japanese
Strict: OK (0.61s)
1.73 μs ± 113 ns, same as baseline
Stream: OK (0.63s)
1.80 μs ± 61 ns, 5% less than baseline
StrictLength: OK (0.35s)
3.23 μs ± 246 ns, same as baseline
StrictInitLength: OK (0.36s)
3.42 μs ± 209 ns, same as baseline
Lazy: OK (0.39s)
1.90 μs ± 114 ns, same as baseline
LazyLength: OK (0.55s)
3.25 μs ± 149 ns, same as baseline
LazyInitLength: OK (0.35s)
3.37 μs ± 165 ns, same as baseline
ascii
strict decodeUtf8: OK (1.20s)
8.22 ms ± 246 μs, same as baseline
strict decodeLatin1: OK (0.69s)
8.78 ms ± 651 μs, same as baseline
strict decodeASCII: OK (2.38s)
8.69 ms ± 525 μs, same as baseline
lazy decodeUtf8: OK (0.40s)
25.4 ms ± 2.0 ms, same as baseline
lazy decodeLatin1: OK (0.65s)
40.3 ms ± 861 μs, 8% more than baseline
lazy decodeASCII: OK (0.38s)
23.3 ms ± 1.5 ms, same as baseline
EncodeUtf8
non-ASCII
Text: OK (0.36s)
210 μs ± 21 μs, 14% more than baseline
LazyText: OK (0.67s)
276 μs ± 16 μs, 7% less than baseline
Text/encodeUtf8Builder: OK (0.28s)
390 μs ± 31 μs, same as baseline
Text/encodeUtf8BuilderEscaped: OK (0.28s)
1.71 ms ± 95 μs, same as baseline
ASCII
Text: OK (0.57s)
100 μs ± 5.3 μs, 11% less than baseline
LazyText: OK (0.29s)
93.0 μs ± 7.2 μs, 8% less than baseline
Text/encodeUtf8Builder: OK (0.33s)
112 μs ± 7.5 μs, same as baseline
Text/encodeUtf8BuilderEscaped: OK (0.36s)
535 μs ± 35 μs, same as baseline
Equality
Text: OK (0.50s)
8.59 ns ± 688 ps, 15% more than baseline
LazyText: OK (0.40s)
12.0 ns ± 966 ps, same as baseline
FileRead
Text: OK (0.36s)
21.4 ms ± 704 μs, 9% more than baseline
LazyText: OK (0.17s)
20.5 ms ± 1.8 ms, 14% more than baseline
TextByteString: OK (0.42s)
2.47 ms ± 237 μs, same as baseline
LazyTextByteString: OK (0.21s)
2.39 ms ± 232 μs, same as baseline
ReadLines
Text: OK (0.22s)
27.0 ms ± 2.2 ms, same as baseline
Multilang
find_first: OK (0.17s)
19.7 ms ± 1.5 ms, 10% more than baseline
find_index: OK (0.77s)
544 ns ± 18 ns, same as baseline
Pure
tiny
append
Text: OK (0.37s)
18.4 ns ± 1.3 ns, same as baseline
LazyText: OK (0.50s)
17.3 ns ± 1.1 ns, same as baseline
concat
Text: OK (0.77s)
16.0 ns ± 534 ps, same as baseline
LazyText: OK (0.49s)
16.8 ns ± 1.6 ns, same as baseline
cons
Text: OK (0.39s)
47.9 ns ± 4.3 ns, same as baseline
LazyText: OK (0.32s)
15.3 ns ± 1.5 ns, same as baseline
decode
Text: OK (0.63s)
24.2 ns ± 1.5 ns, same as baseline
LazyText: OK (0.40s)
105 ns ± 9.7 ns, same as baseline
decode'
Text: OK (0.48s)
34.1 ns ± 2.8 ns, same as baseline
LazyText: OK (0.44s)
119 ns ± 9.6 ns, same as baseline
drop
Text: OK (0.47s)
15.4 ns ± 1.2 ns, same as baseline
LazyText: OK (0.52s)
19.1 ns ± 970 ps, same as baseline
encode
Text: OK (0.77s)
16.3 ns ± 1.0 ns, same as baseline
LazyText: OK (0.42s)
26.9 ns ± 1.7 ns, same as baseline
filter
Text: OK (0.61s)
23.7 ns ± 1.6 ns, same as baseline
LazyText: OK (0.41s)
25.4 ns ± 1.3 ns, same as baseline
filter.filter
Text: OK (0.40s)
24.4 ns ± 2.0 ns, same as baseline
LazyText: OK (1.10s)
26.1 ns ± 1.4 ns, same as baseline
foldl'
Text: OK (0.64s)
26.0 ns ± 778 ps, same as baseline
LazyText: OK (0.30s)
58.1 ns ± 5.6 ns, 19% more than baseline
foldr
Text: OK (0.44s)
58.9 ns ± 3.9 ns, 10% more than baseline
LazyText: OK (0.37s)
89.4 ns ± 5.8 ns, same as baseline
head
Text: OK (0.73s)
7.72 ns ± 526 ps, 16% more than baseline
LazyText: OK (0.67s)
13.5 ns ± 486 ps, 6% more than baseline
init
Text: OK (0.34s)
8.34 ns ± 704 ps, same as baseline
LazyText: OK (0.63s)
12.3 ns ± 1.2 ns, same as baseline
intercalate
Text: OK (0.61s)
23.6 ns ± 1.5 ns, 8% more than baseline
LazyText: OK (0.89s)
20.6 ns ± 888 ps, 11% more than baseline
intersperse
Text: OK (0.55s)
42.0 ns ± 2.4 ns, same as baseline
LazyText: OK (0.67s)
239 ns ± 9.0 ns, 9% more than baseline
isInfixOf
Text: OK (1.39s)
70.7 ns ± 5.4 ns, 17% less than baseline
LazyText: OK (0.48s)
71.3 ns ± 7.1 ns, 16% more than baseline
last
Text: OK (0.33s)
7.09 ns ± 644 ps, 16% more than baseline
LazyText: OK (0.75s)
8.09 ns ± 622 ps, 8% more than baseline
map
Text: OK (0.48s)
34.4 ns ± 2.1 ns, same as baseline
LazyText: OK (0.36s)
41.8 ns ± 3.5 ns, same as baseline
mapAccumL
Text: OK (0.80s)
36.0 ns ± 1.1 ns, 9% more than baseline
LazyText: OK (0.50s)
75.0 ns ± 2.8 ns, 10% more than baseline
mapAccumR
Text: OK (0.48s)
35.4 ns ± 2.4 ns, same as baseline
LazyText: OK (0.49s)
70.5 ns ± 5.9 ns, 9% more than baseline
map.map
Text: OK (0.33s)
36.5 ns ± 2.9 ns, same as baseline
LazyText: OK (0.36s)
43.6 ns ± 3.6 ns, same as baseline
replicate char
Text: OK (0.31s)
31.2 ns ± 2.8 ns, 11% more than baseline
LazyText: OK (0.33s)
74.0 ns ± 6.9 ns, same as baseline
replicate string
Text: OK (0.45s)
7.99 ns ± 402 ps, same as baseline
LazyText: OK (0.40s)
54.9 ns ± 4.9 ns, 28% more than baseline
reverse
Text: OK (0.45s)
15.3 ns ± 762 ps, 11% more than baseline
LazyText: OK (0.59s)
23.7 ns ± 1.3 ns, same as baseline
take
Text: OK (1.20s)
14.5 ns ± 634 ps, 8% more than baseline
LazyText: OK (0.50s)
18.1 ns ± 668 ps, same as baseline
tail
Text: OK (0.86s)
9.89 ns ± 398 ps, 12% more than baseline
LazyText: OK (0.36s)
10.3 ns ± 982 ps, same as baseline
toLower
Text: OK (0.61s)
50.3 ns ± 2.1 ns, 75% more than baseline
LazyText: OK (0.32s)
34.8 ns ± 3.1 ns, same as baseline
toUpper
Text: OK (0.28s)
55.8 ns ± 5.5 ns, 89% more than baseline
LazyText: OK (0.33s)
37.2 ns ± 2.8 ns, same as baseline
uncons
Text: OK (2.16s)
13.6 ns ± 150 ps, 10% more than baseline
LazyText: OK (1.14s)
27.9 ns ± 1.6 ns, 19% more than baseline
words
Text: OK (0.52s)
20.2 ns ± 1.1 ns, 8% more than baseline
LazyText: OK (0.42s)
55.6 ns ± 3.8 ns, 15% more than baseline
zipWith
Text: OK (0.66s)
117 ns ± 5.9 ns, 18% more than baseline
LazyText: OK (0.30s)
265 ns ± 23 ns, 23% more than baseline
length
cons
Text: OK (0.38s)
21.0 ns ± 1.7 ns, 11% more than baseline
LazyText: OK (0.42s)
23.7 ns ± 2.0 ns, 15% more than baseline
decode
Text: OK (0.58s)
38.8 ns ± 2.7 ns, 14% more than baseline
LazyText: OK (0.34s)
152 ns ± 11 ns, 34% more than baseline
drop
Text: OK (0.43s)
26.0 ns ± 1.7 ns, same as baseline
LazyText: OK (0.41s)
28.0 ns ± 2.5 ns, same as baseline
filter
Text: OK (0.54s)
19.2 ns ± 1.7 ns, 26% more than baseline
LazyText: OK (0.31s)
28.6 ns ± 2.8 ns, 20% more than baseline
filter.filter
Text: OK (0.54s)
19.2 ns ± 758 ps, 25% more than baseline
LazyText: OK (0.75s)
28.8 ns ± 2.7 ns, 21% more than baseline
init
Text: OK (0.36s)
20.2 ns ± 1.9 ns, 21% more than baseline
LazyText: OK (1.02s)
24.3 ns ± 2.0 ns, same as baseline
intercalate
Text: OK (0.39s)
23.9 ns ± 1.8 ns, same as baseline
LazyText: OK (0.40s)
25.3 ns ± 2.0 ns, same as baseline
intersperse
Text: OK (0.37s)
22.6 ns ± 1.8 ns, same as baseline
LazyText: OK (0.57s)
22.9 ns ± 936 ps, same as baseline
map
Text: OK (0.35s)
20.6 ns ± 1.3 ns, same as baseline
LazyText: OK (0.37s)
22.4 ns ± 1.8 ns, same as baseline
map.map
Text: OK (0.90s)
20.7 ns ± 840 ps, 7% more than baseline
LazyText: OK (0.57s)
22.2 ns ± 1.6 ns, same as baseline
replicate char
Text: OK (0.85s)
19.7 ns ± 1.2 ns, same as baseline
LazyText: OK (0.32s)
16.8 ns ± 1.4 ns, same as baseline
replicate string
Text: OK (3.09s)
21.1 ns ± 362 ps, same as baseline
LazyText: OK (0.49s)
18.3 ns ± 848 ps, 13% more than baseline
take
Text: OK (0.52s)
19.6 ns ± 826 ps, same as baseline
LazyText: OK (1.00s)
24.4 ns ± 502 ps, 9% more than baseline
tail
Text: OK (0.96s)
21.9 ns ± 1.3 ns, 9% more than baseline
LazyText: OK (0.43s)
25.8 ns ± 2.2 ns, 17% more than baseline
toLower
Text: OK (0.62s)
49.9 ns ± 4.6 ns, 21% more than baseline
LazyText: OK (0.32s)
60.3 ns ± 5.5 ns, 22% more than baseline
toUpper
Text: OK (0.54s)
42.5 ns ± 1.9 ns, same as baseline
LazyText: OK (0.66s)
59.1 ns ± 2.0 ns, 17% more than baseline
words
Text: OK (13.16s)
23.6 ns ± 1.3 ns, 16% more than baseline
LazyText: OK (0.57s)
46.1 ns ± 2.0 ns, 34% more than baseline
zipWith
Text: OK (0.56s)
21.6 ns ± 1.5 ns, same as baseline
LazyText: OK (0.39s)
23.7 ns ± 2.1 ns, same as baseline
Builder
mappend char: OK (0.33s)
13.1 μs ± 1.2 μs, same as baseline
mappend 8 char: OK (0.60s)
48.3 ns ± 4.2 ns, 10% more than baseline
mappend text: OK (0.34s)
59.4 μs ± 5.0 μs, same as baseline
ascii-small
append
Text: OK (0.34s)
13.3 μs ± 727 ns, same as baseline
LazyText: OK (0.51s)
70.9 ns ± 6.3 ns, 43% more than baseline
concat
Text: OK (0.34s)
25.3 μs ± 1.8 μs, 13% more than baseline
LazyText: OK (1.39s)
9.29 μs ± 307 ns, 11% more than baseline
cons
Text: OK (0.34s)
495 μs ± 49 μs, 27% more than baseline
LazyText: OK (0.53s)
18.7 ns ± 1.2 ns, 13% more than baseline
decode
Text: OK (0.37s)
6.97 μs ± 438 ns, 8% less than baseline
LazyText: OK (0.64s)
7.41 μs ± 579 ns, same as baseline
decode'
Text: OK (0.60s)
7.02 μs ± 453 ns, same as baseline
LazyText: OK (0.24s)
7.43 μs ± 682 ns, same as baseline
drop
Text: OK (0.32s)
2.74 μs ± 218 ns, same as baseline
LazyText: OK (0.33s)
2.78 μs ± 164 ns, same as baseline
encode
Text: OK (0.34s)
6.16 μs ± 433 ns, 7% less than baseline
LazyText: OK (0.39s)
7.64 μs ± 520 ns, same as baseline
filter
Text: OK (0.35s)
125 μs ± 8.1 μs, 9% more than baseline
LazyText: OK (0.22s)
124 μs ± 11 μs, same as baseline
filter.filter
Text: OK (0.35s)
123 μs ± 6.6 μs, same as baseline
LazyText: OK (0.22s)
123 μs ± 11 μs, same as baseline
foldl'
Text: OK (0.40s)
308 μs ± 25 μs, 16% more than baseline
LazyText: OK (0.24s)
662 μs ± 62 μs, 17% more than baseline
foldr
Text: OK (0.23s)
682 μs ± 59 μs, 12% more than baseline
LazyText: OK (0.39s)
1.25 ms ± 110 μs, 14% more than baseline
head
Text: OK (0.33s)
7.50 ns ± 698 ps, 10% more than baseline
LazyText: OK (0.69s)
14.2 ns ± 854 ps, 10% more than baseline
init
Text: OK (0.80s)
8.54 ns ± 362 ps, 9% more than baseline
LazyText: OK (0.69s)
57.3 ns ± 4.2 ns, 15% more than baseline
intercalate
Text: OK (0.41s)
74.3 μs ± 4.1 μs, 12% more than baseline
LazyText: OK (0.22s)
27.4 μs ± 2.7 μs, 12% more than baseline
intersperse
Text: OK (0.26s)
170 μs ± 11 μs, same as baseline
LazyText: OK (0.36s)
2.32 ms ± 178 μs, 11% more than baseline
isInfixOf
Text: OK (0.40s)
917 ns ± 44 ns, same as baseline
LazyText: OK (0.27s)
1.93 μs ± 170 ns, same as baseline
last
Text: OK (0.46s)
6.91 ns ± 656 ps, 15% more than baseline
LazyText: OK (0.43s)
12.7 ns ± 1.0 ns, same as baseline
map
Text: OK (0.21s)
255 μs ± 22 μs, same as baseline
LazyText: OK (0.22s)
259 μs ± 23 μs, 10% more than baseline
mapAccumL
Text: OK (0.53s)
857 μs ± 63 μs, same as baseline
LazyText: OK (0.25s)
685 μs ± 54 μs, same as baseline
mapAccumR
Text: OK (0.33s)
971 μs ± 56 μs, same as baseline
LazyText: OK (0.48s)
769 μs ± 53 μs, same as baseline
map.map
Text: OK (0.23s)
286 μs ± 24 μs, same as baseline
LazyText: OK (0.23s)
284 μs ± 27 μs, same as baseline
replicate char
Text: OK (0.36s)
13.1 μs ± 1.3 μs, same as baseline
LazyText: OK (0.37s)
3.32 μs ± 224 ns, 18% more than baseline
replicate string
Text: OK (0.36s)
13.3 μs ± 948 ns, same as baseline
LazyText: OK (0.60s)
3.39 μs ± 324 ns, 19% more than baseline
reverse
Text: OK (0.38s)
31.8 μs ± 1.6 μs, 26% more than baseline
LazyText: OK (0.39s)
31.9 μs ± 2.5 μs, 26% more than baseline
take
Text: OK (0.33s)
2.73 μs ± 211 ns, same as baseline
LazyText: OK (0.34s)
2.83 μs ± 231 ns, same as baseline
tail
Text: OK (0.59s)
10.5 ns ± 380 ps, 14% more than baseline
LazyText: OK (0.45s)
13.6 ns ± 1.1 ns, 11% more than baseline
toLower
Text: OK (0.29s)
402 μs ± 22 μs, 159% more than baseline
LazyText: OK (0.26s)
159 μs ± 12 μs, same as baseline
toUpper
Text: OK (0.38s)
569 μs ± 46 μs, 135% more than baseline
LazyText: OK (0.22s)
253 μs ± 25 μs, same as baseline
uncons
Text: OK (0.75s)
15.5 ns ± 438 ps, 16% more than baseline
LazyText: OK (0.37s)
19.6 ns ± 1.6 ns, 17% more than baseline
words
Text: OK (0.39s)
287 μs ± 12 μs, same as baseline
LazyText: OK (0.54s)
893 μs ± 65 μs, 25% more than baseline
zipWith
Text: OK (0.40s)
1.27 ms ± 64 μs, 13% more than baseline
LazyText: OK (0.22s)
2.64 ms ± 192 μs, 17% more than baseline
length
cons
Text: OK (0.41s)
8.15 μs ± 345 ns, same as baseline
LazyText: OK (0.28s)
8.48 μs ± 791 ns, same as baseline
decode
Text: OK (0.39s)
15.4 μs ± 1.1 μs, same as baseline
LazyText: OK (0.41s)
16.1 μs ± 1.2 μs, 8% more than baseline
drop
Text: OK (0.28s)
8.50 μs ± 676 ns, same as baseline
LazyText: OK (0.28s)
8.58 μs ± 819 ns, same as baseline
filter
Text: OK (0.33s)
206 μs ± 17 μs, 88% more than baseline
LazyText: OK (0.23s)
125 μs ± 12 μs, same as baseline
filter.filter
Text: OK (0.31s)
205 μs ± 14 μs, 88% more than baseline
LazyText: OK (0.23s)
124 μs ± 12 μs, same as baseline
init
Text: OK (0.27s)
8.19 μs ± 704 ns, same as baseline
LazyText: OK (0.28s)
8.41 μs ± 819 ns, same as baseline
intercalate
Text: OK (0.43s)
18.0 μs ± 1.3 μs, 16% more than baseline
LazyText: OK (0.30s)
20.1 μs ± 1.8 μs, same as baseline
intersperse
Text: OK (0.28s)
8.15 μs ± 708 ns, same as baseline
LazyText: OK (0.28s)
8.39 μs ± 786 ns, same as baseline
map
Text: OK (0.28s)
8.12 μs ± 667 ns, same as baseline
LazyText: OK (0.28s)
8.44 μs ± 762 ns, same as baseline
map.map
Text: OK (0.27s)
8.13 μs ± 812 ns, same as baseline
LazyText: OK (0.43s)
8.50 μs ± 488 ns, same as baseline
replicate char
Text: OK (0.40s)
20.3 ns ± 2.0 ns, same as baseline
LazyText: OK (0.39s)
18.2 ns ± 1.6 ns, 20% more than baseline
replicate string
Text: OK (0.41s)
22.2 ns ± 1.9 ns, same as baseline
LazyText: OK (0.38s)
18.2 ns ± 1.7 ns, same as baseline
take
Text: OK (0.33s)
5.53 μs ± 406 ns, same as baseline
LazyText: OK (0.36s)
5.75 μs ± 539 ns, same as baseline
tail
Text: OK (0.30s)
8.80 μs ± 657 ns, same as baseline
LazyText: OK (0.46s)
8.87 μs ± 592 ns, same as baseline
toLower
Text: OK (0.49s)
182 μs ± 7.5 μs, 13% more than baseline
LazyText: OK (0.28s)
173 μs ± 16 μs, same as baseline
toUpper
Text: OK (0.39s)
268 μs ± 25 μs, same as baseline
LazyText: OK (0.39s)
272 μs ± 25 μs, 11% more than baseline
words
Text: OK (0.41s)
292 μs ± 26 μs, 13% more than baseline
LazyText: OK (0.47s)
742 μs ± 67 μs, 35% more than baseline
zipWith
Text: OK (0.28s)
8.31 μs ± 714 ns, same as baseline
LazyText: OK (0.44s)
8.55 μs ± 634 ns, same as baseline
Builder
mappend char: OK (0.37s)
13.7 μs ± 768 ns, 9% more than baseline
mappend 8 char: OK (0.45s)
51.3 ns ± 4.0 ns, 15% more than baseline
mappend text: OK (0.24s)
60.7 μs ± 5.6 μs, same as baseline
ascii
append
Text: OK (1.03s)
16.1 ms ± 374 μs, 47% more than baseline
LazyText: OK (5.54s)
62.0 μs ± 1.7 μs, 38% more than baseline
concat
Text: OK (3.86s)
114 ms ± 11 ms, 15% more than baseline
LazyText: OK (0.69s)
20.4 ms ± 1.3 ms, 28% more than baseline
cons
Text: OK (3.72s)
494 ms ± 25 ms, 23% more than baseline
LazyText: OK (1.50s)
12.3 μs ± 695 ns, 14% more than baseline
decode
Text: OK (0.91s)
13.3 ms ± 721 μs, 43% more than baseline
LazyText: OK (1.02s)
46.7 ms ± 4.0 ms, 14% more than baseline
decode'
Text: OK (1.40s)
12.3 ms ± 960 μs, 37% more than baseline
LazyText: OK (1.04s)
48.8 ms ± 4.2 ms, 19% more than baseline
drop
Text: OK (2.29s)
2.78 ms ± 70 μs, 20% more than baseline
LazyText: OK (0.74s)
2.83 ms ± 248 μs, 18% more than baseline
encode
Text: OK (2.95s)
8.32 ms ± 723 μs, 43% more than baseline
LazyText: OK (1.00s)
46.3 ms ± 1.5 ms, 15% more than baseline
filter
Text: OK (0.53s)
110 ms ± 3.6 ms, 10% more than baseline
LazyText: OK (0.53s)
111 ms ± 4.0 ms, 14% more than baseline
filter.filter
Text: OK (0.53s)
111 ms ± 3.9 ms, 13% more than baseline
LazyText: OK (0.52s)
111 ms ± 5.4 ms, 13% more than baseline
foldl'
Text: OK (1.25s)
356 ms ± 2.9 ms, 45% more than baseline
LazyText: OK (2.42s)
745 ms ± 21 ms, 43% more than baseline
foldr
Text: OK (2.56s)
794 ms ± 17 ms, 38% more than baseline
LazyText: OK (4.51s)
1.450 s ± 109 ms, 41% more than baseline
head
Text: OK (2.69s)
9.82 ns ± 644 ps, 43% more than baseline
LazyText: OK (2.95s)
17.9 ns ± 460 ps, 34% more than baseline
init
Text: OK (2.71s)
10.8 ns ± 1.1 ns, 33% more than baseline
LazyText: OK (1.40s)
65.8 μs ± 5.5 μs, 53% more than baseline
intercalate
Text: OK (40.91s)
312 ms ± 7.9 ms, 23% more than baseline
LazyText: OK (5.14s)
148 ms ± 7.4 ms, 18% more than baseline
intersperse
Text: OK (2.88s)
155 ms ± 15 ms, 12% more than baseline
LazyText: OK (8.65s)
2.824 s ± 32 ms, 38% more than baseline
isInfixOf
Text: OK (0.82s)
3.83 ms ± 212 μs, 38% more than baseline
LazyText: OK (0.61s)
4.41 ms ± 421 μs, 32% more than baseline
last
Text: OK (3.74s)
8.98 ns ± 486 ps, 44% more than baseline
LazyText: OK (1.54s)
13.4 μs ± 664 ns, 18% more than baseline
map
Text: OK (0.92s)
242 ms ± 22 ms, same as baseline
LazyText: OK (0.93s)
245 ms ± 11 ms, 13% more than baseline
mapAccumL
Text: OK (6.35s)
2.050 s ± 114 ms, 28% more than baseline
LazyText: OK (4.16s)
1.307 s ± 76 ms, 14% more than baseline
mapAccumR
Text: OK (6.38s)
2.065 s ± 170 ms, 30% more than baseline
LazyText: OK (10.20s)
1.405 s ± 43 ms, 20% more than baseline
map.map
Text: OK (1.02s)
270 ms ± 22 ms, same as baseline
LazyText: OK (0.99s)
264 ms ± 11 ms, 10% more than baseline
replicate char
Text: OK (1.69s)
15.8 ms ± 905 μs, 53% more than baseline
LazyText: OK (2.07s)
520 μs ± 7.7 μs, 149% more than baseline
replicate string
Text: OK (1.84s)
16.7 ms ± 365 μs, 64% more than baseline
LazyText: OK (2.09s)
491 μs ± 33 μs, 125% more than baseline
reverse
Text: OK (1.46s)
30.4 ms ± 1.3 ms, 26% more than baseline
LazyText: OK (1.36s)
70.0 ms ± 4.5 ms, 26% more than baseline
take
Text: OK (0.80s)
3.13 ms ± 182 μs, 35% more than baseline
LazyText: OK (0.68s)
3.01 ms ± 193 μs, 26% more than baseline
tail
Text: OK (6.45s)
13.8 ns ± 150 ps, 41% more than baseline
LazyText: OK (1.54s)
12.5 μs ± 741 ns, 17% more than baseline
toLower
Text: OK (1.49s)
429 ms ± 29 ms, 218% more than baseline
LazyText: OK (0.65s)
149 ms ± 7.8 ms, 8% more than baseline
toUpper
Text: OK (4.64s)
616 ms ± 23 ms, 182% more than baseline
LazyText: OK (0.92s)
237 ms ± 15 ms, 8% more than baseline
uncons
Text: OK (3.03s)
18.3 ns ± 770 ps, 33% more than baseline
LazyText: OK (1.33s)
12.1 μs ± 879 ns, 8% more than baseline
words
Text: OK (10.63s)
1.271 s ± 78 ms, 10% more than baseline
LazyText: OK (19.63s)
2.550 s ± 170 ms, 25% more than baseline
zipWith
Text: OK (4.41s)
1.420 s ± 76 ms, 37% more than baseline
LazyText: OK (9.80s)
3.187 s ± 249 ms, 45% more than baseline
length
cons
Text: OK (0.75s)
8.34 ms ± 337 μs, 19% more than baseline
LazyText: OK (0.74s)
8.35 ms ± 362 μs, 18% more than baseline
decode
Text: OK (1.24s)
23.0 ms ± 2.0 ms, 41% more than baseline
LazyText: OK (0.68s)
19.6 ms ± 1.3 ms, 18% more than baseline
drop
Text: OK (0.74s)
8.58 ms ± 371 μs, 22% more than baseline
LazyText: OK (1.13s)
8.87 ms ± 671 μs, 21% more than baseline
filter
Text: OK (0.74s)
181 ms ± 7.3 ms, 92% more than baseline
LazyText: OK (0.43s)
111 ms ± 4.2 ms, 12% more than baseline
filter.filter
Text: OK (0.74s)
183 ms ± 3.1 ms, 90% more than baseline
LazyText: OK (0.52s)
111 ms ± 3.7 ms, 12% more than baseline
init
Text: OK (0.72s)
8.18 ms ± 381 μs, 20% more than baseline
LazyText: OK (0.74s)
8.70 ms ± 516 μs, 17% more than baseline
intercalate
Text: OK (0.63s)
16.5 ms ± 917 μs, 15% more than baseline
LazyText: OK (0.40s)
16.7 ms ± 1.5 ms, 15% more than baseline
intersperse
Text: OK (0.50s)
8.06 ms ± 780 μs, 16% more than baseline
LazyText: OK (0.74s)
8.59 ms ± 761 μs, 19% more than baseline
map
Text: OK (0.73s)
8.11 ms ± 376 μs, 16% more than baseline
LazyText: OK (0.74s)
8.60 ms ± 514 μs, 18% more than baseline
map.map
Text: OK (1.09s)
8.21 ms ± 595 μs, 17% more than baseline
LazyText: OK (0.74s)
8.29 ms ± 598 μs, 14% more than baseline
replicate char
Text: OK (2.37s)
22.8 ns ± 1.8 ns, 21% more than baseline
LazyText: OK (2.35s)
20.3 ns ± 1.8 ns, 30% more than baseline
replicate string
Text: OK (2.39s)
24.7 ns ± 1.4 ns, 15% more than baseline
LazyText: OK (2.35s)
20.6 ns ± 1.6 ns, 21% more than baseline
take
Text: OK (0.91s)
5.44 ms ± 238 μs, 19% more than baseline
LazyText: OK (1.35s)
5.36 ms ± 157 μs, 14% more than baseline
tail
Text: OK (0.74s)
8.50 ms ± 675 μs, 15% more than baseline
LazyText: OK (0.51s)
8.44 ms ± 746 μs, 16% more than baseline
toLower
Text: OK (0.72s)
177 ms ± 4.9 ms, 24% more than baseline
LazyText: OK (0.65s)
151 ms ± 3.9 ms, 10% more than baseline
toUpper
Text: OK (0.95s)
251 ms ± 25 ms, 11% more than baseline
LazyText: OK (0.91s)
240 ms ± 3.3 ms, 11% more than baseline
words
Text: OK (1.05s)
287 ms ± 4.7 ms, 22% more than baseline
LazyText: OK (2.46s)
758 ms ± 11 ms, 47% more than baseline
zipWith
Text: OK (1.10s)
8.24 ms ± 259 μs, 20% more than baseline
LazyText: OK (1.11s)
8.40 ms ± 248 μs, 14% more than baseline
Builder
mappend char: OK (1.56s)
14.6 μs ± 797 ns, 15% more than baseline
mappend 8 char: OK (2.75s)
63.0 ns ± 4.0 ns, 32% more than baseline
mappend text: OK (1.41s)
66.7 μs ± 5.3 μs, 15% more than baseline
english
append
Text: OK (0.53s)
1.22 ms ± 95 μs, 52% more than baseline
LazyText: OK (0.41s)
4.07 μs ± 331 ns, 24% more than baseline
concat
Text: OK (0.30s)
2.85 ms ± 271 μs, 46% more than baseline
LazyText: OK (1.58s)
650 μs ± 8.9 μs, 45% more than baseline
cons
Text: OK (0.62s)
37.6 ms ± 2.1 ms, 32% more than baseline
LazyText: OK (0.66s)
271 ns ± 17 ns, 11% more than baseline
decode
Text: OK (0.52s)
573 μs ± 54 μs, 68% more than baseline
LazyText: OK (0.38s)
825 μs ± 62 μs, 47% more than baseline
decode'
Text: OK (1.38s)
517 μs ± 21 μs, 48% more than baseline
LazyText: OK (1.06s)
827 μs ± 61 μs, 45% more than baseline
drop
Text: OK (0.94s)
172 μs ± 14 μs, 14% more than baseline
LazyText: OK (0.38s)
176 μs ± 16 μs, 11% more than baseline
encode
Text: OK (0.80s)
510 μs ± 41 μs, 63% more than baseline
LazyText: OK (0.38s)
803 μs ± 61 μs, 37% more than baseline
filter
Text: OK (0.33s)
7.39 ms ± 394 μs, 13% more than baseline
LazyText: OK (0.59s)
7.38 ms ± 205 μs, 13% more than baseline
filter.filter
Text: OK (0.19s)
7.39 ms ± 729 μs, 13% more than baseline
LazyText: OK (0.33s)
7.37 ms ± 434 μs, 14% more than baseline
foldl'
Text: OK (0.23s)
23.9 ms ± 1.4 ms, 39% more than baseline
LazyText: OK (0.20s)
51.5 ms ± 4.0 ms, 41% more than baseline
foldr
Text: OK (0.92s)
57.0 ms ± 4.2 ms, 35% more than baseline
LazyText: OK (0.75s)
101 ms ± 4.8 ms, 38% more than baseline
head
Text: OK (0.81s)
9.73 ns ± 520 ps, 34% more than baseline
LazyText: OK (0.82s)
20.6 ns ± 738 ps, 47% more than baseline
init
Text: OK (0.89s)
12.3 ns ± 1.0 ns, 44% more than baseline
LazyText: OK (1.45s)
4.24 μs ± 154 ns, 42% more than baseline
intercalate
Text: OK (0.33s)
7.46 ms ± 378 μs, 39% more than baseline
LazyText: OK (0.47s)
2.61 ms ± 205 μs, 38% more than baseline
intersperse
Text: OK (0.82s)
10.6 ms ± 590 μs, 14% more than baseline
LazyText: OK (0.62s)
195 ms ± 12 ms, 41% more than baseline
isInfixOf
Text: OK (0.53s)
71.4 μs ± 6.3 μs, 17% more than baseline
LazyText: OK (0.70s)
117 μs ± 8.0 μs, 24% more than baseline
last
Text: OK (0.62s)
9.18 ns ± 798 ps, 29% more than baseline
LazyText: OK (0.55s)
364 ns ± 30 ns, 13% more than baseline
map
Text: OK (0.33s)
16.5 ms ± 1.3 ms, same as baseline
LazyText: OK (0.17s)
15.5 ms ± 1.5 ms, 12% more than baseline
mapAccumL
Text: OK (0.56s)
173 ms ± 3.8 ms, 35% more than baseline
LazyText: OK (0.33s)
94.3 ms ± 5.0 ms, 22% more than baseline
mapAccumR
Text: OK (0.57s)
177 ms ± 15 ms, 36% more than baseline
LazyText: OK (0.34s)
98.2 ms ± 4.2 ms, 23% more than baseline
map.map
Text: OK (0.19s)
18.4 ms ± 1.5 ms, same as baseline
LazyText: OK (0.34s)
16.8 ms ± 825 μs, 7% more than baseline
replicate char
Text: OK (0.75s)
1.01 ms ± 50 μs, 38% more than baseline
LazyText: OK (0.61s)
43.9 μs ± 1.8 μs, 167% more than baseline
replicate string
Text: OK (1.27s)
958 μs ± 38 μs, 39% more than baseline
LazyText: OK (0.53s)
34.1 μs ± 1.8 μs, 104% more than baseline
reverse
Text: OK (1.27s)
2.05 ms ± 66 μs, 31% more than baseline
LazyText: OK (0.41s)
2.09 ms ± 146 μs, 37% more than baseline
take
Text: OK (0.93s)
167 μs ± 4.4 μs, 14% more than baseline
LazyText: OK (0.39s)
183 μs ± 12 μs, 20% more than baseline
tail
Text: OK (1.00s)
14.0 ns ± 644 ps, 41% more than baseline
LazyText: OK (0.51s)
258 ns ± 22 ns, same as baseline
toLower
Text: OK (0.25s)
27.5 ms ± 1.5 ms, 194% more than baseline
LazyText: OK (0.39s)
9.44 ms ± 459 μs, 9% more than baseline
toUpper
Text: OK (0.74s)
44.5 ms ± 841 μs, 191% more than baseline
LazyText: OK (0.17s)
15.3 ms ± 1.5 ms, 11% more than baseline
uncons
Text: OK (0.62s)
20.8 ns ± 1.3 ns, 53% more than baseline
LazyText: OK (0.50s)
259 ns ± 23 ns, same as baseline
words
Text: OK (2.20s)
69.7 ms ± 1.2 ms, 17% more than baseline
LazyText: OK (0.55s)
150 ms ± 6.9 ms, 8% more than baseline
zipWith
Text: OK (0.36s)
91.3 ms ± 4.2 ms, 27% more than baseline
LazyText: OK (0.65s)
204 ms ± 4.3 ms, 45% more than baseline
length
cons
Text: OK (0.46s)
545 μs ± 51 μs, 21% more than baseline
LazyText: OK (0.19s)
534 μs ± 52 μs, 16% more than baseline
decode
Text: OK (1.64s)
1.41 ms ± 123 μs, 66% more than baseline
LazyText: OK (1.60s)
1.39 ms ± 55 μs, 43% more than baseline
drop
Text: OK (0.78s)
557 μs ± 53 μs, 21% more than baseline
LazyText: OK (0.29s)
513 μs ± 51 μs, same as baseline
filter
Text: OK (0.23s)
12.0 ms ± 939 μs, 90% more than baseline
LazyText: OK (0.33s)
7.37 ms ± 404 μs, 14% more than baseline
filter.filter
Text: OK (0.27s)
12.2 ms ± 977 μs, 94% more than baseline
LazyText: OK (0.33s)
7.34 ms ± 390 μs, 13% more than baseline
init
Text: OK (18.16s)
541 μs ± 7.2 μs, 21% more than baseline
LazyText: OK (0.72s)
521 μs ± 41 μs, 10% more than baseline
intercalate
Text: OK (0.26s)
993 μs ± 94 μs, 12% more than baseline
LazyText: OK (0.28s)
1.11 ms ± 95 μs, 16% more than baseline
intersperse
Text: OK (0.29s)
510 μs ± 48 μs, 13% more than baseline
LazyText: OK (0.19s)
545 μs ± 43 μs, 18% more than baseline
map
Text: OK (0.36s)
519 μs ± 33 μs, 16% more than baseline
LazyText: OK (0.30s)
613 μs ± 58 μs, 30% more than baseline
map.map
Text: OK (0.61s)
548 μs ± 28 μs, 24% more than baseline
LazyText: OK (1.29s)
523 μs ± 8.9 μs, 10% more than baseline
replicate char
Text: OK (0.60s)
22.2 ns ± 2.0 ns, 18% more than baseline
LazyText: OK (0.57s)
19.3 ns ± 1.9 ns, 23% more than baseline
replicate string
Text: OK (0.61s)
24.4 ns ± 1.6 ns, 16% more than baseline
LazyText: OK (0.75s)
19.9 ns ± 914 ps, 20% more than baseline
take
Text: OK (0.33s)
319 μs ± 22 μs, 7% more than baseline
LazyText: OK (0.33s)
339 μs ± 33 μs, 11% more than baseline
tail
Text: OK (0.29s)
543 μs ± 49 μs, 14% more than baseline
LazyText: OK (0.38s)
504 μs ± 36 μs, 7% more than baseline
toLower
Text: OK (0.24s)
11.3 ms ± 707 μs, 16% more than baseline
LazyText: OK (0.22s)
9.76 ms ± 685 μs, same as baseline
toUpper
Text: OK (0.33s)
16.8 ms ± 831 μs, same as baseline
LazyText: OK (0.31s)
15.6 ms ± 715 μs, 8% more than baseline
words
Text: OK (0.33s)
17.2 ms ± 766 μs, 13% more than baseline
LazyText: OK (0.15s)
44.5 ms ± 4.1 ms, 34% more than baseline
zipWith
Text: OK (0.42s)
498 μs ± 27 μs, 11% more than baseline
LazyText: OK (0.43s)
527 μs ± 41 μs, 18% more than baseline
Builder
mappend char: OK (0.49s)
14.3 μs ± 720 ns, 15% more than baseline
mappend 8 char: OK (0.64s)
56.2 ns ± 3.5 ns, 21% more than baseline
mappend text: OK (0.35s)
66.0 μs ± 6.2 μs, 15% more than baseline
russian
append
Text: OK (0.39s)
2.73 μs ± 193 ns, same as baseline
LazyText: OK (0.66s)
21.9 ns ± 1.1 ns, 21% more than baseline
concat
Text: OK (0.38s)
2.93 μs ± 259 ns, 21% more than baseline
LazyText: OK (0.56s)
616 ns ± 52 ns, 12% more than baseline
cons
Text: OK (0.25s)
62.4 μs ± 5.9 μs, 18% more than baseline
LazyText: OK (0.42s)
18.1 ns ± 1.6 ns, 17% more than baseline
decode
Text: OK (0.44s)
1.87 μs ± 102 ns, 9% more than baseline
LazyText: OK (0.33s)
2.00 μs ± 182 ns, same as baseline
decode'
Text: OK (0.45s)
1.89 μs ± 86 ns, 10% more than baseline
LazyText: OK (0.76s)
2.11 μs ± 44 ns, 12% more than baseline
drop
Text: OK (0.35s)
496 ns ± 49 ns, same as baseline
LazyText: OK (0.34s)
500 ns ± 46 ns, same as baseline
encode
Text: OK (0.51s)
1.16 μs ± 43 ns, 24% more than baseline
LazyText: OK (0.35s)
1.18 μs ± 96 ns, 17% more than baseline
filter
Text: OK (0.36s)
25.0 μs ± 1.5 μs, 8% more than baseline
LazyText: OK (0.38s)
27.0 μs ± 1.8 μs, 21% more than baseline
filter.filter
Text: OK (0.60s)
25.0 μs ± 1.2 μs, 6% more than baseline
LazyText: OK (0.41s)
27.1 μs ± 2.1 μs, 19% more than baseline
foldl'
Text: OK (3.23s)
46.3 μs ± 2.9 μs, 48% more than baseline
LazyText: OK (0.97s)
104 μs ± 5.6 μs, 76% more than baseline
foldr
Text: OK (3.29s)
90.4 μs ± 8.6 μs, 31% more than baseline
LazyText: OK (0.42s)
138 μs ± 6.1 μs, 26% more than baseline
head
Text: OK (0.67s)
11.0 ns ± 1.0 ns, 44% more than baseline
LazyText: OK (3.24s)
20.9 ns ± 1.8 ns, 54% more than baseline
init
Text: OK (0.50s)
12.1 ns ± 762 ps, 48% more than baseline
LazyText: OK (0.84s)
15.6 ns ± 376 ps, 26% more than baseline
intercalate
Text: OK (0.47s)
8.48 μs ± 442 ns, 40% more than baseline
LazyText: OK (1.09s)
3.34 μs ± 94 ns, 47% more than baseline
intersperse
Text: OK (0.38s)
26.0 μs ± 2.0 μs, 15% more than baseline
LazyText: OK (0.42s)
288 μs ± 13 μs, 37% more than baseline
isInfixOf
Text: OK (0.66s)
3.38 μs ± 264 ns, 17% more than baseline
LazyText: OK (0.38s)
5.78 μs ± 406 ns, same as baseline
last
Text: OK (37.77s)
8.46 ns ± 300 ps, 37% more than baseline
LazyText: OK (0.69s)
9.88 ns ± 772 ps, 25% more than baseline
map
Text: OK (0.30s)
39.9 μs ± 2.9 μs, 10% more than baseline
LazyText: OK (0.30s)
40.4 μs ± 3.9 μs, same as baseline
mapAccumL
Text: OK (0.40s)
60.6 μs ± 3.6 μs, 16% more than baseline
LazyText: OK (0.37s)
56.5 μs ± 3.1 μs, same as baseline
mapAccumR
Text: OK (0.69s)
61.6 μs ± 2.7 μs, 21% more than baseline
LazyText: OK (0.42s)
59.7 μs ± 5.0 μs, 14% more than baseline
map.map
Text: OK (0.32s)
43.2 μs ± 2.8 μs, same as baseline
LazyText: OK (0.35s)
44.6 μs ± 3.2 μs, 9% more than baseline
replicate char
Text: OK (0.75s)
3.91 μs ± 248 ns, 73% more than baseline
LazyText: OK (0.45s)
3.80 μs ± 371 ns, 49% more than baseline
replicate string
Text: OK (0.67s)
3.43 μs ± 203 ns, 42% more than baseline
LazyText: OK (0.73s)
3.97 μs ± 127 ns, 60% more than baseline
reverse
Text: OK (0.43s)
6.77 μs ± 369 ns, 35% less than baseline
LazyText: OK (0.42s)
6.87 μs ± 622 ns, 35% less than baseline
take
Text: OK (0.51s)
510 ns ± 31 ns, 8% more than baseline
LazyText: OK (0.37s)
514 ns ± 43 ns, same as baseline
tail
Text: OK (1.23s)
13.6 ns ± 312 ps, 49% more than baseline
LazyText: OK (0.53s)
13.8 ns ± 1.3 ns, 33% more than baseline
toLower
Text: OK (0.37s)
51.6 μs ± 4.0 μs, 26% more than baseline
LazyText: OK (0.34s)
43.4 μs ± 3.1 μs, 9% more than baseline
toUpper
Text: OK (0.39s)
120 μs ± 7.2 μs, 26% more than baseline
LazyText: OK (0.61s)
108 μs ± 3.3 μs, 19% more than baseline
uncons
Text: OK (0.63s)
20.6 ns ± 898 ps, 62% more than baseline
LazyText: OK (0.69s)
23.4 ns ± 916 ps, 41% more than baseline
words
Text: OK (0.60s)
54.1 μs ± 3.2 μs, 44% more than baseline
LazyText: OK (0.32s)
93.5 μs ± 7.4 μs, 13% more than baseline
zipWith
Text: OK (0.48s)
162 μs ± 14 μs, 22% more than baseline
LazyText: OK (0.29s)
344 μs ± 31 μs, 57% more than baseline
length
cons
Text: OK (0.42s)
1.45 μs ± 118 ns, same as baseline
LazyText: OK (0.41s)
1.45 μs ± 118 ns, same as baseline
decode
Text: OK (0.44s)
3.44 μs ± 335 ns, 12% more than baseline
LazyText: OK (0.44s)
3.59 μs ± 273 ns, 18% more than baseline
drop
Text: OK (0.41s)
1.53 μs ± 100 ns, 9% more than baseline
LazyText: OK (0.42s)
1.55 μs ± 87 ns, 9% more than baseline
filter
Text: OK (0.34s)
20.7 μs ± 1.3 μs, 10% more than baseline
LazyText: OK (0.27s)
26.9 μs ± 2.7 μs, 19% more than baseline
filter.filter
Text: OK (0.36s)
22.0 μs ± 1.5 μs, 17% more than baseline
LazyText: OK (0.39s)
27.1 μs ± 2.1 μs, 18% more than baseline
init
Text: OK (0.41s)
1.44 μs ± 106 ns, same as baseline
LazyText: OK (0.41s)
1.47 μs ± 109 ns, same as baseline
intercalate
Text: OK (0.35s)
2.18 μs ± 197 ns, same as baseline
LazyText: OK (0.36s)
2.31 μs ± 203 ns, 10% more than baseline
intersperse
Text: OK (0.42s)
1.47 μs ± 86 ns, same as baseline
LazyText: OK (0.41s)
1.45 μs ± 99 ns, 7% more than baseline
map
Text: OK (0.42s)
1.48 μs ± 131 ns, 12% more than baseline
LazyText: OK (0.42s)
1.45 μs ± 108 ns, 8% more than baseline
map.map
Text: OK (0.41s)
1.42 μs ± 118 ns, 10% more than baseline
LazyText: OK (0.42s)
1.45 μs ± 91 ns, 9% more than baseline
replicate char
Text: OK (0.70s)
23.4 ns ± 2.3 ns, 23% more than baseline
LazyText: OK (0.47s)
20.2 ns ± 2.0 ns, 32% more than baseline
replicate string
Text: OK (0.73s)
25.0 ns ± 2.1 ns, 21% more than baseline
LazyText: OK (0.47s)
20.8 ns ± 1.5 ns, 25% more than baseline
take
Text: OK (0.51s)
1.00 μs ± 46 ns, same as baseline
LazyText: OK (0.37s)
1.01 μs ± 94 ns, same as baseline
tail
Text: OK (0.43s)
1.54 μs ± 124 ns, 9% more than baseline
LazyText: OK (0.43s)
1.52 μs ± 101 ns, same as baseline
toLower
Text: OK (0.35s)
45.9 μs ± 4.1 μs, 11% more than baseline
LazyText: OK (0.35s)
46.1 μs ± 3.8 μs, same as baseline
toUpper
Text: OK (0.36s)
103 μs ± 9.1 μs, same as baseline
LazyText: OK (0.37s)
106 μs ± 7.1 μs, 13% more than baseline
words
Text: OK (0.39s)
54.0 μs ± 4.1 μs, 47% more than baseline
LazyText: OK (0.82s)
79.5 μs ± 2.5 μs, 17% more than baseline
zipWith
Text: OK (0.43s)
1.46 μs ± 98 ns, same as baseline
LazyText: OK (0.42s)
1.45 μs ± 128 ns, 11% more than baseline
Builder
mappend char: OK (0.44s)
15.0 μs ± 930 ns, 21% more than baseline
mappend 8 char: OK (0.56s)
61.5 ns ± 2.8 ns, 35% more than baseline
mappend text: OK (0.30s)
69.8 μs ± 6.9 μs, 22% more than baseline
japanese
append
Text: OK (0.68s)
3.44 μs ± 264 ns, 29% more than baseline
LazyText: OK (0.56s)
25.7 ns ± 1.3 ns, 47% more than baseline
concat
Text: OK (0.33s)
7.86 μs ± 768 ns, 33% more than baseline
LazyText: OK (0.41s)
2.86 μs ± 184 ns, 52% more than baseline
cons
Text: OK (0.60s)
47.8 μs ± 2.9 μs, 33% more than baseline
LazyText: OK (0.50s)
21.4 ns ± 1.5 ns, 36% more than baseline
decode
Text: OK (0.86s)
2.26 μs ± 67 ns, 24% more than baseline
LazyText: OK (0.38s)
2.33 μs ± 174 ns, 21% more than baseline
decode'
Text: OK (0.86s)
2.37 μs ± 48 ns, 27% more than baseline
LazyText: OK (0.39s)
2.51 μs ± 246 ns, 28% more than baseline
drop
Text: OK (0.56s)
544 ns ± 26 ns, same as baseline
LazyText: OK (0.55s)
544 ns ± 26 ns, 11% more than baseline
encode
Text: OK (0.45s)
1.55 μs ± 144 ns, 47% more than baseline
LazyText: OK (0.41s)
1.50 μs ± 91 ns, 38% more than baseline
filter
Text: OK (0.31s)
14.9 μs ± 1.4 μs, 10% more than baseline
LazyText: OK (0.45s)
14.8 μs ± 827 ns, 12% more than baseline
filter.filter
Text: OK (0.31s)
14.9 μs ± 1.4 μs, 13% more than baseline
LazyText: OK (0.45s)
14.9 μs ± 705 ns, 11% more than baseline
foldl'
Text: OK (1.16s)
29.3 μs ± 1.4 μs, 60% more than baseline
LazyText: OK (0.68s)
60.9 μs ± 2.2 μs, 63% more than baseline
foldr
Text: OK (0.44s)
64.9 μs ± 6.4 μs, 43% more than baseline
LazyText: OK (1.15s)
120 μs ± 2.4 μs, 41% more than baseline
head
Text: OK (0.53s)
10.6 ns ± 742 ps, 19% more than baseline
LazyText: OK (0.67s)
19.9 ns ± 862 ps, 40% more than baseline
init
Text: OK (1.15s)
11.8 ns ± 1.1 ns, 42% more than baseline
LazyText: OK (0.89s)
16.2 ns ± 906 ps, 31% more than baseline
intercalate
Text: OK (0.57s)
22.6 μs ± 1.1 μs, 32% more than baseline
LazyText: OK (0.86s)
9.81 μs ± 601 ns, 54% more than baseline
intersperse
Text: OK (0.46s)
16.2 μs ± 1.1 μs, 14% more than baseline
LazyText: OK (0.59s)
211 μs ± 6.6 μs, 48% more than baseline
isInfixOf
Text: OK (0.49s)
4.01 μs ± 248 ns, 25% more than baseline
LazyText: OK (0.44s)
6.55 μs ± 537 ns, same as baseline
last
Text: OK (0.65s)
8.87 ns ± 416 ps, 37% more than baseline
LazyText: OK (0.72s)
10.9 ns ± 602 ps, 37% more than baseline
map
Text: OK (0.42s)
28.2 μs ± 1.4 μs, 11% more than baseline
LazyText: OK (0.68s)
28.8 μs ± 1.2 μs, 15% more than baseline
mapAccumL
Text: OK (0.45s)
31.4 μs ± 2.6 μs, 13% more than baseline
LazyText: OK (0.32s)
32.4 μs ± 2.9 μs, 16% more than baseline
mapAccumR
Text: OK (0.50s)
36.2 μs ± 1.9 μs, 16% more than baseline
LazyText: OK (0.49s)
35.9 μs ± 2.5 μs, 13% more than baseline
map.map
Text: OK (0.31s)
30.0 μs ± 2.7 μs, same as baseline
LazyText: OK (0.47s)
32.0 μs ± 2.3 μs, 17% more than baseline
replicate char
Text: OK (0.52s)
4.19 μs ± 246 ns, 69% more than baseline
LazyText: OK (0.39s)
5.09 μs ± 400 ns, 71% more than baseline
replicate string
Text: OK (0.81s)
4.21 μs ± 357 ns, 76% more than baseline
LazyText: OK (0.91s)
4.87 μs ± 215 ns, 57% more than baseline
reverse
Text: OK (0.67s)
6.31 μs ± 574 ns, 16% more than baseline
LazyText: OK (0.41s)
6.31 μs ± 437 ns, 16% more than baseline
take
Text: OK (0.43s)
545 ns ± 47 ns, 12% more than baseline
LazyText: OK (0.43s)
545 ns ± 47 ns, same as baseline
tail
Text: OK (0.49s)
15.0 ns ± 1.4 ns, 55% more than baseline
LazyText: OK (0.63s)
15.4 ns ± 1.3 ns, 39% more than baseline
toLower
Text: OK (0.33s)
31.7 μs ± 2.9 μs, 13% more than baseline
LazyText: OK (0.74s)
31.5 μs ± 1.4 μs, 13% more than baseline
toUpper
Text: OK (0.33s)
31.5 μs ± 2.9 μs, 13% more than baseline
LazyText: OK (0.46s)
30.6 μs ± 1.5 μs, 9% more than baseline
uncons
Text: OK (0.56s)
23.7 ns ± 2.3 ns, 74% more than baseline
LazyText: OK (0.59s)
27.8 ns ± 2.2 ns, 64% more than baseline
words
Text: OK (0.54s)
85.6 μs ± 3.2 μs, 65% more than baseline
LazyText: OK (0.37s)
42.6 μs ± 3.5 μs, same as baseline
zipWith
Text: OK (0.42s)
121 μs ± 9.1 μs, 41% more than baseline
LazyText: OK (0.43s)
253 μs ± 16 μs, 65% more than baseline
length
cons
Text: OK (0.49s)
1.57 μs ± 101 ns, 8% more than baseline
LazyText: OK (0.48s)
1.56 μs ± 122 ns, 9% more than baseline
decode
Text: OK (0.52s)
3.97 μs ± 172 ns, 20% more than baseline
LazyText: OK (0.37s)
4.19 μs ± 395 ns, 21% more than baseline
drop
Text: OK (0.50s)
1.65 μs ± 104 ns, 9% more than baseline
LazyText: OK (0.49s)
1.65 μs ± 99 ns, 8% more than baseline
filter
Text: OK (0.43s)
11.9 μs ± 709 ns, 14% more than baseline
LazyText: OK (0.47s)
14.8 μs ± 775 ns, 13% more than baseline
filter.filter
Text: OK (0.42s)
11.7 μs ± 889 ns, 12% more than baseline
LazyText: OK (0.48s)
14.8 μs ± 830 ns, 12% more than baseline
init
Text: OK (0.48s)
1.56 μs ± 109 ns, 8% more than baseline
LazyText: OK (0.48s)
1.58 μs ± 114 ns, 8% more than baseline
intercalate
Text: OK (0.47s)
3.20 μs ± 254 ns, same as baseline
LazyText: OK (0.49s)
3.33 μs ± 229 ns, 7% more than baseline
intersperse
Text: OK (0.49s)
1.56 μs ± 129 ns, same as baseline
LazyText: OK (0.48s)
1.56 μs ± 97 ns, same as baseline
map
Text: OK (0.48s)
1.55 μs ± 83 ns, 7% more than baseline
LazyText: OK (0.49s)
1.56 μs ± 106 ns, 7% more than baseline
map.map
Text: OK (0.48s)
1.56 μs ± 96 ns, 9% more than baseline
LazyText: OK (0.49s)
1.58 μs ± 94 ns, same as baseline
replicate char
Text: OK (0.58s)
24.3 ns ± 1.4 ns, 23% more than baseline
LazyText: OK (0.56s)
21.6 ns ± 1.3 ns, 42% more than baseline
replicate string
Text: OK (0.59s)
25.8 ns ± 2.0 ns, 23% more than baseline
LazyText: OK (0.57s)
22.5 ns ± 1.8 ns, 33% more than baseline
take
Text: OK (0.43s)
1.06 μs ± 106 ns, same as baseline
LazyText: OK (0.43s)
1.07 μs ± 87 ns, same as baseline
tail
Text: OK (0.51s)
1.61 μs ± 140 ns, same as baseline
LazyText: OK (0.51s)
1.64 μs ± 108 ns, 9% more than baseline
toLower
Text: OK (0.33s)
31.9 μs ± 2.7 μs, same as baseline
LazyText: OK (0.34s)
32.1 μs ± 3.0 μs, same as baseline
toUpper
Text: OK (0.34s)
31.6 μs ± 2.7 μs, same as baseline
LazyText: OK (0.34s)
31.9 μs ± 2.7 μs, same as baseline
words
Text: OK (0.37s)
85.8 μs ± 5.5 μs, 59% more than baseline
LazyText: OK (0.37s)
39.5 μs ± 2.8 μs, same as baseline
zipWith
Text: OK (0.49s)
1.57 μs ± 139 ns, 10% more than baseline
LazyText: OK (0.50s)
1.58 μs ± 111 ns, 10% more than baseline
Builder
mappend char: OK (0.50s)
15.6 μs ± 753 ns, 22% more than baseline
mappend 8 char: OK (0.69s)
74.7 ns ± 6.5 ns, 58% more than baseline
mappend text: OK (0.53s)
73.4 μs ± 5.0 μs, 27% more than baseline
ReadNumbers
DecimalText: OK (0.71s)
495 μs ± 37 μs, 39% more than baseline
HexadecimalText: OK (0.43s)
1.06 ms ± 56 μs, 30% more than baseline
DoubleText: OK (0.27s)
2.60 ms ± 219 μs, 34% more than baseline
RationalText: OK (0.39s)
4.43 ms ± 340 μs, 26% more than baseline
DecimalLazyText: OK (17.40s)
2.01 ms ± 158 μs, 61% more than baseline
HexadecimalLazyText: OK (0.52s)
3.23 ms ± 179 μs, 29% more than baseline
DoubleLazyText: OK (0.28s)
6.17 ms ± 457 μs, 52% more than baseline
RationalLazyText: OK (0.35s)
8.13 ms ± 656 μs, 40% more than baseline
Replace
Text: OK (0.91s)
2.74 ms ± 87 μs, 32% more than baseline
LazyText: OK (0.35s)
3.62 ms ± 336 μs, 25% more than baseline
FileIndices
Text: OK (0.45s)
1.10 ms ± 103 μs, 52% more than baseline
LazyText: OK (0.27s)
2.52 ms ± 245 μs, 25% more than baseline
Stream
stream
Text: OK (0.30s)
35.4 ms ± 2.2 ms, 32% more than baseline
LazyText: OK (0.21s)
54.2 ms ± 5.0 ms, 66% more than baseline
streamUtf8
Text: OK (30.34s)
117 ms ± 303 μs, 71% more than baseline
LazyText: OK (0.51s)
155 ms ± 8.4 ms, 49% more than baseline
streamUtf16LE
Text: OK (1.51s)
45.7 ms ± 2.1 ms, 66% more than baseline
LazyText: OK (0.29s)
79.2 ms ± 6.8 ms, 54% more than baseline
streamUtf16BE
Text: OK (0.18s)
43.9 ms ± 3.1 ms, 51% more than baseline
LazyText: OK (0.28s)
81.3 ms ± 6.9 ms, 59% more than baseline
streamUtf32LE
Text: OK (0.64s)
36.5 ms ± 3.4 ms, 52% more than baseline
LazyText: OK (0.18s)
46.0 ms ± 3.0 ms, 52% more than baseline
streamUtf32BE
Text: OK (0.32s)
37.1 ms ± 1.6 ms, 60% more than baseline
LazyText: OK (0.41s)
48.4 ms ± 2.1 ms, 58% more than baseline
restreamUtf16LE: OK (2.20s)
65.1 ms ± 966 μs, 54% more than baseline
restreamUtf16BE: OK (0.24s)
65.3 ms ± 3.1 ms, 45% more than baseline
restreamUtf32LE: OK (0.33s)
94.7 ms ± 9.4 ms, 47% more than baseline
restreamUtf32BE: OK (0.73s)
92.8 ms ± 3.8 ms, 46% more than baseline
WordFrequencies
Text: OK (1.54s)
205 ms ± 16 ms, 34% more than baseline
Programs
BigTable: OK (0.57s)
171 ms ± 3.3 ms, 27% more than baseline
Cut
Text: OK (0.14s)
32.6 ms ± 3.2 ms, 21% more than baseline
LazyText: OK (0.19s)
48.4 ms ± 3.6 ms, 23% more than baseline
TextByteString: OK (0.48s)
11.3 ms ± 865 μs, 32% more than baseline
LazyTextByteString: OK (0.19s)
19.0 ms ± 1.4 ms, 29% more than baseline
Fold: OK (0.99s)
132 ms ± 4.1 ms, 36% more than baseline
Sort
Text: OK (1.39s)
88.0 ms ± 4.7 ms, 27% more than baseline
LazyText: OK (0.44s)
132 ms ± 8.1 ms, 30% more than baseline
TextByteString: OK (1.82s)
56.5 ms ± 2.6 ms, 34% more than baseline
LazyTextByteString: OK (0.50s)
64.2 ms ± 5.8 ms, 29% more than baseline
TextBuilder: OK (0.94s)
57.3 ms ± 5.0 ms, 36% more than baseline
StripTags
Text: OK (2.16s)
696 ms ± 46 ms, 14% more than baseline
TextByteString: OK (1.89s)
255 ms ± 9.1 ms, 16% more than baseline
Throughput
Text: OK (0.17s)
41.5 ms ± 3.6 ms, 18% more than baseline
LazyText: OK (0.70s)
40.4 ms ± 695 μs, 20% more than baseline
TextByteString: OK (0.76s)
4.39 ms ± 133 μs, 74% more than baseline
LazyTextByteString: OK (0.38s)
3.78 ms ± 272 μs, 37% more than baseline
```
The largest outliers are the following benchmarks, where the number is mean relative to 9.4.4.
```
All.Pure.ascii-small.toLower.Text,2.596621780908246
All.Pure.ascii-small.toUpper.Text,2.358755356262447
All.Pure.ascii.replicate char.LazyText,2.499722873092423
All.Pure.ascii.replicate string.LazyText,2.2572410054338343
All.Pure.ascii.toLower.Text,3.1815293595268455
All.Pure.ascii.toUpper.Text,2.82356005206939
All.Pure.english.replicate char.LazyText,2.6739704748511217
All.Pure.english.replicate string.LazyText,2.0432417641411265
All.Pure.english.toLower.Text,2.9464208480716763
All.Pure.english.toUpper.Text,2.917234634014721
```9.6.1Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/13604ghci no longer loads dynamic .o files2023-09-08T10:44:31Zgeorge.colpittsghci no longer loads dynamic .o filesIn 8.2.1-rc1 loading a file compiled with -O2 into ghci results in ghci recompiling the file into interpreted byte code. In 8.0.2 it simply loads the compiled object file.
1. 2.1
```
ghc -dynamic -O2 eh2.hs
[1 of 1] Compiling Main ...In 8.2.1-rc1 loading a file compiled with -O2 into ghci results in ghci recompiling the file into interpreted byte code. In 8.0.2 it simply loads the compiled object file.
1. 2.1
```
ghc -dynamic -O2 eh2.hs
[1 of 1] Compiling Main ( eh2.hs, eh2.o )
Linking eh2 ...
bash-3.2$ ghci -ignore-dot-ghci
GHCi, version 8.2.0.20170404: http://www.haskell.org/ghc/ :? for help
Prelude> :load eh2
[1 of 1] Compiling Main ( eh2.hs, interpreted ) [flags changed]
Ok, modules loaded: Main.
```
1. 0.2
```
ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.0.2
bash-3.2$ pwd
/Users/gcolpitts/haskell
bash-3.2$ ghc -dynamic -O2 eh2.hs
[1 of 1] Compiling Main ( eh2.hs, eh2.o )
Linking eh2 ...
bash-3.2$ ghci -ignore-dot-ghci
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help
Prelude> :load eh2
Ok, modules loaded: Main (eh2.o).
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHCi |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"regression in ghc 8.2.1-rc1 (8.2.0.2017040)","status":"New","operating_system":"","component":"GHCi","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.0.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"In 8.2.1-rc1 loading a file compiled with -O2 into ghci results in ghci recompiling the file into interpreted byte code. In 8.0.2 it simply loads the compiled object file.\r\n\r\n8.2.1\r\n{{{\r\n ghc -dynamic -O2 eh2.hs\r\n[1 of 1] Compiling Main ( eh2.hs, eh2.o )\r\nLinking eh2 ...\r\nbash-3.2$ ghci -ignore-dot-ghci\r\nGHCi, version 8.2.0.20170404: http://www.haskell.org/ghc/ :? for help\r\nPrelude> :load eh2\r\n[1 of 1] Compiling Main ( eh2.hs, interpreted ) [flags changed]\r\nOk, modules loaded: Main.\r\n}}}\r\n\r\n8.0.2 \r\n\r\n{{{\r\n ghc --version\r\nThe Glorious Glasgow Haskell Compilation System, version 8.0.2\r\nbash-3.2$ pwd\r\n/Users/gcolpitts/haskell\r\nbash-3.2$ ghc -dynamic -O2 eh2.hs\r\n[1 of 1] Compiling Main ( eh2.hs, eh2.o )\r\nLinking eh2 ...\r\nbash-3.2$ ghci -ignore-dot-ghci\r\nGHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help\r\nPrelude> :load eh2\r\nOk, modules loaded: Main (eh2.o).\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.4.1David FeuerDavid Feuerhttps://gitlab.haskell.org/ghc/ghc/-/issues/24485Sort out haddock hyperlinked-sources links2024-03-26T17:46:45ZBen GamariSort out haddock hyperlinked-sources linksCurrently Haddock's hyperlinked sources [fails to account](https://github.com/haskell/haddock/issues/1628) for declaration reexports correctly. This needs to be addressed for 9.10.1 to avoid compromising `base` documentation due to the `...Currently Haddock's hyperlinked sources [fails to account](https://github.com/haskell/haddock/issues/1628) for declaration reexports correctly. This needs to be addressed for 9.10.1 to avoid compromising `base` documentation due to the `ghc-internal` split.9.10.1Ben GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/22419Runtime exceptions: TSO, ARR_WORDS, END_TSO_QUEUE, stg_ap_v_ret, MUT_VAR_CLEAN2023-10-13T16:45:41ZEric TorreborreRuntime exceptions: TSO, ARR_WORDS, END_TSO_QUEUE, stg_ap_v_ret, MUT_VAR_CLEAN## Summary
Over the course of the past 10 days we had runtimes errors
```
stg_ap_v_ret
ARR_WORDS object (0x42db60f8c8) entered!
TSO object (0x4200078f18) entered!
END_TSO_QUEUE object (0x61d9408) entered!
MUT_VAR_CLEAN object (0x42d7145...## Summary
Over the course of the past 10 days we had runtimes errors
```
stg_ap_v_ret
ARR_WORDS object (0x42db60f8c8) entered!
TSO object (0x4200078f18) entered!
END_TSO_QUEUE object (0x61d9408) entered!
MUT_VAR_CLEAN object (0x42d7145ce0) entered!
```
## Steps to reproduce
Unfortunately, the whole system is some proprietary code deployed in a Kubernetes environment.
Is there any additional logging that we could do to help diagnose the problem (which seems non-deterministic)?
## Expected behavior
We started observing these failures after upgrading to 9.2.3. We are going to upgrade to 9.2.4 and monitor the situation to see if we observe these issues again.
## Environment
* GHC version used: 9.2.3
```
PLATFORM: GNU/Linux
OS, GNU/Linux
Kernel Name, Linux
Processor, x86_64
Kernel Release, 5.4.217-126.408.amzn2.x86_64
Kernel Version, #1 SMP Fri Oct 14 17:08:46 UTC 2022
Machine, x86_64
Hardware Platform, x86_64
CPU: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
Vendor ID, GenuineIntel
Model Name, Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
CPU Cores, 4
CPU Logical Processors, 8
MHz, 2299.887
Cache Size, 46080 KB
Family, 6
Model, 79
Stepping, 1
```9.10.1https://gitlab.haskell.org/ghc/ghc/-/issues/20266Alpine segfaults many tests in 9.2.12024-01-05T08:19:32ZBen GamariAlpine segfaults many tests in 9.2.1GHC appears to segfault during a good number of x86-64 testsuite cases in the Alpine jobs. e.g. see https://gitlab.haskell.org/ghc/ghc/-/jobs/768596GHC appears to segfault during a good number of x86-64 testsuite cases in the Alpine jobs. e.g. see https://gitlab.haskell.org/ghc/ghc/-/jobs/7685969.2.1Ben GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/15397Linking Issue with libffi on Ubuntu and Fedora with Provided Bindists2024-01-19T11:48:16ZAra AdkinsLinking Issue with libffi on Ubuntu and Fedora with Provided BindistsIt appears that the bindists being given to both ubuntu and fedora users are subtly broken. When attempting to link a binary depending on libffi, the linker picks up the copy of `libffi.so.7` found in the rts folder of the distribution. ...It appears that the bindists being given to both ubuntu and fedora users are subtly broken. When attempting to link a binary depending on libffi, the linker picks up the copy of `libffi.so.7` found in the rts folder of the distribution. This means that at runtime, despite the systems in question having a copy of `libffi.so.6`, the binary can't find the correct shared library to link against.
This does not happen on Arch Linux or Gentoo, as `/usr/lib` or `/usr/lib64` are included in their linker invocations respectively, allowing the linker to pick up the correct version of the dependency.
You can reproduce the issue quickly by cloning [Luna Core](https://github.com/luna/luna-core) and executing the following commands. I suggest doing this on an Ubuntu or Fedora system as I know it fails on those two distros.
```
stack build luna-shell --fast
stack exec luna
```
You should see something along the lines of the following.
```
error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory
```
In essence, the reproduction steps are as follows:
1. Create a project depending on libffi using ghc-8.4.2
1. Build the project
1. Execute it
The *expected* result is that the binary links against the system copy of `libffi.so.6`, rather than the `libffi.so.7` provided in the ghc distribution.
I can't guarantee that Ubuntu and Fedora are the only affected systems, but I know that Arch Linux and Gentoo were both fine with the provided bindists. All tested systems were x64, so I cannot confirm if the issue affects x86 bindists.
The actual symptom appears to be a result of the linker never being given the path to the system library directory (e.g. `/usr/lib` or `/usr/lib64`), whereas on Arch and Gentoo, the linkline does contain that directory.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.4.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Linking Issue on Ubuntu and Fedora with Provided Bindists (GHC-8.4.2)","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.4.4","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"It appears that the bindists being given to both ubuntu and fedora users are subtly broken. When attempting to link a binary depending on libffi, the linker picks up the copy of `libffi.so.7` found in the rts folder of the distribution. This means that at runtime, despite the systems in question having a copy of `libffi.so.6`, the binary can't find the correct shared library to link against.\r\n\r\nThis does not happen on Arch Linux or Gentoo, as `/usr/lib` or `/usr/lib64` are included in their linker invocations respectively, allowing the linker to pick up the correct version of the dependency.\r\n\r\nYou can reproduce the issue quickly by cloning [https://github.com/luna/luna-core Luna Core] and executing the following commands. I suggest doing this on an Ubuntu or Fedora system as I know it fails on those two distros.\r\n\r\n{{{\r\nstack build luna-shell --fast\r\nstack exec luna\r\n}}}\r\n\r\nYou should see something along the lines of the following. \r\n\r\n{{{\r\nerror while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory\r\n}}}\r\n\r\nIn essence, the reproduction steps are as follows:\r\n\r\n1. Create a project depending on libffi using ghc-8.4.2\r\n2. Build the project\r\n3. Execute it\r\n\r\n\r\nThe ''expected'' result is that the binary links against the system copy of `libffi.so.6`, rather than the `libffi.so.7` provided in the ghc distribution. \r\n\r\nI can't guarantee that Ubuntu and Fedora are the only affected systems, but I know that Arch Linux and Gentoo were both fine with the provided bindists. All tested systems were x64, so I cannot confirm if the issue affects x86 bindists. \r\n\r\nThe actual symptom appears to be a result of the linker never being given the path to the system library directory (e.g. `/usr/lib` or `/usr/lib64`), whereas on Arch and Gentoo, the linkline does contain that directory. ","type_of_failure":"OtherFailure","blocking":[]} -->8.4.4https://gitlab.haskell.org/ghc/ghc/-/issues/24161iconv regression in recent macOS distributions2024-02-09T10:35:36ZBryan Rbryan@haskell.foundationiconv regression in recent macOS distributionsThe recent macOS Sonoma release distributed an `iconv()` that introduced regression in the `encoding004` test of the `base` testsuite that tests roundtripping of CP936.
The release seems to have also fixed an issue where `LC_ALL=C` woul...The recent macOS Sonoma release distributed an `iconv()` that introduced regression in the `encoding004` test of the `base` testsuite that tests roundtripping of CP936.
The release seems to have also fixed an issue where `LC_ALL=C` would be ignored in macOS and Unicode was by default regardless, which caused failures in `T2507`, `T6037`, and `T8959a`.
```
Unexpected passes:
/var/folders/0p/k15lrkf913923yn8w6nk3kc80000hm/T/ghctest-32bcsuxp/test spaces/testsuite/tests/driver/T2507.run T2507 [unexpected] (normal)
/var/folders/0p/k15lrkf913923yn8w6nk3kc80000hm/T/ghctest-32bcsuxp/test spaces/testsuite/tests/driver/T6037.run T6037 [unexpected] (normal)
/var/folders/0p/k15lrkf913923yn8w6nk3kc80000hm/T/ghctest-32bcsuxp/test spaces/testsuite/tests/driver/T8959a.run T8959a [unexpected] (normal)
Unexpected failures:
/var/folders/0p/k15lrkf913923yn8w6nk3kc80000hm/T/ghctest-32bcsuxp/test spaces/libraries/base/tests/IO/encoding004.run encoding004 [bad exit code (1)] (normal)
```Rodrigo MesquitaRodrigo Mesquitahttps://gitlab.haskell.org/ghc/ghc/-/issues/23493GHC 9.6 segfault at `updateThunk + 392`2023-09-19T14:20:26ZRebecca TurnerGHC 9.6 segfault at `updateThunk + 392`## Summary
I've found a very reliable segfault with `haskell-language-server` and GHC 9.6. I've [reported it to the `haskell-language-server` repository here](https://github.com/haskell/haskell-language-server/issues/3630) but I think i...## Summary
I've found a very reliable segfault with `haskell-language-server` and GHC 9.6. I've [reported it to the `haskell-language-server` repository here](https://github.com/haskell/haskell-language-server/issues/3630) but I think it may be a GHC bug, so I'm filing an issue here as well.
### Steps to reproduce
1. Open the editor and let `haskell-language-server` load our Haskell backend (~5700 modules). Unfortunately, our codebase is proprietary and can't be shared. I'll see if I can reproduce on an open-source codebase.
3. Make an edit and save the file. I typically add a definition like `foo :: (); foo = ()`.
4. `haskell-language-server` segfaults immediately.
### Expected behaviour
`haskell-language-server` should reindex and continue to provide language intelligence.
### Actual behaviour
`haskell-language-server` segfaults and exits unceremoniously.
### Debug information
There are two bits of good news with this bug. The first is that on macOS, a crash report is automatically written to `~/Library/Logs/DiagnosticReports`. The other is that it is very consistently reproducible. Here is the relevant excerpt from the crash report:
```
Crashed Thread: 32 ghc_worker
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000040
Exception Codes: 0x0000000000000001, 0x0000000000000040
Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [61666]
VM Region Info: 0x40 is not in any region. Bytes before following region: 105553518919616
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
MALLOC_NANO (reserved) 600018000000-600020000000 [128.0M] rw-/rwx SM=NUL ...(unallocated)
...
Thread 32 Crashed:: ghc_worker
0 ??? 0x1046a3bd0 updateThunk + 392
1 ??? 0x10469caa8 schedule + 1188
2 ??? 0x10469caa8 schedule + 1188
3 libsystem_pthread.dylib 0x18a64ada0 thread_start + 8
```
It seems to always crash at `updateThunk + 392`.
## Environment
* GHC version used: 9.6.1
Optional:
* Operating System: macOS 13
* System Architecture: aarch64Ben GamariBen Gamari