GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2019-07-07T18:16:17Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/14613Validate Failure On OSX -- implicit fall through error for machO linker suppo...2019-07-07T18:16:17ZCarter SchonwaldValidate Failure On OSX -- implicit fall through error for machO linker support (master == ghc8.5)seems like validate for OSX needs some TLC, heres a bug from the linker code that maybe could use an eyeball or two. Phyx suggests someone familiar with the code base could simply do
` __attribute__ ((fallthrough)); `, which is allegedly...seems like validate for OSX needs some TLC, heres a bug from the linker code that maybe could use an eyeball or two. Phyx suggests someone familiar with the code base could simply do
` __attribute__ ((fallthrough)); `, which is allegedly also supported by clang?
```
"inplace/bin/ghc-stage1" -optc-fno-stack-protector -optc-Wall -optc-Werror -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wundef -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DDYNAMIC -optc-DRtsWay=\"rts_dyn\" -fPIC -dynamic -O0 -H64m -Wall -fllvm-fill-undef-with-garbage -Werror -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/posix/GetTime.c -o rts/dist/build/posix/GetTime.dyn_o
rts/linker/MachO.c: In function 'ocGetNames_MachO':
rts/linker/MachO.c:1532:17: error:
error: this statement may fall through [-Werror=implicit-fallthrough=]
secArray[i].info->relocation_info
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
= (MachORelocationInfo*)(oc->image + section->reloff);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
1532 | = (MachORelocationInfo*)(oc->image + section->reloff);
| ^
rts/linker/MachO.c:1534:13: error:
note: here
default: {
^~~~~~~
|
1534 | default: {
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------------- |
| Version | 8.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Linking) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | erikd@mega-nerd.com |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Validate Failure On OSX -- implicit fall through error for machO linker support (master == ghc8.5)","status":"New","operating_system":"","component":"Compiler (Linking)","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":["erikd@mega-nerd.com"],"type":"Bug","description":"seems like validate for OSX needs some TLC, heres a bug from the linker code that maybe could use an eyeball or two. Phyx suggests someone familiar with the code base could simply do \r\n` __attribute__ ((fallthrough)); `, which is allegedly also supported by clang?\r\n\r\n{{{\r\n\r\n\"inplace/bin/ghc-stage1\" -optc-fno-stack-protector -optc-Wall -optc-Werror -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wundef -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DDYNAMIC -optc-DRtsWay=\\\"rts_dyn\\\" -fPIC -dynamic -O0 -H64m -Wall -fllvm-fill-undef-with-garbage -Werror -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/posix/GetTime.c -o rts/dist/build/posix/GetTime.dyn_o\r\nrts/linker/MachO.c: In function 'ocGetNames_MachO':\r\n\r\nrts/linker/MachO.c:1532:17: error:\r\n error: this statement may fall through [-Werror=implicit-fallthrough=]\r\n secArray[i].info->relocation_info\r\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n = (MachORelocationInfo*)(oc->image + section->reloff);\r\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n |\r\n1532 | = (MachORelocationInfo*)(oc->image + section->reloff);\r\n | ^\r\n\r\nrts/linker/MachO.c:1534:13: error:\r\n note: here\r\n default: {\r\n ^~~~~~~\r\n |\r\n1534 | default: {\r\n\r\n\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/14758Retainer profiler can overflow the C stack2019-07-07T18:15:44ZBen GamariRetainer profiler can overflow the C stackI'm not entirely sure what conditions trigger this, but I am observing a reliable segmentation fault with a program with large heap compiled with 8.4.1-alpha3 and run with retainer profiling enabled. Judging by the fact that the crashing...I'm not entirely sure what conditions trigger this, but I am observing a reliable segmentation fault with a program with large heap compiled with 8.4.1-alpha3 and run with retainer profiling enabled. Judging by the fact that the crashing instruction is a `mov _, ($rsp)`, I'm reasonable certain that the issue is a C stack overflow. The top of the stack looks like,
```
#0 0x000000000249212c in retainClosure (c0=0x42af3459b8, cp0=cp0@entry=0x42af347000, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1488
#1 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af347000, bitmap=<optimized out>, size=<optimized out>, p=0x42af347260) at rts/RetainerProfile.c:1209
#2 retainStack (c=c@entry=0x42af347000, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347370) at rts/RetainerProfile.c:1350
#3 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af345b28, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#4 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3473e0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
#5 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3473e0, bitmap=<optimized out>, size=<optimized out>, p=0x42af347690) at rts/RetainerProfile.c:1209
#6 retainStack (c=c@entry=0x42af3473e0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347750) at rts/RetainerProfile.c:1350
#7 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af345d88, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#8 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3477c0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
#9 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3477c0, bitmap=<optimized out>, size=<optimized out>, p=0x42af347a70) at rts/RetainerProfile.c:1209
#10 retainStack (c=c@entry=0x42af3477c0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347b30) at rts/RetainerProfile.c:1350
#11 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3481a8, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#12 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af347ba0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
#13 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af347ba0, bitmap=<optimized out>, size=<optimized out>, p=0x42af347e50) at rts/RetainerProfile.c:1209
#14 retainStack (c=c@entry=0x42af347ba0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347f10) at rts/RetainerProfile.c:1350
#15 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af348408, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#16 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af349000, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
#17 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af349000, bitmap=<optimized out>, size=<optimized out>, p=0x42af3492b0) at rts/RetainerProfile.c:1209
#18 retainStack (c=c@entry=0x42af349000, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af349370) at rts/RetainerProfile.c:1350
#19 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af348668, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#20 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3493e0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
#21 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3493e0, bitmap=<optimized out>, size=<optimized out>, p=0x42af349690) at rts/RetainerProfile.c:1209
#22 retainStack (c=c@entry=0x42af3493e0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af349750) at rts/RetainerProfile.c:1350
#23 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3488c8, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#24 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3497c0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
#25 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3497c0, bitmap=<optimized out>, size=<optimized out>, p=0x42af349a70) at rts/RetainerProfile.c:1209
#26 retainStack (c=c@entry=0x42af3497c0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af349b30) at rts/RetainerProfile.c:1350
#27 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af348b28, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686
#28 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af349ba0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695
...
```
and this goes on for at least 30000 frames. It looks very much like this is a bug in the retainer profiler.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.4.1-alpha1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Profiling |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Retainer profiler can overflow the C stack","status":"New","operating_system":"","component":"Profiling","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.1-alpha1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I'm not entirely sure what conditions trigger this, but I am observing a reliable segmentation fault with a program with large heap compiled with 8.4.1-alpha3 and run with retainer profiling enabled. Judging by the fact that the crashing instruction is a `mov _, ($rsp)`, I'm reasonable certain that the issue is a C stack overflow. The top of the stack looks like,\r\n{{{\r\n#0 0x000000000249212c in retainClosure (c0=0x42af3459b8, cp0=cp0@entry=0x42af347000, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1488 \r\n#1 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af347000, bitmap=<optimized out>, size=<optimized out>, p=0x42af347260) at rts/RetainerProfile.c:1209 \r\n#2 retainStack (c=c@entry=0x42af347000, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347370) at rts/RetainerProfile.c:1350 \r\n#3 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af345b28, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#4 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3473e0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n#5 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3473e0, bitmap=<optimized out>, size=<optimized out>, p=0x42af347690) at rts/RetainerProfile.c:1209 \r\n#6 retainStack (c=c@entry=0x42af3473e0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347750) at rts/RetainerProfile.c:1350 \r\n#7 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af345d88, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#8 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3477c0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n#9 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3477c0, bitmap=<optimized out>, size=<optimized out>, p=0x42af347a70) at rts/RetainerProfile.c:1209 \r\n#10 retainStack (c=c@entry=0x42af3477c0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347b30) at rts/RetainerProfile.c:1350 \r\n#11 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3481a8, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#12 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af347ba0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n#13 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af347ba0, bitmap=<optimized out>, size=<optimized out>, p=0x42af347e50) at rts/RetainerProfile.c:1209 \r\n#14 retainStack (c=c@entry=0x42af347ba0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af347f10) at rts/RetainerProfile.c:1350 \r\n#15 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af348408, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#16 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af349000, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n#17 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af349000, bitmap=<optimized out>, size=<optimized out>, p=0x42af3492b0) at rts/RetainerProfile.c:1209 \r\n#18 retainStack (c=c@entry=0x42af349000, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af349370) at rts/RetainerProfile.c:1350 \r\n#19 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af348668, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#20 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3493e0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n#21 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3493e0, bitmap=<optimized out>, size=<optimized out>, p=0x42af349690) at rts/RetainerProfile.c:1209 \r\n#22 retainStack (c=c@entry=0x42af3493e0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af349750) at rts/RetainerProfile.c:1350 \r\n#23 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3488c8, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#24 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af3497c0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n#25 0x00000000024932b0 in retain_small_bitmap (c_child_r=0x42bc4fd1a0, c=0x42af3497c0, bitmap=<optimized out>, size=<optimized out>, p=0x42af349a70) at rts/RetainerProfile.c:1209 \r\n#26 retainStack (c=c@entry=0x42af3497c0, c_child_r=c_child_r@entry=0x42bc4fd1a0, stackStart=<optimized out>, stackEnd=0x42af349b30) at rts/RetainerProfile.c:1350 \r\n#27 0x0000000002492870 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af348b28, r0=r0@entry=0x2a5ac20 <CCS_SYSTEM>) at rts/RetainerProfile.c:1686 \r\n#28 0x0000000002492887 in retainClosure (c0=<optimized out>, cp0=cp0@entry=0x42af349ba0, r0=r0@entry=0x42bc4fd1a0) at rts/RetainerProfile.c:1695 \r\n...\r\n}}}\r\nand this goes on for at least 30000 frames. It looks very much like this is a bug in the retainer profiler.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3Alexander VershilovAlexander Vershilovhttps://gitlab.haskell.org/ghc/ghc/-/issues/15105`typecheckModule` from GHC API crashes on MacOS for files with TH2019-07-07T18:14:15ZAlec Theriault`typecheckModule` from GHC API crashes on MacOS for files with THI believe this is the same issue that is causing manually built `haddock` and `doctest` to crash on MacOS when fed TH (originally reported https://github.com/haskell/haddock/issues/767 and https://github.com/sol/doctest/issues/199).
I'v...I believe this is the same issue that is causing manually built `haddock` and `doctest` to crash on MacOS when fed TH (originally reported https://github.com/haskell/haddock/issues/767 and https://github.com/sol/doctest/issues/199).
I've attached a minimal program that uses the GHC API and exhibits the same problem.
```
$ ghc-8.4.2 -package ghc -package containers -package ghc-paths Prog.hs
[1 of 1] Compiling Main ( Prog.hs, Prog.o )
Linking Prog ...
$ ./Prog Main-no-TH.hs -package template-haskell
$ ./Prog Main-TH.hs -package template-haskell
Prog:
lookupSymbol failed in relocateSection (RELOC_GOT)
/usr/local/lib/ghc-8.4.2/integer-gmp-1.0.2.0/HSinteger-gmp-1.0.2.0.o: unknown symbol `___gmp_rands'
Prog: Prog: unable to load package `integer-gmp-1.0.2.0'
```
In case it isn't clear, I do not expect `Main-TH.hs` to crash `Prog`.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.4.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHC API |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"`typecheckModule` from GHC API crashes on MacOS for files with TH","status":"New","operating_system":"","component":"GHC API","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I believe this is the same issue that is causing manually built `haddock` and `doctest` to crash on MacOS when fed TH (originally reported https://github.com/haskell/haddock/issues/767 and https://github.com/sol/doctest/issues/199).\r\n\r\nI've attached a minimal program that uses the GHC API and exhibits the same problem.\r\n\r\n{{{\r\n$ ghc-8.4.2 -package ghc -package containers -package ghc-paths Prog.hs\r\n[1 of 1] Compiling Main ( Prog.hs, Prog.o )\r\nLinking Prog ...\r\n$ ./Prog Main-no-TH.hs -package template-haskell\r\n$ ./Prog Main-TH.hs -package template-haskell\r\nProg:\r\nlookupSymbol failed in relocateSection (RELOC_GOT)\r\n/usr/local/lib/ghc-8.4.2/integer-gmp-1.0.2.0/HSinteger-gmp-1.0.2.0.o: unknown symbol `___gmp_rands'\r\nProg: Prog: unable to load package `integer-gmp-1.0.2.0'\r\n}}}\r\n\r\nIn case it isn't clear, I do not expect `Main-TH.hs` to crash `Prog`.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/152711e1000000000 :: Double yields 0.0 instead of Infinity2019-07-07T18:13:30Zclaude1e1000000000 :: Double yields 0.0 instead of Infinity(This bug report is about the incorrect result not the poor performance.)
Very large positive exponent in floating point literal at Double type gives `0` instead of `Infinity` in `ghci-8.4.3` (self-compiled on Debian Buster x86_64 / amd...(This bug report is about the incorrect result not the poor performance.)
Very large positive exponent in floating point literal at Double type gives `0` instead of `Infinity` in `ghci-8.4.3` (self-compiled on Debian Buster x86_64 / amd64):
```
$ ghci
GHCi, version 8.4.3: http://www.haskell.org/ghc/ :? for help
Prelude> :set +s
Prelude> 1e100000000 :: Double
Infinity
(5.70 secs, 68,552 bytes)
Prelude> 1e1000000000 :: Double
0.0
(69.35 secs, 60,088 bytes)
```
Writing `10^` instead of `1e` completes almost instantly with the correct result (`Infinity`) in both cases.
More precisely,
```
Prelude> 1e646457008 :: Double
Infinity
(40.80 secs, 64,272 bytes)
Prelude> 1e646457009 :: Double
0.0
(40.46 secs, 60,088 bytes)
```
Note:
```hs
(floor $ 2^31 / logBase 2 10 + 16) == 646457009
```
This vague numerology makes me think something C `int`-related is overflowing somewhere (GMP? integer-gmp? GHC?).
Standalone test program:
```hs
main = do
print 1e646457008
print 1e646457009
```
Interestingly, it doesn't occur, or at least not near the same threshold, in 32-bit `ghci-8.0.1` (Debian Stretch i686), though it aborts when getting too large (the 32-bit i686 machine has 1GB RAM and 4GB swap, the 64-bit x86_64/amd64 has 32GB RAM). The sheer time it takes to run makes bisecting the exact threshold on i686 not something I want to take on (though if someone writes some code that can do it programmatically I'd be happy to run it overnight if it would help).
```
$ ghci
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Prelude> :set +s
Prelude> 1e646457008 :: Double
Infinity
(415.26 secs, 17,908 bytes)
Prelude> 1e646457009 :: Double
Infinity
(417.66 secs, 17,820 bytes)
Prelude> 1e746457298 :: Double
Infinity
(490.00 secs, 17,820 bytes)
Prelude> 1e1000000000 :: Double
GNU MP: Cannot allocate memory (size=419438600)
Aborted
$
```
`ghci-8.0.2` on Debian Buster amd64 exhibits the problem also.8.6.3Zhou FangyiZhou Fangyihttps://gitlab.haskell.org/ghc/ghc/-/issues/15404ghc-8.6 uninstallable on macos due to hard coded libgmp directory2019-07-07T18:05:04ZTrevor L. McDonellghc-8.6 uninstallable on macos due to hard coded libgmp directoryIt is very difficult to install the ghc-8.6.1 release candidates (both RC1 and RC2) on MacOS because several components attempt to link directly to `/usr/local/opt/gmp/lib/libgmp.10.dylib`. This is not a standard path.
See the offending...It is very difficult to install the ghc-8.6.1 release candidates (both RC1 and RC2) on MacOS because several components attempt to link directly to `/usr/local/opt/gmp/lib/libgmp.10.dylib`. This is not a standard path.
See the offending `LC_LOAD_DYLIB` command here:
```
$ jtool -l libraries/base/dist-install/build/libHSbase-4.12.0.0-ghc8.6.0.20180714.dylib
LC 00: LC_SEGMENT_64 Mem: 0x000000000-0x4e1000 __TEXT
Mem: 0x0000010b0-0x0004d12ba __TEXT.__text (Normal)
Mem: 0x0004d12ba-0x0004d1686 __TEXT.__stubs (Symbol Stubs)
Mem: 0x0004d1688-0x0004d1cee __TEXT.__stub_helper (Normal)
Mem: 0x0004d1cee-0x0004df75b __TEXT.__cstring (C-String Literals)
Mem: 0x0004df760-0x0004e0f40 __TEXT.__const
Mem: 0x0004e0f40-0x0004e1000 __TEXT.__unwind_info
LC 01: LC_SEGMENT_64 Mem: 0x0004e1000-0x5a7000 __DATA
Mem: 0x0004e1000-0x0004e30f0 __DATA.__got (Non-Lazy Symbol Ptrs)
Mem: 0x0004e30f0-0x0004e3100 __DATA.__nl_symbol_ptr (Non-Lazy Symbol Ptrs)
Mem: 0x0004e3100-0x0004e3610 __DATA.__la_symbol_ptr (Lazy Symbol Ptrs)
Mem: 0x0004e3610-0x0004e3618 __DATA.__mod_init_func (Module Init Function Ptrs)
Mem: 0x0004e3620-0x0004f4bc0 __DATA.__const
Mem: 0x0004f4bc0-0x0005a6920 __DATA.__data
Mem: 0x0005a6920-0x0005a6928 __DATA.__bss (Zero Fill)
LC 02: LC_SEGMENT_64 Mem: 0x0005a7000-0xb8c000 __LINKEDIT
LC 03: LC_ID_DYLIB @rpath/libHSbase-4.12.0.0-ghc8.6.0.20180714.dylib
LC 04: LC_DYLD_INFO
LC 05: LC_SYMTAB
Symbol table is at offset 0x6a5348 (6968136), 118090 entries
String table is at offset 0x873d78 (8863096), 3241616 bytes
LC 06: LC_DYSYMTAB
81438 local symbols at index 0
35948 external symbols at index 81438
704 undefined symbols at index 117386
No TOC
No modtab
1380 Indirect symbols at offset 0x8727e8
LC 07: LC_UUID UUID: B4C0C347-131F-317B-BA52-EE23F5C5CABA
LC 08: LC_VERSION_MIN_MACOSX Minimum OS X version: 10.12.0
LC 09: LC_SOURCE_VERSION Source Version: 0.0.0.0.0
LC 10: LC_LOAD_DYLIB /usr/lib/libiconv.2.dylib
LC 11: LC_LOAD_DYLIB @rpath/libHSinteger-gmp-1.0.2.0-ghc8.6.0.20180714.dylib
LC 12: LC_LOAD_DYLIB @rpath/libHSghc-prim-0.5.3-ghc8.6.0.20180714.dylib
LC 13: LC_LOAD_DYLIB /usr/local/opt/gmp/lib/libgmp.10.dylib
LC 14: LC_LOAD_DYLIB /usr/lib/libSystem.B.dylib
LC 15: LC_RPATH @loader_path/../integer-gmp-1.0.2.0
LC 16: LC_RPATH @loader_path/../ghc-prim-0.5.3
LC 17: LC_RPATH @loader_path/../rts
LC 18: LC_FUNCTION_STARTS Offset: 6876632, Size: 91504 (0x68edd8-0x6a5348) with 83924 functions
LC 19: LC_DATA_IN_CODE Offset: 6968136, Size: 0 (0x6a5348-0x6a5348)
```
The other offenders are `libHSbinary` and `libHSinteger-gmp`.
Without changing these load commands, you'll get the following error:
```
$ ./configure --prefix=...
$ make install
<snip>
dyld: Library not loaded: /usr/local/opt/gmp/lib/libgmp.10.dylib
Referenced from: ./libraries/base/dist-install/build/libHSbase-4.12.0.0-ghc8.6.0.20180714.dylib
Reason: image not found
make[1]: *** [install_packages] Abort trap: 6
make: *** [install] Error 2
```
I tried passing the `--with-gmp-libraries` option to `configure`, but that did not help.
I guess this is just a packaging problem, but figured you should be aware before the official release...
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | None |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"ghc-8.6 uninstallable on macos due to hard coded libgmp directory","status":"New","operating_system":"","component":"None","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"It is very difficult to install the ghc-8.6.1 release candidates (both RC1 and RC2) on MacOS because several components attempt to link directly to `/usr/local/opt/gmp/lib/libgmp.10.dylib`. This is not a standard path.\r\n\r\nSee the offending `LC_LOAD_DYLIB` command here:\r\n\r\n{{{\r\n$ jtool -l libraries/base/dist-install/build/libHSbase-4.12.0.0-ghc8.6.0.20180714.dylib\r\nLC 00: LC_SEGMENT_64 Mem: 0x000000000-0x4e1000 __TEXT\r\n Mem: 0x0000010b0-0x0004d12ba __TEXT.__text (Normal)\r\n Mem: 0x0004d12ba-0x0004d1686 __TEXT.__stubs (Symbol Stubs)\r\n Mem: 0x0004d1688-0x0004d1cee __TEXT.__stub_helper (Normal)\r\n Mem: 0x0004d1cee-0x0004df75b __TEXT.__cstring (C-String Literals)\r\n Mem: 0x0004df760-0x0004e0f40 __TEXT.__const\r\n Mem: 0x0004e0f40-0x0004e1000 __TEXT.__unwind_info\r\nLC 01: LC_SEGMENT_64 Mem: 0x0004e1000-0x5a7000 __DATA\r\n Mem: 0x0004e1000-0x0004e30f0 __DATA.__got (Non-Lazy Symbol Ptrs)\r\n Mem: 0x0004e30f0-0x0004e3100 __DATA.__nl_symbol_ptr (Non-Lazy Symbol Ptrs)\r\n Mem: 0x0004e3100-0x0004e3610 __DATA.__la_symbol_ptr (Lazy Symbol Ptrs)\r\n Mem: 0x0004e3610-0x0004e3618 __DATA.__mod_init_func (Module Init Function Ptrs)\r\n Mem: 0x0004e3620-0x0004f4bc0 __DATA.__const\r\n Mem: 0x0004f4bc0-0x0005a6920 __DATA.__data\r\n Mem: 0x0005a6920-0x0005a6928 __DATA.__bss (Zero Fill)\r\nLC 02: LC_SEGMENT_64 Mem: 0x0005a7000-0xb8c000 __LINKEDIT\r\nLC 03: LC_ID_DYLIB @rpath/libHSbase-4.12.0.0-ghc8.6.0.20180714.dylib\r\nLC 04: LC_DYLD_INFO\r\nLC 05: LC_SYMTAB\r\n Symbol table is at offset 0x6a5348 (6968136), 118090 entries\r\n String table is at offset 0x873d78 (8863096), 3241616 bytes\r\nLC 06: LC_DYSYMTAB\r\n 81438 local symbols at index 0\r\n 35948 external symbols at index 81438\r\n 704 undefined symbols at index 117386\r\n No TOC\r\n No modtab\r\n 1380 Indirect symbols at offset 0x8727e8\r\n\r\nLC 07: LC_UUID UUID: B4C0C347-131F-317B-BA52-EE23F5C5CABA\r\nLC 08: LC_VERSION_MIN_MACOSX Minimum OS X version: 10.12.0\r\nLC 09: LC_SOURCE_VERSION Source Version: 0.0.0.0.0\r\nLC 10: LC_LOAD_DYLIB /usr/lib/libiconv.2.dylib\r\nLC 11: LC_LOAD_DYLIB @rpath/libHSinteger-gmp-1.0.2.0-ghc8.6.0.20180714.dylib\r\nLC 12: LC_LOAD_DYLIB @rpath/libHSghc-prim-0.5.3-ghc8.6.0.20180714.dylib\r\nLC 13: LC_LOAD_DYLIB /usr/local/opt/gmp/lib/libgmp.10.dylib\r\nLC 14: LC_LOAD_DYLIB /usr/lib/libSystem.B.dylib\r\nLC 15: LC_RPATH @loader_path/../integer-gmp-1.0.2.0\r\nLC 16: LC_RPATH @loader_path/../ghc-prim-0.5.3\r\nLC 17: LC_RPATH @loader_path/../rts\r\nLC 18: LC_FUNCTION_STARTS Offset: 6876632, Size: 91504 (0x68edd8-0x6a5348) with 83924 functions\r\nLC 19: LC_DATA_IN_CODE Offset: 6968136, Size: 0 (0x6a5348-0x6a5348)\r\n}}}\r\n\r\nThe other offenders are `libHSbinary` and `libHSinteger-gmp`.\r\n\r\nWithout changing these load commands, you'll get the following error:\r\n\r\n{{{\r\n$ ./configure --prefix=...\r\n$ make install\r\n<snip>\r\ndyld: Library not loaded: /usr/local/opt/gmp/lib/libgmp.10.dylib\r\n Referenced from: ./libraries/base/dist-install/build/libHSbase-4.12.0.0-ghc8.6.0.20180714.dylib\r\n Reason: image not found\r\nmake[1]: *** [install_packages] Abort trap: 6\r\nmake: *** [install] Error 2\r\n}}}\r\n\r\nI tried passing the `--with-gmp-libraries` option to `configure`, but that did not help.\r\n\r\nI guess this is just a packaging problem, but figured you should be aware before the official release...","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15529runtime bug when profiling retainers2020-01-31T00:04:41ZPhilipperuntime bug when profiling retainersI have this project https://github.com/flip111/ghc-runtime-bug1 When i execute the following commands:
```
stack clean
stack build
stack build --ghc-options '-j4 -O0 -rtsopts=all -fprof-auto -fprof-auto-calls -fprof-cafs' --executable-p...I have this project https://github.com/flip111/ghc-runtime-bug1 When i execute the following commands:
```
stack clean
stack build
stack build --ghc-options '-j4 -O0 -rtsopts=all -fprof-auto -fprof-auto-calls -fprof-cafs' --executable-profiling
stack exec vfix -- +RTS -hr -sstderr
```
After the compilation messages i get the following error:
```
vfix: internal error: Invalid object *c in pop()
(GHC version 8.4.3 for x86_64_unknown_linux)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Command terminated by signal 6
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.4.3 |
| 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":"runtime bug when profiling retainers","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I have this project https://github.com/flip111/ghc-runtime-bug1 When i execute the following commands:\r\n\r\n\r\n{{{\r\nstack clean\r\nstack build\r\nstack build --ghc-options '-j4 -O0 -rtsopts=all -fprof-auto -fprof-auto-calls -fprof-cafs' --executable-profiling\r\nstack exec vfix -- +RTS -hr -sstderr\r\n}}}\r\n\r\nAfter the compilation messages i get the following error:\r\n\r\n\r\n{{{\r\nvfix: internal error: Invalid object *c in pop()\r\n (GHC version 8.4.3 for x86_64_unknown_linux)\r\n Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\nCommand terminated by signal 6\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15608Segfault in retainer profiling2019-07-07T18:03:45ZÖmer Sinan AğacanSegfault in retainer profilingTo reproduce, build ghc using "prof" flavor, then
```
$ ghc-stage2 --interactive +RTS -hr
GHCi, version 8.7.20180905: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/omer/rcbackup/.ghci
λ:1> sequence_ (repl...To reproduce, build ghc using "prof" flavor, then
```
$ ghc-stage2 --interactive +RTS -hr
GHCi, version 8.7.20180905: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/omer/rcbackup/.ghci
λ:1> sequence_ (replicate 100000000 (return ()))
zsh: segmentation fault (core dumped) ghc-stage2 --interactive +RTS -hr
```
If I use debug runtime in stage2 compiler I can't even run the repl:
```
haskell $ ghc-stage2 --interactive +RTS -hr
rr: Saving execution to trace directory `/home/omer/.local/share/rr/ghc-stage2-13'.
GHCi, version 8.7.20180906: http://www.haskell.org/ghc/ :? for help
zsh: segmentation fault ghc-stage2 --interactive +RTS -hr
```8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15633Type-checker plugins aren't loaded in GHCi 8.6.12019-07-07T18:03:39ZOleg GrenrusType-checker plugins aren't loaded in GHCi 8.6.1Type-Checker plugins seem to work in GHCi-8.4.3 https://gist.github.com/phadej/f2040eba327a88d3652cda021403f97f
However with GHC-8.6.1
The Glorious Glasgow Haskell Compilation System, version 8.6.0.20180907
76a233143f1ec940f342ce3ce3af...Type-Checker plugins seem to work in GHCi-8.4.3 https://gist.github.com/phadej/f2040eba327a88d3652cda021403f97f
However with GHC-8.6.1
The Glorious Glasgow Haskell Compilation System, version 8.6.0.20180907
76a233143f1ec940f342ce3ce3afaf306923b392 (which seems to be the last commit in 8.6 branch atm)
the plugins aren't loaded.
```
% ghci-8.6.1 -fplugin=ThereIsNoPlugin
GHCi, version 8.6.0.20180907: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/ogre/.ghci
λ>
```
starts a session without a warning. 8.4.3 however fails:
```
% ghci-8.4.3 -fplugin=ThereIsNoPlugin
GHCi, version 8.4.3: http://www.haskell.org/ghc/ :? for help
<command line>: Could not find module ‘ThereIsNoPlugin’
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.1-beta1 |
| 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":"Type-checker plugins aren't loaded in 8.6.1","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.1-beta1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Type-Checker plugins seem to work in GHCi-8.4.3 https://gist.github.com/phadej/f2040eba327a88d3652cda021403f97f\r\n\r\nHowever with GHC-8.6.1\r\n\r\nThe Glorious Glasgow Haskell Compilation System, version 8.6.0.20180907\r\n76a233143f1ec940f342ce3ce3afaf306923b392 (which seems to be the last commit in 8.6 branch atm)\r\n\r\nthe plugins aren't loaded.\r\n\r\n{{{\r\n% ghci-8.6.1 -fplugin=ThereIsNoPlugin\r\nGHCi, version 8.6.0.20180907: http://www.haskell.org/ghc/ :? for help\r\nLoaded GHCi configuration from /home/ogre/.ghci\r\nλ> \r\n}}}\r\n\r\nstarts a session without a warning. 8.4.3 however fails:\r\n\r\n{{{\r\n% ghci-8.4.3 -fplugin=ThereIsNoPlugin\r\nGHCi, version 8.4.3: http://www.haskell.org/ghc/ :? for help\r\n<command line>: Could not find module ‘ThereIsNoPlugin’\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15715problematic openFile with named pipes2019-07-07T18:03:19Zadpproblematic openFile with named pipes- while `openFile`'ng named pipes for `ReadMode` works fine, on `WriteMode` or `AppendMode` it throws `openFile: does not exist (No such device or address)`; and on `WriteReadMode`, it opens it, but seem not able to write to it (the proc...- while `openFile`'ng named pipes for `ReadMode` works fine, on `WriteMode` or `AppendMode` it throws `openFile: does not exist (No such device or address)`; and on `WriteReadMode`, it opens it, but seem not able to write to it (the process hearing on the other side didn't hear anything).
- `writeFile` and `appendFile` works though.
- using stack `resolver: lts-12.4`, on ubuntu 16.04 LTS
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------------------ |
| Version | 8.4.3 |
| Type | Bug |
| TypeOfFailure | IncorrectResultAtRuntime |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"problematic openFile with named pipes","status":"New","operating_system":"","component":"libraries/base","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"- while `openFile`'ng named pipes for `ReadMode` works fine, on `WriteMode` or `AppendMode` it throws `openFile: does not exist (No such device or address)`; and on `WriteReadMode`, it opens it, but seem not able to write to it (the process hearing on the other side didn't hear anything).\r\n\r\n- `writeFile` and `appendFile` works though.\r\n\r\n- using stack `resolver: lts-12.4`, on ubuntu 16.04 LTS\r\n","type_of_failure":"IncorrectResultAtRuntime","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15780ghc-8.4.4 failed to build on armv7 and aarch642019-07-07T18:03:02ZJens Petersenghc-8.4.4 failed to build on armv7 and aarch64ghc-8.4.4 is failing to build for me on Fedora ARM archs (both 32bit and 64bit).
https://koji.fedoraproject.org/koji/taskinfo?taskID=30284522
They both fail in the same way:
```
"inplace/bin/ghc-stage1" -static -H32m -O -Wall -Iinc...ghc-8.4.4 is failing to build for me on Fedora ARM archs (both 32bit and 64bit).
https://koji.fedoraproject.org/koji/taskinfo?taskID=30284522
They both fail in the same way:
```
"inplace/bin/ghc-stage1" -static -H32m -O -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/HeapStackCheck.cmm -o rts/dist/build/HeapStackCheck.o
"inplace/bin/ghc-stage1" -static -H32m -O -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/StgMiscClosures.cmm -o rts/dist/build/StgMiscClosures.o
ghc-stage1: panic! (the 'impossible' happened)
(GHC version 8.4.4 for aarch64-unknown-linux):
padLiveArgs -- i > regNum ??
CallStack (from HasCallStack):
error, called at compiler/llvmGen/LlvmCodeGen/Base.hs:194:27 in ghc:LlvmCodeGen.Base
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
make[1]: *** [rts/ghc.mk:295: rts/dist/build/HeapStackCheck.o] Error 1
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.4.4 |
| 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":"ghc-8.4.4 failed to build on armv7 and aarch64","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.4","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"ghc-8.4.4 is failing to build for me on Fedora ARM archs (both 32bit and 64bit).\r\n\r\nhttps://koji.fedoraproject.org/koji/taskinfo?taskID=30284522\r\n\r\nThey both fail in the same way:\r\n{{{\r\n\"inplace/bin/ghc-stage1\" -static -H32m -O -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/HeapStackCheck.cmm -o rts/dist/build/HeapStackCheck.o\r\n\"inplace/bin/ghc-stage1\" -static -H32m -O -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -this-unit-id rts -dcmm-lint -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/StgMiscClosures.cmm -o rts/dist/build/StgMiscClosures.o\r\nghc-stage1: panic! (the 'impossible' happened)\r\n (GHC version 8.4.4 for aarch64-unknown-linux):\r\n\tpadLiveArgs -- i > regNum ??\r\nCallStack (from HasCallStack):\r\n error, called at compiler/llvmGen/LlvmCodeGen/Base.hs:194:27 in ghc:LlvmCodeGen.Base\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\nmake[1]: *** [rts/ghc.mk:295: rts/dist/build/HeapStackCheck.o] Error 1\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15859Dependent quantification, GHC panic2019-07-07T18:02:41ZIcelandjackDependent quantification, GHC panicWhile exploring [Ryan's gist for term-level](https://gist.github.com/RyanGlScott/ded669b5ae3db1ce38c4b6021f144776) `f :: forall a -> a -> Type`.
```hs
{-# Language PolyKinds #-}
{-# Language TypeApplications #-}
{-# Language ...While exploring [Ryan's gist for term-level](https://gist.github.com/RyanGlScott/ded669b5ae3db1ce38c4b6021f144776) `f :: forall a -> a -> Type`.
```hs
{-# Language PolyKinds #-}
{-# Language TypeApplications #-}
{-# Language ImpredicativeTypes #-}
import Data.Kind
data A k :: k -> Type
f :: KindOf A
f a = undefined
type KindOf (a :: k) = k
a = f @Int
```
gives
```
$ ~/code/unmodifiedghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 630_bug.hs
GHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 630_bug.hs, interpreted )
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.7.20181029 for x86_64-unknown-linux):
ASSERT failed!
KindOf A
forall k -> k -> *
k_a1xQ[sk:0]
k_a1xQ[sk:0] -> *
k_a1xQ[sk:0]
[req]
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/utils/Outputable.hs:1219:5 in ghc:Outputable
assertPprPanic, called at compiler/typecheck/TcExpr.hs:1336:94 in ghc:TcExpr
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
>
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.1 |
| 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":"Dependent quantification, GHC panic","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.1","keywords":["TypeInType"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"While exploring [https://gist.github.com/RyanGlScott/ded669b5ae3db1ce38c4b6021f144776 Ryan's gist for term-level] `f :: forall a -> a -> Type`.\r\n\r\n{{{#!hs\r\n{-# Language PolyKinds #-}\r\n{-# Language TypeApplications #-}\r\n{-# Language ImpredicativeTypes #-}\r\n\r\nimport Data.Kind\r\n\r\ndata A k :: k -> Type\r\n\r\nf :: KindOf A\r\nf a = undefined\r\n\r\ntype KindOf (a :: k) = k\r\n\r\na = f @Int\r\n}}}\r\n\r\ngives \r\n\r\n{{{\r\n$ ~/code/unmodifiedghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 630_bug.hs\r\nGHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help\r\n[1 of 1] Compiling Main ( 630_bug.hs, interpreted )\r\nghc-stage2: panic! (the 'impossible' happened)\r\n (GHC version 8.7.20181029 for x86_64-unknown-linux):\r\n ASSERT failed!\r\n KindOf A\r\n forall k -> k -> *\r\n k_a1xQ[sk:0]\r\n k_a1xQ[sk:0] -> *\r\n k_a1xQ[sk:0]\r\n [req]\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler/utils/Outputable.hs:1219:5 in ghc:Outputable\r\n assertPprPanic, called at compiler/typecheck/TcExpr.hs:1336:94 in ghc:TcExpr\r\n\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\n\r\n>\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15866libiserv's version number is hard-coded2020-09-28T07:11:37ZRyan Scottlibiserv's version number is hard-codedI recently discovered that GHC 8.6.2 was shipped with `libiserv-8.6.1`. Yes, you read that correctly—8.6.1, not 8.6.2. I was baffled at how this could possibly happen until I realized that we hard-code the version number for `libiserv` d...I recently discovered that GHC 8.6.2 was shipped with `libiserv-8.6.1`. Yes, you read that correctly—8.6.1, not 8.6.2. I was baffled at how this could possibly happen until I realized that we hard-code the version number for `libiserv` directly in its `.cabal` file.
Needless to say, this is quite easy to forget to update. Let's let `autoconf` do the hard work for us and use `@ProjectVersionMunged@` instead.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.1 |
| 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":"libiserv's version number is hard-coded","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I recently discovered that GHC 8.6.2 was shipped with `libiserv-8.6.1`. Yes, you read that correctly—8.6.1, not 8.6.2. I was baffled at how this could possibly happen until I realized that we hard-code the version number for `libiserv` directly in its `.cabal` file.\r\n\r\nNeedless to say, this is quite easy to forget to update. Let's let `autoconf` do the hard work for us and use `@ProjectVersionMunged@` instead.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15870No skolem info panic2019-07-07T18:02:38Zsheafsam.derbyshire@gmail.comNo skolem info panicI've been toying with some type-level lenses and running into some issues with kind unification, when I ran into a panic:
```
bug.hs:30:34: error:ghc.exe: panic! (the 'impossible' happened)
(GHC version 8.6.2 for x86_64-unknown-mingw3...I've been toying with some type-level lenses and running into some issues with kind unification, when I ran into a panic:
```
bug.hs:30:34: error:ghc.exe: panic! (the 'impossible' happened)
(GHC version 8.6.2 for x86_64-unknown-mingw32):
No skolem info:
[k_a1Hgj]
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler\utils\Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler\\typecheck\\TcErrors.hs:2891:5 in ghc:TcErrors
```
Here's a boiled down version (with a bit of extraneous code left in for context, as it's so short):
```hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
data Optic a where
--Index :: Nat -> Optic a
--Name :: Symbol -> Optic a
(:.:) :: Optic a -> Optic b -> Optic a -- composition
class Gettable a (optic :: Optic a) where
type Get a (optic :: Optic a)
{-
some basic instances, e.g.
instance Gettable (a,b) (Index 0) where
type Get (a,b) (Index 0) = a
...
-}
instance forall a b (g1 :: Optic a) (g2 :: Optic b).
( Gettable a g1
, b ~ Get a g1
, Gettable b g2
) => Gettable a (g1 :.: g2) where
type Get a (g1 :.: g2) = Get a g2
```
The program I am actually trying to write has the instance declaration changed to
```hs
instance forall a b (g1 :: Optic a) (g2 :: Optic (Get a g1)).
( Gettable a g1
, b ~ Get a g1
, Gettable b g2
) => Gettable a (g1 :.: g2) where
type Get a (g1 :.: g2) = Get (Get a g1) g2
```
but GHC complains that it can't match kinds:
```
• Expected kind ‘Optic b’, but ‘g2’ has kind ‘Optic (Get a g1)’
• In the second argument of ‘Gettable’, namely ‘g2’
In the instance declaration for ‘Gettable a (g1 :.: g2)’
|
20 | , Gettable b g2
|
```
I don't know if there is a way around that, and I'd be interested to hear any advice.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ----------------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"No skolem info panic","status":"New","operating_system":"","component":"Compiler (Type checker)","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I've been toying with some type-level lenses and running into some issues with kind unification, when I ran into a panic:\r\n\r\n\r\n{{{\r\nbug.hs:30:34: error:ghc.exe: panic! (the 'impossible' happened)\r\n (GHC version 8.6.2 for x86_64-unknown-mingw32):\r\n No skolem info:\r\n [k_a1Hgj]\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler\\utils\\Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler\\\\typecheck\\\\TcErrors.hs:2891:5 in ghc:TcErrors\r\n}}}\r\n\r\nHere's a boiled down version (with a bit of extraneous code left in for context, as it's so short):\r\n{{{#!hs\r\n{-# LANGUAGE DataKinds #-}\r\n{-# LANGUAGE FlexibleInstances #-}\r\n{-# LANGUAGE GADTs #-}\r\n{-# LANGUAGE MultiParamTypeClasses #-}\r\n{-# LANGUAGE PolyKinds #-}\r\n{-# LANGUAGE ScopedTypeVariables #-}\r\n{-# LANGUAGE TypeFamilies #-}\r\n{-# LANGUAGE TypeOperators #-}\r\n\r\ndata Optic a where\r\n --Index :: Nat -> Optic a\r\n --Name :: Symbol -> Optic a\r\n (:.:) :: Optic a -> Optic b -> Optic a -- composition\r\n\r\nclass Gettable a (optic :: Optic a) where\r\n type Get a (optic :: Optic a)\r\n\r\n{-\r\nsome basic instances, e.g.\r\ninstance Gettable (a,b) (Index 0) where\r\n type Get (a,b) (Index 0) = a\r\n...\r\n-}\r\n\r\ninstance forall a b (g1 :: Optic a) (g2 :: Optic b).\r\n ( Gettable a g1\r\n , b ~ Get a g1\r\n , Gettable b g2\r\n ) => Gettable a (g1 :.: g2) where\r\n type Get a (g1 :.: g2) = Get a g2\r\n}}}\r\n\r\nThe program I am actually trying to write has the instance declaration changed to\r\n{{{#!hs\r\ninstance forall a b (g1 :: Optic a) (g2 :: Optic (Get a g1)).\r\n ( Gettable a g1\r\n , b ~ Get a g1\r\n , Gettable b g2\r\n ) => Gettable a (g1 :.: g2) where\r\n type Get a (g1 :.: g2) = Get (Get a g1) g2\r\n}}}\r\nbut GHC complains that it can't match kinds:\r\n\r\n{{{\r\n • Expected kind ‘Optic b’, but ‘g2’ has kind ‘Optic (Get a g1)’\r\n • In the second argument of ‘Gettable’, namely ‘g2’\r\n In the instance declaration for ‘Gettable a (g1 :.: g2)’\r\n |\r\n20 | , Gettable b g2\r\n |\r\n}}}\r\nI don't know if there is a way around that, and I'd be interested to hear any advice.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15875Detection of ranlib by binary distribution is broken2019-07-07T18:02:37ZBen GamariDetection of ranlib by binary distribution is brokenThe `configure` shipped with binary distributions fails to set `RanlibCmd` which therefore means that we end up installing `settings` with an empty `ranlib command` configuration field.
<details><summary>Trac metadata</summary>
| Trac ...The `configure` shipped with binary distributions fails to set `RanlibCmd` which therefore means that we end up installing `settings` with an empty `ranlib command` configuration field.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Detection of ranlib by binary distribution is broken","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The `configure` shipped with binary distributions fails to set `RanlibCmd` which therefore means that we end up installing `settings` with an empty `ranlib command` configuration field.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15876Function versioning instead of compilation flags...2019-07-07T18:02:36ZMichalGajdaFunction versioning instead of compilation flags...Wanting to take advantage of SIMD, we need to compile a different implementation of certain core libraries functions (like `ByteString` c_memchr to make it 16x faster).
This would require recompiling most of the libraries for new flags....Wanting to take advantage of SIMD, we need to compile a different implementation of certain core libraries functions (like `ByteString` c_memchr to make it 16x faster).
This would require recompiling most of the libraries for new flags.
Instead, it would be much simpler to add function versioning a la GCC: https://lwn.net/Articles/691932/
This would allow us to write code like this:
{-\# target(avx512) \#-}
c_memchr = ...SIMD code...
{-\# !target(avx512) \#-}
c_memchr = ...current code...
We currently use special libraries for these kind of speedups, but it would be much better to use SIMD across few key functions in all libraries to get 16x speedups across the board (`c_memchr` for parsing.)
Ideally we could also use it to remove some of _flavoring_ in the future.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Linking) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | abhir00p, marlowsd@gmail.com |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Function versioning instead of compilation flags...","status":"New","operating_system":"","component":"Compiler (Linking)","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["flavors,","simd,","speed"],"differentials":[],"test_case":"","architecture":"","cc":["abhir00p","marlowsd@gmail.com"],"type":"FeatureRequest","description":"Wanting to take advantage of SIMD, we need to compile a different implementation of certain core libraries functions (like `ByteString` c_memchr to make it 16x faster).\r\n\r\nThis would require recompiling most of the libraries for new flags.\r\n\r\nInstead, it would be much simpler to add function versioning a la GCC: https://lwn.net/Articles/691932/\r\n\r\nThis would allow us to write code like this:\r\n{-# target(avx512) #-}\r\nc_memchr = ...SIMD code...\r\n{-# !target(avx512) #-}\r\nc_memchr = ...current code...\r\n\r\nWe currently use special libraries for these kind of speedups, but it would be much better to use SIMD across few key functions in all libraries to get 16x speedups across the board (`c_memchr` for parsing.)\r\n\r\nIdeally we could also use it to remove some of _flavoring_ in the future.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15878Unused data type with a "deriving" clause is falsely considered used2021-06-17T16:32:40ZEyalLotemUnused data type with a "deriving" clause is falsely considered usedmodule M () where data Foo = Bar deriving (Eq)
If there are no explicit references to Foo and none to Bar, the data-type is necessarily unused, so I expect a warning about an unused data-type.
Even if it is referenced, but only from in...module M () where data Foo = Bar deriving (Eq)
If there are no explicit references to Foo and none to Bar, the data-type is necessarily unused, so I expect a warning about an unused data-type.
Even if it is referenced, but only from instance declarations, it is necessarily unused in the program.
One potential exception is functional dependencies, where the instance declaration itself has an effect. But even then, perhaps it is worth warning that the \*type\* is unused.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Unused data type with a \"deriving\" clause is falsely considered used","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"module M () where data Foo = Bar deriving (Eq)\r\n\r\nIf there are no explicit references to Foo and none to Bar, the data-type is necessarily unused, so I expect a warning about an unused data-type.\r\n\r\nEven if it is referenced, but only from instance declarations, it is necessarily unused in the program.\r\n\r\nOne potential exception is functional dependencies, where the instance declaration itself has an effect. But even then, perhaps it is worth warning that the *type* is unused.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15879Make UniqDSet a newtype2019-07-07T18:02:36ZSebastian GrafMake UniqDSet a newtypeFor the same reasons as in #13114 and [D3146](https://phabricator.haskell.org/D3146) we should make `UniqDSet` a newtype of `UniqDFM`.
I wonder if we can also have a prettier `Outputable` instance this way.
<details><summary>Trac metad...For the same reasons as in #13114 and [D3146](https://phabricator.haskell.org/D3146) we should make `UniqDSet` a newtype of `UniqDFM`.
I wonder if we can also have a prettier `Outputable` instance this way.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Make UniqDSet a newtype","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"For the same reasons as in #13114 and Phab:D3146 we should make `UniqDSet` a newtype of `UniqDFM`.\r\n\r\nI wonder if we can also have a prettier `Outputable` instance this way.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15880GHC.Stats: Add info on amount of pinned memory2019-08-03T11:16:56ZNiklas Hambüchenmail@nh2.meGHC.Stats: Add info on amount of pinned memoryhttps://hackage.haskell.org/package/base-4.12.0.0/docs/GHC-Stats.html
`GHC.Stats`'s `GCDetails` tells us, separately, the amount of
- total heap data (including large objects and compact data)
- large ojects
- compact data
- "Total amo...https://hackage.haskell.org/package/base-4.12.0.0/docs/GHC-Stats.html
`GHC.Stats`'s `GCDetails` tells us, separately, the amount of
- total heap data (including large objects and compact data)
- large ojects
- compact data
- "Total amount of memory in use by the RTS" (`gcdetails_mem_in_use_bytes`)
There currently doesn't seem to be a way to get the amount of pinned memory in use.
So some questions:
- Is pinned memory accounted for in `gcdetails_mem_in_use_bytes`?
- If yes, is it pretty much that value minus `gcdetails_live_bytes`, or are there other memory uses that count to the latter?
- If I wanted to add the amount of pinned memory directly to `GHC.Stats`, where would I take that value from?
In general, my goal is to collect _all_ easily (cheaply) collectable memory info so that I can add it to `ekg`.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | nh2 |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"GHC.Stats: Add info on amount of pinned memory","status":"New","operating_system":"","component":"Runtime System","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":["nh2"],"type":"Task","description":"https://hackage.haskell.org/package/base-4.12.0.0/docs/GHC-Stats.html\r\n\r\n`GHC.Stats`'s `GCDetails` tells us, separately, the amount of \r\n\r\n* total heap data (including large objects and compact data)\r\n* large ojects\r\n* compact data\r\n* \"Total amount of memory in use by the RTS\" (`gcdetails_mem_in_use_bytes`)\r\n\r\nThere currently doesn't seem to be a way to get the amount of pinned memory in use.\r\n\r\nSo some questions:\r\n\r\n* Is pinned memory accounted for in `gcdetails_mem_in_use_bytes`?\r\n* If yes, is it pretty much that value minus `gcdetails_live_bytes`, or are there other memory uses that count to the latter?\r\n* If I wanted to add the amount of pinned memory directly to `GHC.Stats`, where would I take that value from?\r\n\r\nIn general, my goal is to collect _all_ easily (cheaply) collectable memory info so that I can add it to `ekg`.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15881GHC Panic: data A n (a :: n) :: a -> Type2019-07-07T18:02:35ZIcelandjackGHC Panic: data A n (a :: n) :: a -> Type```hs
{-# Language KindSignatures #-}
{-# Language PolyKinds #-}
import Data.Kind
data A n (a :: n) :: a -> Type
```
causes a panic on 8.7.20181017
```
$ ~/code/headghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 665_b...```hs
{-# Language KindSignatures #-}
{-# Language PolyKinds #-}
import Data.Kind
data A n (a :: n) :: a -> Type
```
causes a panic on 8.7.20181017
```
$ ~/code/headghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 665_bug.hs
GHCi, version 8.7.20181017: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 665_bug.hs, interpreted )
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.7.20181017 for x86_64-unknown-linux):
ASSERT failed!
Type-correct unfilled coercion hole {co_a1xR}
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/utils/Outputable.hs:1219:5 in ghc:Outputable
assertPprPanic, called at compiler/typecheck/TcHsSyn.hs:1805:99 in ghc:TcHsSyn
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
>
```
and an assertion failure in 8.7.20181029
```
$ ~/code/unmodifiedghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 665_bug.hs
GHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 665_bug.hs, interpreted )
*** Exception: ASSERT failed! file compiler/types/TyCon.hs, line 420
>
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"GHC Panic: data A n (a :: n) :: a -> Type","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["TypeInType"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{#!hs\r\n{-# Language KindSignatures #-}\r\n{-# Language PolyKinds #-}\r\n\r\nimport Data.Kind\r\n\r\ndata A n (a :: n) :: a -> Type\r\n}}}\r\n\r\ncauses a panic on 8.7.20181017\r\n\r\n{{{\r\n$ ~/code/headghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 665_bug.hs\r\nGHCi, version 8.7.20181017: http://www.haskell.org/ghc/ :? for help\r\n[1 of 1] Compiling Main ( 665_bug.hs, interpreted )\r\nghc-stage2: panic! (the 'impossible' happened)\r\n (GHC version 8.7.20181017 for x86_64-unknown-linux):\r\n\tASSERT failed!\r\n Type-correct unfilled coercion hole {co_a1xR}\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler/utils/Outputable.hs:1219:5 in ghc:Outputable\r\n assertPprPanic, called at compiler/typecheck/TcHsSyn.hs:1805:99 in ghc:TcHsSyn\r\n\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\n\r\n>\r\n}}}\r\n\r\nand an assertion failure in 8.7.20181029\r\n{{{\r\n$ ~/code/unmodifiedghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci 665_bug.hs\r\nGHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help\r\n[1 of 1] Compiling Main ( 665_bug.hs, interpreted )\r\n*** Exception: ASSERT failed! file compiler/types/TyCon.hs, line 420\r\n>\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15882:load in ghci should expose the entire namespace of a module2019-07-07T18:02:35ZEyalLotem:load in ghci should expose the entire namespace of a moduleWhen using "import" in ghci, only exported names are available.
When using :load, the use case is typically for "toying around" or testing a module. In that case, the export list restrictions are much less useful.
There is currently no ...When using "import" in ghci, only exported names are available.
When using :load, the use case is typically for "toying around" or testing a module. In that case, the export list restrictions are much less useful.
There is currently no way to just expose the same namespace context of the code in a module in ghci, and having :load do that sounds like it would be very useful. The ordinary "import" namespace semantics are after all available too.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHCi |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":":load in ghci should expose the entire namespace of a module","status":"New","operating_system":"","component":"GHCi","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"When using \"import\" in ghci, only exported names are available.\r\n\r\nWhen using :load, the use case is typically for \"toying around\" or testing a module. In that case, the export list restrictions are much less useful.\r\n \r\nThere is currently no way to just expose the same namespace context of the code in a module in ghci, and having :load do that sounds like it would be very useful. The ordinary \"import\" namespace semantics are after all available too.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15884Completeness of View Patterns With a Complete Set of Output Patterns2023-07-31T10:31:25ZShayan-NajdCompleteness of View Patterns With a Complete Set of Output PatternsFor example, the code
```hs
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE ViewPatterns #-}
f :: Maybe a -> Bool
f (id->Nothing) = False
f (id->(Just _)) = True
```
mistakenly returns the warning
```
warning: [-Wincomplete-patterns]
Patt...For example, the code
```hs
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE ViewPatterns #-}
f :: Maybe a -> Bool
f (id->Nothing) = False
f (id->(Just _)) = True
```
mistakenly returns the warning
```
warning: [-Wincomplete-patterns]
Pattern match(es) are non-exhaustive
In an equation for ‘f’: Patterns not matched: _
|
4 | f (id->Nothing) = False
| ^^^^^^^^^^^^^^^^^^^^^^^^...
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | alanz, bgamari |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Completeness of View Patterns With a Complete Set of Output Patterns","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":["alanz","bgamari"],"type":"Bug","description":"For example, the code\r\n\r\n{{{#!hs\r\n{-# OPTIONS_GHC -Wall #-}\r\n{-# LANGUAGE ViewPatterns #-}\r\nf :: Maybe a -> Bool\r\nf (id->Nothing) = False\r\nf (id->(Just _)) = True\r\n}}}\r\n\r\nmistakenly returns the warning\r\n\r\n{{{\r\nwarning: [-Wincomplete-patterns]\r\n Pattern match(es) are non-exhaustive\r\n In an equation for ‘f’: Patterns not matched: _\r\n |\r\n4 | f (id->Nothing) = False\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^...\r\n}}}\r\n\r\n\r\n\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15885Enhancing COMPLETE pragma to support pattern synonyms with polymorphic (outpu...2021-02-22T21:15:08ZShayan-NajdEnhancing COMPLETE pragma to support pattern synonyms with polymorphic (output) typesOn our work on the [new front-end AST for GHC](https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow) based on [TTG](https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/TreesThatGrowGuidance), we would like to use [...On our work on the [new front-end AST for GHC](https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow) based on [TTG](https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/TreesThatGrowGuidance), we would like to use [a pattern synonym](https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/HandlingSourceLocations) similar to the following:
```hs
pattern LL :: HasSrcSpan a => SrcSpan -> SrcSpanLess a -> a
pattern LL s m <- (decomposeSrcSpan -> (m , s))
where
LL s m = composeSrcSpan (m , s)
```
We know that any match on `LL` patterns, makes the pattern matching total, as it uses a view pattern with a total output pattern (i.e., in `decomposeSrcSpan -> (m , s)`, the pattern `(m , s)` is total).
As far as I understand, currently COMPLETE pragmas cannot be used with such a polymorphic pattern synonym.
I believe we need to enhance COMPLETE pragmas to support such pattern synonyms.
This can be done either syntactically, or (preferably) type-directed.
For example, we should be able to write `{-# COMPLETE LL #-}` or `{-# COMPLETE LL :: HasSrcSpan a => a #-}`.
In the type-directed approach
a. the totality checker \*may\* need to track, at least, the set of required constraints of pattern synonyms mentioned in a COMPLETE pragma; and
b. the order of pattern synonyms mentioned in a pragma should be taken into account (as noted by \@carter).
For example, in the case of `LL`, `HasSrcSpan a` is a required type constraint.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Enhancing COMPLETE pragma to support pattern synonyms with polymorphic (output) types","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"On our work on the [https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow new front-end AST for GHC] based on [https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/TreesThatGrowGuidance TTG], we would like to use [https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/HandlingSourceLocations a pattern synonym] similar to the following:\r\n\r\n{{{#!hs\r\npattern LL :: HasSrcSpan a => SrcSpan -> SrcSpanLess a -> a\r\npattern LL s m <- (decomposeSrcSpan -> (m , s))\r\n where\r\n LL s m = composeSrcSpan (m , s)\r\n}}}\r\n\r\nWe know that any match on `LL` patterns, makes the pattern matching total, as it uses a view pattern with a total output pattern (i.e., in `decomposeSrcSpan -> (m , s)`, the pattern `(m , s)` is total).\r\n\r\nAs far as I understand, currently COMPLETE pragmas cannot be used with such a polymorphic pattern synonym.\r\nI believe we need to enhance COMPLETE pragmas to support such pattern synonyms.\r\n\r\nThis can be done either syntactically, or (preferably) type-directed.\r\n\r\nFor example, we should be able to write `{-# COMPLETE LL #-}` or `{-# COMPLETE LL :: HasSrcSpan a => a #-}`.\r\n\r\nIn the type-directed approach\r\na. the totality checker *may* need to track, at least, the set of required constraints of pattern synonyms mentioned in a COMPLETE pragma; and\r\nb. the order of pattern synonyms mentioned in a pragma should be taken into account (as noted by @carter).\r\n\r\nFor example, in the case of `LL`, `HasSrcSpan a` is a required type constraint.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15886Spurious warning about incomplete pattern with PatternSynonyms2019-07-07T18:02:34ZselingerSpurious warning about incomplete pattern with PatternSynonyms```hs
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE PatternSynonyms #-}
module Test where
f :: Int -> Bool
f (id -> a) = True
pattern X a <- (id -> a)
g :: Int -> Bool
g (X a) = True
```
When compiling with -Wincomplete-patterns, this ...```hs
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE PatternSynonyms #-}
module Test where
f :: Int -> Bool
f (id -> a) = True
pattern X a <- (id -> a)
g :: Int -> Bool
g (X a) = True
```
When compiling with -Wincomplete-patterns, this code produces an (incorrect) warning for `g`, but not for `f`. The only difference is that `g` uses a pattern synonym.
```
K.hs:12:1: warning: [-Wincomplete-patterns]
Pattern match(es) are non-exhaustive
In an equation for ‘g’: Patterns not matched: _
|
12 | g (X a) = True
| ^^^^^^^^^^^^^^
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.1 |
| 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":"Spurious warning about incomplete pattern with PatternSynonyms","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{#!hs\r\n{-# LANGUAGE ViewPatterns #-}\r\n{-# LANGUAGE PatternSynonyms #-}\r\n\r\nmodule Test where\r\n\r\nf :: Int -> Bool\r\nf (id -> a) = True\r\n\r\npattern X a <- (id -> a)\r\n\r\ng :: Int -> Bool\r\ng (X a) = True\r\n}}}\r\n\r\nWhen compiling with -Wincomplete-patterns, this code produces an (incorrect) warning for `g`, but not for `f`. The only difference is that `g` uses a pattern synonym.\r\n\r\n{{{\r\nK.hs:12:1: warning: [-Wincomplete-patterns]\r\n Pattern match(es) are non-exhaustive\r\n In an equation for ‘g’: Patterns not matched: _\r\n |\r\n12 | g (X a) = True\r\n | ^^^^^^^^^^^^^^\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15888Quantified constraints can be loopy2019-07-07T18:02:34ZRichard Eisenbergrae@richarde.devQuantified constraints can be loopyConsider this abuse:
```hs
{-# LANGUAGE QuantifiedConstraints, UndecidableInstances #-}
module Bug where
data T1 a
data T2 a
class C a where
meth :: a
instance (forall a. C (T2 a)) => C (T1 b) where
meth = error "instance T1"
i...Consider this abuse:
```hs
{-# LANGUAGE QuantifiedConstraints, UndecidableInstances #-}
module Bug where
data T1 a
data T2 a
class C a where
meth :: a
instance (forall a. C (T2 a)) => C (T1 b) where
meth = error "instance T1"
instance (forall a. C (T1 a)) => C (T2 b) where
meth = error "instance T2"
example :: T1 Int
example = meth
```
GHC says
```
• Reduction stack overflow; size = 201
When simplifying the following type: C (T1 a)
Use -freduction-depth=0 to disable this check
(any upper bound you could choose might fail unpredictably with
minor updates to GHC, so disabling the check is recommended if
you're sure that type checking should terminate)
• In the expression: meth
In an equation for ‘example’: example = meth
```
Of course, I've taken on some responsibility for my actions here by saying `UndecidableInstances`, but GHC really should be able to figure this out. Here's what's happening:
1. We get a Wanted `C (T1 Int)`.
1. GHC chooses the appropriate instance, emitting a Wanted `forall a. C (T2 a)`.
1. GHC skolemizes the `a` to `a1` and tries solve a Wanted `C (T2 a1)`.
1. GHC chooses the appropriate instance, emitting a Wanted `forall a. C (T1 a)`.
1. GHC skolemizes the `a` to `a2` and tries to solve a Wanted `C (T1 a2)`.
And around and around we go.
(This loop is guessed at from knowing GHC's algorithms in general. I did not look at a trace.)
We *could* get this one, though. Before skolemizing, we could stash the Wanted in the `inert_solved_dicts`, which is where we record uses of top-level instances. (See `Note [Solved dictionaries]` in TcSMonad.) Then, later, when we see the same Wanted arise again, we would just use the cached value, making a well-formed recursive dictionary.
This deficiency was discovered in `singletons` (https://github.com/goldfirere/singletons/issues/371). Perhaps that's not "the wild", but it's not quite contrived either.
Note that we don't need two datatypes to trigger this, but having one recursive instance like this seems awfully silly.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Quantified constraints can be loopy","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["QuantifiedConstraints"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Consider this abuse:\r\n\r\n{{{#!hs\r\n{-# LANGUAGE QuantifiedConstraints, UndecidableInstances #-}\r\n\r\nmodule Bug where\r\n\r\ndata T1 a\r\ndata T2 a\r\n\r\nclass C a where\r\n meth :: a\r\n\r\ninstance (forall a. C (T2 a)) => C (T1 b) where\r\n meth = error \"instance T1\"\r\n\r\ninstance (forall a. C (T1 a)) => C (T2 b) where\r\n meth = error \"instance T2\"\r\n\r\nexample :: T1 Int\r\nexample = meth\r\n}}}\r\n\r\nGHC says\r\n\r\n{{{\r\n • Reduction stack overflow; size = 201\r\n When simplifying the following type: C (T1 a)\r\n Use -freduction-depth=0 to disable this check\r\n (any upper bound you could choose might fail unpredictably with\r\n minor updates to GHC, so disabling the check is recommended if\r\n you're sure that type checking should terminate)\r\n • In the expression: meth\r\n In an equation for ‘example’: example = meth\r\n}}}\r\n\r\nOf course, I've taken on some responsibility for my actions here by saying `UndecidableInstances`, but GHC really should be able to figure this out. Here's what's happening:\r\n\r\n1. We get a Wanted `C (T1 Int)`.\r\n\r\n2. GHC chooses the appropriate instance, emitting a Wanted `forall a. C (T2 a)`.\r\n\r\n3. GHC skolemizes the `a` to `a1` and tries solve a Wanted `C (T2 a1)`.\r\n\r\n4. GHC chooses the appropriate instance, emitting a Wanted `forall a. C (T1 a)`.\r\n\r\n5. GHC skolemizes the `a` to `a2` and tries to solve a Wanted `C (T1 a2)`.\r\n\r\nAnd around and around we go.\r\n\r\n(This loop is guessed at from knowing GHC's algorithms in general. I did not look at a trace.)\r\n\r\nWe ''could'' get this one, though. Before skolemizing, we could stash the Wanted in the `inert_solved_dicts`, which is where we record uses of top-level instances. (See `Note [Solved dictionaries]` in TcSMonad.) Then, later, when we see the same Wanted arise again, we would just use the cached value, making a well-formed recursive dictionary.\r\n\r\nThis deficiency was discovered in `singletons` (https://github.com/goldfirere/singletons/issues/371). Perhaps that's not \"the wild\", but it's not quite contrived either.\r\n\r\nNote that we don't need two datatypes to trigger this, but having one recursive instance like this seems awfully silly.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15889ghc documentation doesn't explain difference between dwarf levels 1 2 and 32019-07-07T18:02:34ZCarter Schonwaldghc documentation doesn't explain difference between dwarf levels 1 2 and 3I tried digging into current ghc source (well a 8.6.2 checkout) to track down where / how `debugLevel` crops up.
The docs/examples support g0 (off ) through g3. But when looking at where debugLevel appears in code, there isn't any diffe...I tried digging into current ghc source (well a 8.6.2 checkout) to track down where / how `debugLevel` crops up.
The docs/examples support g0 (off ) through g3. But when looking at where debugLevel appears in code, there isn't any different currently at the GHC layer for g3 vs g2! (is there a difference at the C compiler layer?)
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Documentation |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"ghc documentation doesn't explain difference between dwarf levels 1 2 and 3","status":"New","operating_system":"","component":"Documentation","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I tried digging into current ghc source (well a 8.6.2 checkout) to track down where / how `debugLevel` crops up.\r\n\r\nThe docs/examples support g0 (off ) through g3. But when looking at where debugLevel appears in code, there isn't any different currently at the GHC layer for g3 vs g2! (is there a difference at the C compiler layer?)","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15891Excessive system time during execution of GHC-built executables on macOS2019-07-07T18:02:33ZRichard Eisenbergrae@richarde.devExcessive system time during execution of GHC-built executables on macOSIt seems that the executables built by GHC on my configuration of macOS are slow, clocking in 80% of my machine's cycles in system time.
Here is what I know.
- Everything tested bootstrapping with both GHC 8.6.1 and GHC 8.6.2. There is...It seems that the executables built by GHC on my configuration of macOS are slow, clocking in 80% of my machine's cycles in system time.
Here is what I know.
- Everything tested bootstrapping with both GHC 8.6.1 and GHC 8.6.2. There is no observable difference between these bootstrapping compilers. The detailed data reported is all from GHC 8.6.1.
- When I try to build GHC, stage 1 builds snappily. But once stage-1 gets used, it slows to a crawl.
- Activity Monitor reports that my computer is spending roughly 80% of its time in the System space, not the User space. (While building ghc-stage1 itself, there is barely any system activity.)
- I have sampled ghc-stage1 during a rts_dist_HC call. Samples are at https://gist.github.com/goldfirere/7316920ad37d776c25c15dbb0ed5996f
- I then `dtruss`d the same, with output at https://gist.github.com/goldfirere/621ce9072e1204d30e96e7daecc80d02
- System information:
- macOS High Sierra, 10.13.6
- Processor: 3.5 GHz Intel Core i5
- Memory: 16 GB 2400 MHz DDR4
- SSD main storage, formatted with APFS
- happy 1.19.9
- alex 3.2.4
- XCode 10.1
- gcc is clang-1000.11.45.5, Apple LLVM version 10.0.0, thread model: posix
Others (see [thread](https://mail.haskell.org/pipermail/ghc-devs/2018-November/016507.html)) have not been able to repro, but this is very reliable for me.
Any ideas?
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Excessive system time during execution of GHC-built executables on macOS","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"It seems that the executables built by GHC on my configuration of macOS are slow, clocking in 80% of my machine's cycles in system time.\r\n\r\nHere is what I know.\r\n\r\n- Everything tested bootstrapping with both GHC 8.6.1 and GHC 8.6.2. There is no observable difference between these bootstrapping compilers. The detailed data reported is all from GHC 8.6.1.\r\n\r\n- When I try to build GHC, stage 1 builds snappily. But once stage-1 gets used, it slows to a crawl.\r\n\r\n- Activity Monitor reports that my computer is spending roughly 80% of its time in the System space, not the User space. (While building ghc-stage1 itself, there is barely any system activity.)\r\n\r\n- I have sampled ghc-stage1 during a rts_dist_HC call. Samples are at https://gist.github.com/goldfirere/7316920ad37d776c25c15dbb0ed5996f\r\n\r\n- I then `dtruss`d the same, with output at https://gist.github.com/goldfirere/621ce9072e1204d30e96e7daecc80d02\r\n\r\n- System information:\r\n * macOS High Sierra, 10.13.6\r\n * Processor: 3.5 GHz Intel Core i5\r\n * Memory: 16 GB 2400 MHz DDR4\r\n * SSD main storage, formatted with APFS\r\n * happy 1.19.9\r\n * alex 3.2.4\r\n * XCode 10.1\r\n * gcc is clang-1000.11.45.5, Apple LLVM version 10.0.0, thread model: posix\r\n\r\nOthers (see [https://mail.haskell.org/pipermail/ghc-devs/2018-November/016507.html thread]) have not been able to repro, but this is very reliable for me.\r\n\r\nAny ideas?","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15892Segmentation fault with ByteString2019-07-07T18:02:33Ztakano-akioSegmentation fault with ByteStringThe attached program consistently segfaults (within a few seconds) when compiled with ghc-8.6.1 or ghc-8.6.2. It runs forever (as expected) when compiled with ghc-8.4.
To reproduce:
```
ghc segfault.hs
```
then,
```
./segfault >/dev/...The attached program consistently segfaults (within a few seconds) when compiled with ghc-8.6.1 or ghc-8.6.2. It runs forever (as expected) when compiled with ghc-8.4.
To reproduce:
```
ghc segfault.hs
```
then,
```
./segfault >/dev/null
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Segmentation fault with ByteString and -O","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The attached program consistently segfaults (within a few seconds) when compiled with ghc-8.6.1 or ghc-8.6.2. It runs forever (as expected) when compiled with ghc-8.4.\r\n\r\nTo reproduce:\r\n\r\n{{{\r\nghc segfault.hs\r\n}}}\r\n\r\nthen,\r\n\r\n{{{\r\n./segfault >/dev/null\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15894Cannot find symbol during interactive linking using new-repl on Windows2019-07-07T18:02:33ZYellPikaCannot find symbol during interactive linking using new-repl on WindowsOriginally from https://github.com/haskell/cabal/issues/5683.
I get the following error on Windows 10:
```
> cabal new-repl --build-depends=ieee754
... GHCi loads ...
Prelude> import Numeric.IEEE
Prelude Numeric.IEEE> infinity
ghc.ex...Originally from https://github.com/haskell/cabal/issues/5683.
I get the following error on Windows 10:
```
> cabal new-repl --build-depends=ieee754
... GHCi loads ...
Prelude> import Numeric.IEEE
Prelude Numeric.IEEE> infinity
ghc.exe: | C:\Users\Anthony\AppData\Roaming\cabal\store\ghc-8.6.2\ieee754-0.8.0-7eecc33cf22b0ebf4d3c4dda98cc9f039432a266\lib\libHSieee754-0.8.0-7eecc33cf22b0ebf4d3c4dda98cc9f039432a266.a: unknown symbol `copysign'
ghc.exe: ^^ Could not load 'ieee754zm0zi8zi0zm7eecc33cf22b0ebf4d3c4dda98cc9f039432a266_NumericziIEEE_infinity_closure', dependency unresolved. See top entry above.
ByteCodeLink.lookupCE
During interactive linking, GHCi couldn't find the following symbol:
ieee754zm0zi8zi0zm7eecc33cf22b0ebf4d3c4dda98cc9f039432a266_NumericziIEEE_infinity_closure
This may be due to you not asking GHCi to load extra object files,
archives or DLLs needed by your current session. Restart GHCi, specifying
the missing library using the -L/path/to/object/dir and -lmissinglibname
flags, or simply by naming the relevant files on the GHCi command line.
Alternatively, this link failure might indicate a bug in GHCi.
If you suspect the latter, please send a bug report to:
glasgow-haskell-bugs@haskell.org
```
This occurs with both cabal-install 2.4.0.0 and HEAD. This does not occur if I install ieee754 into a sandbox and use `cabal repl`. It also works correctly on Ubuntu 18.04 (on both WSL and a full installation), so it looks like a Windows-specific problem.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | Phyx- |
| Operating system | |
| Architecture | x86_64 (amd64) |
</details>
<!-- {"blocked_by":[],"summary":"Cannot find symbol during interactive linking using new-repl on Windows","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"x86_64 (amd64)","cc":["Phyx-"],"type":"Bug","description":"Originally from https://github.com/haskell/cabal/issues/5683.\r\n\r\nI get the following error on Windows 10:\r\n{{{\r\n> cabal new-repl --build-depends=ieee754\r\n\r\n... GHCi loads ...\r\n\r\nPrelude> import Numeric.IEEE\r\nPrelude Numeric.IEEE> infinity\r\nghc.exe: | C:\\Users\\Anthony\\AppData\\Roaming\\cabal\\store\\ghc-8.6.2\\ieee754-0.8.0-7eecc33cf22b0ebf4d3c4dda98cc9f039432a266\\lib\\libHSieee754-0.8.0-7eecc33cf22b0ebf4d3c4dda98cc9f039432a266.a: unknown symbol `copysign'\r\nghc.exe: ^^ Could not load 'ieee754zm0zi8zi0zm7eecc33cf22b0ebf4d3c4dda98cc9f039432a266_NumericziIEEE_infinity_closure', dependency unresolved. See top entry above.\r\n\r\n\r\nByteCodeLink.lookupCE\r\nDuring interactive linking, GHCi couldn't find the following symbol:\r\n ieee754zm0zi8zi0zm7eecc33cf22b0ebf4d3c4dda98cc9f039432a266_NumericziIEEE_infinity_closure\r\nThis may be due to you not asking GHCi to load extra object files,\r\narchives or DLLs needed by your current session. Restart GHCi, specifying\r\nthe missing library using the -L/path/to/object/dir and -lmissinglibname\r\nflags, or simply by naming the relevant files on the GHCi command line.\r\nAlternatively, this link failure might indicate a bug in GHCi.\r\nIf you suspect the latter, please send a bug report to:\r\n glasgow-haskell-bugs@haskell.org\r\n}}}\r\n\r\nThis occurs with both cabal-install 2.4.0.0 and HEAD. This does not occur if I install ieee754 into a sandbox and use `cabal repl`. It also works correctly on Ubuntu 18.04 (on both WSL and a full installation), so it looks like a Windows-specific problem.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15895Unable to match instance signatures2020-05-19T14:27:34ZIcelandjackUnable to match instance signaturesRichard said GHC should be able to infer this
```hs
{-# Language PolyKinds #-}
{-# Language RankNTypes #-}
{-# Language TypeFamilies #-}
{-# Language FlexibleInstances #-}
{-# Language InstanceSigs #-}
import D...Richard said GHC should be able to infer this
```hs
{-# Language PolyKinds #-}
{-# Language RankNTypes #-}
{-# Language TypeFamilies #-}
{-# Language FlexibleInstances #-}
{-# Language InstanceSigs #-}
import Data.Kind
class Ríki ob where
type Arr :: ob -> ob -> Type
ið :: forall (a :: ob). Arr a a
instance Ríki Type where
type Arr = (->)
ið :: Arr a a
ið a = a
```
```
$ ~/code/unmodifiedghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci ~/hs/693_bug.hs
GHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( /home/baldur/hs/693_bug.hs, interpreted )
/home/baldur/hs/693_bug.hs:18:3: error:
• Couldn't match kind ‘ob’ with ‘*’
‘ob’ is a rigid type variable bound by
the type signature for:
ið :: forall ob (a :: ob). Arr a a
at /home/baldur/hs/693_bug.hs:17:9-15
When matching types
p0 :: *
a :: ob
Expected type: Arr a a
Actual type: p0 -> p0
• The equation(s) for ‘ið’ have one argument,
but its type ‘Arr a a’ has none
In the instance declaration for ‘Ríki *’
• Relevant bindings include
ið :: Arr a a (bound at /home/baldur/hs/693_bug.hs:18:3)
|
18 | ið a = a
| ^^^^^^^^
Failed, no modules loaded.
```
It works if we specify the kind of `a` or use `(->)`
```hs
ið :: forall (a :: Type). Arr a a
```
```hs
ið :: a -> a
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Unable to match instance signatures","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["InstanceSigs"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Richard said GHC should be able to infer this\r\n\r\n{{{#!hs\r\n{-# Language PolyKinds #-}\r\n{-# Language RankNTypes #-}\r\n{-# Language TypeFamilies #-}\r\n{-# Language FlexibleInstances #-}\r\n{-# Language InstanceSigs #-}\r\n\r\nimport Data.Kind\r\n\r\nclass Ríki ob where\r\n type Arr :: ob -> ob -> Type\r\n\r\n ið :: forall (a :: ob). Arr a a\r\n\r\ninstance Ríki Type where\r\n type Arr = (->)\r\n\r\n ið :: Arr a a\r\n ið a = a\r\n}}}\r\n\r\n{{{\r\n$ ~/code/unmodifiedghc/inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci ~/hs/693_bug.hs\r\nGHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help\r\n[1 of 1] Compiling Main ( /home/baldur/hs/693_bug.hs, interpreted )\r\n\r\n/home/baldur/hs/693_bug.hs:18:3: error:\r\n • Couldn't match kind ‘ob’ with ‘*’\r\n ‘ob’ is a rigid type variable bound by\r\n the type signature for:\r\n ið :: forall ob (a :: ob). Arr a a\r\n at /home/baldur/hs/693_bug.hs:17:9-15\r\n When matching types\r\n p0 :: *\r\n a :: ob\r\n Expected type: Arr a a\r\n Actual type: p0 -> p0\r\n • The equation(s) for ‘ið’ have one argument,\r\n but its type ‘Arr a a’ has none\r\n In the instance declaration for ‘Ríki *’\r\n • Relevant bindings include\r\n ið :: Arr a a (bound at /home/baldur/hs/693_bug.hs:18:3)\r\n |\r\n18 | ið a = a\r\n | ^^^^^^^^\r\nFailed, no modules loaded.\r\n}}}\r\n\r\nIt works if we specify the kind of `a` or use `(->)`\r\n\r\n{{{#!hs\r\n ið :: forall (a :: Type). Arr a a \r\n}}}\r\n{{{#!hs\r\n ið :: a -> a \r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15898Promoted type constructors don't print right in HsType2019-07-07T18:02:32ZSimon Peyton JonesPromoted type constructors don't print right in HsTypeConsider this
```
ghci> import Data.Proxy
ghci> undefined :: '() -> Int
<interactive>:11:14: error:
• Expected a type, but ‘ '()’ has kind ‘()’
• In an expression type signature: '() -> Int
```
What is that strange space doin...Consider this
```
ghci> import Data.Proxy
ghci> undefined :: '() -> Int
<interactive>:11:14: error:
• Expected a type, but ‘ '()’ has kind ‘()’
• In an expression type signature: '() -> Int
```
What is that strange space doing before the `'()`?
Similarly
```
undefined :: Proxy '() Int
<interactive>:12:14: error:
• Expected kind ‘* -> *’, but ‘Proxy '()’ has kind ‘*’
• In an expression type signature: Proxy '() Int
```
Again, the strange space.
It comes from the `HsType` pretty printer, which is worried
about printing the type
```
'['K]
```
That is, a promoted list with one element `K`. The trouble is that looks
like a character literal `'['`.
So we add an extra space, thus `'[ 'K]`. ''But we add it before every
promoded data constructor!" Hence the spurious spaces.
In `IfaceType` exactly the same thing happens, but we are more clever,
and only print the leading space if the promoted data con immediately
follows `'[` or `'(`. We should do the same thing for `HsType`.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Promoted type constructors don't print right in HsType","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Consider this\r\n{{{\r\nghci> import Data.Proxy\r\nghci> undefined :: '() -> Int\r\n\r\n<interactive>:11:14: error:\r\n • Expected a type, but ‘ '()’ has kind ‘()’\r\n • In an expression type signature: '() -> Int\r\n}}}\r\nWhat is that strange space doing before the `'()`?\r\n\r\nSimilarly\r\n{{{\r\nundefined :: Proxy '() Int\r\n\r\n<interactive>:12:14: error:\r\n • Expected kind ‘* -> *’, but ‘Proxy '()’ has kind ‘*’\r\n • In an expression type signature: Proxy '() Int\r\n}}}\r\nAgain, the strange space.\r\n\r\nIt comes from the `HsType` pretty printer, which is worried\r\nabout printing the type\r\n{{{\r\n '['K]\r\n}}}\r\nThat is, a promoted list with one element `K`. The trouble is that looks\r\nlike a character literal `'['`.\r\n\r\nSo we add an extra space, thus `'[ 'K]`. ''But we add it before every\r\npromoded data constructor!\" Hence the spurious spaces.\r\n\r\nIn `IfaceType` exactly the same thing happens, but we are more clever,\r\nand only print the leading space if the promoted data con immediately\r\nfollows `'[` or `'(`. We should do the same thing for `HsType`.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15905Data familes should end in Type2022-08-19T19:16:24ZSimon Peyton JonesData familes should end in TypeCurrently we allow
```
data family Fix (f :: Type -> k) :: k
```
with a ‘k’ in the right-hand corner. See `Note [Arity of data families]` in `FamInstEnv`.
That seems attractive because we can then have
```
data instance Fix (f :: Typ...Currently we allow
```
data family Fix (f :: Type -> k) :: k
```
with a ‘k’ in the right-hand corner. See `Note [Arity of data families]` in `FamInstEnv`.
That seems attractive because we can then have
```
data instance Fix (f :: Type -> Type -> Type) (x :: Type) = MkFix2 (f (Fix f x) x)
```
But what about this?
```
type family F a
type instance F Int = Type -> Type
data instance Fix (f :: Type -> F Int) (x :: Type) = …
```
The type inference engine (tcInferApps) will type the LHS as something like
```
((Fix (f :: Type -> F Int)) |> co1)
(x |> co2)
where co1 :: F Int ~ Type
co2 :: Type ~ F Int
```
But the LHS of a family axiom has to look like
```
F t1 t2 … tn
```
not
```
((F t1 |> co) t2 t3) |> co4) …tn
```
with casts in the way. So that LHS must be rejected. And it’s very hard to see how to accept the first example while (predictably, comprehensibly) rejecting the second. It’d be something like “the kind that instantiates k must have obvious, visible, arrows”. Ugh!
And indeed GHC HEAD does accept the first, but rejects the second with the error message
```
• Expected kind ‘* -> * -> *’,
but ‘f :: Type -> F Int’ has kind ‘* -> F Int’
• In the first argument of ‘Fix’, namely ‘(f :: Type -> F Int)’
In the data instance declaration for ‘Fix’
```
That's clearly bogus: we've specified that `F Int = Type -> Type`. I'm not even sure precisely
how it happens, but it must be fragile: a change in solve order, or more aggressive solving
might change the behaviour.
I don't see how to solve this. I propose instead to require data family kinds to
end in `Type`, not in a type *variable* (as we currently allow).
I don't know how many people that would affect, but the current state of affairs
looks untenable.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Data familes should end in Type","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Currently we allow\r\n{{{\r\ndata family Fix (f :: Type -> k) :: k\r\n}}}\r\nwith a ‘k’ in the right-hand corner. See `Note [Arity of data families]` in `FamInstEnv`.\r\n\r\nThat seems attractive because we can then have\r\n{{{\r\ndata instance Fix (f :: Type -> Type -> Type) (x :: Type) = MkFix2 (f (Fix f x) x)\r\n}}}\r\nBut what about this?\r\n{{{\r\ntype family F a\r\ntype instance F Int = Type -> Type\r\ndata instance Fix (f :: Type -> F Int) (x :: Type) = …\r\n}}}\r\nThe type inference engine (tcInferApps) will type the LHS as something like\r\n{{{\r\n\t((Fix (f :: Type -> F Int)) |> co1)\r\n (x |> co2)\r\n\r\nwhere co1 :: F Int ~ Type\r\n co2 :: Type ~ F Int\r\n}}}\r\nBut the LHS of a family axiom has to look like\r\n{{{\r\n\tF t1 t2 … tn\r\n}}}\r\nnot\r\n{{{\r\n\t((F t1 |> co) t2 t3) |> co4) …tn\r\n}}}\r\nwith casts in the way. So that LHS must be rejected. And it’s very hard to see how to accept the first example while (predictably, comprehensibly) rejecting the second. It’d be something like “the kind that instantiates k must have obvious, visible, arrows”. Ugh!\r\n\r\nAnd indeed GHC HEAD does accept the first, but rejects the second with the error message\r\n{{{\r\n • Expected kind ‘* -> * -> *’,\r\n but ‘f :: Type -> F Int’ has kind ‘* -> F Int’\r\n • In the first argument of ‘Fix’, namely ‘(f :: Type -> F Int)’\r\n In the data instance declaration for ‘Fix’\r\n}}}\r\nThat's clearly bogus: we've specified that `F Int = Type -> Type`. I'm not even sure precisely\r\nhow it happens, but it must be fragile: a change in solve order, or more aggressive solving\r\nmight change the behaviour.\r\n\r\nI don't see how to solve this. I propose instead to require data family kinds to\r\nend in `Type`, not in a type ''variable'' (as we currently allow).\r\n\r\nI don't know how many people that would affect, but the current state of affairs\r\nlooks untenable.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15906Stable name allocation causes heap corruption when GC is triggered in the primop2019-07-07T18:02:30ZÖmer Sinan AğacanStable name allocation causes heap corruption when GC is triggered in the primopThe error is originally reported in #15241, and is caught by the test `memo001`
when run with `-debug` (which only happens in sanity way currently).
Here's the problem. mkStableName\# is defined like this:
```
stg_makeStableNamezh ( P_...The error is originally reported in #15241, and is caught by the test `memo001`
when run with `-debug` (which only happens in sanity way currently).
Here's the problem. mkStableName\# is defined like this:
```
stg_makeStableNamezh ( P_ obj )
{
W_ index, sn_obj;
(index) = ccall lookupStableName(obj "ptr");
/* Is there already a StableName for this heap object?
* stable_name_table is a pointer to an array of snEntry structs.
*/
if ( snEntry_sn_obj(W_[stable_name_table] + index*SIZEOF_snEntry) == NULL ) {
ALLOC_PRIM (SIZEOF_StgStableName); <------------ PROBLEM HERE ----------
sn_obj = Hp - SIZEOF_StgStableName + WDS(1);
SET_HDR(sn_obj, stg_STABLE_NAME_info, CCCS);
StgStableName_sn(sn_obj) = index;
snEntry_sn_obj(W_[stable_name_table] + index*SIZEOF_snEntry) = sn_obj;
} else {
sn_obj = snEntry_sn_obj(W_[stable_name_table] + index*SIZEOF_snEntry);
}
return (sn_obj);
}
```
There's a problem in the annotated line: if we allocate a `snEntry` in the
stable name table, but run out of heap to actually allocate the `StgStableName`
we call GC with incorrect `snEntry` contents. As a reminder, this is `snEntry`:
```
typedef struct {
StgPtr addr; // Haskell object when entry is in use, next free
// entry (NULL when this is the last free entry)
// otherwise. May be NULL temporarily during GC (when
// pointee dies).
StgPtr old; // Old Haskell object, used during GC
StgClosure *sn_obj; // The StableName object, or NULL when the entry is
// free
} snEntry;
```
In summary, `sn_obj == NULL` means the entry is free. When we trigger the GC
after allocating the `snEntry` but before allocating the `StgStableName`, we end
up calling the GC with `sn_obj == NULL` even though the `snEntry` is not
actually free. In particular, the `addr` field should be updated by
`gcStableNameTable`, but it's currently not because `gcStableNameTable` sees
`sn_obj` as NULL and skips the entry.
The is caught by memo001 when run with -debug.
I already have a fix and will submit a patch soon.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | highest |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Stable name allocation causes heap corruption when GC is triggered in the primop","status":"New","operating_system":"","component":"Runtime System","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.7","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The error is originally reported in #15241, and is caught by the test `memo001`\r\nwhen run with `-debug` (which only happens in sanity way currently).\r\n\r\nHere's the problem. mkStableName# is defined like this:\r\n\r\n{{{\r\nstg_makeStableNamezh ( P_ obj )\r\n{\r\n W_ index, sn_obj;\r\n\r\n (index) = ccall lookupStableName(obj \"ptr\");\r\n\r\n /* Is there already a StableName for this heap object?\r\n * stable_name_table is a pointer to an array of snEntry structs.\r\n */\r\n if ( snEntry_sn_obj(W_[stable_name_table] + index*SIZEOF_snEntry) == NULL ) {\r\n ALLOC_PRIM (SIZEOF_StgStableName); <------------ PROBLEM HERE ----------\r\n sn_obj = Hp - SIZEOF_StgStableName + WDS(1);\r\n SET_HDR(sn_obj, stg_STABLE_NAME_info, CCCS);\r\n StgStableName_sn(sn_obj) = index;\r\n snEntry_sn_obj(W_[stable_name_table] + index*SIZEOF_snEntry) = sn_obj;\r\n } else {\r\n sn_obj = snEntry_sn_obj(W_[stable_name_table] + index*SIZEOF_snEntry);\r\n }\r\n\r\n return (sn_obj);\r\n}\r\n}}}\r\n\r\nThere's a problem in the annotated line: if we allocate a `snEntry` in the\r\nstable name table, but run out of heap to actually allocate the `StgStableName`\r\nwe call GC with incorrect `snEntry` contents. As a reminder, this is `snEntry`:\r\n\r\n{{{\r\ntypedef struct {\r\n StgPtr addr; // Haskell object when entry is in use, next free\r\n // entry (NULL when this is the last free entry)\r\n // otherwise. May be NULL temporarily during GC (when\r\n // pointee dies).\r\n\r\n StgPtr old; // Old Haskell object, used during GC\r\n\r\n StgClosure *sn_obj; // The StableName object, or NULL when the entry is\r\n // free\r\n} snEntry;\r\n}}}\r\n\r\nIn summary, `sn_obj == NULL` means the entry is free. When we trigger the GC\r\nafter allocating the `snEntry` but before allocating the `StgStableName`, we end\r\nup calling the GC with `sn_obj == NULL` even though the `snEntry` is not\r\nactually free. In particular, the `addr` field should be updated by\r\n`gcStableNameTable`, but it's currently not because `gcStableNameTable` sees\r\n`sn_obj` as NULL and skips the entry.\r\n\r\nThe is caught by memo001 when run with -debug.\r\n\r\nI already have a fix and will submit a patch soon.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15907memo001 causes compile time panic with fails with -O -dannot-lint2019-07-07T18:02:30ZÖmer Sinan Ağacanmemo001 causes compile time panic with fails with -O -dannot-lint```
$ cd libraries/base/tests; ghc-stage2 memo001.hs -O -dannot-lint
[1 of 2] Compiling Memo1 ( Memo1.lhs, Memo1.o ) [Optimisation flags changed]
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.7.20181116 for x...```
$ cd libraries/base/tests; ghc-stage2 memo001.hs -O -dannot-lint
[1 of 2] Compiling Memo1 ( Memo1.lhs, Memo1.o ) [Optimisation flags changed]
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.7.20181116 for x86_64-unknown-linux):
idInfo
val_a3pf
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/basicTypes/Var.hs:567:34 in ghc:Var
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.7 |
| 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":"memo001 causes compile time panic with fails with -O -dannot-lint","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.7","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{\r\n$ cd libraries/base/tests; ghc-stage2 memo001.hs -O -dannot-lint\r\n[1 of 2] Compiling Memo1 ( Memo1.lhs, Memo1.o ) [Optimisation flags changed]\r\nghc-stage2: panic! (the 'impossible' happened)\r\n (GHC version 8.7.20181116 for x86_64-unknown-linux):\r\n idInfo\r\n val_a3pf\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler/basicTypes/Var.hs:567:34 in ghc:Var\r\n\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15909prepareAlts does not take into account equalities which are in scope2019-07-07T18:02:29ZMatthew PickeringprepareAlts does not take into account equalities which are in scopeIf we consider this program submitted for our consideration by Andres we see some surprising behaviour.
https://gist.github.com/kosmikus/237946a2335600690208a4a36efef988
```
{-# LANGUAGE TypeOperators, GADTs, FlexibleContexts, DataKind...If we consider this program submitted for our consideration by Andres we see some surprising behaviour.
https://gist.github.com/kosmikus/237946a2335600690208a4a36efef988
```
{-# LANGUAGE TypeOperators, GADTs, FlexibleContexts, DataKinds, RankNTypes, PolyKinds, TypeFamilies, MultiParamTypeClasses, UndecidableInstances, UndecidableSuperClasses, FlexibleInstances, ConstraintKinds, TypeApplications, EmptyCase, ScopedTypeVariables, PartialTypeSignatures, TemplateHaskell #-}
module Partition where
import Data.Coerce
import Data.Kind
import Data.Proxy
data NP (f :: k -> Type) (xs :: [k]) where
Nil :: NP f '[]
(:*) :: f x -> NP f xs -> NP f (x : xs)
infixr 5 :*
strictToPair :: forall f a b . NP f '[a, b] -> (f a, f b)
strictToPair np =
case np of
(fx :* fxs) ->
case (fxs {- :: NP f '[b] -}) of
(fy :* fys) ->
(fx, fy)
```
Both pattern matches are exhaustive so we don't need to generate any failure cases when pattern matching.
Notice in the generated core that we have a match on `Partition.Nil` even though the match will never
be reached.
```
Partition.strictToPair
:: forall k (f :: k -> *) (a :: k) (b :: k).
Partition.NP f '[a, b] -> (f a, f b)
[GblId, Arity=1, Str=<S,1*U>m, Unf=OtherCon []]
Partition.strictToPair
= \ (@ k_a1gV)
(@ (f_a1gW :: k_a1gV -> *))
(@ (a_a1gX :: k_a1gV))
(@ (b_a1gY :: k_a1gV))
(np_s1yz [Occ=Once!] :: Partition.NP f_a1gW '[a_a1gX, b_a1gY]) ->
case np_s1yz of
{ Partition.:* @ x_a1h2 @ xs_a1h3 co_a1h4 fx_s1yB [Occ=Once]
fxs_s1yC [Occ=Once!] ->
case fxs_s1yC of {
Partition.Nil _ [Occ=Dead, Dmd=<B,A>] ->
Partition.strictToPair1 @ k_a1gV @ a_a1gX @ f_a1gW @ b_a1gY;
Partition.:* @ x1_a1h7 @ xs1_a1h8 co1_a1h9 fy_s1yE [Occ=Once]
_ [Occ=Dead] ->
(fx_s1yB
`cast` (<f_a1gW>_R (Nth:1 (Sym co_a1h4))
:: (f_a1gW x_a1h2 :: *) ~R# (f_a1gW a_a1gX :: *)),
fy_s1yE
`cast` (<f_a1gW>_R (Nth:1 (Sym co1_a1h9 ; Nth:2 (Sym co_a1h4)))
:: (f_a1gW x1_a1h7 :: *) ~R# (f_a1gW b_a1gY :: *)))
}
}
```
This is because in `prepareAlts` are try to inspect the type of `fxs` which looks like a type variable, however it has since been refined by the pattern match on `np` above. Adding the explicit type signature to `fxs` makes `prepareAlts` treat it correctly.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"prepareAlts does not take into account equalities which are in scope","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"If we consider this program submitted for our consideration by Andres we see some surprising behaviour.\r\n\r\nhttps://gist.github.com/kosmikus/237946a2335600690208a4a36efef988\r\n\r\n{{{\r\n{-# LANGUAGE TypeOperators, GADTs, FlexibleContexts, DataKinds, RankNTypes, PolyKinds, TypeFamilies, MultiParamTypeClasses, UndecidableInstances, UndecidableSuperClasses, FlexibleInstances, ConstraintKinds, TypeApplications, EmptyCase, ScopedTypeVariables, PartialTypeSignatures, TemplateHaskell #-}\r\nmodule Partition where\r\n\r\nimport Data.Coerce\r\nimport Data.Kind\r\nimport Data.Proxy\r\n\r\ndata NP (f :: k -> Type) (xs :: [k]) where\r\n Nil :: NP f '[]\r\n (:*) :: f x -> NP f xs -> NP f (x : xs)\r\n\r\ninfixr 5 :*\r\n\r\nstrictToPair :: forall f a b . NP f '[a, b] -> (f a, f b)\r\nstrictToPair np =\r\n case np of\r\n (fx :* fxs) ->\r\n case (fxs {- :: NP f '[b] -}) of\r\n (fy :* fys) ->\r\n (fx, fy)\r\n}}}\r\n\r\nBoth pattern matches are exhaustive so we don't need to generate any failure cases when pattern matching. \r\n\r\nNotice in the generated core that we have a match on `Partition.Nil` even though the match will never\r\nbe reached. \r\n\r\n\r\n{{{\r\n Partition.strictToPair \r\n :: forall k (f :: k -> *) (a :: k) (b :: k). \r\n Partition.NP f '[a, b] -> (f a, f b) \r\n [GblId, Arity=1, Str=<S,1*U>m, Unf=OtherCon []] \r\n Partition.strictToPair \r\n = \\ (@ k_a1gV) \r\n (@ (f_a1gW :: k_a1gV -> *)) \r\n (@ (a_a1gX :: k_a1gV)) \r\n (@ (b_a1gY :: k_a1gV)) \r\n (np_s1yz [Occ=Once!] :: Partition.NP f_a1gW '[a_a1gX, b_a1gY]) -> \r\n case np_s1yz of \r\n { Partition.:* @ x_a1h2 @ xs_a1h3 co_a1h4 fx_s1yB [Occ=Once] \r\n fxs_s1yC [Occ=Once!] -> \r\n case fxs_s1yC of { \r\n Partition.Nil _ [Occ=Dead, Dmd=<B,A>] -> \r\n Partition.strictToPair1 @ k_a1gV @ a_a1gX @ f_a1gW @ b_a1gY; \r\n Partition.:* @ x1_a1h7 @ xs1_a1h8 co1_a1h9 fy_s1yE [Occ=Once] \r\n _ [Occ=Dead] -> \r\n (fx_s1yB \r\n `cast` (<f_a1gW>_R (Nth:1 (Sym co_a1h4)) \r\n :: (f_a1gW x_a1h2 :: *) ~R# (f_a1gW a_a1gX :: *)), \r\n fy_s1yE \r\n `cast` (<f_a1gW>_R (Nth:1 (Sym co1_a1h9 ; Nth:2 (Sym co_a1h4))) \r\n :: (f_a1gW x1_a1h7 :: *) ~R# (f_a1gW b_a1gY :: *))) \r\n } \r\n } \r\n}}}\r\n\r\nThis is because in `prepareAlts` are try to inspect the type of `fxs` which looks like a type variable, however it has since been refined by the pattern match on `np` above. Adding the explicit type signature to `fxs` makes `prepareAlts` treat it correctly. ","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15910GHC missreports import as redundant.2019-07-07T18:02:29ZAndreas KlebingerGHC missreports import as redundant.In the following code GHC claims the first import is redundant.
```
import Data.Map (Map)
import qualified Data.Map as M
type MT = Map
```
```
test.hs:5:1: warning: [-Wunused-imports]
The qualified import of `Data.Map' is redunda...In the following code GHC claims the first import is redundant.
```
import Data.Map (Map)
import qualified Data.Map as M
type MT = Map
```
```
test.hs:5:1: warning: [-Wunused-imports]
The qualified import of `Data.Map' is redundant
except perhaps to import instances from `Data.Map'
To import instances alone, use: import Data.Map()
|
5 | import qualified Data.Map as M
```
Reproduceable on 8.4 and HEAD at least.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"GHC missreports import as redundant.","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"In the following code GHC claims the first import is redundant.\r\n\r\n{{{\r\nimport Data.Map (Map)\r\n\r\nimport qualified Data.Map as M\r\n\r\ntype MT = Map\r\n}}}\r\n\r\n\r\n{{{\r\ntest.hs:5:1: warning: [-Wunused-imports]\r\n The qualified import of `Data.Map' is redundant\r\n except perhaps to import instances from `Data.Map'\r\n To import instances alone, use: import Data.Map()\r\n |\r\n5 | import qualified Data.Map as M\r\n}}}\r\n\r\n\r\nReproduceable on 8.4 and HEAD at least.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15911internal error: evacuate(static): strange closure type -1275332472019-07-07T18:02:29Zbfraikininternal error: evacuate(static): strange closure type -127533247internal error: evacuate(static): strange closure type -127533247
(GHC version 8.4.4 for x86_64_apple_darwin)
> Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Abort trap: 6
<details><summary>Trac metadata</s...internal error: evacuate(static): strange closure type -127533247
(GHC version 8.4.4 for x86_64_apple_darwin)
> Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Abort trap: 6
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"internal error: evacuate(static): strange closure type -127533247","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"internal error: evacuate(static): strange closure type -127533247\r\n (GHC version 8.4.4 for x86_64_apple_darwin)\r\n Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\nAbort trap: 6","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15912Output hadrian build data for cabal-helper tool support2020-01-05T18:00:44ZdavideOutput hadrian build data for cabal-helper tool supportAs a step in the direction of adding tool support for ghc development we can output some meta data from Hadrian to better support the cabal-helper tool. Proposed changes:
1. Add a \<ghc-root\>/cabal.helper file that points to the 3 stag...As a step in the direction of adding tool support for ghc development we can output some meta data from Hadrian to better support the cabal-helper tool. Proposed changes:
1. Add a \<ghc-root\>/cabal.helper file that points to the 3 stage build directories under the default Hadrian build dir: _build.
1. Add a "--cabal-helper" command line option to Hadrian that enables this output.
1. Output \<build-root\>/stage\<x\>/build.helper in JSON format containing per package:
- .cabal file path relative to \<ghc-root\> (achieved by prefixing paths with $PROJECTDIR) e.g $PROJECTDIR/libraries/binary/binary.cabal
- source path e.g. $PROJECTDIR/libraries/binary/binary.cabal
- Build "dist directory", which is the directory containing the setup-config file generated by cabal on build. this is a relative path e.g. libraries/binary/setup-config
\#\# TODO
- decide on the naming of files
\#\# Implementation
- See:
\* Packages.ghcPackages
\* Hadrian.Package.pkgCabalFile
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Build System (Hadrian) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | DanielG |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Output hadrian build data for cabal-helper tool support","status":"New","operating_system":"","component":"Build System (Hadrian)","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["cabal-helper","hadrian","support","tool"],"differentials":[],"test_case":"","architecture":"","cc":["DanielG"],"type":"FeatureRequest","description":"As a step in the direction of adding tool support for ghc development we can output some meta data from Hadrian to better support the cabal-helper tool. Proposed changes:\r\n\r\n1. Add a <ghc-root>/cabal.helper file that points to the 3 stage build directories under the default Hadrian build dir: _build.\r\n2. Add a \"--cabal-helper\" command line option to Hadrian that enables this output.\r\n3. Output <build-root>/stage<x>/build.helper in JSON format containing per package:\r\n * .cabal file path relative to <ghc-root> (achieved by prefixing paths with $PROJECTDIR) e.g $PROJECTDIR/libraries/binary/binary.cabal\r\n * source path e.g. $PROJECTDIR/libraries/binary/binary.cabal\r\n * Build \"dist directory\", which is the directory containing the setup-config file generated by cabal on build. this is a relative path e.g. libraries/binary/setup-config\r\n\r\n## TODO\r\n\r\n* decide on the naming of files\r\n\r\n## Implementation\r\n\r\n* See:\r\n * Packages.ghcPackages\r\n * Hadrian.Package.pkgCabalFile","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15914haddock-library-1.7.0 fails to build on ppc64 BE2019-07-27T14:54:23ZJens Petersenhaddock-library-1.7.0 fails to build on ppc64 BEI was trying to build ghc-8.6.2 for Fedora 28 and it failed on ppc64 (Bigendian) with:
```
utils/haddock/haddock-library/src/Documentation/Haddock/Types.hs:99:25: error:
• GHC internal error: ‘TableRow’ is not in scope during type c...I was trying to build ghc-8.6.2 for Fedora 28 and it failed on ppc64 (Bigendian) with:
```
utils/haddock/haddock-library/src/Documentation/Haddock/Types.hs:99:25: error:
• GHC internal error: ‘TableRow’ is not in scope during type checking, but it passed the renamer
tcl_env of environment: [aIy :-> Type variable ‘id’ = id :: k,
rHO :-> ATcTyCon Table :: k -> *,
rHP :-> APromotionErr RecDataConPE]
• In the type ‘[TableRow id]’
In the definition of data constructor ‘Table’
In the data declaration for ‘Table’
|
99 | { tableHeaderRows :: [TableRow id]
| ^^^^^^^^
utils/haddock/dist/build/haddock/autogen/Paths_haddock.hs:41:22: error:
• Couldn't match type ‘a’ with ‘String’
Expected type: IO a
Actual type: IO String
• In the first argument of ‘catchIO’, namely
‘(getEnv "haddock_libdir")’
In the expression:
catchIO (getEnv "haddock_libdir") (\ _ -> return libdir)
In an equation for ‘getLibDir’:
getLibDir
= catchIO (getEnv "haddock_libdir") (\ _ -> return libdir)
|
41 | getLibDir = catchIO (getEnv "haddock_libdir") (\_ -> return libdir)
| ^^^^^^^^^^^^^^^^^^^^^^^
make[1]: *** [utils/haddock/ghc.mk:20: utils/haddock/dist/build/Documentation/Haddock/Types.dyn_o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [utils/haddock/ghc.mk:20: utils/haddock/dist/build/Paths_haddock.dyn_o] Error 1
utils/haddock/haddock-api/src/Haddock/Syb.hs:22:1: warning: [-Wunused-top-binds]
Defined but not used: ‘isType’
|
22 | isType _ = isJust $ eqT @a @b
| ^^^^^^
utils/haddock/haddock-api/src/Haddock/Syb.hs:38:1: warning: [-Wunused-top-binds]
Defined but not used: ‘everythingBut’
|
38 | everythingBut k f x = let (v, stop) = f x
| ^^^^^^^^^^^^^
utils/haddock/haddock-api/src/Haddock/Syb.hs:60:21: warning: [-Wunused-matches]
Defined but not used: ‘s’
|
60 | everythingWithState s k f x =
| ^
utils/haddock/haddock-api/src/Haddock/Syb.hs:75:1: warning: [-Wunused-top-binds]
Defined but not used: ‘everywhereBut’
|
75 | everywhereBut q f x
| ^^^^^^^^^^^^^
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.6.2 for powerpc64-unknown-linux):
urk! lookup local fingerprint
$fShowTokenType
[]
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/iface/MkIface.hs:524:37 in ghc:MkIface
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
make[1]: *** [utils/haddock/ghc.mk:20: utils/haddock/dist/build/Haddock/Backends/Hyperlinker/Types.dyn_o] Error 1
make: *** [Makefile:127: all] Error 2
```
https://koji.fedoraproject.org/koji/taskinfo?taskID=30919315 (the log files are only preserved for 2 weeks)
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"haddock-library-1.7.0 fails to build on ppc64 BE","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I was trying to build ghc-8.6.2 for Fedora 28 and it failed on ppc64 (Bigendian) with:\r\n\r\n{{{\r\nutils/haddock/haddock-library/src/Documentation/Haddock/Types.hs:99:25: error:\r\n • GHC internal error: ‘TableRow’ is not in scope during type checking, but it passed the renamer\r\n tcl_env of environment: [aIy :-> Type variable ‘id’ = id :: k,\r\n rHO :-> ATcTyCon Table :: k -> *,\r\n rHP :-> APromotionErr RecDataConPE]\r\n • In the type ‘[TableRow id]’\r\n In the definition of data constructor ‘Table’\r\n In the data declaration for ‘Table’\r\n |\r\n99 | { tableHeaderRows :: [TableRow id]\r\n | ^^^^^^^^\r\nutils/haddock/dist/build/haddock/autogen/Paths_haddock.hs:41:22: error:\r\n • Couldn't match type ‘a’ with ‘String’\r\n Expected type: IO a\r\n Actual type: IO String\r\n • In the first argument of ‘catchIO’, namely\r\n ‘(getEnv \"haddock_libdir\")’\r\n In the expression:\r\n catchIO (getEnv \"haddock_libdir\") (\\ _ -> return libdir)\r\n In an equation for ‘getLibDir’:\r\n getLibDir\r\n = catchIO (getEnv \"haddock_libdir\") (\\ _ -> return libdir)\r\n |\r\n41 | getLibDir = catchIO (getEnv \"haddock_libdir\") (\\_ -> return libdir)\r\n | ^^^^^^^^^^^^^^^^^^^^^^^\r\nmake[1]: *** [utils/haddock/ghc.mk:20: utils/haddock/dist/build/Documentation/Haddock/Types.dyn_o] Error 1\r\nmake[1]: *** Waiting for unfinished jobs....\r\nmake[1]: *** [utils/haddock/ghc.mk:20: utils/haddock/dist/build/Paths_haddock.dyn_o] Error 1\r\nutils/haddock/haddock-api/src/Haddock/Syb.hs:22:1: warning: [-Wunused-top-binds]\r\n Defined but not used: ‘isType’\r\n |\r\n22 | isType _ = isJust $ eqT @a @b\r\n | ^^^^^^\r\nutils/haddock/haddock-api/src/Haddock/Syb.hs:38:1: warning: [-Wunused-top-binds]\r\n Defined but not used: ‘everythingBut’\r\n |\r\n38 | everythingBut k f x = let (v, stop) = f x\r\n | ^^^^^^^^^^^^^\r\nutils/haddock/haddock-api/src/Haddock/Syb.hs:60:21: warning: [-Wunused-matches]\r\n Defined but not used: ‘s’\r\n |\r\n60 | everythingWithState s k f x =\r\n | ^\r\nutils/haddock/haddock-api/src/Haddock/Syb.hs:75:1: warning: [-Wunused-top-binds]\r\n Defined but not used: ‘everywhereBut’\r\n |\r\n75 | everywhereBut q f x\r\n | ^^^^^^^^^^^^^\r\nghc-stage2: panic! (the 'impossible' happened)\r\n (GHC version 8.6.2 for powerpc64-unknown-linux):\r\n\turk! lookup local fingerprint\r\n $fShowTokenType\r\n []\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler/iface/MkIface.hs:524:37 in ghc:MkIface\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\nmake[1]: *** [utils/haddock/ghc.mk:20: utils/haddock/dist/build/Haddock/Backends/Hyperlinker/Types.dyn_o] Error 1\r\nmake: *** [Makefile:127: all] Error 2\r\n}}}\r\n\r\nhttps://koji.fedoraproject.org/koji/taskinfo?taskID=30919315 (the log files are only preserved for 2 weeks)","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15917GHC seems to re-read source of module to produce fancy error msgs2024-02-20T20:54:05ZHeimdellGHC seems to re-read source of module to produce fancy error msgsI had a module with unused name `txFees` in it. I started compilation and in the same time edited code by renaming `txFees` -\> `_txFees`.
I got the following message:
```
warning: [-Wunused-matches]
Defined but not used: ‘...I had a module with unused name `txFees` in it. I started compilation and in the same time edited code by renaming `txFees` -\> `_txFees`.
I got the following message:
```
warning: [-Wunused-matches]
Defined but not used: ‘txFees’
|
40 | } _txFees
| ^^^^^^
<no location info>: error:
Failing due to -Werror.
```
The screenshot is in the attachment. Notice that message part is about old code (`txFees`), and preview is about new code (`_txFees`).
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.2.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | lowest |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | @int-index |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"GHC seems to re-read source of module to produce fancy error msgs","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.2.2","keywords":["re-reading"],"differentials":[],"test_case":"","architecture":"","cc":["@int-index"],"type":"Bug","description":"I had a module with unused name `txFees` in it. I started compilation and in the same time edited code by renaming `txFees` -> `_txFees`.\r\n\r\nI got the following message:\r\n\r\n{{{\r\n warning: [-Wunused-matches]\r\n Defined but not used: ‘txFees’\r\n |\r\n 40 | } _txFees\r\n | ^^^^^^\r\n \r\n <no location info>: error: \r\n Failing due to -Werror.\r\n}}}\r\n\r\nThe screenshot is in the attachment. Notice that message part is about old code (`txFees`), and preview is about new code (`_txFees`).","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15921Data.List.maximumBy uses counter-intuitive ordering2020-10-27T22:29:26ZMarten WijnjaData.List.maximumBy uses counter-intuitive ordering```hs
Data.List.maximumBy (Data.Ord.comparing snd) [(0, 1), (3, 2), (2, 2), (1, 1)]
```
What do you expect the outcome to be?
All Haskell-programmers I know that I asked this question, would answer, based on their intuition, `(3, 2)`. H...```hs
Data.List.maximumBy (Data.Ord.comparing snd) [(0, 1), (3, 2), (2, 2), (1, 1)]
```
What do you expect the outcome to be?
All Haskell-programmers I know that I asked this question, would answer, based on their intuition, `(3, 2)`. However, this is not the behaviour that `Data.List.maximumBy` currently has: Instead, `(2, 2)` (the *last* occurrence of a 'maximum' element) is kept.
Furthermore, this behaviour is different from the one used by `Data.List.minimumBy`. I would therefore like to request:
- If its behaviour is unintentionally different from `minimumBy`, alter the implementation to match it.
- If its behaviour is intentionally the opposite, this should be specified in the documentation.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Foldable.maximumBy uses counter-intuitive ordering","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["List","maximumBy","minimumBy"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{#!hs\r\nData.List.maximumBy (Data.Ord.comparing snd) [(0, 1), (3, 2), (2, 2), (1, 1)]\r\n}}}\r\nWhat do you expect the outcome to be?\r\nAll Haskell-programmers I know that I asked this question, would answer, based on their intuition, `(3, 2)`. However, this is not the behaviour that `Data.List.maximumBy` currently has: Instead, `(2, 2)` (the ''last'' occurrence of a 'maximum' element) is kept.\r\n\r\nFurthermore, this behaviour is different from the one used by `Data.List.minimumBy`. I would therefore like to request:\r\n\r\n- If its behaviour is unintentionally different from `minimumBy`, alter the implementation to match it.\r\n- If its behaviour is intentionally the opposite, this should be specified in the documentation.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15923Skip performance tests if not in a git repo2019-07-07T18:02:26ZdavideSkip performance tests if not in a git repoAs of #12758 performance tests now compare to the results of the previous commit. Results are stored in git notes. If for some reason the rood directory is not a git repo, we have no results to compare to, nor can we save the new results...As of #12758 performance tests now compare to the results of the previous commit. Results are stored in git notes. If for some reason the rood directory is not a git repo, we have no results to compare to, nor can we save the new results to git notes. Hence we should skip all performance tests.
Such a use case was encountered in simonpj's workflow where he copies/syslinks the work tree without the .git directory before validating. An open question is can we allow performance testing while not in a git repo or by adjusting the workflow?
Tasks:
- When the ghc root directory is not a git repository, skip all performance tests.
- Update the [wiki page](https://ghc.haskell.org/trac/ghc/wiki/Performance/Tests).
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | simonpj |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Skip performance tests if not in a git repo","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["git","notes","performance","tests"],"differentials":[],"test_case":"","architecture":"","cc":["simonpj"],"type":"Bug","description":"As of #12758 performance tests now compare to the results of the previous commit. Results are stored in git notes. If for some reason the rood directory is not a git repo, we have no results to compare to, nor can we save the new results to git notes. Hence we should skip all performance tests.\r\n\r\nSuch a use case was encountered in simonpj's workflow where he copies/syslinks the work tree without the .git directory before validating. An open question is can we allow performance testing while not in a git repo or by adjusting the workflow?\r\n\r\nTasks:\r\n* When the ghc root directory is not a git repository, skip all performance tests.\r\n* Update the [https://ghc.haskell.org/trac/ghc/wiki/Performance/Tests wiki page].","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3davidedavidehttps://gitlab.haskell.org/ghc/ghc/-/issues/15927Weird interaction between fundeps and overlappable instances2022-09-06T11:41:06ZDarwin226Weird interaction between fundeps and overlappable instancesConsider this code
```hs
class MyState s m | m -> s where
getMyState :: m s
instance {-# OVERLAPPABLE #-} (MyState s m, MonadTrans t, Monad m) => MyState s (t m) where
getMyState = lift getMyState
instance Monad m => MyState s (...Consider this code
```hs
class MyState s m | m -> s where
getMyState :: m s
instance {-# OVERLAPPABLE #-} (MyState s m, MonadTrans t, Monad m) => MyState s (t m) where
getMyState = lift getMyState
instance Monad m => MyState s (StateT s m) where
getMyState = get
f :: (MyState Int m, MyState Char m, MonadIO m) => m ()
f = do
int <- getMyState
str <- getMyState
liftIO $ putStrLn (replicate int str)
works1 :: (MyState s m, Show s, MonadIO m) => m ()
works1 = do
a <- getMyState
liftIO (print a)
works2 = runStateT (runStateT f (5 :: Int)) 'a'
```
It defines a class similar to `MonadState` of mtl. There is a functional dependency in place, just like with `MonadState` and we can see that it works the same because `works1` compiles where `a` would have an ambiguous type otherwise.
The `f` function "shouldn't" compile because it's using two different states at once subverting the functional dependency restriction. It does however compile because an explicit type signature is provided with an unsolvable constraint.
Now the really weird part is that `works2` also compiles and produces the expected result even though it's using `f`.
Here's what I think is happening: instance resolution is looking for `MyState Int (StateT Char m)` and it finds the `MyState s (StateT s m)` instance. Instead of complaining that `Int` doesn't match `Char` (due to the fundep), it just rejects the instance and takes the overlappable one that does match. In the case where the state is unknown (i.e. both instances match), the fundep kicks in. That's why `runStateT works1 True` works.
Is this intended behavior? It seems pretty useful in some situations and I've tested this with 8.2 and 8.6 with the same results.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Weird interaction between fundeps and overlappable instances","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Consider this code\r\n\r\n{{{#!hs\r\nclass MyState s m | m -> s where\r\n getMyState :: m s\r\ninstance {-# OVERLAPPABLE #-} (MyState s m, MonadTrans t, Monad m) => MyState s (t m) where\r\n getMyState = lift getMyState\r\ninstance Monad m => MyState s (StateT s m) where\r\n getMyState = get\r\n\r\nf :: (MyState Int m, MyState Char m, MonadIO m) => m ()\r\nf = do\r\n int <- getMyState\r\n str <- getMyState\r\n liftIO $ putStrLn (replicate int str)\r\n\r\n\r\nworks1 :: (MyState s m, Show s, MonadIO m) => m ()\r\nworks1 = do\r\n a <- getMyState\r\n liftIO (print a)\r\n\r\nworks2 = runStateT (runStateT f (5 :: Int)) 'a'\r\n}}}\r\n\r\nIt defines a class similar to `MonadState` of mtl. There is a functional dependency in place, just like with `MonadState` and we can see that it works the same because `works1` compiles where `a` would have an ambiguous type otherwise.\r\n\r\nThe `f` function \"shouldn't\" compile because it's using two different states at once subverting the functional dependency restriction. It does however compile because an explicit type signature is provided with an unsolvable constraint. \r\n\r\nNow the really weird part is that `works2` also compiles and produces the expected result even though it's using `f`.\r\n\r\nHere's what I think is happening: instance resolution is looking for `MyState Int (StateT Char m)` and it finds the `MyState s (StateT s m)` instance. Instead of complaining that `Int` doesn't match `Char` (due to the fundep), it just rejects the instance and takes the overlappable one that does match. In the case where the state is unknown (i.e. both instances match), the fundep kicks in. That's why `runStateT works1 True` works.\r\n\r\nIs this intended behavior? It seems pretty useful in some situations and I've tested this with 8.2 and 8.6 with the same results.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15928Improve error message: Reduction stack overflow when using "coerce"2024-01-21T16:25:19ZharendraImprove error message: Reduction stack overflow when using "coerce"EDIT: Executive summary: The error messages below are confusing and not perspicuous to users. We should fix. [ticket:15928\#comment:163956](https://gitlab.haskell.org//ghc/ghc/issues/15928#note_163956) has a concrete suggestion to use as...EDIT: Executive summary: The error messages below are confusing and not perspicuous to users. We should fix. [ticket:15928\#comment:163956](https://gitlab.haskell.org//ghc/ghc/issues/15928#note_163956) has a concrete suggestion to use as a starting point, and [ticket:15928\#comment:163991](https://gitlab.haskell.org//ghc/ghc/issues/15928#note_163991) suggests we print out the role signature of any tycons involved.
Compiling the following snippet results in a "Reduction stack overflow" error message:
```hs
{-# Language ScopedTypeVariables #-}
{-# Language RankNTypes #-}
import Data.Functor.Identity
import Data.Coerce
newtype Stream m a =
Stream {
unStream :: forall r. (Stream m a -> m r) -> m r
}
newtype SerialT m a = SerialT (Stream m a)
g :: SerialT Identity a -> Identity Bool
g m = undefined
idSerial :: SerialT Identity a -> SerialT Identity a
idSerial = id
f :: SerialT Identity a -> Identity Bool
f = g . idSerial . coerce
main = undefined
```
The following error message is produced on compiling this with ghc-8.6.2:
```
xy.hs:26:20: error:
• Reduction stack overflow; size = 201
When simplifying the following type:
Coercible
((Stream Identity a -> Identity r) -> Identity r)
((Stream Identity a0 -> Identity r) -> Identity r)
Use -freduction-depth=0 to disable this check
(any upper bound you could choose might fail unpredictably with
minor updates to GHC, so disabling the check is recommended if
you're sure that type checking should terminate)
• In the second argument of ‘(.)’, namely ‘coerce’
In the second argument of ‘(.)’, namely ‘idSerial . coerce’
In the expression: g . idSerial . coerce
|
26 | f = g . idSerial . coerce
| ^^^^^^
```
When I use an inline signature like this:
```hs
f :: SerialT Identity a -> Identity Bool
f = g . (id :: SerialT Identity a -> SerialT Identity a) . coerce
main = undefined
```
It again results in the same error:
```
xy.hs:18:60: error:
• Reduction stack overflow; size = 201
When simplifying the following type:
Coercible
((Stream Identity a -> Identity r) -> Identity r)
((Stream Identity a0 -> Identity r) -> Identity r)
Use -freduction-depth=0 to disable this check
(any upper bound you could choose might fail unpredictably with
minor updates to GHC, so disabling the check is recommended if
you're sure that type checking should terminate)
• In the second argument of ‘(.)’, namely ‘coerce’
In the second argument of ‘(.)’, namely
‘(id :: SerialT Identity a -> SerialT Identity a) . coerce’
In the expression:
g . (id :: SerialT Identity a -> SerialT Identity a) . coerce
|
18 | f = g . (id :: SerialT Identity a -> SerialT Identity a) . coerce
| ^^^^^^
```
Everything works fine is I use an inline signature with a `forall` keyword like this:
```hs
f :: forall a. SerialT Identity a -> Identity Bool
f = g . (id :: SerialT Identity a -> SerialT Identity a) . coerce
```
I have following questions:
1) Why the first version results in a panic? Is that a bug?
2) The second version might possibly be incorrect code because the types do not unify, but still it should not result in a panic, because of the panic I could not figure out what the problem is. It took a long time to isolate the code and then do some trial and error on it.8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15929Explore whether adding XRay attributes to LLVM IR is worthwhile2019-07-07T18:02:24ZMatthew PickeringExplore whether adding XRay attributes to LLVM IR is worthwhileLLVM has support for XRay which is a tracing framework developed by Google. It might be possible to add the relevant function attributes to the IR we generate to get access to detailed traces which can be analysed using existing tooling....LLVM has support for XRay which is a tracing framework developed by Google. It might be possible to add the relevant function attributes to the IR we generate to get access to detailed traces which can be analysed using existing tooling.
https://llvm.org/docs/XRay.html
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Explore whether adding XRay attributes to LLVM IR is worthwhile","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"LLVM has support for XRay which is a tracing framework developed by Google. It might be possible to add the relevant function attributes to the IR we generate to get access to detailed traces which can be analysed using existing tooling. \r\n\r\n\r\nhttps://llvm.org/docs/XRay.html","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15932DeriveFunctor and GeneralizedNewtypeDeriving instances never reporting as cov...2021-03-04T08:53:07ZdaveanDeriveFunctor and GeneralizedNewtypeDeriving instances never reporting as coveredWhen testing coverage of test cases, HPC does not report some instances as receiving coverage even though it seems they are. Particularly, when one hand derives the functions they show full coverage. The specific instances in question ap...When testing coverage of test cases, HPC does not report some instances as receiving coverage even though it seems they are. Particularly, when one hand derives the functions they show full coverage. The specific instances in question appear to be ones derived via DeriveFunctor and GeneralizedNewtypeDeriving. Problems have been observed with at least Functor, Applicative, and Monad.
A minimal example is attached, and available as a cabal project at https://code.xkrd.net/davean/minimal-coverage-test. To reproduce, run "cabal v2-test --enable-coverage" and view the resulting coverage HTML files.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | low |
| Resolution | Unresolved |
| Component | Code Coverage |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"DeriveFunctor and GeneralizedNewtypeDeriving instances never reporting as covered","status":"New","operating_system":"","component":"Code Coverage","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"When testing coverage of test cases, HPC does not report some instances as receiving coverage even though it seems they are. Particularly, when one hand derives the functions they show full coverage. The specific instances in question appear to be ones derived via DeriveFunctor and GeneralizedNewtypeDeriving. Problems have been observed with at least Functor, Applicative, and Monad.\r\n\r\nA minimal example is attached, and available as a cabal project at https://code.xkrd.net/davean/minimal-coverage-test. To reproduce, run \"cabal v2-test --enable-coverage\" and view the resulting coverage HTML files.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3Javran ChengJavran Chenghttps://gitlab.haskell.org/ghc/ghc/-/issues/15933Wrong size for int for callbacks into Haskell from foreign code2020-06-14T21:08:58ZIlias TsitsimpisWrong size for int for callbacks into Haskell from foreign codeThe following code produces different results on amd64 (64-bit little endian) and s390x (64-bit big endian).
`foo.h:`
```c
typedef void(*hs_callback)(int x);
extern void function_in_c(hs_callback cb);
```
`foo.c:`
```c
#include "foo....The following code produces different results on amd64 (64-bit little endian) and s390x (64-bit big endian).
`foo.h:`
```c
typedef void(*hs_callback)(int x);
extern void function_in_c(hs_callback cb);
```
`foo.c:`
```c
#include "foo.h"
void function_in_c(hs_callback cb)
{
int x = 10;
cb(x);
}
```
`Foo.hs:`
```hs
module Main(main) where
import Foreign
import Foreign.C
type HsCallback = CInt -> IO ()
foreign import ccall "foo.h function_in_c"
functionInC :: FunPtr HsCallback -> IO ()
foreign import ccall "wrapper"
wrap :: HsCallback -> IO (FunPtr HsCallback)
main = do
f <- wrap $ \x -> print x
functionInC f
freeHaskellFunPtr f
```
On amd64 the output is 10, but on s390x is 0. On both machines, `sizeOf (undefined :: CInt) == sizeof(int) == 4`. When changing `HsCallback` to:
```hs
type HsCallback = Int -> IO ()
```
both produce the same, correct result, but the above seems wrong, as `sizeOf (undefined :: Int) == 8`.
This has been reproduced with both ghc-8.4 and ghc-8.2, and causes dbus to fail to build on s390x (https://github.com/rblaze/haskell-dbus/issues/26), as it relies on libxml-sax which contains the above (simplified) code.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.4.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (FFI) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Wrong size for int for callbacks into Haskell from foreign code","status":"New","operating_system":"","component":"Compiler (FFI)","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The following code produces different results on amd64 (64-bit little endian) and s390x (64-bit big endian).\r\n\r\n`foo.h:`\r\n{{{#!c\r\ntypedef void(*hs_callback)(int x);\r\nextern void function_in_c(hs_callback cb);\r\n}}}\r\n`foo.c:`\r\n{{{#!c\r\n#include \"foo.h\"\r\n\r\nvoid function_in_c(hs_callback cb)\r\n{\r\n int x = 10;\r\n cb(x);\r\n}\r\n}}}\r\n`Foo.hs:`\r\n{{{#!hs\r\nmodule Main(main) where\r\n\r\nimport Foreign\r\nimport Foreign.C\r\n\r\ntype HsCallback = CInt -> IO ()\r\n\r\nforeign import ccall \"foo.h function_in_c\"\r\n functionInC :: FunPtr HsCallback -> IO ()\r\n\r\nforeign import ccall \"wrapper\"\r\n wrap :: HsCallback -> IO (FunPtr HsCallback)\r\n\r\nmain = do\r\n f <- wrap $ \\x -> print x\r\n functionInC f\r\n freeHaskellFunPtr f\r\n}}}\r\n\r\nOn amd64 the output is 10, but on s390x is 0. On both machines, `sizeOf (undefined :: CInt) == sizeof(int) == 4`. When changing `HsCallback` to:\r\n{{{#!hs\r\ntype HsCallback = Int -> IO ()\r\n}}}\r\nboth produce the same, correct result, but the above seems wrong, as `sizeOf (undefined :: Int) == 8`.\r\n\r\nThis has been reproduced with both ghc-8.4 and ghc-8.2, and causes dbus to fail to build on s390x (https://github.com/rblaze/haskell-dbus/issues/26), as it relies on libxml-sax which contains the above (simplified) code.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3Peter Trommlerptrommler@acm.orgPeter Trommlerptrommler@acm.orghttps://gitlab.haskell.org/ghc/ghc/-/issues/15936Rethink Choice of Baseline Commit for Performance Tests2019-07-07T18:02:23ZdavideRethink Choice of Baseline Commit for Performance Tests# Intro
Currently we always use the previous commit when running performance tests. This works well in CI where we fully test each commit in sequence (and hence always have test results for the previous commit). Remember, test results a...# Intro
Currently we always use the previous commit when running performance tests. This works well in CI where we fully test each commit in sequence (and hence always have test results for the previous commit). Remember, test results are stored in git notes and are not by default shared between repositories (i.e. your local repo will only have performance results when they were run locally on your machine). This is by design: we want to avoid comparing results form different machines.
Unfortunately This is not so effective when testing locally. The programmer may have only run a subset of performance tests on the previous commit, and often have not run the tests at all (this is notably true after performing a rebase: the previous commit has changed). We need to rethink how we pick a baseline commit.
# Proposed Solution
- Search for a baseline per test/test_env/metric/way
- Start at HEAD\^ and use local metrics. If none exist, use CI metrics. If none exist continue the search at the parent.
- Stop after a constant number of commits (failing to find a baseline).
- Stop the search if the child commit has expected changes for this test/metric/way (failing to find a baseline).
- It's possible that there are multiple runs of the test (e.g if the test was run many times locally). In that case take the average.
- If no baseline is found, show a warning and let the test pass.
### Handling Expected changes
If there are expected changes between HEAD and a potential baseline commit, then that baseline cannot be used. We make no attempt to approximate a baseline. A warning will be issued telling the user to run the tests of the previous commit or try and fetch CI results.
#### Issues
- The programmer is responsible for the final commit message having the correct expected changes. This is particularly important when merged via gitlab with a squash (this can change the commit message).
- We do not distinguish between full/partial performance results being available for the baseline commit: that would require checking out the baseline commit and extracting the full list of tests (This seems fragile and far too expensive).
### When to automatically fetch CI results?
Do not fetch CI results. Allow the user to do this, but give the exact git command so they can just copy and paste.
# Alternative Solution
Ultimately this was deemed too complicated. It assumes that commits will be squashed and merged into master (not always true).
- When running performance tests, results will be compared to a baseline commit that is the merge base with master (most recent commit from master). If HEAD is already in master, then the previous commit is used instead.
- If any locally generated performance results exist, they are used exclusively for the baseline.
- Else if any CI generated performance results exist (and have been fetched), they are used exclusively for the baseline.
- Else performance tests trivially pass, and a warning is given to the user.
To find the baseline commit:
```
mergeBase = merge-base master HEAD
baselineCommit = if mergeBase == HEAD
then HEAD^
else mergeBase
```
### Reasoning
- We want each commit in master not to introduce a significant change in performance: hence we compare commits in mater to the previous commit.
- If not on master (1 or more ahead and 0 or more commits behind master). We assume that the intention is to create a patch where all new commits will ultimately be squashed and placed on top of master as a single commit. On the other hand we don't want to consider changes in master from after we branched. Instead of using master HEAD as the baseline, we use the commit from which we branched from master (i.e. the merge base). In other words we are concerned only with the change in performance introduced by the newly crated commits.8.6.3davidedavidehttps://gitlab.haskell.org/ghc/ghc/-/issues/15940Source plugins should be able to opt-out from appearing in dependencies2019-07-07T18:02:22ZFacundo DomínguezSource plugins should be able to opt-out from appearing in dependenciesCurrently when ghc build a module M using a source plugin in a package P, P shows up in the interface file of M (`M.hi`).
According to `--show-iface`, P shows up in the `package dependencies` section, and in an `addDependentFile` entry....Currently when ghc build a module M using a source plugin in a package P, P shows up in the interface file of M (`M.hi`).
According to `--show-iface`, P shows up in the `package dependencies` section, and in an `addDependentFile` entry.
Presumably, this is necessary to recompile M if P ever changes. But unfortunately, including P in the interface file is the wrong thing to do when the plugin does not affect the result of the compilation of M.
It is only fair to wonder what the point would be in using a plugin which does not modify the compilation. I hit this case when using the upcoming haskell-indexer-plugin, which extracts source code information for later examination.
If the indexer plugin changes, there is no point in rebuilding M, unless the user really wants to reindex the source code. As things stand, `ghc` wants to know where the plugin is every time it is mentioned in the dependencies of a module which is being linked, even though the plugin won't be used for anything. This sometimes can make the plugin harder to use in a large project.
Can we change the plugin interface to opt-out of tracking dependencies? Or would it work better to provide a ghc flag to control this?8.6.3Moritz AngermannMoritz Angermannhttps://gitlab.haskell.org/ghc/ghc/-/issues/15942Associated type family can't be used at the kind level within other parts of ...2020-09-19T20:55:39ZIcelandjackAssociated type family can't be used at the kind level within other parts of parent classI want to run the following past you (using [Visible Kind Applications](https://phabricator.haskell.org/D5229) but may be unrelated). The following compiles
```hs
{-# Language DataKinds #-}
{-# Language KindSignatures #-}...I want to run the following past you (using [Visible Kind Applications](https://phabricator.haskell.org/D5229) but may be unrelated). The following compiles
```hs
{-# Language DataKinds #-}
{-# Language KindSignatures #-}
{-# Language TypeFamilies #-}
{-# Language AllowAmbiguousTypes #-}
import Data.Kind
type G = Bool -> Type
data Fun :: G
class F (bool :: Bool) where
type Not bool :: Bool
foo :: Fun (Not bool)
```
but quantifying `Bool` invisibly all of a sudden I can't use `Not`
```hs
{-# Language DataKinds #-}
{-# Language RankNTypes #-}
{-# Language TypeApplications #-}
{-# Language PolyKinds #-}
{-# Language KindSignatures #-}
{-# Language TypeFamilies #-}
{-# Language AllowAmbiguousTypes #-}
import Data.Kind
type G = forall (b :: Bool). Type
data Fun :: G
class F (bool :: Bool) where
type Not bool :: Bool
foo :: Fun @(Not bool)
```
```
$ ghc-stage2 --interactive -ignore-dot-ghci 739_bug.hs
GHCi, version 8.7.20181017: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 739_bug.hs, interpreted )
739_bug.hs:17:16: error:
• Type constructor ‘Not’ cannot be used here
(it is defined and used in the same recursive group)
• In the first argument of ‘Fun’, namely ‘(Not bool)’
In the type signature: foo :: Fun @(Not bool)
In the class declaration for ‘F’
|
17 | foo :: Fun @(Not bool)
| ^^^
Failed, no modules loaded.
```
Is this restriction warranted8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15943"ASSERT failed" with quantified constraints2019-07-07T18:02:21ZIcelandjack"ASSERT failed" with quantified constraints```hs
{-# Language RankNTypes #-}
{-# Language DataKinds #-}
{-# Language KindSignatures #-}
{-# Language PolyKinds #-}
{-# Language TypeFamilyDependencies #-}
{-# Language GADTs ...```hs
{-# Language RankNTypes #-}
{-# Language DataKinds #-}
{-# Language KindSignatures #-}
{-# Language PolyKinds #-}
{-# Language TypeFamilyDependencies #-}
{-# Language GADTs #-}
{-# Language TypeSynonymInstances #-}
{-# Language FlexibleInstances #-}
{-# Language QuantifiedConstraints #-}
import Data.Type.Equality
import Data.Coerce
import Data.Type.Coercion
import Data.Kind
newtype WrapFalse a b = WrapFalse (Hom False a b)
newtype WrapTrue a b = WrapTrue (Hom True a b)
class
(forall (x :: ob) (y :: ob). Coercible (WrapFalse x y) (WrapTrue y x))
=>
Ríki ob where
type Hom (or::Bool) = (res :: ob -> ob -> Type) | res -> or
instance Ríki Type where
type Hom False = (->)
type Hom True = Op
newtype Op :: Type -> Type -> Type where
Op :: (b -> a) -> Op a b
```
```
$ ghc-stage2 --interactive -ignore-dot-ghci 740_bug.hs
GHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 740_bug.hs, interpreted )
*** Exception: ASSERT failed! file compiler/typecheck/TcFlatten.hs, line 1288
>
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"\"ASSERT failed\" with quantified constraints","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["QuantifiedConstraints"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{#!hs\r\n{-# Language RankNTypes #-}\r\n{-# Language DataKinds #-}\r\n{-# Language KindSignatures #-}\r\n{-# Language PolyKinds #-}\r\n{-# Language TypeFamilyDependencies #-}\r\n{-# Language GADTs #-}\r\n{-# Language TypeSynonymInstances #-}\r\n{-# Language FlexibleInstances #-}\r\n{-# Language QuantifiedConstraints #-}\r\n\r\nimport Data.Type.Equality\r\nimport Data.Coerce\r\nimport Data.Type.Coercion\r\nimport Data.Kind\r\n\r\nnewtype WrapFalse a b = WrapFalse (Hom False a b)\r\nnewtype WrapTrue a b = WrapTrue (Hom True a b)\r\n\r\nclass\r\n (forall (x :: ob) (y :: ob). Coercible (WrapFalse x y) (WrapTrue y x))\r\n =>\r\n Ríki ob where\r\n\r\n type Hom (or::Bool) = (res :: ob -> ob -> Type) | res -> or\r\n\r\ninstance Ríki Type where\r\n type Hom False = (->)\r\n type Hom True = Op\r\n\r\nnewtype Op :: Type -> Type -> Type where\r\n Op :: (b -> a) -> Op a b\r\n}}}\r\n\r\n{{{\r\n$ ghc-stage2 --interactive -ignore-dot-ghci 740_bug.hs\r\nGHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help\r\n[1 of 1] Compiling Main ( 740_bug.hs, interpreted )\r\n*** Exception: ASSERT failed! file compiler/typecheck/TcFlatten.hs, line 1288\r\n>\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15944Wrong warning given ViewPatterns and -Wmonomorphism-restriction2019-07-07T18:02:21ZpacakWrong warning given ViewPatterns and -Wmonomorphism-restrictionI understand ghc complaining about `b`, but not about `a`.
No warnings when view patterns are not used.
```hs
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS -Wmonomorphism-restriction #-}
module Foo where
{-
demo.hs:11:9: warning: [-Wmon...I understand ghc complaining about `b`, but not about `a`.
No warnings when view patterns are not used.
```hs
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS -Wmonomorphism-restriction #-}
module Foo where
{-
demo.hs:11:9: warning: [-Wmonomorphism-restriction]
• The Monomorphism Restriction applies to the bindings for ‘a’, ‘b’
Consider giving them a type signature
• In the expression: let Foo a (round -> b) = f in a + b
In an equation for ‘bar’:
bar f = let Foo a (round -> b) = f in a + b
|
11 | let Foo a (round -> b) = f
| ^^^^^^^^^^^^^^^^^^^^^^
-}
data Foo = Foo Int Double
bar :: Foo -> Int
bar f =
let Foo a (round -> b) = f
in a + b
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Wrong warning given ViewPatterns and -Wmonomorphism-restriction","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I understand ghc complaining about `b`, but not about `a`.\r\n\r\nNo warnings when view patterns are not used.\r\n\r\n{{{#!hs\r\n{-# LANGUAGE ViewPatterns #-}\r\n{-# OPTIONS -Wmonomorphism-restriction #-}\r\n\r\nmodule Foo where\r\n\r\n{-\r\n\r\ndemo.hs:11:9: warning: [-Wmonomorphism-restriction]\r\n • The Monomorphism Restriction applies to the bindings for ‘a’, ‘b’\r\n Consider giving them a type signature\r\n • In the expression: let Foo a (round -> b) = f in a + b\r\n In an equation for ‘bar’:\r\n bar f = let Foo a (round -> b) = f in a + b\r\n |\r\n11 | let Foo a (round -> b) = f\r\n | ^^^^^^^^^^^^^^^^^^^^^^\r\n-} \r\n\r\ndata Foo = Foo Int Double\r\n\r\nbar :: Foo -> Int\r\nbar f =\r\n let Foo a (round -> b) = f\r\n in a + b\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/1594780 unexpected failiures for make test on mac on ghc 8.6.22019-07-07T18:02:20Zgeorge.colpitts80 unexpected failiures for make test on mac on ghc 8.6.280 unexpected faillures for make test on mac on ghc 8.6.2; I'm using an 8.6.2 from the binary distribution
Xcode 10.1, macos 10.13.6
Attached is the compressed output from "make test \>& test.log &"
I don't know what the results are on o...80 unexpected faillures for make test on mac on ghc 8.6.2; I'm using an 8.6.2 from the binary distribution
Xcode 10.1, macos 10.13.6
Attached is the compressed output from "make test \>& test.log &"
I don't know what the results are on other platforms.
```
ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.6.2
bash-3.2$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
bash-3.2$ python3 --version
Python 3.7.0
bash-3.2$ uname -a
Darwin iMac27.local 17.7.0 Darwin Kernel Version 17.7.0: Wed Oct 10 23:06:14 PDT 2018; root:xnu-4570.71.13~1/RELEASE_X86_64 x86_64
bash-3.2$ ghc --info
[("Project name","The Glorious Glasgow Haskell Compilation System")
,("GCC extra via C opts"," -fwrapv -fno-builtin")
,("C compiler command","gcc")
,("C compiler flags"," -fno-stack-protector")
,("C compiler link flags"," ")
,("C compiler supports -no-pie","NO")
,("Haskell CPP command","gcc")
,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
,("ld command","ld")
,("ld flags","")
,("ld supports compact unwind","YES")
,("ld supports build-id","NO")
,("ld supports filelist","YES")
,("ld is GNU ld","NO")
,("ar command","ar")
,("ar flags","qcls")
,("ar supports at file","NO")
,("ranlib command","")
,("touch command","touch")
,("dllwrap command","/bin/false")
,("windres command","/bin/false")
,("libtool command","libtool")
,("perl command","/usr/local/bin/perl")
,("cross compiling","NO")
,("target os","OSDarwin")
,("target arch","ArchX86_64")
,("target word size","8")
,("target has GNU nonexec stack","False")
,("target has .ident directive","True")
,("target has subsections via symbols","True")
,("target has RTS linker","YES")
,("Unregisterised","NO")
,("LLVM llc command","llc")
,("LLVM opt command","opt")
,("LLVM clang command","clang")
,("Project version","8.6.2")
,("Project Git commit id","41f0f6c2f571ea05c49f9f6ed64beebdc5a9f9fc")
,("Booter version","8.4.4")
,("Stage","2")
,("Build platform","x86_64-apple-darwin")
,("Host platform","x86_64-apple-darwin")
,("Target platform","x86_64-apple-darwin")
,("Have interpreter","YES")
,("Object splitting supported","NO")
,("Have native code generator","YES")
,("Support SMP","YES")
,("Tables next to code","YES")
,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn")
,("RTS expects libdw","NO")
,("Support dynamic-too","YES")
,("Support parallel --make","YES")
,("Support reexported-modules","YES")
,("Support thinning and renaming package flags","YES")
,("Support Backpack","YES")
,("Requires unified installed package IDs","YES")
,("Uses package keys","YES")
,("Uses unit IDs","YES")
,("Dynamic by default","NO")
,("GHC Dynamic","YES")
,("GHC Profiled","NO")
,("Leading underscore","YES")
,("Debug on","False")
,("LibDir","/usr/local/lib/ghc-8.6.2")
,("Global Package DB","/usr/local/lib/ghc-8.6.2/package.conf.d")
]
bash-3.2$
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"80 unexpected failiures for make test on mac on ghc 8.6.2","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"80 unexpected faillures for make test on mac on ghc 8.6.2; I'm using an 8.6.2 from the binary distribution\r\nXcode 10.1, macos 10.13.6\r\nAttached is the compressed output from \"make test >& test.log &\"\r\nI don't know what the results are on other platforms.\r\n{{{\r\n ghc --version\r\nThe Glorious Glasgow Haskell Compilation System, version 8.6.2\r\nbash-3.2$ gcc --version\r\nConfigured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1\r\nApple LLVM version 10.0.0 (clang-1000.11.45.5)\r\nTarget: x86_64-apple-darwin17.7.0\r\nThread model: posix\r\nInstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin\r\nbash-3.2$ python3 --version\r\nPython 3.7.0\r\nbash-3.2$ uname -a\r\nDarwin iMac27.local 17.7.0 Darwin Kernel Version 17.7.0: Wed Oct 10 23:06:14 PDT 2018; root:xnu-4570.71.13~1/RELEASE_X86_64 x86_64\r\nbash-3.2$ ghc --info\r\n [(\"Project name\",\"The Glorious Glasgow Haskell Compilation System\")\r\n ,(\"GCC extra via C opts\",\" -fwrapv -fno-builtin\")\r\n ,(\"C compiler command\",\"gcc\")\r\n ,(\"C compiler flags\",\" -fno-stack-protector\")\r\n ,(\"C compiler link flags\",\" \")\r\n ,(\"C compiler supports -no-pie\",\"NO\")\r\n ,(\"Haskell CPP command\",\"gcc\")\r\n ,(\"Haskell CPP flags\",\"-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs\")\r\n ,(\"ld command\",\"ld\")\r\n ,(\"ld flags\",\"\")\r\n ,(\"ld supports compact unwind\",\"YES\")\r\n ,(\"ld supports build-id\",\"NO\")\r\n ,(\"ld supports filelist\",\"YES\")\r\n ,(\"ld is GNU ld\",\"NO\")\r\n ,(\"ar command\",\"ar\")\r\n ,(\"ar flags\",\"qcls\")\r\n ,(\"ar supports at file\",\"NO\")\r\n ,(\"ranlib command\",\"\")\r\n ,(\"touch command\",\"touch\")\r\n ,(\"dllwrap command\",\"/bin/false\")\r\n ,(\"windres command\",\"/bin/false\")\r\n ,(\"libtool command\",\"libtool\")\r\n ,(\"perl command\",\"/usr/local/bin/perl\")\r\n ,(\"cross compiling\",\"NO\")\r\n ,(\"target os\",\"OSDarwin\")\r\n ,(\"target arch\",\"ArchX86_64\")\r\n ,(\"target word size\",\"8\")\r\n ,(\"target has GNU nonexec stack\",\"False\")\r\n ,(\"target has .ident directive\",\"True\")\r\n ,(\"target has subsections via symbols\",\"True\")\r\n ,(\"target has RTS linker\",\"YES\")\r\n ,(\"Unregisterised\",\"NO\")\r\n ,(\"LLVM llc command\",\"llc\")\r\n ,(\"LLVM opt command\",\"opt\")\r\n ,(\"LLVM clang command\",\"clang\")\r\n ,(\"Project version\",\"8.6.2\")\r\n ,(\"Project Git commit id\",\"41f0f6c2f571ea05c49f9f6ed64beebdc5a9f9fc\")\r\n ,(\"Booter version\",\"8.4.4\")\r\n ,(\"Stage\",\"2\")\r\n ,(\"Build platform\",\"x86_64-apple-darwin\")\r\n ,(\"Host platform\",\"x86_64-apple-darwin\")\r\n ,(\"Target platform\",\"x86_64-apple-darwin\")\r\n ,(\"Have interpreter\",\"YES\")\r\n ,(\"Object splitting supported\",\"NO\")\r\n ,(\"Have native code generator\",\"YES\")\r\n ,(\"Support SMP\",\"YES\")\r\n ,(\"Tables next to code\",\"YES\")\r\n ,(\"RTS ways\",\"l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn\")\r\n ,(\"RTS expects libdw\",\"NO\")\r\n ,(\"Support dynamic-too\",\"YES\")\r\n ,(\"Support parallel --make\",\"YES\")\r\n ,(\"Support reexported-modules\",\"YES\")\r\n ,(\"Support thinning and renaming package flags\",\"YES\")\r\n ,(\"Support Backpack\",\"YES\")\r\n ,(\"Requires unified installed package IDs\",\"YES\")\r\n ,(\"Uses package keys\",\"YES\")\r\n ,(\"Uses unit IDs\",\"YES\")\r\n ,(\"Dynamic by default\",\"NO\")\r\n ,(\"GHC Dynamic\",\"YES\")\r\n ,(\"GHC Profiled\",\"NO\")\r\n ,(\"Leading underscore\",\"YES\")\r\n ,(\"Debug on\",\"False\")\r\n ,(\"LibDir\",\"/usr/local/lib/ghc-8.6.2\")\r\n ,(\"Global Package DB\",\"/usr/local/lib/ghc-8.6.2/package.conf.d\")\r\n ]\r\nbash-3.2$ \r\n}}}\r\n\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15958Missing documentation for '-fno-ghci-sandbox'2019-07-07T18:02:17ZGhost UserMissing documentation for '-fno-ghci-sandbox'The option '-fno-ghci-sandbox' is mentioned in https://downloads.haskell.org/\~ghc/7.0.2/docs/html/users_guide/release-7-0-1.html with the following explanation:
> There is a new -fno-ghci-sandbox flag, which stops GHCi running computat...The option '-fno-ghci-sandbox' is mentioned in https://downloads.haskell.org/\~ghc/7.0.2/docs/html/users_guide/release-7-0-1.html with the following explanation:
> There is a new -fno-ghci-sandbox flag, which stops GHCi running computations in a separate thread. In particular, this is useful for GLUT on OS X, which only works if being run on the main thread.
However, it doesn't seem to be documented on the GHC user's guide (search box didn't find anything).
Sorry if I just couldn't find it!
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Documentation |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Missing documentation for '-fno-ghci-sandbox'","status":"New","operating_system":"","component":"Documentation","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The option '-fno-ghci-sandbox' is mentioned in https://downloads.haskell.org/~ghc/7.0.2/docs/html/users_guide/release-7-0-1.html with the following explanation:\r\n\r\n There is a new -fno-ghci-sandbox flag, which stops GHCi running computations in a separate thread. In particular, this is useful for GLUT on OS X, which only works if being run on the main thread.\r\n\r\nHowever, it doesn't seem to be documented on the GHC user's guide (search box didn't find anything).\r\n\r\nSorry if I just couldn't find it!","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15959If a type signature is too long to read left-to-right then let it read top-to...2020-06-20T15:38:43ZPhil de JouxIf a type signature is too long to read left-to-right then let it read top-to-bottom.When pretty printing a type signature that is too long to show in one line, can we please break the lines on the top-level punctuation of the type signature, on `::`, `=>` and `->` as shown in the second listing below?
```
FlareTiming/T...When pretty printing a type signature that is too long to show in one line, can we please break the lines on the top-level punctuation of the type signature, on `::`, `=>` and `->` as shown in the second listing below?
```
FlareTiming/Task/Score.hs:186:1: warning: [-Wmissing-signatures]
Top-level binding with no type signature:
showMax :: (Reflex t, Functor f) =>
(a -> b)
-> (f b -> b -> c) -> Dynamic t (f a) -> Dynamic t a -> Dynamic t c
|
186 | showMax getField f pt points =
| ^^^^^^^
```
```
FlareTiming/Task/Score.hs:186:1: warning: [-Wmissing-signatures]
Top-level binding with no type signature:
showMax
:: (Reflex t, Functor f)
=> (a -> b)
-> (f b -> b -> c)
-> Dynamic t (f a)
-> Dynamic t a
-> Dynamic t c
|
186 | showMax getField f pt points =
| ^^^^^^^
```
If a type signature is too long to display in one line and read left-to-right then please let it read top-to-bottom.8.6.3Phil de JouxPhil de Jouxhttps://gitlab.haskell.org/ghc/ghc/-/issues/15964PartialTypeSignatures warnings should be turned off with -Wno-partial-type-si...2019-07-07T18:02:15ZMatthew PickeringPartialTypeSignatures warnings should be turned off with -Wno-partial-type-signatures```
Foo.hs:638:18: warning: [-Wpartial-type-signatures]
```
The warning when using `PartialTypeSignatures` suggests that the warning is enabled by `-Wpartial-type-signatures`. However, if you try and disable this warning using `-Wno-par...```
Foo.hs:638:18: warning: [-Wpartial-type-signatures]
```
The warning when using `PartialTypeSignatures` suggests that the warning is enabled by `-Wpartial-type-signatures`. However, if you try and disable this warning using `-Wno-partial-type-signatures` then GHC complains that it is not a recognised flag. The correct way to turn it off is to use `-fno-warn-partial-signatures`. It seems that for consistency the first way that I tried should also work.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"PartialTypeSignatures warnings should be turned off with -Wno-partial-type-signatures","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{\r\nFoo.hs:638:18: warning: [-Wpartial-type-signatures]\r\n}}}\r\n\r\nThe warning when using `PartialTypeSignatures` suggests that the warning is enabled by `-Wpartial-type-signatures`. However, if you try and disable this warning using `-Wno-partial-type-signatures` then GHC complains that it is not a recognised flag. The correct way to turn it off is to use `-fno-warn-partial-signatures`. It seems that for consistency the first way that I tried should also work.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15966panic when using RebindableSyntax2023-06-05T10:38:31ZMatthew Pickeringpanic when using RebindableSyntaxhttps://gist.github.com/mpickering/216ecdd9d8766dce2ff1080a17f77a0e
```haskell
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-...https://gist.github.com/mpickering/216ecdd9d8766dce2ff1080a17f77a0e
```haskell
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE RebindableSyntax #-}
{-# OPTIONS_GHC -Wall -Wno-missing-signatures -Wno-unticked-promoted-constructors
-Wno-name-shadowing -fwarn-partial-type-signatures -Wno-partial-type-signatures #-}
module Repro(main) where
import Prelude hiding (Monad(..))
import Control.Applicative
data E (a :: * -> *) (n :: *) where
VarE :: a n -> E a n
instance IMonad E where
return :: a n -> E a n
return = VarE
(>>=) :: E a n -> (forall n . a n -> E b n) -> E b n
VarE x >>= f = f x
class IMonad (m :: (* -> *) -> (* -> *)) where
return :: forall a n . a n -> m a n
(>>=) :: m a n -> (forall n . a n -> m b n) -> m b n
one :: Const Int n
one = (Const 1)
example_4 :: E (Const Int) n
example_4 = do
x <- (return one)
return x
main = example_4 `seq` ()
```
Compiling this file with GHC leads to a StgCmmEnv panic.
```
ghc: panic! (the 'impossible' happened)
(GHC version 8.6.2 for x86_64-unknown-linux):
StgCmmEnv: variable not found
$dIMonad_a1lY
local binds for:
return
>>=
$tc'VarE
$tcE
$tcIMonad
$trModule
$tc'VarE1_r1oI
$tc'VarE2_r1ps
$krep_r1pt
$krep1_r1pu
$krep2_r1pv
$krep3_r1pw
$krep4_r1px
$tcE1_r1py
$tcE2_r1pz
$tcIMonad1_r1pA
$tcIMonad2_r1pB
$krep5_r1pC
$krep6_r1pD
$krep7_r1pE
$trModule1_r1pF
$trModule2_r1pG
$trModule3_r1pH
$trModule4_r1pI
$krep8_r1pJ
$krep9_r1pK
sat_s1rG
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/codeGen/StgCmmEnv.hs:149:9 in ghc:StgCmmEnv
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
```
Loading the file into GHCi succeeds but then when the `main` function is invoked, a `nameModule` panic occurs.
```
*Repro> main
ghc: panic! (the 'impossible' happened)
(GHC version 8.6.2 for x86_64-unknown-linux):
nameModule
system $dIMonad_a1LV
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/basicTypes/Name.hs:240:3 in ghc:Name
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
```
Reproduced on 8.6.{2,1} 8.4.4 8.2.2
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"panic when using RebindableSyntax","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"https://gist.github.com/mpickering/216ecdd9d8766dce2ff1080a17f77a0e\r\n\r\n{{{\r\n{-# LANGUAGE NoImplicitPrelude #-}\r\n{-# LANGUAGE GADTs #-}\r\n{-# LANGUAGE KindSignatures #-}\r\n{-# LANGUAGE RankNTypes #-}\r\n{-# LANGUAGE ScopedTypeVariables #-}\r\n{-# LANGUAGE InstanceSigs #-}\r\n{-# LANGUAGE RebindableSyntax #-}\r\n\r\n{-# OPTIONS_GHC -Wall -Wno-missing-signatures -Wno-unticked-promoted-constructors\r\n -Wno-name-shadowing -fwarn-partial-type-signatures -Wno-partial-type-signatures #-}\r\nmodule Repro(main) where\r\n\r\nimport Prelude hiding (Monad(..))\r\nimport Control.Applicative\r\n\r\ndata E (a :: * -> *) (n :: *) where\r\n VarE :: a n -> E a n\r\n\r\ninstance IMonad E where\r\n return :: a n -> E a n\r\n return = VarE\r\n\r\n (>>=) :: E a n -> (forall n . a n -> E b n) -> E b n\r\n VarE x >>= f = f x\r\n\r\nclass IMonad (m :: (* -> *) -> (* -> *)) where\r\n return :: forall a n . a n -> m a n\r\n (>>=) :: m a n -> (forall n . a n -> m b n) -> m b n\r\n\r\none :: Const Int n\r\none = (Const 1)\r\n\r\nexample_4 :: E (Const Int) n\r\nexample_4 = do\r\n x <- (return one)\r\n return x\r\n\r\nmain = example_4 `seq` ()\r\n}}}\r\n\r\nCompiling this file with GHC leads to a StgCmmEnv panic.\r\n\r\n{{{\r\nghc: panic! (the 'impossible' happened)\r\n (GHC version 8.6.2 for x86_64-unknown-linux):\r\n\tStgCmmEnv: variable not found\r\n $dIMonad_a1lY\r\n local binds for:\r\n return\r\n >>=\r\n $tc'VarE\r\n $tcE\r\n $tcIMonad\r\n $trModule\r\n $tc'VarE1_r1oI\r\n $tc'VarE2_r1ps\r\n $krep_r1pt\r\n $krep1_r1pu\r\n $krep2_r1pv\r\n $krep3_r1pw\r\n $krep4_r1px\r\n $tcE1_r1py\r\n $tcE2_r1pz\r\n $tcIMonad1_r1pA\r\n $tcIMonad2_r1pB\r\n $krep5_r1pC\r\n $krep6_r1pD\r\n $krep7_r1pE\r\n $trModule1_r1pF\r\n $trModule2_r1pG\r\n $trModule3_r1pH\r\n $trModule4_r1pI\r\n $krep8_r1pJ\r\n $krep9_r1pK\r\n sat_s1rG\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler/codeGen/StgCmmEnv.hs:149:9 in ghc:StgCmmEnv\r\n\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\n}}}\r\n\r\nLoading the file into GHCi succeeds but then when the `main` function is invoked, a `nameModule` panic occurs.\r\n\r\n{{{\r\n*Repro> main\r\nghc: panic! (the 'impossible' happened)\r\n (GHC version 8.6.2 for x86_64-unknown-linux):\r\n\tnameModule\r\n system $dIMonad_a1LV\r\n Call stack:\r\n CallStack (from HasCallStack):\r\n callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable\r\n pprPanic, called at compiler/basicTypes/Name.hs:240:3 in ghc:Name\r\n\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\n}}}\r\n\r\nReproduced on 8.6.{2,1} 8.4.4 8.2.2","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15967can't build ghc on Mac with any level of dwarf for base library2019-07-07T18:02:14ZCarter Schonwaldcan't build ghc on Mac with any level of dwarf for base libraryi tried building base in 8.6.2 with -g1
and i get the following error pretty consitently from the system linker
```
ld: in /Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/libraries/base/dist-install/build/libHSbase-4.12.0....i tried building base in 8.6.2 with -g1
and i get the following error pretty consitently from the system linker
```
ld: in /Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/libraries/base/dist-install/build/libHSbase-4.12.0.0_p.a(Base.p_o), sectionForAddress(0x8066) address not in any section for architecture x86_64
```
if i do
```
GhcLibHcOpts += -g1
```
or higher in the build.mk file, i get this linker error at some point in building ghc or resulting executables .
I'm not sure if its \*just\* for profiled libs or every lib, but it looks like theres actually no way to handle the number of dwarf sections for large archives on OSX?!
or equivalently, we may need support for more parsimonious dwarf annotations if at all?
point being: if we can't support debug symbols for base on a tier 1 platform, either debug symbols working isn't part of our support SLA for tier 1 platforms, OR its a release blocker we've not had in our validate configuration matrix.8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15973Int used to represent target integer literals2019-07-07T18:02:12ZBen GamariInt used to represent target integer literalsThere are numerous places within GHC where we use `Int` to represent a constant literal for the target. For instance, `CmmUtils` has the following:
```hs
-- XXX: should really be Integer, since Int doesn't necessarily cover
-- the full ...There are numerous places within GHC where we use `Int` to represent a constant literal for the target. For instance, `CmmUtils` has the following:
```hs
-- XXX: should really be Integer, since Int doesn't necessarily cover
-- the full range of target Ints.
mkIntCLit :: DynFlags -> Int -> CmmLit
mkIntCLit dflags i = CmmInt (toInteger i) (wordWidth dflags)
```
This could go very wrong when cross-compiling from a 32-bit machine to a 64-bit target.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Int used to represent target integer literals","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["newcomer"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"There are numerous places within GHC where we use `Int` to represent a constant literal for the target. For instance, `CmmUtils` has the following:\r\n{{{#!hs\r\n-- XXX: should really be Integer, since Int doesn't necessarily cover\r\n-- the full range of target Ints.\r\nmkIntCLit :: DynFlags -> Int -> CmmLit\r\nmkIntCLit dflags i = CmmInt (toInteger i) (wordWidth dflags)\r\n}}}\r\nThis could go very wrong when cross-compiling from a 32-bit machine to a 64-bit target.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15974QuantifiedConstraints: Spurious error involving superclass constraints2019-07-07T18:02:12ZAlexis KingQuantifiedConstraints: Spurious error involving superclass constraints```hs
{-# LANGUAGE KindSignatures, QuantifiedConstraints, UndecidableInstances #-}
```
Consider the following datatype and two classes:
```hs
data X (f :: * -> *)
class A a
class A a => B a
```
If I create an instance `A (X f)` invol...```hs
{-# LANGUAGE KindSignatures, QuantifiedConstraints, UndecidableInstances #-}
```
Consider the following datatype and two classes:
```hs
data X (f :: * -> *)
class A a
class A a => B a
```
If I create an instance `A (X f)` involving a quantified constraint
```hs
instance (forall a. A a => A (f a)) => A (X f)
```
then curiously, the following instance declaration for `B (X f)` is rejected with the accompanying error message:
```hs
instance (forall a. B a => B (f a)) => B (X f)
```
```
/tmp/qc.hs:11:10: error:
• Could not deduce (B a)
arising from the superclasses of an instance declaration
from the context: forall a. B a => B (f a)
bound by the instance declaration at /tmp/qc.hs:11:10-46
or from: A a bound by a quantified context at /tmp/qc.hs:1:1
Possible fix: add (B a) to the context of a quantified context
• In the instance declaration for ‘B (X f)’
|
11 | instance (forall a. B a => B (f a)) => B (X f)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
Notably, if the instance declaration for `A (X f)` is altered to not use a quantified constraint, as in
```hs
instance A (f (X f)) => A (X f)
```
or even just
```hs
instance A (X f)
```
then the above instance declaration for `B (X f)` is accepted.
I see no reason that the `B (X f)` declaration should be rejected, even with the quantified constraint in the instance context for `A (X f)`. The error message complains that the typechecker cannot deduce `B a`, and it even suggests adding `B a` to the context of the quantified constraint, but `B a` is //already// in that context.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"QuantifiedConstraints: Spurious error involving superclass constraints","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["QuantifiedConstraints"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{#!hs\r\n{-# LANGUAGE KindSignatures, QuantifiedConstraints, UndecidableInstances #-}\r\n}}}\r\n\r\nConsider the following datatype and two classes:\r\n\r\n{{{#!hs\r\ndata X (f :: * -> *)\r\n\r\nclass A a\r\nclass A a => B a\r\n}}}\r\n\r\nIf I create an instance `A (X f)` involving a quantified constraint\r\n\r\n{{{#!hs\r\ninstance (forall a. A a => A (f a)) => A (X f)\r\n}}}\r\n\r\nthen curiously, the following instance declaration for `B (X f)` is rejected with the accompanying error message:\r\n\r\n{{{#!hs\r\ninstance (forall a. B a => B (f a)) => B (X f)\r\n}}}\r\n{{{\r\n/tmp/qc.hs:11:10: error:\r\n • Could not deduce (B a)\r\n arising from the superclasses of an instance declaration\r\n from the context: forall a. B a => B (f a)\r\n bound by the instance declaration at /tmp/qc.hs:11:10-46\r\n or from: A a bound by a quantified context at /tmp/qc.hs:1:1\r\n Possible fix: add (B a) to the context of a quantified context\r\n • In the instance declaration for ‘B (X f)’\r\n |\r\n11 | instance (forall a. B a => B (f a)) => B (X f)\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n}}}\r\n\r\nNotably, if the instance declaration for `A (X f)` is altered to not use a quantified constraint, as in\r\n\r\n{{{#!hs\r\ninstance A (f (X f)) => A (X f)\r\n}}}\r\n\r\nor even just\r\n\r\n{{{#!hs\r\ninstance A (X f)\r\n}}}\r\n\r\nthen the above instance declaration for `B (X f)` is accepted.\r\n\r\nI see no reason that the `B (X f)` declaration should be rejected, even with the quantified constraint in the instance context for `A (X f)`. The error message complains that the typechecker cannot deduce `B a`, and it even suggests adding `B a` to the context of the quantified constraint, but `B a` is //already// in that context.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15977Restructure typechecking modules2019-07-07T18:02:11ZRichard Eisenbergrae@richarde.devRestructure typechecking modulesSome of the kind-checking and type-checking modules have become unruly.
Simon and I propose the new structure:
- KcTyClsDecls will handle kind-checking and generalization of datatype declarations. (That is, `kcTyClGroup` and children, ...Some of the kind-checking and type-checking modules have become unruly.
Simon and I propose the new structure:
- KcTyClsDecls will handle kind-checking and generalization of datatype declarations. (That is, `kcTyClGroup` and children, including related functions in TcHsType)
- TcInstBinds will handle `tcInstDecls2` and children
- TcTyConValidity will handle `checkValidTyCon` and children
- Fold the rest of TcInstDecls (essentially, `tcInstDecls1`) into what's left of TcTyClsDecls. TcInstDecls is removed.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Restructure typechecking modules","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"Some of the kind-checking and type-checking modules have become unruly.\r\n\r\nSimon and I propose the new structure:\r\n\r\n- KcTyClsDecls will handle kind-checking and generalization of datatype declarations. (That is, `kcTyClGroup` and children, including related functions in TcHsType)\r\n\r\n- TcInstBinds will handle `tcInstDecls2` and children\r\n\r\n- TcTyConValidity will handle `checkValidTyCon` and children\r\n\r\n- Fold the rest of TcInstDecls (essentially, `tcInstDecls1`) into what's left of TcTyClsDecls. TcInstDecls is removed.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15978slow test suite failures on 8.6 DARWIN :2021-12-03T20:50:27ZCarter Schonwaldslow test suite failures on 8.6 DARWIN :step to reproduce
```
cd testsuite;
make slow TEST="EtaExpandLevPoly ManyAlternatives ManyConstructors MultiLayerModules T10370 T11535 T12707 T13379 T13701 T13719 T14683 T14697 T14936 T15349 T4334 T6132 T7702 T9203 T9630 ghci063 haddo...step to reproduce
```
cd testsuite;
make slow TEST="EtaExpandLevPoly ManyAlternatives ManyConstructors MultiLayerModules T10370 T11535 T12707 T13379 T13701 T13719 T14683 T14697 T14936 T15349 T4334 T6132 T7702 T9203 T9630 ghci063 haddock.Cabal haddock.base haddock.compiler hpc_fork signals004 space_leak_001"
```
```
=====> T11535(normal) 1 of 26 [0, 0, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
cd "./deriving/should_run/T11535.run" && ./T11535
=====> T11535(hpc) 1 of 26 [0, 0, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc
cd "./deriving/should_run/T11535.run" && ./T11535
=====> T11535(optasm) 1 of 26 [0, 0, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm
cd "./deriving/should_run/T11535.run" && ./T11535
=====> T11535(profasm) 1 of 26 [0, 0, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto
cd "./deriving/should_run/T11535.run" && ./T11535 +RTS -hc -p -RTS
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps" T11535
=====> T11535(ghci) 1 of 26 [0, 0, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < T11535.genscript
Wrong exit code for T11535(ghci) (expected 0 , actual 134 )
*** unexpected failure for T11535(ghci)
=====> T11535(threaded1) 1 of 26 [0, 1, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug
cd "./deriving/should_run/T11535.run" && ./T11535
=====> T11535(threaded2) 1 of 26 [0, 1, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog
cd "./deriving/should_run/T11535.run" && ./T11535 +RTS -N2 -ls -RTS
=====> T11535(dyn) 1 of 26 [0, 1, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic
cd "./deriving/should_run/T11535.run" && ./T11535
=====> T11535(profthreaded) 1 of 26 [0, 1, 0]
cd "./deriving/should_run/T11535.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded
cd "./deriving/should_run/T11535.run" && ./T11535 +RTS -p -RTS
=====> ghci063(ghci) 2 of 26 [0, 1, 0]
cd "./ghci/scripts/ghci063.run" && HC="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" HC_OPTS="-dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output " "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < ghci063.script
Actual stderr output differs from expected:
diff -uw "/dev/null" "./ghci/scripts/ghci063.run/ghci063.run.stderr.normalised"
--- /dev/null 2018-11-30 11:28:25.000000000 -0500
+++ ./ghci/scripts/ghci063.run/ghci063.run.stderr.normalised 2018-11-30 11:28:26.000000000 -0500
@@ -0,0 +1,2 @@
+
+B.hs:1:1: parse error on input ‘***’
*** unexpected failure for ghci063(ghci)
=====> T10370(optasm) 3 of 26 [0, 2, 0]
cd "./perf/compiler/T10370.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T10370.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output +RTS -G1 -RTS -O -fasm +RTS -V0 -tT10370.comp.stats --machine-readable -RTS
max_bytes_used value is too high:
Expected T10370(optasm) max_bytes_used: 31524048 +/-15%
Lower bound T10370(optasm) max_bytes_used: 26795440
Upper bound T10370(optasm) max_bytes_used: 36252656
Actual T10370(optasm) max_bytes_used: 36718312
Deviation T10370(optasm) max_bytes_used: 16.5 %
peak_megabytes_allocated value is too high:
Expected T10370(optasm) peak_megabytes_allocated: 117 +/-15%
Lower bound T10370(optasm) peak_megabytes_allocated: 99
Upper bound T10370(optasm) peak_megabytes_allocated: 135
Actual T10370(optasm) peak_megabytes_allocated: 137
Deviation T10370(optasm) peak_megabytes_allocated: 17.1 %
*** unexpected stat test failure for T10370(optasm)
=====> T12707(normal) 4 of 26 [0, 2, 0]
cd "./perf/compiler/T12707.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output +RTS -V0 -tT12707.comp.stats --machine-readable -RTS
=====> T12707(hpc) 4 of 26 [0, 2, 0]
cd "./perf/compiler/T12707.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc +RTS -V0 -tT12707.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T12707(hpc) bytes allocated: 1141555816 +/-5%
Lower bound T12707(hpc) bytes allocated: 1084478025
Upper bound T12707(hpc) bytes allocated: 1198633607
Actual T12707(hpc) bytes allocated: 3332600544
Deviation T12707(hpc) bytes allocated: 191.9 %
*** unexpected stat test failure for T12707(hpc)
=====> T12707(optasm) 4 of 26 [0, 2, 0]
cd "./perf/compiler/T12707.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm +RTS -V0 -tT12707.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T12707(optasm) bytes allocated: 1141555816 +/-5%
Lower bound T12707(optasm) bytes allocated: 1084478025
Upper bound T12707(optasm) bytes allocated: 1198633607
Actual T12707(optasm) bytes allocated: 3552770216
Deviation T12707(optasm) bytes allocated: 211.2 %
*** unexpected stat test failure for T12707(optasm)
=====> T12707(profasm) 4 of 26 [0, 2, 0]
cd "./perf/compiler/T12707.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto +RTS -V0 -tT12707.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T12707(profasm) bytes allocated: 1141555816 +/-5%
Lower bound T12707(profasm) bytes allocated: 1084478025
Upper bound T12707(profasm) bytes allocated: 1198633607
Actual T12707(profasm) bytes allocated: 4024687592
Deviation T12707(profasm) bytes allocated: 252.6 %
*** unexpected stat test failure for T12707(profasm)
=====> T13379(normal) 5 of 26 [0, 2, 0]
cd "./perf/compiler/T13379.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output +RTS -V0 -tT13379.comp.stats --machine-readable -RTS
=====> T13379(hpc) 5 of 26 [0, 2, 0]
cd "./perf/compiler/T13379.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc +RTS -V0 -tT13379.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T13379(hpc) bytes allocated: 453166912 +/-10%
Lower bound T13379(hpc) bytes allocated: 407850220
Upper bound T13379(hpc) bytes allocated: 498483604
Actual T13379(hpc) bytes allocated: 1840473752
Deviation T13379(hpc) bytes allocated: 306.1 %
*** unexpected stat test failure for T13379(hpc)
=====> T13379(optasm) 5 of 26 [0, 2, 0]
cd "./perf/compiler/T13379.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm +RTS -V0 -tT13379.comp.stats --machine-readable -RTS
=====> T13379(profasm) 5 of 26 [0, 2, 0]
cd "./perf/compiler/T13379.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto +RTS -V0 -tT13379.comp.stats --machine-readable -RTS
=====> MultiLayerModules(normal) 6 of 26 [0, 2, 0]
cd "./perf/compiler/MultiLayerModules.run" && ./genMultiLayerModules
cd "./perf/compiler/MultiLayerModules.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS
=====> MultiLayerModules(hpc) 6 of 26 [0, 2, 0]
cd "./perf/compiler/MultiLayerModules.run" && ./genMultiLayerModules
cd "./perf/compiler/MultiLayerModules.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS
Timeout happened...killed process "cd "./perf/compiler/MultiLayerModules.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS"...
Compile failed (exit code 99) errors were:
Failed to find field: bytes allocated
*** framework failure for MultiLayerModules(hpc) 'NoneType' object has no attribute 'group'
Traceback (most recent call last):
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 788, in test_common_work
do_test(name, way, func, args, files)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 873, in do_test
result = func(*[name,way] + args)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1004, in multimod_compile
return do_compile( name, way, 0, top_mod, [], extra_hc_opts )
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1023, in do_compile
result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1235, in simple_build
statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1125, in checkStats
val = int(m.group(1))
AttributeError: 'NoneType' object has no attribute 'group'
=====> MultiLayerModules(optasm) 6 of 26 [0, 2, 1]
cd "./perf/compiler/MultiLayerModules.run" && ./genMultiLayerModules
cd "./perf/compiler/MultiLayerModules.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected MultiLayerModules(optasm) bytes allocated: 5619893176 +/-10%
Lower bound MultiLayerModules(optasm) bytes allocated: 5057903858
Upper bound MultiLayerModules(optasm) bytes allocated: 6181882494
Actual MultiLayerModules(optasm) bytes allocated: 6362463680
Deviation MultiLayerModules(optasm) bytes allocated: 13.2 %
*** unexpected stat test failure for MultiLayerModules(optasm)
=====> MultiLayerModules(profasm) 6 of 26 [0, 2, 1]
cd "./perf/compiler/MultiLayerModules.run" && ./genMultiLayerModules
cd "./perf/compiler/MultiLayerModules.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS
Timeout happened...killed process "cd "./perf/compiler/MultiLayerModules.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS"...
Compile failed (exit code 99) errors were:
Failed to find field: bytes allocated
*** framework failure for MultiLayerModules(profasm) 'NoneType' object has no attribute 'group'
Traceback (most recent call last):
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 788, in test_common_work
do_test(name, way, func, args, files)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 873, in do_test
result = func(*[name,way] + args)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1004, in multimod_compile
return do_compile( name, way, 0, top_mod, [], extra_hc_opts )
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1023, in do_compile
result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1235, in simple_build
statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1125, in checkStats
val = int(m.group(1))
AttributeError: 'NoneType' object has no attribute 'group'
=====> ManyConstructors(normal) 7 of 26 [0, 2, 2]
cd "./perf/compiler/ManyConstructors.run" && ./genManyConstructors
cd "./perf/compiler/ManyConstructors.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS
=====> ManyConstructors(hpc) 7 of 26 [0, 2, 2]
cd "./perf/compiler/ManyConstructors.run" && ./genManyConstructors
cd "./perf/compiler/ManyConstructors.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected ManyConstructors(hpc) bytes allocated: 4246959352 +/-10%
Lower bound ManyConstructors(hpc) bytes allocated: 3822263416
Upper bound ManyConstructors(hpc) bytes allocated: 4671655288
Actual ManyConstructors(hpc) bytes allocated: 9359235576
Deviation ManyConstructors(hpc) bytes allocated: 120.4 %
*** unexpected stat test failure for ManyConstructors(hpc)
=====> ManyConstructors(optasm) 7 of 26 [0, 2, 2]
cd "./perf/compiler/ManyConstructors.run" && ./genManyConstructors
cd "./perf/compiler/ManyConstructors.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected ManyConstructors(optasm) bytes allocated: 4246959352 +/-10%
Lower bound ManyConstructors(optasm) bytes allocated: 3822263416
Upper bound ManyConstructors(optasm) bytes allocated: 4671655288
Actual ManyConstructors(optasm) bytes allocated: 9348447040
Deviation ManyConstructors(optasm) bytes allocated: 120.1 %
*** unexpected stat test failure for ManyConstructors(optasm)
=====> ManyConstructors(profasm) 7 of 26 [0, 2, 2]
cd "./perf/compiler/ManyConstructors.run" && ./genManyConstructors
cd "./perf/compiler/ManyConstructors.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected ManyConstructors(profasm) bytes allocated: 4246959352 +/-10%
Lower bound ManyConstructors(profasm) bytes allocated: 3822263416
Upper bound ManyConstructors(profasm) bytes allocated: 4671655288
Actual ManyConstructors(profasm) bytes allocated: 11167847640
Deviation ManyConstructors(profasm) bytes allocated: 163.0 %
*** unexpected stat test failure for ManyConstructors(profasm)
=====> ManyAlternatives(normal) 8 of 26 [0, 2, 2]
cd "./perf/compiler/ManyAlternatives.run" && ./genManyAlternatives
cd "./perf/compiler/ManyAlternatives.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS
=====> ManyAlternatives(hpc) 8 of 26 [0, 2, 2]
cd "./perf/compiler/ManyAlternatives.run" && ./genManyAlternatives
cd "./perf/compiler/ManyAlternatives.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected ManyAlternatives(hpc) bytes allocated: 1398898072 +/-10%
Lower bound ManyAlternatives(hpc) bytes allocated: 1259008264
Upper bound ManyAlternatives(hpc) bytes allocated: 1538787880
Actual ManyAlternatives(hpc) bytes allocated: 2101087728
Deviation ManyAlternatives(hpc) bytes allocated: 50.2 %
*** unexpected stat test failure for ManyAlternatives(hpc)
=====> ManyAlternatives(optasm) 8 of 26 [0, 2, 2]
cd "./perf/compiler/ManyAlternatives.run" && ./genManyAlternatives
cd "./perf/compiler/ManyAlternatives.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected ManyAlternatives(optasm) bytes allocated: 1398898072 +/-10%
Lower bound ManyAlternatives(optasm) bytes allocated: 1259008264
Upper bound ManyAlternatives(optasm) bytes allocated: 1538787880
Actual ManyAlternatives(optasm) bytes allocated: 2069547176
Deviation ManyAlternatives(optasm) bytes allocated: 47.9 %
*** unexpected stat test failure for ManyAlternatives(optasm)
=====> ManyAlternatives(profasm) 8 of 26 [0, 2, 2]
cd "./perf/compiler/ManyAlternatives.run" && ./genManyAlternatives
cd "./perf/compiler/ManyAlternatives.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected ManyAlternatives(profasm) bytes allocated: 1398898072 +/-10%
Lower bound ManyAlternatives(profasm) bytes allocated: 1259008264
Upper bound ManyAlternatives(profasm) bytes allocated: 1538787880
Actual ManyAlternatives(profasm) bytes allocated: 2191392512
Deviation ManyAlternatives(profasm) bytes allocated: 56.7 %
*** unexpected stat test failure for ManyAlternatives(profasm)
=====> T13701(normal) 9 of 26 [0, 2, 2]
cd "./perf/compiler/T13701.run" && ./genT13701
cd "./perf/compiler/T13701.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS
=====> T13701(hpc) 9 of 26 [0, 2, 2]
cd "./perf/compiler/T13701.run" && ./genT13701
cd "./perf/compiler/T13701.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS
Timeout happened...killed process "cd "./perf/compiler/T13701.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS"...
Compile failed (exit code 99) errors were:
Failed to find field: bytes allocated
*** framework failure for T13701(hpc) 'NoneType' object has no attribute 'group'
Traceback (most recent call last):
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 788, in test_common_work
do_test(name, way, func, args, files)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 873, in do_test
result = func(*[name,way] + args)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1004, in multimod_compile
return do_compile( name, way, 0, top_mod, [], extra_hc_opts )
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1023, in do_compile
result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1235, in simple_build
statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1125, in checkStats
val = int(m.group(1))
AttributeError: 'NoneType' object has no attribute 'group'
=====> T13701(optasm) 9 of 26 [0, 2, 3]
cd "./perf/compiler/T13701.run" && ./genT13701
cd "./perf/compiler/T13701.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T13701(optasm) bytes allocated: 2549206272 +/-10%
Lower bound T13701(optasm) bytes allocated: 2294285644
Upper bound T13701(optasm) bytes allocated: 2804126900
Actual T13701(optasm) bytes allocated: 3222935032
Deviation T13701(optasm) bytes allocated: 26.4 %
*** unexpected stat test failure for T13701(optasm)
=====> T13701(profasm) 9 of 26 [0, 2, 3]
cd "./perf/compiler/T13701.run" && ./genT13701
cd "./perf/compiler/T13701.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS
Timeout happened...killed process "cd "./perf/compiler/T13701.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS"...
Compile failed (exit code 99) errors were:
Failed to find field: bytes allocated
*** framework failure for T13701(profasm) 'NoneType' object has no attribute 'group'
Traceback (most recent call last):
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 788, in test_common_work
do_test(name, way, func, args, files)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 873, in do_test
result = func(*[name,way] + args)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1004, in multimod_compile
return do_compile( name, way, 0, top_mod, [], extra_hc_opts )
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1023, in do_compile
result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1235, in simple_build
statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)
File "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py", line 1125, in checkStats
val = int(m.group(1))
AttributeError: 'NoneType' object has no attribute 'group'
=====> T13719(normal) 10 of 26 [0, 2, 4]
cd "./perf/compiler/T13719.run" && ./genT13719
cd "./perf/compiler/T13719.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS
=====> T13719(hpc) 10 of 26 [0, 2, 4]
cd "./perf/compiler/T13719.run" && ./genT13719
cd "./perf/compiler/T13719.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T13719(hpc) bytes allocated: 5187889872 +/-10%
Lower bound T13719(hpc) bytes allocated: 4669100884
Upper bound T13719(hpc) bytes allocated: 5706678860
Actual T13719(hpc) bytes allocated: 6491534040
Deviation T13719(hpc) bytes allocated: 25.1 %
*** unexpected stat test failure for T13719(hpc)
=====> T13719(optasm) 10 of 26 [0, 2, 4]
cd "./perf/compiler/T13719.run" && ./genT13719
cd "./perf/compiler/T13719.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T13719(optasm) bytes allocated: 5187889872 +/-10%
Lower bound T13719(optasm) bytes allocated: 4669100884
Upper bound T13719(optasm) bytes allocated: 5706678860
Actual T13719(optasm) bytes allocated: 6008103400
Deviation T13719(optasm) bytes allocated: 15.8 %
*** unexpected stat test failure for T13719(optasm)
=====> T13719(profasm) 10 of 26 [0, 2, 4]
cd "./perf/compiler/T13719.run" && ./genT13719
cd "./perf/compiler/T13719.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T13719(profasm) bytes allocated: 5187889872 +/-10%
Lower bound T13719(profasm) bytes allocated: 4669100884
Upper bound T13719(profasm) bytes allocated: 5706678860
Actual T13719(profasm) bytes allocated: 6613843944
Deviation T13719(profasm) bytes allocated: 27.5 %
*** unexpected stat test failure for T13719(profasm)
=====> T14697(normal) 11 of 26 [0, 2, 4]
cd "./perf/compiler/T14697.run" && ./genT14697
cd "./perf/compiler/T14697.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS
=====> T14697(hpc) 11 of 26 [0, 2, 4]
cd "./perf/compiler/T14697.run" && ./genT14697
cd "./perf/compiler/T14697.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -O -fhpc -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14697(hpc) bytes allocated: 371030912 +/-10%
Lower bound T14697(hpc) bytes allocated: 333927820
Upper bound T14697(hpc) bytes allocated: 408134004
Actual T14697(hpc) bytes allocated: 589481848
Deviation T14697(hpc) bytes allocated: 58.9 %
*** unexpected stat test failure for T14697(hpc)
=====> T14697(optasm) 11 of 26 [0, 2, 4]
cd "./perf/compiler/T14697.run" && ./genT14697
cd "./perf/compiler/T14697.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -O -fasm -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14697(optasm) bytes allocated: 371030912 +/-10%
Lower bound T14697(optasm) bytes allocated: 333927820
Upper bound T14697(optasm) bytes allocated: 408134004
Actual T14697(optasm) bytes allocated: 434183536
Deviation T14697(optasm) bytes allocated: 17.0 %
*** unexpected stat test failure for T14697(optasm)
=====> T14697(profasm) 11 of 26 [0, 2, 4]
cd "./perf/compiler/T14697.run" && ./genT14697
cd "./perf/compiler/T14697.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -O -prof -static -fprof-auto -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14697(profasm) bytes allocated: 371030912 +/-10%
Lower bound T14697(profasm) bytes allocated: 333927820
Upper bound T14697(profasm) bytes allocated: 408134004
Actual T14697(profasm) bytes allocated: 595098104
Deviation T14697(profasm) bytes allocated: 60.4 %
*** unexpected stat test failure for T14697(profasm)
=====> T14683(normal) 12 of 26 [0, 2, 4]
cd "./perf/compiler/T14683.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS
=====> T14683(hpc) 12 of 26 [0, 2, 4]
cd "./perf/compiler/T14683.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14683(hpc) bytes allocated: 10521594688 +/-10%
Lower bound T14683(hpc) bytes allocated: 9469435219
Upper bound T14683(hpc) bytes allocated: 11573754157
Actual T14683(hpc) bytes allocated: 24859356896
Deviation T14683(hpc) bytes allocated: 136.3 %
*** unexpected stat test failure for T14683(hpc)
=====> T14683(optasm) 12 of 26 [0, 2, 4]
cd "./perf/compiler/T14683.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14683(optasm) bytes allocated: 10521594688 +/-10%
Lower bound T14683(optasm) bytes allocated: 9469435219
Upper bound T14683(optasm) bytes allocated: 11573754157
Actual T14683(optasm) bytes allocated: 24961281960
Deviation T14683(optasm) bytes allocated: 137.2 %
*** unexpected stat test failure for T14683(optasm)
=====> T14683(profasm) 12 of 26 [0, 2, 4]
cd "./perf/compiler/T14683.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14683(profasm) bytes allocated: 10521594688 +/-10%
Lower bound T14683(profasm) bytes allocated: 9469435219
Upper bound T14683(profasm) bytes allocated: 11573754157
Actual T14683(profasm) bytes allocated: 23501401952
Deviation T14683(profasm) bytes allocated: 123.4 %
*** unexpected stat test failure for T14683(profasm)
=====> T9630(normal) 13 of 26 [0, 2, 4]
cd "./perf/compiler/T9630.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS
=====> T9630(hpc) 13 of 26 [0, 2, 4]
cd "./perf/compiler/T9630.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS
max_bytes_used value is too high:
Expected T9630(hpc) max_bytes_used: 35324712 +/-15%
Lower bound T9630(hpc) max_bytes_used: 30026005
Upper bound T9630(hpc) max_bytes_used: 40623419
Actual T9630(hpc) max_bytes_used: 45243520
Deviation T9630(hpc) max_bytes_used: 28.1 %
*** unexpected stat test failure for T9630(hpc)
=====> T9630(optasm) 13 of 26 [0, 2, 4]
cd "./perf/compiler/T9630.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS
=====> T9630(profasm) 13 of 26 [0, 2, 4]
cd "./perf/compiler/T9630.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS
max_bytes_used value is too high:
Expected T9630(profasm) max_bytes_used: 35324712 +/-15%
Lower bound T9630(profasm) max_bytes_used: 30026005
Upper bound T9630(profasm) max_bytes_used: 40623419
Actual T9630(profasm) max_bytes_used: 47703656
Deviation T9630(profasm) max_bytes_used: 35.0 %
*** unexpected stat test failure for T9630(profasm)
=====> haddock.base(normal) 14 of 26 [0, 2, 4]
bytes allocated value is too high:
Expected haddock.base(normal) bytes allocated: 26201242752 +/-5%
Lower bound haddock.base(normal) bytes allocated: 24891180614
Upper bound haddock.base(normal) bytes allocated: 27511304890
Actual haddock.base(normal) bytes allocated: 36323781512
Deviation haddock.base(normal) bytes allocated: 38.6 %
*** unexpected stat test failure for haddock.base(normal)
=====> haddock.Cabal(normal) 15 of 26 [0, 2, 4]
bytes allocated value is too high:
Expected haddock.Cabal(normal) bytes allocated: 27520214496 +/-5%
Lower bound haddock.Cabal(normal) bytes allocated: 26144203771
Upper bound haddock.Cabal(normal) bytes allocated: 28896225221
Actual haddock.Cabal(normal) bytes allocated: 39795743696
Deviation haddock.Cabal(normal) bytes allocated: 44.6 %
*** unexpected stat test failure for haddock.Cabal(normal)
=====> haddock.compiler(normal) 16 of 26 [0, 2, 4]
bytes allocated value is too high:
Expected haddock.compiler(normal) bytes allocated: 63038317672 +/-10%
Lower bound haddock.compiler(normal) bytes allocated: 56734485904
Upper bound haddock.compiler(normal) bytes allocated: 69342149440
Actual haddock.compiler(normal) bytes allocated: 156651062064
Deviation haddock.compiler(normal) bytes allocated: 148.5 %
*** unexpected stat test failure for haddock.compiler(normal)
=====> T9203(normal) 17 of 26 [0, 2, 4]
cd "./perf/should_run/T9203.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T9203 T9203.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O2
cd "./perf/should_run/T9203.run" && ./T9203 +RTS -V0 -tT9203.stats --machine-readable -RTS
bytes allocated value is too low:
(If this is because you have improved GHC, please
update the test so that GHC doesn't regress again)
Expected T9203(normal) bytes allocated: 98360576 +/-5%
Lower bound T9203(normal) bytes allocated: 93442547
Upper bound T9203(normal) bytes allocated: 103278605
Actual T9203(normal) bytes allocated: 46371880
Deviation T9203(normal) bytes allocated: -52.9 %
*** unexpected stat test failure for T9203(normal)
=====> T14936(normal) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS
=====> T14936(hpc) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14936(hpc) bytes allocated: 51792 +/-5%
Lower bound T14936(hpc) bytes allocated: 49202
Upper bound T14936(hpc) bytes allocated: 54382
Actual T14936(hpc) bytes allocated: 1440051256
Deviation T14936(hpc) bytes allocated: 2780351.1 %
*** unexpected stat test failure for T14936(hpc)
=====> T14936(optasm) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS
=====> T14936(profasm) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS +RTS -hc -p -RTS
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps" T14936
bytes allocated value is too high:
Expected T14936(profasm) bytes allocated: 51792 +/-5%
Lower bound T14936(profasm) bytes allocated: 49202
Upper bound T14936(profasm) bytes allocated: 54382
Actual T14936(profasm) bytes allocated: 56280
Deviation T14936(profasm) bytes allocated: 8.7 %
*** unexpected stat test failure for T14936(profasm)
=====> T14936(ghci) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS -O2< T14936.genscript
=====> T14936(threaded1) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS
bytes allocated value is too high:
Expected T14936(threaded1) bytes allocated: 51792 +/-5%
Lower bound T14936(threaded1) bytes allocated: 49202
Upper bound T14936(threaded1) bytes allocated: 54382
Actual T14936(threaded1) bytes allocated: 73432
Deviation T14936(threaded1) bytes allocated: 41.8 %
*** unexpected stat test failure for T14936(threaded1)
=====> T14936(threaded2) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS +RTS -N2 -ls -RTS
bytes allocated value is too high:
Expected T14936(threaded2) bytes allocated: 51792 +/-5%
Lower bound T14936(threaded2) bytes allocated: 49202
Upper bound T14936(threaded2) bytes allocated: 54382
Actual T14936(threaded2) bytes allocated: 91320
Deviation T14936(threaded2) bytes allocated: 76.3 %
*** unexpected stat test failure for T14936(threaded2)
=====> T14936(dyn) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS
=====> T14936(profthreaded) 18 of 26 [0, 2, 4]
cd "./perf/should_run/T14936.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded -O2
cd "./perf/should_run/T14936.run" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS +RTS -p -RTS
bytes allocated value is too high:
Expected T14936(profthreaded) bytes allocated: 51792 +/-5%
Lower bound T14936(profthreaded) bytes allocated: 49202
Upper bound T14936(profthreaded) bytes allocated: 54382
Actual T14936(profthreaded) bytes allocated: 126784
Deviation T14936(profthreaded) bytes allocated: 144.8 %
*** unexpected stat test failure for T14936(profthreaded)
=====> space_leak_001(normal) 19 of 26 [0, 2, 4]
cd "./perf/space_leaks/space_leak_001.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
cd "./perf/space_leaks/space_leak_001.run" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS
=====> space_leak_001(hpc) 19 of 26 [0, 2, 4]
cd "./perf/space_leaks/space_leak_001.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc
cd "./perf/space_leaks/space_leak_001.run" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS
max_bytes_used value is too low:
(If this is because you have improved GHC, please
update the test so that GHC doesn't regress again)
Expected space_leak_001(hpc) max_bytes_used: 440000 +/-15%
Lower bound space_leak_001(hpc) max_bytes_used: 374000
Upper bound space_leak_001(hpc) max_bytes_used: 506000
Actual space_leak_001(hpc) max_bytes_used: 291048
Deviation space_leak_001(hpc) max_bytes_used: -33.9 %
*** unexpected stat test failure for space_leak_001(hpc)
=====> space_leak_001(optasm) 19 of 26 [0, 2, 4]
cd "./perf/space_leaks/space_leak_001.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm
cd "./perf/space_leaks/space_leak_001.run" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS
max_bytes_used value is too low:
(If this is because you have improved GHC, please
update the test so that GHC doesn't regress again)
Expected space_leak_001(optasm) max_bytes_used: 440000 +/-15%
Lower bound space_leak_001(optasm) max_bytes_used: 374000
Upper bound space_leak_001(optasm) max_bytes_used: 506000
Actual space_leak_001(optasm) max_bytes_used: 291048
Deviation space_leak_001(optasm) max_bytes_used: -33.9 %
*** unexpected stat test failure for space_leak_001(optasm)
=====> space_leak_001(ghci) 19 of 26 [0, 2, 4]
cd "./perf/space_leaks/space_leak_001.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < space_leak_001.genscript
=====> space_leak_001(dyn) 19 of 26 [0, 2, 4]
cd "./perf/space_leaks/space_leak_001.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic
cd "./perf/space_leaks/space_leak_001.run" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS
max_bytes_used value is too low:
(If this is because you have improved GHC, please
update the test so that GHC doesn't regress again)
Expected space_leak_001(dyn) max_bytes_used: 440000 +/-15%
Lower bound space_leak_001(dyn) max_bytes_used: 374000
Upper bound space_leak_001(dyn) max_bytes_used: 506000
Actual space_leak_001(dyn) max_bytes_used: 291048
Deviation space_leak_001(dyn) max_bytes_used: -33.9 %
*** unexpected stat test failure for space_leak_001(dyn)
=====> T4334(normal) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
cd "./perf/space_leaks/T4334.run" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t
=====> T4334(hpc) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc
cd "./perf/space_leaks/T4334.run" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t
=====> T4334(optasm) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm
cd "./perf/space_leaks/T4334.run" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t
=====> T4334(ghci) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < T4334.genscript
=====> T4334(threaded1) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug
cd "./perf/space_leaks/T4334.run" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t
=====> T4334(threaded2) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog
cd "./perf/space_leaks/T4334.run" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS +RTS -N2 -ls -RTS 1000000 2 t
peak_megabytes_allocated value is too high:
Expected T4334(threaded2) peak_megabytes_allocated: 2 +/-1%
Lower bound T4334(threaded2) peak_megabytes_allocated: 1
Upper bound T4334(threaded2) peak_megabytes_allocated: 3
Actual T4334(threaded2) peak_megabytes_allocated: 4
Deviation T4334(threaded2) peak_megabytes_allocated: 100.0 %
*** unexpected stat test failure for T4334(threaded2)
=====> T4334(dyn) 20 of 26 [0, 2, 4]
cd "./perf/space_leaks/T4334.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic
cd "./perf/space_leaks/T4334.run" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t
=====> T6132(normal) 21 of 26 [0, 2, 4]
cd "./runghc/T6132.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
*** unexpected pass for T6132(normal)
=====> T6132(hpc) 21 of 26 [1, 2, 4]
cd "./runghc/T6132.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc
*** unexpected pass for T6132(hpc)
=====> T6132(optasm) 21 of 26 [2, 2, 4]
cd "./runghc/T6132.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm
*** unexpected pass for T6132(optasm)
=====> T6132(profasm) 21 of 26 [3, 2, 4]
cd "./runghc/T6132.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto
*** unexpected pass for T6132(profasm)
=====> T7702(normal) 22 of 26 [4, 2, 4]
cd "./simplCore/should_compile/T7702.run" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite
cd "./simplCore/should_compile/T7702.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS
=====> T7702(hpc) 22 of 26 [4, 2, 4]
cd "./simplCore/should_compile/T7702.run" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite
cd "./simplCore/should_compile/T7702.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS
=====> T7702(optasm) 22 of 26 [4, 2, 4]
cd "./simplCore/should_compile/T7702.run" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite
cd "./simplCore/should_compile/T7702.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS
=====> T7702(profasm) 22 of 26 [4, 2, 4]
cd "./simplCore/should_compile/T7702.run" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite
cd "./simplCore/should_compile/T7702.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS
Compile failed (exit code 1) errors were:
<command line>: Could not find module ‘T7702Plugin’
Perhaps you haven't installed the "p_dyn" libraries for package ‘T7702plugin-0.1’?
Use -v to see a list of the files searched for.
*** unexpected failure for T7702(profasm)
=====> EtaExpandLevPoly(normal) 23 of 26 [4, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly
=====> EtaExpandLevPoly(hpc) 23 of 26 [4, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly
=====> EtaExpandLevPoly(optasm) 23 of 26 [4, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly
=====> EtaExpandLevPoly(profasm) 23 of 26 [4, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly +RTS -hc -p -RTS
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps" EtaExpandLevPoly
*** unexpected pass for EtaExpandLevPoly(profasm)
=====> EtaExpandLevPoly(threaded1) 23 of 26 [5, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly
=====> EtaExpandLevPoly(threaded2) 23 of 26 [5, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly +RTS -N2 -ls -RTS
=====> EtaExpandLevPoly(dyn) 23 of 26 [5, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly
=====> EtaExpandLevPoly(profthreaded) 23 of 26 [5, 3, 4]
cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded
cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly +RTS -p -RTS
*** unexpected pass for EtaExpandLevPoly(profthreaded)
=====> T15349(normal) 24 of 26 [6, 3, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
cd "../../libraries/base/tests/T15349.run" && ./T15349
=====> T15349(hpc) 24 of 26 [6, 3, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc
cd "../../libraries/base/tests/T15349.run" && ./T15349
=====> T15349(optasm) 24 of 26 [6, 3, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm
cd "../../libraries/base/tests/T15349.run" && ./T15349
=====> T15349(profasm) 24 of 26 [6, 3, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto
cd "../../libraries/base/tests/T15349.run" && ./T15349 +RTS -hc -p -RTS
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps" T15349
=====> T15349(ghci) 24 of 26 [6, 3, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < T15349.genscript
Timeout happened...killed process "cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS "...
Wrong exit code for T15349(ghci) (expected 1 , actual 99 )
*** unexpected failure for T15349(ghci)
=====> T15349(threaded1) 24 of 26 [6, 4, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug
cd "../../libraries/base/tests/T15349.run" && ./T15349
=====> T15349(threaded2) 24 of 26 [6, 4, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog
cd "../../libraries/base/tests/T15349.run" && ./T15349 +RTS -N2 -ls -RTS
=====> T15349(dyn) 24 of 26 [6, 4, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic
cd "../../libraries/base/tests/T15349.run" && ./T15349
=====> T15349(profthreaded) 24 of 26 [6, 4, 4]
cd "../../libraries/base/tests/T15349.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded
cd "../../libraries/base/tests/T15349.run" && ./T15349 +RTS -p -RTS
=====> hpc_fork(normal) 25 of 26 [6, 4, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork
=====> hpc_fork(hpc) 25 of 26 [6, 4, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork
=====> hpc_fork(optasm) 25 of 26 [6, 4, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork
=====> hpc_fork(profasm) 25 of 26 [6, 4, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork +RTS -hc -p -RTS
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps" hpc_fork
hp2ps error when processing heap profile for hpc_fork
*** unexpected failure for hpc_fork(profasm)
=====> hpc_fork(threaded1) 25 of 26 [6, 5, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork
=====> hpc_fork(dyn) 25 of 26 [6, 5, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork
=====> hpc_fork(profthreaded) 25 of 26 [6, 5, 4]
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded -fhpc
cd "../../libraries/hpc/tests/fork/hpc_fork.run" && perl hpcrun.pl --clear --exeext= --hpc="/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc" ./hpc_fork +RTS -p -RTS
=====> signals004(normal) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004
=====> signals004(hpc) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004
=====> signals004(optasm) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004
=====> signals004(profasm) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004 +RTS -hc -p -RTS
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps" signals004
=====> signals004(ghci) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS -package unix< signals004.genscript
=====> signals004(threaded1) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004
=====> signals004(threaded2) 26 of 26 [6, 5, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004 +RTS -N2 -ls -RTS
Timeout happened...killed process "cd "../../libraries/unix/tests/signals004.run" && ./signals004 +RTS -N2 -ls -RTS "...
Wrong exit code for signals004(threaded2)(expected 0 , actual 99 )
*** unexpected failure for signals004(threaded2)
=====> signals004(dyn) 26 of 26 [6, 6, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004
=====> signals004(profthreaded) 26 of 26 [6, 6, 4]
cd "../../libraries/unix/tests/signals004.run" && "/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded -package unix
cd "../../libraries/unix/tests/signals004.run" && ./signals004 +RTS -p -RTS
Unexpected results from:
TEST="EtaExpandLevPoly ManyAlternatives ManyConstructors MultiLayerModules T10370 T11535 T12707 T13379 T13701 T13719 T14683 T14697 T14936 T15349 T4334 T6132 T7702 T9203 T9630 ghci063 haddock.Cabal haddock.base haddock.compiler hpc_fork signals004 space_leak_001"
SUMMARY for test run started at Fri Nov 30 11:28:02 2018 EST
0:56:11 spent to go through
26 total tests, which gave rise to
137 test cases, of which
20 were skipped
0 had missing libraries
64 expected passes
0 expected failures
4 caused framework failures
0 caused framework warnings
6 unexpected passes
6 unexpected failures
37 unexpected stat failures
Unexpected passes:
runghc/T6132.run T6132 [unexpected] (normal)
runghc/T6132.run T6132 [unexpected] (hpc)
runghc/T6132.run T6132 [unexpected] (optasm)
runghc/T6132.run T6132 [unexpected] (profasm)
typecheck/should_run/EtaExpandLevPoly.run EtaExpandLevPoly [unexpected] (profasm)
typecheck/should_run/EtaExpandLevPoly.run EtaExpandLevPoly [unexpected] (profthreaded)
Unexpected failures:
deriving/should_run/T11535.run T11535 [bad exit code] (ghci)
ghci/scripts/ghci063.run ghci063 [bad stderr] (ghci)
simplCore/should_compile/T7702.run T7702 [exit code non-0] (profasm)
../../libraries/base/tests/T15349.run T15349 [bad exit code] (ghci)
../../libraries/hpc/tests/fork/hpc_fork.run hpc_fork [bad heap profile] (profasm)
../../libraries/unix/tests/signals004.run signals004 [bad exit code] (threaded2)
Unexpected stat failures:
perf/compiler/T10370.run T10370 [stat not good enough] (optasm)
perf/compiler/T12707.run T12707 [stat not good enough] (hpc)
perf/compiler/T12707.run T12707 [stat not good enough] (optasm)
perf/compiler/T12707.run T12707 [stat not good enough] (profasm)
perf/compiler/T13379.run T13379 [stat not good enough] (hpc)
perf/compiler/MultiLayerModules.run MultiLayerModules [stat not good enough] (optasm)
perf/compiler/ManyConstructors.run ManyConstructors [stat not good enough] (hpc)
perf/compiler/ManyConstructors.run ManyConstructors [stat not good enough] (optasm)
perf/compiler/ManyConstructors.run ManyConstructors [stat not good enough] (profasm)
perf/compiler/ManyAlternatives.run ManyAlternatives [stat not good enough] (hpc)
perf/compiler/ManyAlternatives.run ManyAlternatives [stat not good enough] (optasm)
perf/compiler/ManyAlternatives.run ManyAlternatives [stat not good enough] (profasm)
perf/compiler/T13701.run T13701 [stat not good enough] (optasm)
perf/compiler/T13719.run T13719 [stat not good enough] (hpc)
perf/compiler/T13719.run T13719 [stat not good enough] (optasm)
perf/compiler/T13719.run T13719 [stat not good enough] (profasm)
perf/compiler/T14697.run T14697 [stat not good enough] (hpc)
perf/compiler/T14697.run T14697 [stat not good enough] (optasm)
perf/compiler/T14697.run T14697 [stat not good enough] (profasm)
perf/compiler/T14683.run T14683 [stat not good enough] (hpc)
perf/compiler/T14683.run T14683 [stat not good enough] (optasm)
perf/compiler/T14683.run T14683 [stat not good enough] (profasm)
perf/compiler/T9630.run T9630 [stat not good enough] (hpc)
perf/compiler/T9630.run T9630 [stat not good enough] (profasm)
perf/haddock/haddock.base.run haddock.base [stat not good enough] (normal)
perf/haddock/haddock.Cabal.run haddock.Cabal [stat not good enough] (normal)
perf/haddock/haddock.compiler.run haddock.compiler [stat not good enough] (normal)
perf/should_run/T9203.run T9203 [stat too good] (normal)
perf/should_run/T14936.run T14936 [stat not good enough] (hpc)
perf/should_run/T14936.run T14936 [stat not good enough] (profasm)
perf/should_run/T14936.run T14936 [stat not good enough] (threaded1)
perf/should_run/T14936.run T14936 [stat not good enough] (threaded2)
perf/should_run/T14936.run T14936 [stat not good enough] (profthreaded)
perf/space_leaks/space_leak_001.run space_leak_001 [stat too good] (hpc)
perf/space_leaks/space_leak_001.run space_leak_001 [stat too good] (optasm)
perf/space_leaks/space_leak_001.run space_leak_001 [stat too good] (dyn)
perf/space_leaks/T4334.run T4334 [stat not good enough] (threaded2)
Framework failures:
perf/compiler/MultiLayerModules.run MultiLayerModules [hpc] ('NoneType' object has no attribute 'group')
perf/compiler/MultiLayerModules.run MultiLayerModules [profasm] ('NoneType' object has no attribute 'group')
perf/compiler/T13701.run T13701 [hpc] ('NoneType' object has no attribute 'group')
perf/compiler/T13701.run T13701 [profasm] ('NoneType' object has no attribute 'group')
../mk/test.mk:329: recipe for target 'test' failed
make[2]: *** [test] Error 1
make[2]: Leaving directory '/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/tests'
../mk/test.mk:348: recipe for target 'slow' failed
make[1]: *** [slow] Error 2
make[1]: Leaving directory '/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/tests'
Makefile:35: recipe for target 'slow' failed
make: *** [slow] Error 2
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"slow test suite failures on 8.6 DARWIN :","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"step to reproduce\r\n{{{\r\ncd testsuite; \r\nmake slow TEST=\"EtaExpandLevPoly ManyAlternatives ManyConstructors MultiLayerModules T10370 T11535 T12707 T13379 T13701 T13719 T14683 T14697 T14936 T15349 T4334 T6132 T7702 T9203 T9630 ghci063 haddock.Cabal haddock.base haddock.compiler hpc_fork signals004 space_leak_001\"\r\n}}}\r\n\r\n{{{\r\n=====> T11535(normal) 1 of 26 [0, 0, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535\r\n=====> T11535(hpc) 1 of 26 [0, 0, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535\r\n=====> T11535(optasm) 1 of 26 [0, 0, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535\r\n=====> T11535(profasm) 1 of 26 [0, 0, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535 +RTS -hc -p -RTS\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps\" T11535\r\n=====> T11535(ghci) 1 of 26 [0, 0, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < T11535.genscript\r\nWrong exit code for T11535(ghci) (expected 0 , actual 134 )\r\n*** unexpected failure for T11535(ghci)\r\n=====> T11535(threaded1) 1 of 26 [0, 1, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535\r\n=====> T11535(threaded2) 1 of 26 [0, 1, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535 +RTS -N2 -ls -RTS\r\n=====> T11535(dyn) 1 of 26 [0, 1, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535\r\n=====> T11535(profthreaded) 1 of 26 [0, 1, 0]\r\ncd \"./deriving/should_run/T11535.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T11535 T11535.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded\r\ncd \"./deriving/should_run/T11535.run\" && ./T11535 +RTS -p -RTS\r\n=====> ghci063(ghci) 2 of 26 [0, 1, 0]\r\ncd \"./ghci/scripts/ghci063.run\" && HC=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" HC_OPTS=\"-dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output \" \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < ghci063.script\r\nActual stderr output differs from expected:\r\ndiff -uw \"/dev/null\" \"./ghci/scripts/ghci063.run/ghci063.run.stderr.normalised\"\r\n--- /dev/null\t2018-11-30 11:28:25.000000000 -0500\r\n+++ ./ghci/scripts/ghci063.run/ghci063.run.stderr.normalised\t2018-11-30 11:28:26.000000000 -0500\r\n@@ -0,0 +1,2 @@\r\n+\r\n+B.hs:1:1: parse error on input ‘***’\r\n*** unexpected failure for ghci063(ghci)\r\n=====> T10370(optasm) 3 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T10370.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T10370.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output +RTS -G1 -RTS -O -fasm +RTS -V0 -tT10370.comp.stats --machine-readable -RTS\r\nmax_bytes_used value is too high:\r\n Expected T10370(optasm) max_bytes_used: 31524048 +/-15%\r\n Lower bound T10370(optasm) max_bytes_used: 26795440\r\n Upper bound T10370(optasm) max_bytes_used: 36252656\r\n Actual T10370(optasm) max_bytes_used: 36718312\r\n Deviation T10370(optasm) max_bytes_used: 16.5 %\r\npeak_megabytes_allocated value is too high:\r\n Expected T10370(optasm) peak_megabytes_allocated: 117 +/-15%\r\n Lower bound T10370(optasm) peak_megabytes_allocated: 99\r\n Upper bound T10370(optasm) peak_megabytes_allocated: 135\r\n Actual T10370(optasm) peak_megabytes_allocated: 137\r\n Deviation T10370(optasm) peak_megabytes_allocated: 17.1 %\r\n*** unexpected stat test failure for T10370(optasm)\r\n=====> T12707(normal) 4 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T12707.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output +RTS -V0 -tT12707.comp.stats --machine-readable -RTS\r\n=====> T12707(hpc) 4 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T12707.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc +RTS -V0 -tT12707.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T12707(hpc) bytes allocated: 1141555816 +/-5%\r\n Lower bound T12707(hpc) bytes allocated: 1084478025\r\n Upper bound T12707(hpc) bytes allocated: 1198633607\r\n Actual T12707(hpc) bytes allocated: 3332600544\r\n Deviation T12707(hpc) bytes allocated: 191.9 %\r\n*** unexpected stat test failure for T12707(hpc)\r\n=====> T12707(optasm) 4 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T12707.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm +RTS -V0 -tT12707.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T12707(optasm) bytes allocated: 1141555816 +/-5%\r\n Lower bound T12707(optasm) bytes allocated: 1084478025\r\n Upper bound T12707(optasm) bytes allocated: 1198633607\r\n Actual T12707(optasm) bytes allocated: 3552770216\r\n Deviation T12707(optasm) bytes allocated: 211.2 %\r\n*** unexpected stat test failure for T12707(optasm)\r\n=====> T12707(profasm) 4 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T12707.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T12707.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto +RTS -V0 -tT12707.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T12707(profasm) bytes allocated: 1141555816 +/-5%\r\n Lower bound T12707(profasm) bytes allocated: 1084478025\r\n Upper bound T12707(profasm) bytes allocated: 1198633607\r\n Actual T12707(profasm) bytes allocated: 4024687592\r\n Deviation T12707(profasm) bytes allocated: 252.6 %\r\n*** unexpected stat test failure for T12707(profasm)\r\n=====> T13379(normal) 5 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T13379.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output +RTS -V0 -tT13379.comp.stats --machine-readable -RTS\r\n=====> T13379(hpc) 5 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T13379.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc +RTS -V0 -tT13379.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T13379(hpc) bytes allocated: 453166912 +/-10%\r\n Lower bound T13379(hpc) bytes allocated: 407850220\r\n Upper bound T13379(hpc) bytes allocated: 498483604\r\n Actual T13379(hpc) bytes allocated: 1840473752\r\n Deviation T13379(hpc) bytes allocated: 306.1 %\r\n*** unexpected stat test failure for T13379(hpc)\r\n=====> T13379(optasm) 5 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T13379.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm +RTS -V0 -tT13379.comp.stats --machine-readable -RTS\r\n=====> T13379(profasm) 5 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/T13379.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T13379.hs -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto +RTS -V0 -tT13379.comp.stats --machine-readable -RTS\r\n=====> MultiLayerModules(normal) 6 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/MultiLayerModules.run\" && ./genMultiLayerModules\r\ncd \"./perf/compiler/MultiLayerModules.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS\r\n=====> MultiLayerModules(hpc) 6 of 26 [0, 2, 0]\r\ncd \"./perf/compiler/MultiLayerModules.run\" && ./genMultiLayerModules\r\ncd \"./perf/compiler/MultiLayerModules.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS\r\nTimeout happened...killed process \"cd \"./perf/compiler/MultiLayerModules.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS\"...\r\n\r\nCompile failed (exit code 99) errors were:\r\n\r\nFailed to find field: bytes allocated\r\n*** framework failure for MultiLayerModules(hpc) 'NoneType' object has no attribute 'group'\r\nTraceback (most recent call last):\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 788, in test_common_work\r\n do_test(name, way, func, args, files)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 873, in do_test\r\n result = func(*[name,way] + args)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1004, in multimod_compile\r\n return do_compile( name, way, 0, top_mod, [], extra_hc_opts )\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1023, in do_compile\r\n result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1235, in simple_build\r\n statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1125, in checkStats\r\n val = int(m.group(1))\r\nAttributeError: 'NoneType' object has no attribute 'group'\r\n=====> MultiLayerModules(optasm) 6 of 26 [0, 2, 1]\r\ncd \"./perf/compiler/MultiLayerModules.run\" && ./genMultiLayerModules\r\ncd \"./perf/compiler/MultiLayerModules.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected MultiLayerModules(optasm) bytes allocated: 5619893176 +/-10%\r\n Lower bound MultiLayerModules(optasm) bytes allocated: 5057903858\r\n Upper bound MultiLayerModules(optasm) bytes allocated: 6181882494\r\n Actual MultiLayerModules(optasm) bytes allocated: 6362463680\r\n Deviation MultiLayerModules(optasm) bytes allocated: 13.2 %\r\n*** unexpected stat test failure for MultiLayerModules(optasm)\r\n=====> MultiLayerModules(profasm) 6 of 26 [0, 2, 1]\r\ncd \"./perf/compiler/MultiLayerModules.run\" && ./genMultiLayerModules\r\ncd \"./perf/compiler/MultiLayerModules.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS\r\nTimeout happened...killed process \"cd \"./perf/compiler/MultiLayerModules.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make MultiLayerModules -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tMultiLayerModules.comp.stats --machine-readable -RTS\"...\r\n\r\nCompile failed (exit code 99) errors were:\r\n\r\nFailed to find field: bytes allocated\r\n*** framework failure for MultiLayerModules(profasm) 'NoneType' object has no attribute 'group'\r\nTraceback (most recent call last):\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 788, in test_common_work\r\n do_test(name, way, func, args, files)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 873, in do_test\r\n result = func(*[name,way] + args)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1004, in multimod_compile\r\n return do_compile( name, way, 0, top_mod, [], extra_hc_opts )\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1023, in do_compile\r\n result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1235, in simple_build\r\n statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1125, in checkStats\r\n val = int(m.group(1))\r\nAttributeError: 'NoneType' object has no attribute 'group'\r\n=====> ManyConstructors(normal) 7 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyConstructors.run\" && ./genManyConstructors\r\ncd \"./perf/compiler/ManyConstructors.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS\r\n=====> ManyConstructors(hpc) 7 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyConstructors.run\" && ./genManyConstructors\r\ncd \"./perf/compiler/ManyConstructors.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected ManyConstructors(hpc) bytes allocated: 4246959352 +/-10%\r\n Lower bound ManyConstructors(hpc) bytes allocated: 3822263416\r\n Upper bound ManyConstructors(hpc) bytes allocated: 4671655288\r\n Actual ManyConstructors(hpc) bytes allocated: 9359235576\r\n Deviation ManyConstructors(hpc) bytes allocated: 120.4 %\r\n*** unexpected stat test failure for ManyConstructors(hpc)\r\n=====> ManyConstructors(optasm) 7 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyConstructors.run\" && ./genManyConstructors\r\ncd \"./perf/compiler/ManyConstructors.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected ManyConstructors(optasm) bytes allocated: 4246959352 +/-10%\r\n Lower bound ManyConstructors(optasm) bytes allocated: 3822263416\r\n Upper bound ManyConstructors(optasm) bytes allocated: 4671655288\r\n Actual ManyConstructors(optasm) bytes allocated: 9348447040\r\n Deviation ManyConstructors(optasm) bytes allocated: 120.1 %\r\n*** unexpected stat test failure for ManyConstructors(optasm)\r\n=====> ManyConstructors(profasm) 7 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyConstructors.run\" && ./genManyConstructors\r\ncd \"./perf/compiler/ManyConstructors.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyConstructors -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tManyConstructors.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected ManyConstructors(profasm) bytes allocated: 4246959352 +/-10%\r\n Lower bound ManyConstructors(profasm) bytes allocated: 3822263416\r\n Upper bound ManyConstructors(profasm) bytes allocated: 4671655288\r\n Actual ManyConstructors(profasm) bytes allocated: 11167847640\r\n Deviation ManyConstructors(profasm) bytes allocated: 163.0 %\r\n*** unexpected stat test failure for ManyConstructors(profasm)\r\n=====> ManyAlternatives(normal) 8 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyAlternatives.run\" && ./genManyAlternatives\r\ncd \"./perf/compiler/ManyAlternatives.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS\r\n=====> ManyAlternatives(hpc) 8 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyAlternatives.run\" && ./genManyAlternatives\r\ncd \"./perf/compiler/ManyAlternatives.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected ManyAlternatives(hpc) bytes allocated: 1398898072 +/-10%\r\n Lower bound ManyAlternatives(hpc) bytes allocated: 1259008264\r\n Upper bound ManyAlternatives(hpc) bytes allocated: 1538787880\r\n Actual ManyAlternatives(hpc) bytes allocated: 2101087728\r\n Deviation ManyAlternatives(hpc) bytes allocated: 50.2 %\r\n*** unexpected stat test failure for ManyAlternatives(hpc)\r\n=====> ManyAlternatives(optasm) 8 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyAlternatives.run\" && ./genManyAlternatives\r\ncd \"./perf/compiler/ManyAlternatives.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected ManyAlternatives(optasm) bytes allocated: 1398898072 +/-10%\r\n Lower bound ManyAlternatives(optasm) bytes allocated: 1259008264\r\n Upper bound ManyAlternatives(optasm) bytes allocated: 1538787880\r\n Actual ManyAlternatives(optasm) bytes allocated: 2069547176\r\n Deviation ManyAlternatives(optasm) bytes allocated: 47.9 %\r\n*** unexpected stat test failure for ManyAlternatives(optasm)\r\n=====> ManyAlternatives(profasm) 8 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/ManyAlternatives.run\" && ./genManyAlternatives\r\ncd \"./perf/compiler/ManyAlternatives.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make ManyAlternatives -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tManyAlternatives.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected ManyAlternatives(profasm) bytes allocated: 1398898072 +/-10%\r\n Lower bound ManyAlternatives(profasm) bytes allocated: 1259008264\r\n Upper bound ManyAlternatives(profasm) bytes allocated: 1538787880\r\n Actual ManyAlternatives(profasm) bytes allocated: 2191392512\r\n Deviation ManyAlternatives(profasm) bytes allocated: 56.7 %\r\n*** unexpected stat test failure for ManyAlternatives(profasm)\r\n=====> T13701(normal) 9 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/T13701.run\" && ./genT13701\r\ncd \"./perf/compiler/T13701.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS\r\n=====> T13701(hpc) 9 of 26 [0, 2, 2]\r\ncd \"./perf/compiler/T13701.run\" && ./genT13701\r\ncd \"./perf/compiler/T13701.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS\r\nTimeout happened...killed process \"cd \"./perf/compiler/T13701.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS\"...\r\n\r\nCompile failed (exit code 99) errors were:\r\n\r\nFailed to find field: bytes allocated\r\n*** framework failure for T13701(hpc) 'NoneType' object has no attribute 'group'\r\nTraceback (most recent call last):\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 788, in test_common_work\r\n do_test(name, way, func, args, files)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 873, in do_test\r\n result = func(*[name,way] + args)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1004, in multimod_compile\r\n return do_compile( name, way, 0, top_mod, [], extra_hc_opts )\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1023, in do_compile\r\n result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1235, in simple_build\r\n statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1125, in checkStats\r\n val = int(m.group(1))\r\nAttributeError: 'NoneType' object has no attribute 'group'\r\n=====> T13701(optasm) 9 of 26 [0, 2, 3]\r\ncd \"./perf/compiler/T13701.run\" && ./genT13701\r\ncd \"./perf/compiler/T13701.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T13701(optasm) bytes allocated: 2549206272 +/-10%\r\n Lower bound T13701(optasm) bytes allocated: 2294285644\r\n Upper bound T13701(optasm) bytes allocated: 2804126900\r\n Actual T13701(optasm) bytes allocated: 3222935032\r\n Deviation T13701(optasm) bytes allocated: 26.4 %\r\n*** unexpected stat test failure for T13701(optasm)\r\n=====> T13701(profasm) 9 of 26 [0, 2, 3]\r\ncd \"./perf/compiler/T13701.run\" && ./genT13701\r\ncd \"./perf/compiler/T13701.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS\r\nTimeout happened...killed process \"cd \"./perf/compiler/T13701.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13701 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT13701.comp.stats --machine-readable -RTS\"...\r\n\r\nCompile failed (exit code 99) errors were:\r\n\r\nFailed to find field: bytes allocated\r\n*** framework failure for T13701(profasm) 'NoneType' object has no attribute 'group'\r\nTraceback (most recent call last):\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 788, in test_common_work\r\n do_test(name, way, func, args, files)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 873, in do_test\r\n result = func(*[name,way] + args)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1004, in multimod_compile\r\n return do_compile( name, way, 0, top_mod, [], extra_hc_opts )\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1023, in do_compile\r\n result = simple_build(name, way, extra_hc_opts, should_fail, top_mod, 0, 1, **kwargs)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1235, in simple_build\r\n statsResult = checkStats(name, way, stats_file, opts.compiler_stats_range_fields)\r\n File \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/driver/testlib.py\", line 1125, in checkStats\r\n val = int(m.group(1))\r\nAttributeError: 'NoneType' object has no attribute 'group'\r\n=====> T13719(normal) 10 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T13719.run\" && ./genT13719\r\ncd \"./perf/compiler/T13719.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS\r\n =====> T13719(hpc) 10 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T13719.run\" && ./genT13719\r\ncd \"./perf/compiler/T13719.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T13719(hpc) bytes allocated: 5187889872 +/-10%\r\n Lower bound T13719(hpc) bytes allocated: 4669100884\r\n Upper bound T13719(hpc) bytes allocated: 5706678860\r\n Actual T13719(hpc) bytes allocated: 6491534040\r\n Deviation T13719(hpc) bytes allocated: 25.1 %\r\n*** unexpected stat test failure for T13719(hpc)\r\n=====> T13719(optasm) 10 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T13719.run\" && ./genT13719\r\ncd \"./perf/compiler/T13719.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T13719(optasm) bytes allocated: 5187889872 +/-10%\r\n Lower bound T13719(optasm) bytes allocated: 4669100884\r\n Upper bound T13719(optasm) bytes allocated: 5706678860\r\n Actual T13719(optasm) bytes allocated: 6008103400\r\n Deviation T13719(optasm) bytes allocated: 15.8 %\r\n*** unexpected stat test failure for T13719(optasm)\r\n=====> T13719(profasm) 10 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T13719.run\" && ./genT13719\r\ncd \"./perf/compiler/T13719.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T13719 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT13719.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T13719(profasm) bytes allocated: 5187889872 +/-10%\r\n Lower bound T13719(profasm) bytes allocated: 4669100884\r\n Upper bound T13719(profasm) bytes allocated: 5706678860\r\n Actual T13719(profasm) bytes allocated: 6613843944\r\n Deviation T13719(profasm) bytes allocated: 27.5 %\r\n*** unexpected stat test failure for T13719(profasm)\r\n=====> T14697(normal) 11 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14697.run\" && ./genT14697\r\ncd \"./perf/compiler/T14697.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS\r\n=====> T14697(hpc) 11 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14697.run\" && ./genT14697\r\ncd \"./perf/compiler/T14697.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -O -fhpc -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14697(hpc) bytes allocated: 371030912 +/-10%\r\n Lower bound T14697(hpc) bytes allocated: 333927820\r\n Upper bound T14697(hpc) bytes allocated: 408134004\r\n Actual T14697(hpc) bytes allocated: 589481848\r\n Deviation T14697(hpc) bytes allocated: 58.9 %\r\n*** unexpected stat test failure for T14697(hpc)\r\n=====> T14697(optasm) 11 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14697.run\" && ./genT14697\r\ncd \"./perf/compiler/T14697.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -O -fasm -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14697(optasm) bytes allocated: 371030912 +/-10%\r\n Lower bound T14697(optasm) bytes allocated: 333927820\r\n Upper bound T14697(optasm) bytes allocated: 408134004\r\n Actual T14697(optasm) bytes allocated: 434183536\r\n Deviation T14697(optasm) bytes allocated: 17.0 %\r\n*** unexpected stat test failure for T14697(optasm)\r\n=====> T14697(profasm) 11 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14697.run\" && ./genT14697\r\ncd \"./perf/compiler/T14697.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14697 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output $(cat T14697-flags) -O -prof -static -fprof-auto -v0 +RTS -V0 -tT14697.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14697(profasm) bytes allocated: 371030912 +/-10%\r\n Lower bound T14697(profasm) bytes allocated: 333927820\r\n Upper bound T14697(profasm) bytes allocated: 408134004\r\n Actual T14697(profasm) bytes allocated: 595098104\r\n Deviation T14697(profasm) bytes allocated: 60.4 %\r\n*** unexpected stat test failure for T14697(profasm)\r\n=====> T14683(normal) 12 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14683.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS\r\n=====> T14683(hpc) 12 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14683.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14683(hpc) bytes allocated: 10521594688 +/-10%\r\n Lower bound T14683(hpc) bytes allocated: 9469435219\r\n Upper bound T14683(hpc) bytes allocated: 11573754157\r\n Actual T14683(hpc) bytes allocated: 24859356896\r\n Deviation T14683(hpc) bytes allocated: 136.3 %\r\n*** unexpected stat test failure for T14683(hpc)\r\n=====> T14683(optasm) 12 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14683.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14683(optasm) bytes allocated: 10521594688 +/-10%\r\n Lower bound T14683(optasm) bytes allocated: 9469435219\r\n Upper bound T14683(optasm) bytes allocated: 11573754157\r\n Actual T14683(optasm) bytes allocated: 24961281960\r\n Deviation T14683(optasm) bytes allocated: 137.2 %\r\n*** unexpected stat test failure for T14683(optasm)\r\n=====> T14683(profasm) 12 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T14683.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T14683 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 +RTS -V0 -tT14683.comp.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14683(profasm) bytes allocated: 10521594688 +/-10%\r\n Lower bound T14683(profasm) bytes allocated: 9469435219\r\n Upper bound T14683(profasm) bytes allocated: 11573754157\r\n Actual T14683(profasm) bytes allocated: 23501401952\r\n Deviation T14683(profasm) bytes allocated: 123.4 %\r\n*** unexpected stat test failure for T14683(profasm)\r\n=====> T9630(normal) 13 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T9630.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS\r\n=====> T9630(hpc) 13 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T9630.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS\r\nmax_bytes_used value is too high:\r\n Expected T9630(hpc) max_bytes_used: 35324712 +/-15%\r\n Lower bound T9630(hpc) max_bytes_used: 30026005\r\n Upper bound T9630(hpc) max_bytes_used: 40623419\r\n Actual T9630(hpc) max_bytes_used: 45243520\r\n Deviation T9630(hpc) max_bytes_used: 28.1 %\r\n*** unexpected stat test failure for T9630(hpc)\r\n=====> T9630(optasm) 13 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T9630.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS\r\n=====> T9630(profasm) 13 of 26 [0, 2, 4]\r\ncd \"./perf/compiler/T9630.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" --make T9630 -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 -O +RTS -V0 -tT9630.comp.stats --machine-readable -RTS\r\nmax_bytes_used value is too high:\r\n Expected T9630(profasm) max_bytes_used: 35324712 +/-15%\r\n Lower bound T9630(profasm) max_bytes_used: 30026005\r\n Upper bound T9630(profasm) max_bytes_used: 40623419\r\n Actual T9630(profasm) max_bytes_used: 47703656\r\n Deviation T9630(profasm) max_bytes_used: 35.0 %\r\n*** unexpected stat test failure for T9630(profasm)\r\n=====> haddock.base(normal) 14 of 26 [0, 2, 4]\r\nbytes allocated value is too high:\r\n Expected haddock.base(normal) bytes allocated: 26201242752 +/-5%\r\n Lower bound haddock.base(normal) bytes allocated: 24891180614\r\n Upper bound haddock.base(normal) bytes allocated: 27511304890\r\n Actual haddock.base(normal) bytes allocated: 36323781512\r\n Deviation haddock.base(normal) bytes allocated: 38.6 %\r\n*** unexpected stat test failure for haddock.base(normal)\r\n=====> haddock.Cabal(normal) 15 of 26 [0, 2, 4]\r\nbytes allocated value is too high:\r\n Expected haddock.Cabal(normal) bytes allocated: 27520214496 +/-5%\r\n Lower bound haddock.Cabal(normal) bytes allocated: 26144203771\r\n Upper bound haddock.Cabal(normal) bytes allocated: 28896225221\r\n Actual haddock.Cabal(normal) bytes allocated: 39795743696\r\n Deviation haddock.Cabal(normal) bytes allocated: 44.6 %\r\n*** unexpected stat test failure for haddock.Cabal(normal)\r\n=====> haddock.compiler(normal) 16 of 26 [0, 2, 4]\r\nbytes allocated value is too high:\r\n Expected haddock.compiler(normal) bytes allocated: 63038317672 +/-10%\r\n Lower bound haddock.compiler(normal) bytes allocated: 56734485904\r\n Upper bound haddock.compiler(normal) bytes allocated: 69342149440\r\n Actual haddock.compiler(normal) bytes allocated: 156651062064\r\n Deviation haddock.compiler(normal) bytes allocated: 148.5 %\r\n*** unexpected stat test failure for haddock.compiler(normal)\r\n=====> T9203(normal) 17 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T9203.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T9203 T9203.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O2\r\ncd \"./perf/should_run/T9203.run\" && ./T9203 +RTS -V0 -tT9203.stats --machine-readable -RTS\r\nbytes allocated value is too low:\r\n(If this is because you have improved GHC, please\r\nupdate the test so that GHC doesn't regress again)\r\n Expected T9203(normal) bytes allocated: 98360576 +/-5%\r\n Lower bound T9203(normal) bytes allocated: 93442547\r\n Upper bound T9203(normal) bytes allocated: 103278605\r\n Actual T9203(normal) bytes allocated: 46371880\r\n Deviation T9203(normal) bytes allocated: -52.9 %\r\n*** unexpected stat test failure for T9203(normal)\r\n=====> T14936(normal) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS\r\n=====> T14936(hpc) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14936(hpc) bytes allocated: 51792 +/-5%\r\n Lower bound T14936(hpc) bytes allocated: 49202\r\n Upper bound T14936(hpc) bytes allocated: 54382\r\n Actual T14936(hpc) bytes allocated: 1440051256\r\n Deviation T14936(hpc) bytes allocated: 2780351.1 %\r\n*** unexpected stat test failure for T14936(hpc)\r\n=====> T14936(optasm) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS\r\n=====> T14936(profasm) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS +RTS -hc -p -RTS\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps\" T14936\r\nbytes allocated value is too high:\r\n Expected T14936(profasm) bytes allocated: 51792 +/-5%\r\n Lower bound T14936(profasm) bytes allocated: 49202\r\n Upper bound T14936(profasm) bytes allocated: 54382\r\n Actual T14936(profasm) bytes allocated: 56280\r\n Deviation T14936(profasm) bytes allocated: 8.7 %\r\n*** unexpected stat test failure for T14936(profasm)\r\n=====> T14936(ghci) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS -O2< T14936.genscript\r\n=====> T14936(threaded1) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS\r\nbytes allocated value is too high:\r\n Expected T14936(threaded1) bytes allocated: 51792 +/-5%\r\n Lower bound T14936(threaded1) bytes allocated: 49202\r\n Upper bound T14936(threaded1) bytes allocated: 54382\r\n Actual T14936(threaded1) bytes allocated: 73432\r\n Deviation T14936(threaded1) bytes allocated: 41.8 %\r\n*** unexpected stat test failure for T14936(threaded1)\r\n=====> T14936(threaded2) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS +RTS -N2 -ls -RTS\r\nbytes allocated value is too high:\r\n Expected T14936(threaded2) bytes allocated: 51792 +/-5%\r\n Lower bound T14936(threaded2) bytes allocated: 49202\r\n Upper bound T14936(threaded2) bytes allocated: 54382\r\n Actual T14936(threaded2) bytes allocated: 91320\r\n Deviation T14936(threaded2) bytes allocated: 76.3 %\r\n*** unexpected stat test failure for T14936(threaded2)\r\n=====> T14936(dyn) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS\r\n=====> T14936(profthreaded) 18 of 26 [0, 2, 4]\r\ncd \"./perf/should_run/T14936.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T14936 T14936.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded -O2\r\ncd \"./perf/should_run/T14936.run\" && ./T14936 +RTS -V0 -tT14936.stats --machine-readable -RTS +RTS -p -RTS\r\nbytes allocated value is too high:\r\n Expected T14936(profthreaded) bytes allocated: 51792 +/-5%\r\n Lower bound T14936(profthreaded) bytes allocated: 49202\r\n Upper bound T14936(profthreaded) bytes allocated: 54382\r\n Actual T14936(profthreaded) bytes allocated: 126784\r\n Deviation T14936(profthreaded) bytes allocated: 144.8 %\r\n*** unexpected stat test failure for T14936(profthreaded)\r\n=====> space_leak_001(normal) 19 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/space_leak_001.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output\r\ncd \"./perf/space_leaks/space_leak_001.run\" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS\r\n=====> space_leak_001(hpc) 19 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/space_leak_001.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc\r\ncd \"./perf/space_leaks/space_leak_001.run\" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS\r\nmax_bytes_used value is too low:\r\n(If this is because you have improved GHC, please\r\nupdate the test so that GHC doesn't regress again)\r\n Expected space_leak_001(hpc) max_bytes_used: 440000 +/-15%\r\n Lower bound space_leak_001(hpc) max_bytes_used: 374000\r\n Upper bound space_leak_001(hpc) max_bytes_used: 506000\r\n Actual space_leak_001(hpc) max_bytes_used: 291048\r\n Deviation space_leak_001(hpc) max_bytes_used: -33.9 %\r\n*** unexpected stat test failure for space_leak_001(hpc)\r\n=====> space_leak_001(optasm) 19 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/space_leak_001.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm\r\ncd \"./perf/space_leaks/space_leak_001.run\" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS\r\nmax_bytes_used value is too low:\r\n(If this is because you have improved GHC, please\r\nupdate the test so that GHC doesn't regress again)\r\n Expected space_leak_001(optasm) max_bytes_used: 440000 +/-15%\r\n Lower bound space_leak_001(optasm) max_bytes_used: 374000\r\n Upper bound space_leak_001(optasm) max_bytes_used: 506000\r\n Actual space_leak_001(optasm) max_bytes_used: 291048\r\n Deviation space_leak_001(optasm) max_bytes_used: -33.9 %\r\n*** unexpected stat test failure for space_leak_001(optasm)\r\n=====> space_leak_001(ghci) 19 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/space_leak_001.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < space_leak_001.genscript\r\n=====> space_leak_001(dyn) 19 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/space_leak_001.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o space_leak_001 space_leak_001.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic\r\ncd \"./perf/space_leaks/space_leak_001.run\" && ./space_leak_001 +RTS -V0 -tspace_leak_001.stats --machine-readable -RTS\r\nmax_bytes_used value is too low:\r\n(If this is because you have improved GHC, please\r\nupdate the test so that GHC doesn't regress again)\r\n Expected space_leak_001(dyn) max_bytes_used: 440000 +/-15%\r\n Lower bound space_leak_001(dyn) max_bytes_used: 374000\r\n Upper bound space_leak_001(dyn) max_bytes_used: 506000\r\n Actual space_leak_001(dyn) max_bytes_used: 291048\r\n Deviation space_leak_001(dyn) max_bytes_used: -33.9 %\r\n*** unexpected stat test failure for space_leak_001(dyn)\r\n=====> T4334(normal) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output\r\ncd \"./perf/space_leaks/T4334.run\" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t\r\n=====> T4334(hpc) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc\r\ncd \"./perf/space_leaks/T4334.run\" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t\r\n=====> T4334(optasm) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm\r\ncd \"./perf/space_leaks/T4334.run\" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t\r\n=====> T4334(ghci) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < T4334.genscript\r\n=====> T4334(threaded1) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug\r\ncd \"./perf/space_leaks/T4334.run\" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t\r\n=====> T4334(threaded2) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog\r\ncd \"./perf/space_leaks/T4334.run\" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS +RTS -N2 -ls -RTS 1000000 2 t\r\npeak_megabytes_allocated value is too high:\r\n Expected T4334(threaded2) peak_megabytes_allocated: 2 +/-1%\r\n Lower bound T4334(threaded2) peak_megabytes_allocated: 1\r\n Upper bound T4334(threaded2) peak_megabytes_allocated: 3\r\n Actual T4334(threaded2) peak_megabytes_allocated: 4\r\n Deviation T4334(threaded2) peak_megabytes_allocated: 100.0 %\r\n*** unexpected stat test failure for T4334(threaded2)\r\n=====> T4334(dyn) 20 of 26 [0, 2, 4]\r\ncd \"./perf/space_leaks/T4334.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T4334 T4334.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic\r\ncd \"./perf/space_leaks/T4334.run\" && ./T4334 +RTS -V0 -tT4334.stats --machine-readable -RTS 1000000 2 t\r\n=====> T6132(normal) 21 of 26 [0, 2, 4]\r\ncd \"./runghc/T6132.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output\r\n*** unexpected pass for T6132(normal)\r\n=====> T6132(hpc) 21 of 26 [1, 2, 4]\r\ncd \"./runghc/T6132.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc\r\n*** unexpected pass for T6132(hpc)\r\n=====> T6132(optasm) 21 of 26 [2, 2, 4]\r\ncd \"./runghc/T6132.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm\r\n*** unexpected pass for T6132(optasm)\r\n=====> T6132(profasm) 21 of 26 [3, 2, 4]\r\ncd \"./runghc/T6132.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T6132.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto\r\n*** unexpected pass for T6132(profasm)\r\n=====> T7702(normal) 22 of 26 [4, 2, 4]\r\ncd \"./simplCore/should_compile/T7702.run\" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite\r\ncd \"./simplCore/should_compile/T7702.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS\r\n=====> T7702(hpc) 22 of 26 [4, 2, 4]\r\ncd \"./simplCore/should_compile/T7702.run\" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite\r\ncd \"./simplCore/should_compile/T7702.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS\r\n=====> T7702(optasm) 22 of 26 [4, 2, 4]\r\ncd \"./simplCore/should_compile/T7702.run\" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite\r\ncd \"./simplCore/should_compile/T7702.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS\r\n=====> T7702(profasm) 22 of 26 [4, 2, 4]\r\ncd \"./simplCore/should_compile/T7702.run\" && $MAKE -s --no-print-directory -C T7702plugin package.T7702 TOP=/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite\r\ncd \"./simplCore/should_compile/T7702.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -c T7702.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin -dynamic +RTS -V0 -tT7702.comp.stats --machine-readable -RTS\r\nCompile failed (exit code 1) errors were:\r\n<command line>: Could not find module ‘T7702Plugin’\r\nPerhaps you haven't installed the \"p_dyn\" libraries for package ‘T7702plugin-0.1’?\r\nUse -v to see a list of the files searched for.\r\n\r\n*** unexpected failure for T7702(profasm)\r\n=====> EtaExpandLevPoly(normal) 23 of 26 [4, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly\r\n=====> EtaExpandLevPoly(hpc) 23 of 26 [4, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly\r\n=====> EtaExpandLevPoly(optasm) 23 of 26 [4, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly\r\n=====> EtaExpandLevPoly(profasm) 23 of 26 [4, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly +RTS -hc -p -RTS\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps\" EtaExpandLevPoly\r\n*** unexpected pass for EtaExpandLevPoly(profasm)\r\n=====> EtaExpandLevPoly(threaded1) 23 of 26 [5, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly\r\n=====> EtaExpandLevPoly(threaded2) 23 of 26 [5, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly +RTS -N2 -ls -RTS\r\n=====> EtaExpandLevPoly(dyn) 23 of 26 [5, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly\r\n=====> EtaExpandLevPoly(profthreaded) 23 of 26 [5, 3, 4]\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded\r\ncd \"./typecheck/should_run/EtaExpandLevPoly.run\" && ./EtaExpandLevPoly +RTS -p -RTS\r\n*** unexpected pass for EtaExpandLevPoly(profthreaded)\r\n=====> T15349(normal) 24 of 26 [6, 3, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349\r\n=====> T15349(hpc) 24 of 26 [6, 3, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349\r\n=====> T15349(optasm) 24 of 26 [6, 3, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349\r\n=====> T15349(profasm) 24 of 26 [6, 3, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349 +RTS -hc -p -RTS\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps\" T15349\r\n=====> T15349(ghci) 24 of 26 [6, 3, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS < T15349.genscript\r\nTimeout happened...killed process \"cd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS \"...\r\n\r\nWrong exit code for T15349(ghci) (expected 1 , actual 99 )\r\n*** unexpected failure for T15349(ghci)\r\n=====> T15349(threaded1) 24 of 26 [6, 4, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349\r\n=====> T15349(threaded2) 24 of 26 [6, 4, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349 +RTS -N2 -ls -RTS\r\n=====> T15349(dyn) 24 of 26 [6, 4, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349\r\n=====> T15349(profthreaded) 24 of 26 [6, 4, 4]\r\ncd \"../../libraries/base/tests/T15349.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o T15349 T15349.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded\r\ncd \"../../libraries/base/tests/T15349.run\" && ./T15349 +RTS -p -RTS\r\n=====> hpc_fork(normal) 25 of 26 [6, 4, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork\r\n=====> hpc_fork(hpc) 25 of 26 [6, 4, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork\r\n=====> hpc_fork(optasm) 25 of 26 [6, 4, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork\r\n=====> hpc_fork(profasm) 25 of 26 [6, 4, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork +RTS -hc -p -RTS\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps\" hpc_fork\r\nhp2ps error when processing heap profile for hpc_fork\r\n*** unexpected failure for hpc_fork(profasm)\r\n=====> hpc_fork(threaded1) 25 of 26 [6, 5, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork\r\n=====> hpc_fork(dyn) 25 of 26 [6, 5, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork\r\n=====> hpc_fork(profthreaded) 25 of 26 [6, 5, 4]\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o hpc_fork hpc_fork.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded -fhpc\r\ncd \"../../libraries/hpc/tests/fork/hpc_fork.run\" && perl hpcrun.pl --clear --exeext= --hpc=\"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hpc\" ./hpc_fork +RTS -p -RTS\r\n=====> signals004(normal) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004\r\n=====> signals004(hpc) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004\r\n=====> signals004(optasm) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004\r\n=====> signals004(profasm) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004 +RTS -hc -p -RTS\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/hp2ps\" signals004\r\n=====> signals004(ghci) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output --interactive -v0 -ignore-dot-ghci -fno-ghci-history -fghci-leak-check +RTS -I0.1 -RTS -package unix< signals004.genscript\r\n=====> signals004(threaded1) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004\r\n=====> signals004(threaded2) 26 of 26 [6, 5, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004 +RTS -N2 -ls -RTS\r\nTimeout happened...killed process \"cd \"../../libraries/unix/tests/signals004.run\" && ./signals004 +RTS -N2 -ls -RTS \"...\r\n\r\nWrong exit code for signals004(threaded2)(expected 0 , actual 99 )\r\n*** unexpected failure for signals004(threaded2)\r\n=====> signals004(dyn) 26 of 26 [6, 6, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004\r\n=====> signals004(profthreaded) 26 of 26 [6, 6, 4]\r\ncd \"../../libraries/unix/tests/signals004.run\" && \"/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/inplace/test spaces/ghc-stage2\" -o signals004 signals004.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded -package unix\r\ncd \"../../libraries/unix/tests/signals004.run\" && ./signals004 +RTS -p -RTS\r\n\r\nUnexpected results from:\r\nTEST=\"EtaExpandLevPoly ManyAlternatives ManyConstructors MultiLayerModules T10370 T11535 T12707 T13379 T13701 T13719 T14683 T14697 T14936 T15349 T4334 T6132 T7702 T9203 T9630 ghci063 haddock.Cabal haddock.base haddock.compiler hpc_fork signals004 space_leak_001\"\r\n\r\nSUMMARY for test run started at Fri Nov 30 11:28:02 2018 EST\r\n 0:56:11 spent to go through\r\n 26 total tests, which gave rise to\r\n 137 test cases, of which\r\n 20 were skipped\r\n\r\n 0 had missing libraries\r\n 64 expected passes\r\n 0 expected failures\r\n\r\n 4 caused framework failures\r\n 0 caused framework warnings\r\n 6 unexpected passes\r\n 6 unexpected failures\r\n 37 unexpected stat failures\r\n\r\nUnexpected passes:\r\n runghc/T6132.run T6132 [unexpected] (normal)\r\n runghc/T6132.run T6132 [unexpected] (hpc)\r\n runghc/T6132.run T6132 [unexpected] (optasm)\r\n runghc/T6132.run T6132 [unexpected] (profasm)\r\n typecheck/should_run/EtaExpandLevPoly.run EtaExpandLevPoly [unexpected] (profasm)\r\n typecheck/should_run/EtaExpandLevPoly.run EtaExpandLevPoly [unexpected] (profthreaded)\r\n\r\nUnexpected failures:\r\n deriving/should_run/T11535.run T11535 [bad exit code] (ghci)\r\n ghci/scripts/ghci063.run ghci063 [bad stderr] (ghci)\r\n simplCore/should_compile/T7702.run T7702 [exit code non-0] (profasm)\r\n ../../libraries/base/tests/T15349.run T15349 [bad exit code] (ghci)\r\n ../../libraries/hpc/tests/fork/hpc_fork.run hpc_fork [bad heap profile] (profasm)\r\n ../../libraries/unix/tests/signals004.run signals004 [bad exit code] (threaded2)\r\n\r\nUnexpected stat failures:\r\n perf/compiler/T10370.run T10370 [stat not good enough] (optasm)\r\n perf/compiler/T12707.run T12707 [stat not good enough] (hpc)\r\n perf/compiler/T12707.run T12707 [stat not good enough] (optasm)\r\n perf/compiler/T12707.run T12707 [stat not good enough] (profasm)\r\n perf/compiler/T13379.run T13379 [stat not good enough] (hpc)\r\n perf/compiler/MultiLayerModules.run MultiLayerModules [stat not good enough] (optasm)\r\n perf/compiler/ManyConstructors.run ManyConstructors [stat not good enough] (hpc)\r\n perf/compiler/ManyConstructors.run ManyConstructors [stat not good enough] (optasm)\r\n perf/compiler/ManyConstructors.run ManyConstructors [stat not good enough] (profasm)\r\n perf/compiler/ManyAlternatives.run ManyAlternatives [stat not good enough] (hpc)\r\n perf/compiler/ManyAlternatives.run ManyAlternatives [stat not good enough] (optasm)\r\n perf/compiler/ManyAlternatives.run ManyAlternatives [stat not good enough] (profasm)\r\n perf/compiler/T13701.run T13701 [stat not good enough] (optasm)\r\n perf/compiler/T13719.run T13719 [stat not good enough] (hpc)\r\n perf/compiler/T13719.run T13719 [stat not good enough] (optasm)\r\n perf/compiler/T13719.run T13719 [stat not good enough] (profasm)\r\n perf/compiler/T14697.run T14697 [stat not good enough] (hpc)\r\n perf/compiler/T14697.run T14697 [stat not good enough] (optasm)\r\n perf/compiler/T14697.run T14697 [stat not good enough] (profasm)\r\n perf/compiler/T14683.run T14683 [stat not good enough] (hpc)\r\n perf/compiler/T14683.run T14683 [stat not good enough] (optasm)\r\n perf/compiler/T14683.run T14683 [stat not good enough] (profasm)\r\n perf/compiler/T9630.run T9630 [stat not good enough] (hpc)\r\n perf/compiler/T9630.run T9630 [stat not good enough] (profasm)\r\n perf/haddock/haddock.base.run haddock.base [stat not good enough] (normal)\r\n perf/haddock/haddock.Cabal.run haddock.Cabal [stat not good enough] (normal)\r\n perf/haddock/haddock.compiler.run haddock.compiler [stat not good enough] (normal)\r\n perf/should_run/T9203.run T9203 [stat too good] (normal)\r\n perf/should_run/T14936.run T14936 [stat not good enough] (hpc)\r\n perf/should_run/T14936.run T14936 [stat not good enough] (profasm)\r\n perf/should_run/T14936.run T14936 [stat not good enough] (threaded1)\r\n perf/should_run/T14936.run T14936 [stat not good enough] (threaded2)\r\n perf/should_run/T14936.run T14936 [stat not good enough] (profthreaded)\r\n perf/space_leaks/space_leak_001.run space_leak_001 [stat too good] (hpc)\r\n perf/space_leaks/space_leak_001.run space_leak_001 [stat too good] (optasm)\r\n perf/space_leaks/space_leak_001.run space_leak_001 [stat too good] (dyn)\r\n perf/space_leaks/T4334.run T4334 [stat not good enough] (threaded2)\r\n\r\nFramework failures:\r\n perf/compiler/MultiLayerModules.run MultiLayerModules [hpc] ('NoneType' object has no attribute 'group')\r\n perf/compiler/MultiLayerModules.run MultiLayerModules [profasm] ('NoneType' object has no attribute 'group')\r\n perf/compiler/T13701.run T13701 [hpc] ('NoneType' object has no attribute 'group')\r\n perf/compiler/T13701.run T13701 [profasm] ('NoneType' object has no attribute 'group')\r\n\r\n../mk/test.mk:329: recipe for target 'test' failed\r\nmake[2]: *** [test] Error 1\r\nmake[2]: Leaving directory '/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/tests'\r\n../mk/test.mk:348: recipe for target 'slow' failed\r\nmake[1]: *** [slow] Error 2\r\nmake[1]: Leaving directory '/Users/carter/dev-checkouts/ghc-tree/ghc-8.6.2-checkout-build/testsuite/tests'\r\nMakefile:35: recipe for target 'slow' failed\r\nmake: *** [slow] Error 2\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15980unpin a mutable byte array2019-07-07T18:02:10ZAndrew Martinunpin a mutable byte arraySometimes, it necessary to allocate a mutable byte array as pinned. This commonly happens when the mutable byte array will immidiately be handed over to a `safe` FFI routine to be initialized. However, after it has been initialized, it m...Sometimes, it necessary to allocate a mutable byte array as pinned. This commonly happens when the mutable byte array will immidiately be handed over to a `safe` FFI routine to be initialized. However, after it has been initialized, it might not be useful for it to be pinned anymore. If it's a little byte array, it may contribute to a fragmented heap. Even if it's large, the fact that the user explicitly asked pin it prohibits it from ever being added to a compact region (pinned bytearrays that were pinned simply because they are over 3KB can be added to compact regions). A workaround for either of these problems is to copy the pinned bytearray into an unpinned byte array afterwards. But that's kind of wasteful. Is it possible to have a primop
```
unpinMutableByteArray :: MutableByteArray s -> State# s -> State# s
```
After this, the mutable byte array could be moved in memory. This would require `isMutableByteArrayPinned#` to undergo a similar transition as `sizeofMutableByteArray#` (which was superceeded by `getSizeofMutableByteArray#`) underwent.
Is this possible? Or are pinned things allocated in a special place that makes unpinning impossible?
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"unpin a mutable byte array","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"Sometimes, it necessary to allocate a mutable byte array as pinned. This commonly happens when the mutable byte array will immidiately be handed over to a `safe` FFI routine to be initialized. However, after it has been initialized, it might not be useful for it to be pinned anymore. If it's a little byte array, it may contribute to a fragmented heap. Even if it's large, the fact that the user explicitly asked pin it prohibits it from ever being added to a compact region (pinned bytearrays that were pinned simply because they are over 3KB can be added to compact regions). A workaround for either of these problems is to copy the pinned bytearray into an unpinned byte array afterwards. But that's kind of wasteful. Is it possible to have a primop\r\n\r\n{{{\r\nunpinMutableByteArray :: MutableByteArray s -> State# s -> State# s\r\n}}}\r\n\r\nAfter this, the mutable byte array could be moved in memory. This would require `isMutableByteArrayPinned#` to undergo a similar transition as `sizeofMutableByteArray#` (which was superceeded by `getSizeofMutableByteArray#`) underwent.\r\n\r\nIs this possible? Or are pinned things allocated in a special place that makes unpinning impossible?","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15983Built-in support for half-floats2019-07-07T18:02:09ZLevent ErkökBuilt-in support for half-floatsHalf-floats (16-bit floating point values with 1-bit sign, 5-bits of exponent, and 10 bits of mantissa) are becoming more and more common in this new era of data-centric programming: Almost all GPUs have native support, and most CPU's ar...Half-floats (16-bit floating point values with 1-bit sign, 5-bits of exponent, and 10 bits of mantissa) are becoming more and more common in this new era of data-centric programming: Almost all GPUs have native support, and most CPU's are starting to support them natively in their instruction set.
It would be great if GHC can lead the way and have half-floats as a natively supported data-type as well, just like Float and Double.
I'm aware of Edward's http://hackage.haskell.org/package/half package; so that could be a starting point; though we'd eventually want GHC to generate native code. Note that LLVM does support half-floats, so a viable path can be using LLVM when available and software-FFI/implementation otherwise. Eventually the native code generator can add support as well.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Built-in support for half-floats","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"Half-floats (16-bit floating point values with 1-bit sign, 5-bits of exponent, and 10 bits of mantissa) are becoming more and more common in this new era of data-centric programming: Almost all GPUs have native support, and most CPU's are starting to support them natively in their instruction set.\r\n\r\nIt would be great if GHC can lead the way and have half-floats as a natively supported data-type as well, just like Float and Double.\r\n\r\nI'm aware of Edward's http://hackage.haskell.org/package/half package; so that could be a starting point; though we'd eventually want GHC to generate native code. Note that LLVM does support half-floats, so a viable path can be using LLVM when available and software-FFI/implementation otherwise. Eventually the native code generator can add support as well.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15984Backpack accepts ill-kinded instantiations. Can cause GHC panic2019-07-07T18:02:09ZaaronvargoBackpack accepts ill-kinded instantiations. Can cause GHC panicGiven the following:
```hs
{-# language KindSignatures #-}
signature A where
data A :: *
```
```hs
module Foo where
import A
foo :: A -> A
foo = id
```
```hs
module IllKindedA where
type A = Maybe
```
GHC allows the signature `A`...Given the following:
```hs
{-# language KindSignatures #-}
signature A where
data A :: *
```
```hs
module Foo where
import A
foo :: A -> A
foo = id
```
```hs
module IllKindedA where
type A = Maybe
```
GHC allows the signature `A` to be instantiated with `IllKindedA`:
```
mixins: foo (Foo as Bug) requires (A as IllKindedA)
```
Using the resulting module can cause odd errors or a panic. E.g. the following causes a panic:
```hs
module Bar where
import Bug
bar = foo
```
```
ghc: panic! (the 'impossible' happened)
(GHC version 8.6.2 for x86_64-unknown-linux):
getRuntimeRep
A :: * -> *
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/types/Type.hs:2049:18 in ghc:Type
```8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15988Remove Text.Printf and System.Console.GetOpt from base2019-07-07T18:02:08ZAndrew MartinRemove Text.Printf and System.Console.GetOpt from baseThis was touched on in brief in a recent mailing list thread found at https://mail.haskell.org/pipermail/libraries/2018-October/029012.html. I propose removing `Text.Printf` and `System.Console.GetOpt` from `base` and moving them into th...This was touched on in brief in a recent mailing list thread found at https://mail.haskell.org/pipermail/libraries/2018-October/029012.html. I propose removing `Text.Printf` and `System.Console.GetOpt` from `base` and moving them into their own packages named `printf` and `getopt` that would be managed by the haskell github organization. These two libraries, when built against newer versions of base, would provide the modules. When built against old versions of base, they would simply reexport the modules. There would be breakage from doing this, but libraries and applications that use these APIs would only need to add a single line to `build-depends` to continue being compatible with all versions of `base`.
The benefits of doing this are small. As a matter of principle, it seems unfair that these two APIs are blessed by being a part of base when the would likely struggle to compete if they were in ordinary libraries. In particular, `printf` is less idiomatic and performs worse that the functions from `Numeric` (like `showFFloat`), but its prominent position in `base` encourages users to overlook the more type-safe options available for formatting numbers.
More practically, the size of base does occassionally cause problems. In https://github.com/haskell/primitive/issues/218\#issuecomment-443534850, Carter writes
> base getting bigger actually hurts folk, eg, base recently got big enough that dwarf data gnerated by ghc at -g1 is now sooo much that you can't do a dwarf annotated build of base on mac OS X! anymore
Moving these APIs out of `base` makes a small step toward addressing this problem.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Remove Text.Printf and System.Console.GetOpt from base","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"This was touched on in brief in a recent mailing list thread found at https://mail.haskell.org/pipermail/libraries/2018-October/029012.html. I propose removing `Text.Printf` and `System.Console.GetOpt` from `base` and moving them into their own packages named `printf` and `getopt` that would be managed by the haskell github organization. These two libraries, when built against newer versions of base, would provide the modules. When built against old versions of base, they would simply reexport the modules. There would be breakage from doing this, but libraries and applications that use these APIs would only need to add a single line to `build-depends` to continue being compatible with all versions of `base`.\r\n\r\nThe benefits of doing this are small. As a matter of principle, it seems unfair that these two APIs are blessed by being a part of base when the would likely struggle to compete if they were in ordinary libraries. In particular, `printf` is less idiomatic and performs worse that the functions from `Numeric` (like `showFFloat`), but its prominent position in `base` encourages users to overlook the more type-safe options available for formatting numbers.\r\n\r\nMore practically, the size of base does occassionally cause problems. In https://github.com/haskell/primitive/issues/218#issuecomment-443534850, Carter writes\r\n\r\n> base getting bigger actually hurts folk, eg, base recently got big enough that dwarf data gnerated by ghc at -g1 is now sooo much that you can't do a dwarf annotated build of base on mac OS X! anymore\r\n\r\nMoving these APIs out of `base` makes a small step toward addressing this problem.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15989Adding extra quantified constraints leads to resolution failure2019-07-07T18:02:08ZerorAdding extra quantified constraints leads to resolution failure```
{-# LANGUAGE QuantifiedConstraints, FlexibleContexts #-}
import Control.Monad.Reader
data T x = T
ok :: ( forall x x'. MonadReader (T x) (m x') )
=> m y Bool
ok = fmap not (pure True)
bad :: ( forall x x'. MonadReader (T x) (...```
{-# LANGUAGE QuantifiedConstraints, FlexibleContexts #-}
import Control.Monad.Reader
data T x = T
ok :: ( forall x x'. MonadReader (T x) (m x') )
=> m y Bool
ok = fmap not (pure True)
bad :: ( forall x x'. MonadReader (T x) (m x')
, forall x. Monad (m x) )
=> m y Bool
bad = fmap not (pure True)
better :: ( forall x x'. MonadReader (T x) (m x')
, forall x. Applicative (m x)
, forall x. Functor (m x) )
=> m y Bool
better = fmap not (pure True)
```
`ok` and `better` compile, but `bad` fails to resolve, despite having strictly more in the context than `ok`:
```
BadQC.hs:15:7: error:
• Could not deduce (Functor (m y)) arising from a use of ‘fmap’
from the context: (forall x x'. MonadReader (T x) (m x'),
forall x. Monad (m x))
bound by the type signature for:
bad :: forall (m :: * -> * -> *) y.
(forall x x'. MonadReader (T x) (m x'), forall x. Monad (m x)) =>
m y Bool
at BadQC.hs:(12,1)-(14,15)
• In the expression: fmap not (pure True)
In an equation for ‘bad’: bad = fmap not (pure True)
|
15 | bad = fmap not (pure True)
| ^^^^^^^^^^^^^^^^^^^^
BadQC.hs:15:17: error:
• Could not deduce (Applicative (m y)) arising from a use of ‘pure’
from the context: (forall x x'. MonadReader (T x) (m x'),
forall x. Monad (m x))
bound by the type signature for:
bad :: forall (m :: * -> * -> *) y.
(forall x x'. MonadReader (T x) (m x'), forall x. Monad (m x)) =>
m y Bool
at BadQC.hs:(12,1)-(14,15)
• In the second argument of ‘fmap’, namely ‘(pure True)’
In the expression: fmap not (pure True)
In an equation for ‘bad’: bad = fmap not (pure True)
|
15 | bad = fmap not (pure True)
| ^^^^^^^^^
Failed, no modules loaded.
```
Also:
- `( forall x. MonadReader (T x) (m x), forall x. Monad (m x) )` compiles — the error seems to require two quantified type variables
- `( forall x x'. Monad (m x), forall x. Monad (m x) )` reports an ambiguity error on the constraint, which makes sense; if I turn on `AllowAmbiguousTypes`, it fails with the same error as above — the error isn't caused by MPTCs, and it doesn't matter that `x'` is unused
- `( forall x x'. Foldable (m x), forall x. Monad (m x) )` and `( forall x x'. Monad (m x), forall x. Foldable (m x) )` compile — being in the same class hierarchy matters
- `( forall x x'. Applicative (m x), forall x. Monad (m x) )` fails on `fmap` (but not `pure`) — which is the superclass doesn't seem to matter8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15991Regression in error message when attempting to let bind an existentially quan...2020-07-30T10:51:20ZmmailhotRegression in error message when attempting to let bind an existentially quantified typeWhen attempting to compile the following (invalid) program:
```hs
{-# LANGUAGE ExistentialQuantification #-}
data Foo = forall a. Foo a
main :: IO ()
main =
let Foo x = Foo 1 in
return ()
```
GHC 8.6.2.0 (and 8.6.1.0, 8.4.1.0...When attempting to compile the following (invalid) program:
```hs
{-# LANGUAGE ExistentialQuantification #-}
data Foo = forall a. Foo a
main :: IO ()
main =
let Foo x = Foo 1 in
return ()
```
GHC 8.6.2.0 (and 8.6.1.0, 8.4.1.0) gives the following complicated error message
```
Test.hs:7:13: error:
• Couldn't match expected type ‘p’ with actual type ‘a’
because type variable ‘a’ would escape its scope
This (rigid, skolem) type variable is bound by
a pattern with constructor: Foo :: forall a. a -> Foo,
in a pattern binding
at Test.hs:7:9-13
• In the pattern: Foo x
In a pattern binding: Foo x = Foo 1
In the expression: let Foo x = Foo 1 in return ()
|
7 | let Foo x = Foo 1 in
|
```
GHC 7.10.1.2 gave a much more helpful and direct error message
```
Test.hs:7:9:
My brain just exploded
I can't handle pattern bindings for existential or GADT data constructors.
Instead, use a case-expression, or do-notation, to unpack the constructor.
In the pattern: Foo x
In a pattern binding: Foo x = Foo 1
In the expression: let Foo x = Foo 1 in return ()
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.4.1 |
| 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":"Regression in error message when attempting to let bind an existentially quantified type","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.4.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"When attempting to compile the following (invalid) program:\r\n\r\n{{{#!hs\r\n{-# LANGUAGE ExistentialQuantification #-}\r\n\r\ndata Foo = forall a. Foo a\r\n\r\nmain :: IO ()\r\nmain =\r\n let Foo x = Foo 1 in\r\n return ()\r\n}}}\r\n\r\nGHC 8.6.2.0 (and 8.6.1.0, 8.4.1.0) gives the following complicated error message\r\n\r\n{{{\r\n\r\nTest.hs:7:13: error:\r\n • Couldn't match expected type ‘p’ with actual type ‘a’\r\n because type variable ‘a’ would escape its scope\r\n This (rigid, skolem) type variable is bound by\r\n a pattern with constructor: Foo :: forall a. a -> Foo,\r\n in a pattern binding\r\n at Test.hs:7:9-13\r\n • In the pattern: Foo x\r\n In a pattern binding: Foo x = Foo 1\r\n In the expression: let Foo x = Foo 1 in return ()\r\n |\r\n7 | let Foo x = Foo 1 in\r\n | \r\n}}}\r\n\r\nGHC 7.10.1.2 gave a much more helpful and direct error message\r\n\r\n{{{\r\nTest.hs:7:9:\r\n My brain just exploded\r\n I can't handle pattern bindings for existential or GADT data constructors.\r\n Instead, use a case-expression, or do-notation, to unpack the constructor.\r\n In the pattern: Foo x\r\n In a pattern binding: Foo x = Foo 1\r\n In the expression: let Foo x = Foo 1 in return ()\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15992Alternative instance for Data.Functor.Compose causes <<loop>>s with some types2019-07-07T18:02:07ZglaebhoerlAlternative instance for Data.Functor.Compose causes <<loop>>s with some types`many` and `some` are [omitted](http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.Functor.Compose.html#line-119) and are filled in by their defaults from `Alternative`, instead of re-using the definitions provided for `f`; t...`many` and `some` are [omitted](http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.Functor.Compose.html#line-119) and are filled in by their defaults from `Alternative`, instead of re-using the definitions provided for `f`; this manifests as infinite grammars being created in the case of the Earley parsing library, resulting in `<<loop>>` errors at runtime.
The fix is just to add:
```hs
many = Compose . fmap sequenceA . many . getCompose
some = Compose . fmap sequenceA . some . getCompose
```
Related twitter thread: https://twitter.com/ollfredo/status/1067498140100628480
(It seems like this bug has been around for some time: https://github.com/feuerbach/regex-applicative/issues/19)
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Alternative instance for Data.Functor.Compose causes <<loop>>s with some types","status":"New","operating_system":"","component":"libraries/base","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"`many` and `some` are [http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.Functor.Compose.html#line-119 omitted] and are filled in by their defaults from `Alternative`, instead of re-using the definitions provided for `f`; this manifests as infinite grammars being created in the case of the Earley parsing library, resulting in `<<loop>>` errors at runtime.\r\n\r\nThe fix is just to add:\r\n\r\n{{{#!hs\r\n many = Compose . fmap sequenceA . many . getCompose\r\n some = Compose . fmap sequenceA . some . getCompose\r\n}}}\r\n\r\nRelated twitter thread: https://twitter.com/ollfredo/status/1067498140100628480\r\n\r\n(It seems like this bug has been around for some time: https://github.com/feuerbach/regex-applicative/issues/19)","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15994Duplicate entries in -ddump-minimal-imports2019-07-07T18:02:07ZSimon Peyton JonesDuplicate entries in -ddump-minimal-importsConsider
```
module Foo where
import System.IO
f = [ReadMode, ReadMode]
```
We get this:
```
$ ghc -c -ddump-minimal-imports Foo.hs
$ cat Foo.imports
import System.IO ( IOMode(ReadMode, ReadMode) )
```
Notice that `ReadMode` appear...Consider
```
module Foo where
import System.IO
f = [ReadMode, ReadMode]
```
We get this:
```
$ ghc -c -ddump-minimal-imports Foo.hs
$ cat Foo.imports
import System.IO ( IOMode(ReadMode, ReadMode) )
```
Notice that `ReadMode` appears twice.
Turns out this is because of a refactoring in `RnNames`
```
commit 6353efc7694ba8ec86c091918e02595662169ae2
Author: David Eichmann <EichmannD@gmail.com>
Date: Thu Nov 22 14:48:05 2018 -0500
Fix unused-import warnings
This patch fixes a fairly long-standing bug (dating back to 2015) in
RdrName.bestImport, namely
```
(which I wrote -- don't blame David!).
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Duplicate entries in -ddump-minimal-imports","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Consider\r\n{{{\r\nmodule Foo where\r\n\r\nimport System.IO\r\n\r\nf = [ReadMode, ReadMode]\r\n}}}\r\nWe get this:\r\n{{{\r\n$ ghc -c -ddump-minimal-imports Foo.hs\r\n$ cat Foo.imports\r\nimport System.IO ( IOMode(ReadMode, ReadMode) )\r\n}}}\r\nNotice that `ReadMode` appears twice.\r\n\r\nTurns out this is because of a refactoring in `RnNames`\r\n{{{\r\ncommit 6353efc7694ba8ec86c091918e02595662169ae2\r\nAuthor: David Eichmann <EichmannD@gmail.com>\r\nDate: Thu Nov 22 14:48:05 2018 -0500\r\n\r\n Fix unused-import warnings\r\n \r\n This patch fixes a fairly long-standing bug (dating back to 2015) in\r\n RdrName.bestImport, namely\r\n}}}\r\n(which I wrote -- don't blame David!).\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15996Add Unlifted List type to base2023-04-01T11:56:26ZchessaiAdd Unlifted List type to base```hs
data UList (a :: TYPE 'UnliftedRep) where
UNil :: UList a
UCons :: a -> UList a -> UList a
```
This would guarantee that values stored inside the list would not be thunks. It would likely live in something like GHC.List.Unlift...```hs
data UList (a :: TYPE 'UnliftedRep) where
UNil :: UList a
UCons :: a -> UList a -> UList a
```
This would guarantee that values stored inside the list would not be thunks. It would likely live in something like GHC.List.Unlifted, since it uses GHC-specific things.
An example of something it might improve is the implementation of Control.Concurrent.QSem.QSem:
```hs
data QSem = QSem !(MVar (Int, [MVar ()], [MVar ()]))
```
this could instead be:
```hs
type MVarIO = MVar# RealWorld -- type synonym for brevity
data QSem = QSem (MVarIO (Int, UList (MVarIO ()), UList (MVarIO ())))
```
Note that in this example the tuple inside the outermost `MVarIO` boxes the `Int` - this tuple could be represented as a datatype which ensures the unboxing on the `Int`.
The main idea here though is that now you can use `MVar#` inside of the `UList`.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Add Unlifted List type to base","status":"New","operating_system":"","component":"libraries/base","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"{{{#!hs\r\ndata UList (a :: TYPE 'UnliftedRep) where\r\n UNil :: UList a\r\n UCons :: a -> UList a -> UList a\r\n}}}\r\n\r\nThis would guarantee that values stored inside the list would not be thunks. It would likely live in something like GHC.List.Unlifted, since it uses GHC-specific things.\r\n\r\nAn example of something it might improve is the implementation of Control.Concurrent.QSem.QSem:\r\n\r\n{{{#!hs\r\ndata QSem = QSem !(MVar (Int, [MVar ()], [MVar ()]))\r\n}}}\r\n\r\nthis could instead be:\r\n\r\n{{{#!hs\r\ntype MVarIO = MVar# RealWorld -- type synonym for brevity\r\n\r\ndata QSem = QSem (MVarIO (Int, UList (MVarIO ()), UList (MVarIO ())))\r\n}}}\r\n\r\nNote that in this example the tuple inside the outermost `MVarIO` boxes the `Int` - this tuple could be represented as a datatype which ensures the unboxing on the `Int`.\r\n\r\nThe main idea here though is that now you can use `MVar#` inside of the `UList`.\r\n\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15997EventManager could benefit from Data.Primitive.UnliftedArray2019-07-07T18:02:06ZchessaiEventManager could benefit from Data.Primitive.UnliftedArray```hs
-- | The event manager state.
data EventManager = EventManager
{ emBackend :: !Backend
, emFds :: {-# UNPACK #-} !(Array Int (MVar (IntTable [FdData])))
, emState :: {-# UNPACK #-} !(IORef State)
...```hs
-- | The event manager state.
data EventManager = EventManager
{ emBackend :: !Backend
, emFds :: {-# UNPACK #-} !(Array Int (MVar (IntTable [FdData])))
, emState :: {-# UNPACK #-} !(IORef State)
, emUniqueSource :: {-# UNPACK #-} !UniqueSource
, emControl :: {-# UNPACK #-} !Control
, emLock :: {-# UNPACK #-} !(MVar ())
}
```
the field in question is an `Array Int (MVar (IntTable [FdData]))`.
`EventManager` could instead be:
```hs
type MVarIO = MVar# RealWorld -- type synonym for brevity
-- | The event manager state.
data EventManager = EventManager
{ emBackend :: !Backend
, emFds :: {-# UNPACK #-} !(UnliftedArray (MVarIO (IntTable [FdData])))
, emState :: {-# UNPACK #-} !(IORef State)
, emUniqueSource :: {-# UNPACK #-} !UniqueSource
, emControl :: {-# UNPACK #-} !Control
, emLock :: {-# UNPACK #-} !(MVar ())
}
```
now the `UnliftedArray` contains non-thunks.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"EventManager could benefit from Data.Primitive.UnliftedArray","status":"New","operating_system":"","component":"libraries/base","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"{{{#!hs\r\n-- | The event manager state.\r\ndata EventManager = EventManager\r\n { emBackend :: !Backend\r\n , emFds :: {-# UNPACK #-} !(Array Int (MVar (IntTable [FdData])))\r\n , emState :: {-# UNPACK #-} !(IORef State)\r\n , emUniqueSource :: {-# UNPACK #-} !UniqueSource\r\n , emControl :: {-# UNPACK #-} !Control\r\n , emLock :: {-# UNPACK #-} !(MVar ())\r\n }\r\n}}}\r\n\r\nthe field in question is an `Array Int (MVar (IntTable [FdData]))`.\r\n\r\n`EventManager` could instead be:\r\n\r\n{{{#!hs\r\n\r\ntype MVarIO = MVar# RealWorld -- type synonym for brevity\r\n\r\n-- | The event manager state.\r\ndata EventManager = EventManager\r\n { emBackend :: !Backend\r\n , emFds :: {-# UNPACK #-} !(UnliftedArray (MVarIO (IntTable [FdData])))\r\n , emState :: {-# UNPACK #-} !(IORef State)\r\n , emUniqueSource :: {-# UNPACK #-} !UniqueSource\r\n , emControl :: {-# UNPACK #-} !Control\r\n , emLock :: {-# UNPACK #-} !(MVar ())\r\n }\r\n}}}\r\n\r\nnow the `UnliftedArray` contains non-thunks.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/15998GHC.Event.Thread.eventManager has a lot of indirections2019-07-07T18:02:06ZchessaiGHC.Event.Thread.eventManager has a lot of indirectionsCurrent `eventManager`:
```hs
eventManager :: IORef (IOArray Int (Maybe (ThreadId, EventManager)))
eventManager = unsafePerformIO $ do
...
```
That's a lot of indirections just to grab your thread's event manager.
Consider the followi...Current `eventManager`:
```hs
eventManager :: IORef (IOArray Int (Maybe (ThreadId, EventManager)))
eventManager = unsafePerformIO $ do
...
```
That's a lot of indirections just to grab your thread's event manager.
Consider the following, which I believe would improve the performance of this:
```hs
data UnliftedIORef :: TYPE 'UnliftedRep -> Type where
UnliftedIORef :: MutVar# RealWorld a -> UnliftedIORef a
eventManager :: UnliftedIORef (MutableArray# RealWorld Things)
data Things = Things !ThreadId !EventManager
```
I think the Maybe can be eliminated. I'm unsure. What makes me think it can be is the following snippet:
```hs
getSystemEventManager :: IO (Maybe EventManager)
getSystemEventManager = do
t <- myThreadId
(cap, _) <- threadCapability t
eventManagerArray <- readIORef eventManager
mmgr <- readIOArray eventManagerArray cap
return $ fmap snd mmgr
getSystemEventManager_ :: IO EventManager
getSystemEventManager_ = do
Just mgr <- getSystemEventManager
return mgr
{-# INLINE getSystemEventManager_ #-}
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"GHC.Event.Thread.eventManager has a lot of indirections","status":"New","operating_system":"","component":"libraries/base","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"Current `eventManager`:\r\n\r\n{{{#!hs\r\neventManager :: IORef (IOArray Int (Maybe (ThreadId, EventManager)))\r\neventManager = unsafePerformIO $ do\r\n...\r\n}}}\r\n\r\nThat's a lot of indirections just to grab your thread's event manager.\r\n\r\nConsider the following, which I believe would improve the performance of this:\r\n\r\n{{{#!hs\r\ndata UnliftedIORef :: TYPE 'UnliftedRep -> Type where\r\n UnliftedIORef :: MutVar# RealWorld a -> UnliftedIORef a\r\n\r\neventManager :: UnliftedIORef (MutableArray# RealWorld Things)\r\n\r\ndata Things = Things !ThreadId !EventManager\r\n}}}\r\n\r\nI think the Maybe can be eliminated. I'm unsure. What makes me think it can be is the following snippet:\r\n\r\n{{{#!hs\r\ngetSystemEventManager :: IO (Maybe EventManager)\r\ngetSystemEventManager = do\r\n t <- myThreadId\r\n (cap, _) <- threadCapability t\r\n eventManagerArray <- readIORef eventManager\r\n mmgr <- readIOArray eventManagerArray cap\r\n return $ fmap snd mmgr\r\n\r\ngetSystemEventManager_ :: IO EventManager\r\ngetSystemEventManager_ = do\r\n Just mgr <- getSystemEventManager\r\n return mgr\r\n{-# INLINE getSystemEventManager_ #-}\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16000Don't suggest Rank2Types and RankNTypes, only the latter2019-07-07T18:02:05ZchessaiDon't suggest Rank2Types and RankNTypes, only the latterCurrently (as of GHC 8.6.2), error messages that suggest RankNTypes also suggest Rank2Types, but Rank2Types are deprecated.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| --------------------...Currently (as of GHC 8.6.2), error messages that suggest RankNTypes also suggest Rank2Types, but Rank2Types are deprecated.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ----------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Parser) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Don't suggest Rank2Types and RankNTypes, only the latter","status":"New","operating_system":"","component":"Compiler (Parser)","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"Currently (as of GHC 8.6.2), error messages that suggest RankNTypes also suggest Rank2Types, but Rank2Types are deprecated. ","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16004Vector performance regression in GHC 8.62019-07-07T18:02:04ZGuillaume BouchardVector performance regression in GHC 8.6Hello.
With the following code, I can observe a performance regression between ghc 8.4 and 8.6:
```haskell
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import qualified Data.Vector.Unboxed.Mutable as Vector
import qualified D...Hello.
With the following code, I can observe a performance regression between ghc 8.4 and 8.6:
```haskell
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import qualified Data.Vector.Unboxed.Mutable as Vector
import qualified Data.Vector.Unboxed as VectorU
import Data.Foldable (for_)
main :: IO ()
main = do
let n = 1000
let vUnmutable :: VectorU.Vector Double = VectorU.generate (n * n) (\i -> fromIntegral i)
v :: Vector.IOVector Double <- VectorU.unsafeThaw vUnmutable
for_ [0..(n - 1)] $ \k -> do
for_ [0..(n - 1)] $ \i -> do
for_ [0..(n - 1)] $ \j -> do
a <- Vector.unsafeRead v (i * n + k)
b <- Vector.unsafeRead v (k * n + j)
c <- Vector.unsafeRead v (i * n + j)
Vector.unsafeWrite v (i * n + j) (min (a + b) c)
```
Built with `-O2` and with / without `-fllvm`. I'm using `vector-0.12.0.1`. Here are the timing results:
GHC 8.2.2
> no llvm: 1.7s
> llvm: 1.0s
GHC 8.4.4
> no llvm: 1.6s
> llvm: 0.9s
GHC 8.6.2
> no llvm: 4.8s
> llvm: 4.3s
I'm using the following bash + nix script to gather theses timings:
```bash
nix-shell -p 'haskell.packages.ghc822.ghcWithPackages(p: [p.vector])' --run "ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp; time ./FloydBench"
nix-shell -p 'haskell.packages.ghc822.ghcWithPackages(p: [p.vector])' -p llvm_39 --run "ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp -fllvm; time ./FloydBench"
nix-shell -p 'haskell.packages.ghc844.ghcWithPackages(p: [p.vector])' --run "ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp; time ./FloydBench"
nix-shell -p 'haskell.packages.ghc844.ghcWithPackages(p: [p.vector])' -p llvm_5 --run "ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp -fllvm; time ./FloydBench"
nix-shell -p 'haskell.packages.ghc862.ghcWithPackages(p: [p.vector])' --run "ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp; time ./FloydBench"
nix-shell -p 'haskell.packages.ghc862.ghcWithPackages(p: [p.vector])' -p llvm_6 --run "ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp -fllvm; time ./FloydBench"
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Vector performance regression in GHC 8.6","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Hello.\r\n\r\nWith the following code, I can observe a performance regression between ghc 8.4 and 8.6:\r\n\r\n\r\n{{{#!haskell\r\n{-# LANGUAGE ScopedTypeVariables #-}\r\nmodule Main where\r\nimport qualified Data.Vector.Unboxed.Mutable as Vector\r\nimport qualified Data.Vector.Unboxed as VectorU\r\n\r\nimport Data.Foldable (for_)\r\n\r\nmain :: IO ()\r\nmain = do\r\n let n = 1000\r\n\r\n let vUnmutable :: VectorU.Vector Double = VectorU.generate (n * n) (\\i -> fromIntegral i)\r\n v :: Vector.IOVector Double <- VectorU.unsafeThaw vUnmutable\r\n\r\n for_ [0..(n - 1)] $ \\k -> do\r\n for_ [0..(n - 1)] $ \\i -> do\r\n for_ [0..(n - 1)] $ \\j -> do\r\n a <- Vector.unsafeRead v (i * n + k)\r\n b <- Vector.unsafeRead v (k * n + j)\r\n c <- Vector.unsafeRead v (i * n + j)\r\n Vector.unsafeWrite v (i * n + j) (min (a + b) c)\r\n}}}\r\n\r\nBuilt with `-O2` and with / without `-fllvm`. I'm using `vector-0.12.0.1`. Here are the timing results:\r\n\r\nGHC 8.2.2\r\n no llvm: 1.7s\r\n llvm: 1.0s\r\nGHC 8.4.4\r\n no llvm: 1.6s\r\n llvm: 0.9s\r\nGHC 8.6.2\r\n no llvm: 4.8s\r\n llvm: 4.3s\r\n\r\nI'm using the following bash + nix script to gather theses timings:\r\n\r\n{{{#!bash\r\nnix-shell -p 'haskell.packages.ghc822.ghcWithPackages(p: [p.vector])' --run \"ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp; time ./FloydBench\"\r\nnix-shell -p 'haskell.packages.ghc822.ghcWithPackages(p: [p.vector])' -p llvm_39 --run \"ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp -fllvm; time ./FloydBench\"\r\nnix-shell -p 'haskell.packages.ghc844.ghcWithPackages(p: [p.vector])' --run \"ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp; time ./FloydBench\"\r\nnix-shell -p 'haskell.packages.ghc844.ghcWithPackages(p: [p.vector])' -p llvm_5 --run \"ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp -fllvm; time ./FloydBench\"\r\nnix-shell -p 'haskell.packages.ghc862.ghcWithPackages(p: [p.vector])' --run \"ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp; time ./FloydBench\"\r\nnix-shell -p 'haskell.packages.ghc862.ghcWithPackages(p: [p.vector])' -p llvm_6 --run \"ghc-pkg list | grep vector; ghc -O2 FloydBench.hs -Wall -fforce-recomp -fllvm; time ./FloydBench\"\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16011GHCi leaks memory even with -fno-it.2019-07-31T14:05:28ZAndreas KlebingerGHCi leaks memory even with -fno-it.GHCi leaks are not exactly new, but this one is especially easy to trigger/reproduce.
The memory allocated by f never gets freed.
```
PS E:\binary-perf> ..\ghc-8.6.1\bin\ghci.exe -fno-it
GHCi, version 8.6.1: http://www.haskell.org/ghc/...GHCi leaks are not exactly new, but this one is especially easy to trigger/reproduce.
The memory allocated by f never gets freed.
```
PS E:\binary-perf> ..\ghc-8.6.1\bin\ghci.exe -fno-it
GHCi, version 8.6.1: http://www.haskell.org/ghc/ :? for help
Prelude> f = [1 .. 20000000] :: [Int]
Prelude> length f
20000000
Prelude> f = [1 .. 20000001] :: [Int]
Prelude> length f
20000001
Prelude> f = [1 .. 20000002] :: [Int]
Prelude> length f
20000002
Prelude> f = [1 .. 20000000] :: [Int]
Prelude> length f
20000000
Prelude>
```
Or using head and even simpler:
```
PS E:\binary-perf> ..\ghc_commonAsm\inplace\bin\ghci.exe -fno-it
GHCi, version 8.7.20181207: http://www.haskell.org/ghc/ :? for help
Loaded package environment from E:\binary-perf\.ghc.environment.x86_64-mingw32-8.7.20181207
Prelude> f = replicate 2000000 False
Prelude> length f
2000000
Prelude> f = replicate 2000000 False
Prelude> length f
2000000
Prelude> f = replicate 2000000 False
Prelude> length f
2000000
Prelude> f = replicate 2000000 False
Prelude> length f
```
GHC just keeps using more and more memory when I repeat this.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.7 |
| 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":"GHCi leaks memory even with -fno-it.","status":"New","operating_system":"","component":"GHCi","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.7","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"GHCi leaks are not exactly new, but this one is especially easy to trigger/reproduce.\r\n\r\nThe memory allocated by f never gets freed.\r\n{{{\r\nPS E:\\binary-perf> ..\\ghc-8.6.1\\bin\\ghci.exe -fno-it\r\nGHCi, version 8.6.1: http://www.haskell.org/ghc/ :? for help\r\nPrelude> f = [1 .. 20000000] :: [Int]\r\nPrelude> length f\r\n20000000\r\nPrelude> f = [1 .. 20000001] :: [Int]\r\nPrelude> length f\r\n20000001\r\nPrelude> f = [1 .. 20000002] :: [Int]\r\nPrelude> length f\r\n20000002\r\nPrelude> f = [1 .. 20000000] :: [Int]\r\nPrelude> length f\r\n20000000\r\nPrelude>\r\n}}}\r\n\r\nOr using head and even simpler:\r\n\r\n{{{\r\nPS E:\\binary-perf> ..\\ghc_commonAsm\\inplace\\bin\\ghci.exe -fno-it\r\nGHCi, version 8.7.20181207: http://www.haskell.org/ghc/ :? for help\r\nLoaded package environment from E:\\binary-perf\\.ghc.environment.x86_64-mingw32-8.7.20181207\r\nPrelude> f = replicate 2000000 False\r\nPrelude> length f\r\n2000000\r\nPrelude> f = replicate 2000000 False\r\nPrelude> length f\r\n2000000\r\nPrelude> f = replicate 2000000 False\r\nPrelude> length f\r\n2000000\r\nPrelude> f = replicate 2000000 False\r\nPrelude> length f\r\n}}}\r\n\r\nGHC just keeps using more and more memory when I repeat this.\r\n\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16015git notes logic breaks CircleCI validation of pull requests2019-07-07T18:02:01ZBen Gamarigit notes logic breaks CircleCI validation of pull requestsDue to missing credentials. David, can you have a look?
https://circleci.com/gh/ghc/ghc/12493
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version ...Due to missing credentials. David, can you have a look?
https://circleci.com/gh/ghc/ghc/12493
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | highest |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | davide |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"git notes logic breaks CircleCI validation of pull requests","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":["davide"],"type":"Bug","description":"Due to missing credentials. David, can you have a look?\r\n\r\nhttps://circleci.com/gh/ghc/ghc/12493","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16017ghc-8.6.1 and ghc-8.6.2 use a lot of memory2019-08-27T08:57:19ZJohn Kyghc-8.6.1 and ghc-8.6.2 use a lot of memoryCurrently GHC uses a lot of memory to build a relatively small module and causes my CI to fail due to there being a 4G memory limit.
The source code can be found here:
https://github.com/haskell-works/hw-json/tree/73368cee21dc72eedd529...Currently GHC uses a lot of memory to build a relatively small module and causes my CI to fail due to there being a 4G memory limit.
The source code can be found here:
https://github.com/haskell-works/hw-json/tree/73368cee21dc72eedd5291ba689f9abf10e7fcd2
The problem module is here:
https://github.com/haskell-works/hw-json/blob/73368cee21dc72eedd5291ba689f9abf10e7fcd2/test/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.hs
The build output follows:
```
cabal new-build --enable-tests --enable-benchmarks --project-file="cabal.project" -j${CABAL_THREADS:-4} all
Build profile: -w ghc-8.6.2 -O2
In order, the following will be built (use -v for more details):
- hw-json-0.9.0.1 (lib) (first run)
- hw-json-0.9.0.1 (test:hw-json-test) (first run)
- hw-json-0.9.0.1 (exe:hw-json) (first run)
- hw-json-0.9.0.1 (bench:bench) (first run)
Configuring library for hw-json-0.9.0.1..
Preprocessing library for hw-json-0.9.0.1..
Building library for hw-json-0.9.0.1..
[ 1 of 32] Compiling HaskellWorks.Data.Json.DecodeError ( src/HaskellWorks/Data/Json/DecodeError.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/DecodeError.o )
[ 2 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.MakeIndex ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/MakeIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/MakeIndex.o )
[ 3 of 32] Compiling HaskellWorks.Data.Json.Internal.Index ( src/HaskellWorks/Data/Json/Internal/Index.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Index.o )
[ 4 of 32] Compiling HaskellWorks.Data.Json.Internal.PartialIndex ( src/HaskellWorks/Data/Json/Internal/PartialIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/PartialIndex.o )
[ 5 of 32] Compiling HaskellWorks.Data.Json.Internal.Token.Types ( src/HaskellWorks/Data/Json/Internal/Token/Types.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Token/Types.o )
[ 6 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.Token.Tokenize ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/Token/Tokenize.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Token/Tokenize.o )
[ 7 of 32] Compiling HaskellWorks.Data.Json.Internal.Token ( src/HaskellWorks/Data/Json/Internal/Token.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Token.o )
[ 8 of 32] Compiling HaskellWorks.Data.Json.Internal.Value ( src/HaskellWorks/Data/Json/Internal/Value.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Value.o )
[ 9 of 32] Compiling HaskellWorks.Data.Json.Internal.Word8 ( src/HaskellWorks/Data/Json/Internal/Word8.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Word8.o )
[10 of 32] Compiling HaskellWorks.Data.Json.Internal.Word64 ( src/HaskellWorks/Data/Json/Internal/Word64.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Word64.o )
[11 of 32] Compiling HaskellWorks.Data.Json.Internal.CharLike ( src/HaskellWorks/Data/Json/Internal/CharLike.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/CharLike.o )
[12 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.Blank ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/Blank.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Blank.o )
[13 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.BlankedJson ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/BlankedJson.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/BlankedJson.o )
[14 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.ToInterestBits64 ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/ToInterestBits64.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/ToInterestBits64.o )
[15 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.ToBalancedParens64 ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/ToBalancedParens64.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/ToBalancedParens64.o )
[16 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.IbBp ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/IbBp.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/IbBp.o )
[17 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.SemiIndex ( src/HaskellWorks/Data/Json/Backend/Standard/SemiIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/SemiIndex.o )
[18 of 32] Compiling HaskellWorks.Data.Json.Backend.Simple.SemiIndex ( src/HaskellWorks/Data/Json/Backend/Simple/SemiIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Simple/SemiIndex.o )
[19 of 32] Compiling HaskellWorks.Data.Json.LightJson ( src/HaskellWorks/Data/Json/LightJson.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/LightJson.o )
[20 of 32] Compiling HaskellWorks.Data.Json.PartialValue ( src/HaskellWorks/Data/Json/PartialValue.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/PartialValue.o )
[21 of 32] Compiling HaskellWorks.Data.Json.Type ( src/HaskellWorks/Data/Json/Type.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Type.o )
[22 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.Cursor ( src/HaskellWorks/Data/Json/Backend/Standard/Cursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/Cursor.o )
[23 of 32] Compiling HaskellWorks.Data.Json.Cursor ( src/HaskellWorks/Data/Json/Cursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Cursor.o )
[24 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.Cursor.Token ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/Cursor/Token.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Cursor/Token.o )
[25 of 32] Compiling HaskellWorks.Data.Json.Value ( src/HaskellWorks/Data/Json/Value.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Value.o )
[26 of 32] Compiling HaskellWorks.Data.Json.FromValue ( src/HaskellWorks/Data/Json/FromValue.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/FromValue.o )
[27 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.LoadCursor ( src/HaskellWorks/Data/Json/Backend/Standard/LoadCursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/LoadCursor.o )
[28 of 32] Compiling HaskellWorks.Data.Json.LoadCursor ( src/HaskellWorks/Data/Json/LoadCursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/LoadCursor.o )
[29 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.Load ( src/HaskellWorks/Data/Json/Backend/Standard/Load.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/Load.o )
[30 of 32] Compiling HaskellWorks.Data.Json.Load ( src/HaskellWorks/Data/Json/Load.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Load.o )
[31 of 32] Compiling HaskellWorks.Data.Json ( src/HaskellWorks/Data/Json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json.o )
[32 of 32] Compiling Paths_hw_json ( /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/autogen/Paths_hw_json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/Paths_hw_json.o )
Configuring test suite 'hw-json-test' for hw-json-0.9.0.1..
Configuring benchmark 'bench' for hw-json-0.9.0.1..
Configuring executable 'hw-json' for hw-json-0.9.0.1..
Preprocessing test suite 'hw-json-test' for hw-json-0.9.0.1..
Building test suite 'hw-json-test' for hw-json-0.9.0.1..
Preprocessing executable 'hw-json' for hw-json-0.9.0.1..
Preprocessing benchmark 'bench' for hw-json-0.9.0.1..
Building benchmark 'bench' for hw-json-0.9.0.1..
Building executable 'hw-json' for hw-json-0.9.0.1..
[ 1 of 11] Compiling HaskellWorks.Data.Json.Backend.Standard.Succinct.Cursor.InterestBitsSpec ( test/HaskellWorks/Data/Json/Backend/Standard/Succinct/Cursor/InterestBitsSpec.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/t/hw-json-test/opt/build/hw-json-test/hw-json-test-tmp/HaskellWorks/Data/Json/Backend/Standard/Succinct/Cursor/InterestBitsSpec.o )
[1 of 2] Compiling Main ( bench/Main.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/bench-tmp/Main.o )
[1 of 7] Compiling App.Commands.Types ( app/App/Commands/Types.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/Types.o )
[2 of 7] Compiling App.Lens ( app/App/Lens.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Lens.o )
[3 of 7] Compiling App.Commands.Demo ( app/App/Commands/Demo.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/Demo.o )
[2 of 2] Compiling Paths_hw_json ( /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/autogen/Paths_hw_json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/bench-tmp/Paths_hw_json.o )
Linking /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/bench ...
[4 of 7] Compiling App.Commands.CreateIndex ( app/App/Commands/CreateIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/CreateIndex.o )
[5 of 7] Compiling App.Commands ( app/App/Commands.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands.o )
[ 2 of 11] Compiling HaskellWorks.Data.Json.Backend.Standard.Succinct.CursorSpec ( test/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/t/hw-json-test/opt/build/hw-json-test/hw-json-test-tmp/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.o )
[6 of 7] Compiling Main ( app/Main.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/Main.o )
[7 of 7] Compiling Paths_hw_json ( /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/autogen/Paths_hw_json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/Paths_hw_json.o )
Linking /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json ...
cabal: Failed to build test:hw-json-test from hw-json-0.9.0.1. The build
process was killed (i.e. SIGKILL). The typical reason for this is that there
is not enough memory available (e.g. the OS killed a process using lots of
memory).
Exited with code 1
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"ghc-8.6.1 and ghc-8.6.2 use a log of memory","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Currently GHC uses a lot of memory to build a relatively small module and causes my CI to fail due to there being a 4G memory limit.\r\n\r\nThe source code can be found here:\r\n\r\nhttps://github.com/haskell-works/hw-json/tree/73368cee21dc72eedd5291ba689f9abf10e7fcd2\r\n\r\nThe problem module is here:\r\n\r\nhttps://github.com/haskell-works/hw-json/blob/73368cee21dc72eedd5291ba689f9abf10e7fcd2/test/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.hs\r\n\r\nThe build output follows:\r\n\r\n{{{\r\ncabal new-build --enable-tests --enable-benchmarks --project-file=\"cabal.project\" -j${CABAL_THREADS:-4} all\r\nBuild profile: -w ghc-8.6.2 -O2\r\nIn order, the following will be built (use -v for more details):\r\n - hw-json-0.9.0.1 (lib) (first run)\r\n - hw-json-0.9.0.1 (test:hw-json-test) (first run)\r\n - hw-json-0.9.0.1 (exe:hw-json) (first run)\r\n - hw-json-0.9.0.1 (bench:bench) (first run)\r\nConfiguring library for hw-json-0.9.0.1..\r\nPreprocessing library for hw-json-0.9.0.1..\r\nBuilding library for hw-json-0.9.0.1..\r\n[ 1 of 32] Compiling HaskellWorks.Data.Json.DecodeError ( src/HaskellWorks/Data/Json/DecodeError.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/DecodeError.o )\r\n[ 2 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.MakeIndex ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/MakeIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/MakeIndex.o )\r\n[ 3 of 32] Compiling HaskellWorks.Data.Json.Internal.Index ( src/HaskellWorks/Data/Json/Internal/Index.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Index.o )\r\n[ 4 of 32] Compiling HaskellWorks.Data.Json.Internal.PartialIndex ( src/HaskellWorks/Data/Json/Internal/PartialIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/PartialIndex.o )\r\n[ 5 of 32] Compiling HaskellWorks.Data.Json.Internal.Token.Types ( src/HaskellWorks/Data/Json/Internal/Token/Types.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Token/Types.o )\r\n[ 6 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.Token.Tokenize ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/Token/Tokenize.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Token/Tokenize.o )\r\n[ 7 of 32] Compiling HaskellWorks.Data.Json.Internal.Token ( src/HaskellWorks/Data/Json/Internal/Token.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Token.o )\r\n[ 8 of 32] Compiling HaskellWorks.Data.Json.Internal.Value ( src/HaskellWorks/Data/Json/Internal/Value.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Value.o )\r\n[ 9 of 32] Compiling HaskellWorks.Data.Json.Internal.Word8 ( src/HaskellWorks/Data/Json/Internal/Word8.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Word8.o )\r\n[10 of 32] Compiling HaskellWorks.Data.Json.Internal.Word64 ( src/HaskellWorks/Data/Json/Internal/Word64.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Word64.o )\r\n[11 of 32] Compiling HaskellWorks.Data.Json.Internal.CharLike ( src/HaskellWorks/Data/Json/Internal/CharLike.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/CharLike.o )\r\n[12 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.Blank ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/Blank.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Blank.o )\r\n[13 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.BlankedJson ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/BlankedJson.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/BlankedJson.o )\r\n[14 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.ToInterestBits64 ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/ToInterestBits64.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/ToInterestBits64.o )\r\n[15 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.ToBalancedParens64 ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/ToBalancedParens64.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/ToBalancedParens64.o )\r\n[16 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.IbBp ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/IbBp.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/IbBp.o )\r\n[17 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.SemiIndex ( src/HaskellWorks/Data/Json/Backend/Standard/SemiIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/SemiIndex.o )\r\n[18 of 32] Compiling HaskellWorks.Data.Json.Backend.Simple.SemiIndex ( src/HaskellWorks/Data/Json/Backend/Simple/SemiIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Simple/SemiIndex.o )\r\n[19 of 32] Compiling HaskellWorks.Data.Json.LightJson ( src/HaskellWorks/Data/Json/LightJson.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/LightJson.o )\r\n[20 of 32] Compiling HaskellWorks.Data.Json.PartialValue ( src/HaskellWorks/Data/Json/PartialValue.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/PartialValue.o )\r\n[21 of 32] Compiling HaskellWorks.Data.Json.Type ( src/HaskellWorks/Data/Json/Type.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Type.o )\r\n[22 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.Cursor ( src/HaskellWorks/Data/Json/Backend/Standard/Cursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/Cursor.o )\r\n[23 of 32] Compiling HaskellWorks.Data.Json.Cursor ( src/HaskellWorks/Data/Json/Cursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Cursor.o )\r\n[24 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.Cursor.Token ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/Cursor/Token.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Cursor/Token.o )\r\n[25 of 32] Compiling HaskellWorks.Data.Json.Value ( src/HaskellWorks/Data/Json/Value.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Value.o )\r\n[26 of 32] Compiling HaskellWorks.Data.Json.FromValue ( src/HaskellWorks/Data/Json/FromValue.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/FromValue.o )\r\n[27 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.LoadCursor ( src/HaskellWorks/Data/Json/Backend/Standard/LoadCursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/LoadCursor.o )\r\n[28 of 32] Compiling HaskellWorks.Data.Json.LoadCursor ( src/HaskellWorks/Data/Json/LoadCursor.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/LoadCursor.o )\r\n[29 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.Load ( src/HaskellWorks/Data/Json/Backend/Standard/Load.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/Load.o )\r\n[30 of 32] Compiling HaskellWorks.Data.Json.Load ( src/HaskellWorks/Data/Json/Load.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Load.o )\r\n[31 of 32] Compiling HaskellWorks.Data.Json ( src/HaskellWorks/Data/Json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/HaskellWorks/Data/Json.o )\r\n[32 of 32] Compiling Paths_hw_json ( /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/autogen/Paths_hw_json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/opt/build/Paths_hw_json.o )\r\nConfiguring test suite 'hw-json-test' for hw-json-0.9.0.1..\r\nConfiguring benchmark 'bench' for hw-json-0.9.0.1..\r\nConfiguring executable 'hw-json' for hw-json-0.9.0.1..\r\nPreprocessing test suite 'hw-json-test' for hw-json-0.9.0.1..\r\nBuilding test suite 'hw-json-test' for hw-json-0.9.0.1..\r\nPreprocessing executable 'hw-json' for hw-json-0.9.0.1..\r\nPreprocessing benchmark 'bench' for hw-json-0.9.0.1..\r\nBuilding benchmark 'bench' for hw-json-0.9.0.1..\r\nBuilding executable 'hw-json' for hw-json-0.9.0.1..\r\n[ 1 of 11] Compiling HaskellWorks.Data.Json.Backend.Standard.Succinct.Cursor.InterestBitsSpec ( test/HaskellWorks/Data/Json/Backend/Standard/Succinct/Cursor/InterestBitsSpec.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/t/hw-json-test/opt/build/hw-json-test/hw-json-test-tmp/HaskellWorks/Data/Json/Backend/Standard/Succinct/Cursor/InterestBitsSpec.o )\r\n[1 of 2] Compiling Main ( bench/Main.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/bench-tmp/Main.o )\r\n[1 of 7] Compiling App.Commands.Types ( app/App/Commands/Types.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/Types.o )\r\n[2 of 7] Compiling App.Lens ( app/App/Lens.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Lens.o )\r\n[3 of 7] Compiling App.Commands.Demo ( app/App/Commands/Demo.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/Demo.o )\r\n[2 of 2] Compiling Paths_hw_json ( /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/autogen/Paths_hw_json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/bench-tmp/Paths_hw_json.o )\r\nLinking /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/b/bench/opt/build/bench/bench ...\r\n[4 of 7] Compiling App.Commands.CreateIndex ( app/App/Commands/CreateIndex.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/CreateIndex.o )\r\n[5 of 7] Compiling App.Commands ( app/App/Commands.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/App/Commands.o )\r\n[ 2 of 11] Compiling HaskellWorks.Data.Json.Backend.Standard.Succinct.CursorSpec ( test/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/t/hw-json-test/opt/build/hw-json-test/hw-json-test-tmp/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.o )\r\n[6 of 7] Compiling Main ( app/Main.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/Main.o )\r\n[7 of 7] Compiling Paths_hw_json ( /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/autogen/Paths_hw_json.hs, /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json-tmp/Paths_hw_json.o )\r\nLinking /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json ...\r\ncabal: Failed to build test:hw-json-test from hw-json-0.9.0.1. The build\r\nprocess was killed (i.e. SIGKILL). The typical reason for this is that there\r\nis not enough memory available (e.g. the OS killed a process using lots of\r\nmemory).\r\n\r\nExited with code 1\r\n}}}\r\n\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3Alp MestanogullariAlp Mestanogullarihttps://gitlab.haskell.org/ghc/ghc/-/issues/16020Hadrian: correctly Install libffi shared object files2019-07-07T18:01:59ZdavideHadrian: correctly Install libffi shared object filesIn [D5423](https://phabricator.haskell.org/D5423) a hack to correctly install the libffi .so files is implemented. This is a quick and dirty solution to fix the hadrian build. Note \[Hadrian: install libffi hack\] from that patch and als...In [D5423](https://phabricator.haskell.org/D5423) a hack to correctly install the libffi .so files is implemented. This is a quick and dirty solution to fix the hadrian build. Note \[Hadrian: install libffi hack\] from that patch and also issue #15837 have more details, but ultimately hadrian should not have a special case for libffi.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------------- |
| Version | 8.6.2 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Build System (Hadrian) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Hadrian: correctly Install libffi shared object files","status":"New","operating_system":"","component":"Build System (Hadrian)","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"In Phab:D5423 a hack to correctly install the libffi .so files is implemented. This is a quick and dirty solution to fix the hadrian build. Note [Hadrian: install libffi hack] from that patch and also issue #15837 have more details, but ultimately hadrian should not have a special case for libffi.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3davidedavidehttps://gitlab.haskell.org/ghc/ghc/-/issues/16021Hadrian: remove/refactor package specific hacks2019-07-07T18:01:59ZdavideHadrian: remove/refactor package specific hacksHadrian implements a number of package specific hacks (e.g. see #16020). Such hacks should be discussed in this ticket and ideally removed or refactored.
Hacks:
- libffi (#16020)
<details><summary>Trac metadata</summary>
| Trac field...Hadrian implements a number of package specific hacks (e.g. see #16020). Such hacks should be discussed in this ticket and ideally removed or refactored.
Hacks:
- libffi (#16020)
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Hadrian: remove/refactor package specific hacks","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Hadrian implements a number of package specific hacks (e.g. see #16020). Such hacks should be discussed in this ticket and ideally removed or refactored.\r\n\r\nHacks:\r\n* libffi (#16020)","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3David EichmannDavid Eichmannhttps://gitlab.haskell.org/ghc/ghc/-/issues/16024Kind Signatures on data instances2019-07-07T18:01:59ZAndrew MartinKind Signatures on data instancesThere's a comment in `compiler/typecheck/TcInstDcls.hs` that reads:
> The "header" is the part other than the data constructors themselves
> e.g. `data instance D [a] :: * -> * = ...`
> Here the "header" is the bit before the "=" sign...There's a comment in `compiler/typecheck/TcInstDcls.hs` that reads:
> The "header" is the part other than the data constructors themselves
> e.g. `data instance D [a] :: * -> * = ...`
> Here the "header" is the bit before the "=" sign
What's weird is that you cannot actually compile code that this example suggests is valid. Consider this:
```
{-# language TypeFamilies #-}
module BadSig where
data family Bar a :: *
data instance Bar Int :: * = Bool
```
It fails on GHC 8.6.2 with:
```
bad_sig.hs:6:28: error:
parse error on input ‘=’
Perhaps you need a 'let' in a 'do' block?
e.g. 'let x = 5' instead of 'x = 5'
|
6 | data instance Bar Int :: * = Bool
| ^
```
Oddly, GHC will accept the instance if the body is missing:
```
{-# language TypeFamilies #-}
module BadSig where
data family Bar a :: *
data instance Bar Int :: *
```
It is not clear to me whether or not this one should be accepted, but that is beside the point. The first example should certainly be accepted. It should also be accepted with `TYPE 'LiftedRep` instead of `*`, but it fails with the same parser error when given that kind signature as well.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Kind Signatures on data instances","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"There's a comment in `compiler/typecheck/TcInstDcls.hs` that reads:\r\n\r\n> The \"header\" is the part other than the data constructors themselves\r\n\r\n> e.g. `data instance D [a] :: * -> * = ...`\r\n\r\n> Here the \"header\" is the bit before the \"=\" sign\r\n\r\nWhat's weird is that you cannot actually compile code that this example suggests is valid. Consider this:\r\n\r\n{{{\r\n{-# language TypeFamilies #-}\r\n \r\nmodule BadSig where\r\n\r\ndata family Bar a :: *\r\ndata instance Bar Int :: * = Bool\r\n}}}\r\n\r\nIt fails on GHC 8.6.2 with:\r\n\r\n{{{\r\nbad_sig.hs:6:28: error:\r\n parse error on input ‘=’\r\n Perhaps you need a 'let' in a 'do' block?\r\n e.g. 'let x = 5' instead of 'x = 5'\r\n |\r\n6 | data instance Bar Int :: * = Bool\r\n | ^\r\n}}}\r\n\r\nOddly, GHC will accept the instance if the body is missing:\r\n\r\n{{{\r\n{-# language TypeFamilies #-}\r\n \r\nmodule BadSig where\r\n\r\ndata family Bar a :: *\r\ndata instance Bar Int :: *\r\n}}}\r\n\r\nIt is not clear to me whether or not this one should be accepted, but that is beside the point. The first example should certainly be accepted. It should also be accepted with `TYPE 'LiftedRep` instead of `*`, but it fails with the same parser error when given that kind signature as well.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16027Cannot use DefaultSignatures for TypeFamiles2019-07-07T18:01:58ZJohn EricsonCannot use DefaultSignatures for TypeFamilesI'm surprised there wasn't a ticket for this. Maybe I just couldn't find it.
In short, I want to do something like:
```
class Monad m => MyMonad m where
type AssociatedMonad m :: Type -> Type
default type AssociatedMonad m :: (...I'm surprised there wasn't a ticket for this. Maybe I just couldn't find it.
In short, I want to do something like:
```
class Monad m => MyMonad m where
type AssociatedMonad m :: Type -> Type
default type AssociatedMonad m :: (m ~ t m', MonadTrans t, MyMonad m') => Type -> Type
type AssociatedMonad (t m') = t (AssociatedMonad m')
fun :: Foo -> m ()
default fun :: (m ~ t m', MonadTrans t, MyMonad m') => Foo -> m ()
fun = lift . fun
```
The syntax is a bit weird, but I hope in the process of implementing constrained type families the syntax properly analogous to the term-level would shake itself out.
The use-case, like the normal method original, is to assist with monad transformer boilerplate. `MonadTrans` wouldn't be enough, but `MFunctor` from mmorph might be depending on the method using the associated type.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.6.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Cannot use DefaultSignatures for TypeFamiles","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"I'm surprised there wasn't a ticket for this. Maybe I just couldn't find it.\r\n\r\nIn short, I want to do something like:\r\n{{{\r\nclass Monad m => MyMonad m where\r\n type AssociatedMonad m :: Type -> Type\r\n default type AssociatedMonad m :: (m ~ t m', MonadTrans t, MyMonad m') => Type -> Type\r\n type AssociatedMonad (t m') = t (AssociatedMonad m')\r\n\r\n fun :: Foo -> m ()\r\n default fun :: (m ~ t m', MonadTrans t, MyMonad m') => Foo -> m ()\r\n fun = lift . fun\r\n}}}\r\n\r\nThe syntax is a bit weird, but I hope in the process of implementing constrained type families the syntax properly analogous to the term-level would shake itself out.\r\n\r\nThe use-case, like the normal method original, is to assist with monad transformer boilerplate. {{{MonadTrans}}} wouldn't be enough, but {{{MFunctor}}} from mmorph might be depending on the method using the associated type.","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/16029Inadequate absence analysis2019-07-07T18:01:57ZSimon Peyton JonesInadequate absence analysisConsider
```
data S = MkS Int Int
g1 :: S -> Int -> Int
g1 (MkS x y) 0 = 0
g1 (MkS x y) n = g1 (MkS y x) (n-1)
```
With GHC 8.6 we get
```
$wg1 :: S -> GHC.Prim.Int# -> GHC.Prim.Int#
[Str=<S,1*H><S,1*U>]
$wg1 = \ (w_s2oH :: S)
...Consider
```
data S = MkS Int Int
g1 :: S -> Int -> Int
g1 (MkS x y) 0 = 0
g1 (MkS x y) n = g1 (MkS y x) (n-1)
```
With GHC 8.6 we get
```
$wg1 :: S -> GHC.Prim.Int# -> GHC.Prim.Int#
[Str=<S,1*H><S,1*U>]
$wg1 = \ (w_s2oH :: S)
(ww_s2oL :: GHC.Prim.Int#) ->
case w_s2oH of { MkS x_s2pz y_s2pA ->
case ww_s2oL of ds_X2nb {
__DEFAULT ->
Foo.$wg1 (Foo.MkS y_s2pA x_s2pz) (GHC.Prim.-# ds_X2nb 1#);
0# -> 0# }}
g1 :: S -> Int -> Int
[Str=<S,1*H><S(S),1*U(1*U)>m]
g1 = \ (w_s2oH :: S) (w1_s2oI :: Int) ->
case w_s2oH of w2_X2pG { MkS ipv_s2p2 ipv1_s2p3 ->
case w1_s2oI of { GHC.Types.I# ww1_s2oL ->
case Foo.$wg1 w2_X2pG ww1_s2oL of ww2_s2oP { __DEFAULT ->
GHC.Types.I# ww2_s2oP }}}
```
What terrible code! We evaluate the S argument in the wrapper,
and box and unbox it every time around the loop, even though it is never ultimately used.
Here's what happens if the arguments are banged:
```
data T = MkT !Int !Int
g2 :: T -> Int -> Int
g2 (MkT x y) 0 = 0
g2 (MkT x y) n = g2 (MkT y x) (n-1)
```
We get
```
$wg2 GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
[Str=<L,1*U><L,1*U><S,1*U>]
Foo.$wg2 = \ (ww_s2ow :: GHC.Prim.Int#)
(ww1_s2ox :: GHC.Prim.Int#)
(ww2_s2oB :: GHC.Prim.Int#) ->
case ww2_s2oB of ds_X2n0 {
__DEFAULT -> Foo.$wg2 ww1_s2ox ww_s2ow (GHC.Prim.-# ds_X2n0 1#);
0# -> 0# }
g2 :: T -> Int -> Int
[Str=<S(SS),1*U(1*U,1*U)><S(S),1*U(1*U)>m ]
g2 = \ (w_s2os :: T) (w1_s2ot :: Int) ->
case w_s2os of { MkT ww1_s2ow ww2_s2ox ->
case w1_s2ot of { GHC.Types.I# ww4_s2oB ->
case Foo.$wg2 ww1_s2ow ww2_s2ox ww4_s2oB of ww5_s2oF {
__DEFAULT -> GHC.Types.I# ww5_s2oF }}}
```
Still terrible. We pass the two components around the loop before discarding them
at the end.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.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":"Inadequate absence analysis","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Consider\r\n{{{\r\ndata S = MkS Int Int\r\ng1 :: S -> Int -> Int\r\ng1 (MkS x y) 0 = 0\r\ng1 (MkS x y) n = g1 (MkS y x) (n-1)\r\n}}}\r\nWith GHC 8.6 we get\r\n{{{\r\n$wg1 :: S -> GHC.Prim.Int# -> GHC.Prim.Int#\r\n[Str=<S,1*H><S,1*U>]\r\n$wg1 = \\ (w_s2oH :: S)\r\n (ww_s2oL :: GHC.Prim.Int#) ->\r\n case w_s2oH of { MkS x_s2pz y_s2pA ->\r\n case ww_s2oL of ds_X2nb {\r\n __DEFAULT ->\r\n Foo.$wg1 (Foo.MkS y_s2pA x_s2pz) (GHC.Prim.-# ds_X2nb 1#);\r\n 0# -> 0# }}\r\n\r\ng1 :: S -> Int -> Int\r\n[Str=<S,1*H><S(S),1*U(1*U)>m]\r\ng1 = \\ (w_s2oH :: S) (w1_s2oI :: Int) ->\r\n case w_s2oH of w2_X2pG { MkS ipv_s2p2 ipv1_s2p3 ->\r\n case w1_s2oI of { GHC.Types.I# ww1_s2oL ->\r\n case Foo.$wg1 w2_X2pG ww1_s2oL of ww2_s2oP { __DEFAULT ->\r\n GHC.Types.I# ww2_s2oP }}}\r\n}}}\r\nWhat terrible code! We evaluate the S argument in the wrapper,\r\nand box and unbox it every time around the loop, even though it is never ultimately used.\r\n\r\nHere's what happens if the arguments are banged:\r\n{{{\r\ndata T = MkT !Int !Int\r\ng2 :: T -> Int -> Int\r\ng2 (MkT x y) 0 = 0\r\ng2 (MkT x y) n = g2 (MkT y x) (n-1)\r\n}}}\r\nWe get\r\n{{{\r\n$wg2 GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#\r\n[Str=<L,1*U><L,1*U><S,1*U>]\r\nFoo.$wg2 = \\ (ww_s2ow :: GHC.Prim.Int#)\r\n (ww1_s2ox :: GHC.Prim.Int#)\r\n (ww2_s2oB :: GHC.Prim.Int#) ->\r\n case ww2_s2oB of ds_X2n0 {\r\n __DEFAULT -> Foo.$wg2 ww1_s2ox ww_s2ow (GHC.Prim.-# ds_X2n0 1#);\r\n 0# -> 0# }\r\n\r\ng2 :: T -> Int -> Int\r\n[Str=<S(SS),1*U(1*U,1*U)><S(S),1*U(1*U)>m ]\r\ng2 = \\ (w_s2os :: T) (w1_s2ot :: Int) ->\r\n case w_s2os of { MkT ww1_s2ow ww2_s2ox ->\r\n case w1_s2ot of { GHC.Types.I# ww4_s2oB ->\r\n case Foo.$wg2 ww1_s2ow ww2_s2ox ww4_s2oB of ww5_s2oF {\r\n __DEFAULT -> GHC.Types.I# ww5_s2oF }}}\r\n}}}\r\nStill terrible. We pass the two components around the loop before discarding them\r\nat the end.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.6.3https://gitlab.haskell.org/ghc/ghc/-/issues/17766got an error when profile memory using -hr2020-01-31T00:04:41ZXiaoninggot an error when profile memory using -hr# compile
```
ghc -O2 -w -rtsopts -prof Main
```
# run
```
./Main -tcount w45.log -identity 45 -order wire ./$1 +RTS -A4M -H1G -s -p -hr
```
# error
```
Main: internal error: Invalid object in isRetainer(): 64
(GHC version 8.0.2 fo...# compile
```
ghc -O2 -w -rtsopts -prof Main
```
# run
```
./Main -tcount w45.log -identity 45 -order wire ./$1 +RTS -A4M -H1G -s -p -hr
```
# error
```
Main: internal error: Invalid object in isRetainer(): 64
(GHC version 8.0.2 for x86_64_unknown_linux)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
```
# this run works (-hr => -h)
```
./Main -tcount w45.log -identity 45 -order wire ./$1 +RTS -A4M -H1G -s -p -h
```8.6.3