RE: Windows build broken -- help!
I’ve pushed the commit. Thanks Doug! From: Douglas Wilson Sent: Wednesday, February 7, 2018 23:33 To: Simon Peyton Jones Cc: ghc-devs Subject: Re: Windows build broken -- help! Hi Simon, The first patch you quoted half-fixed this. the patch here: https://phabricator.haskell.org/D4392 should fix whole-fix it. (It at least validates green on windows) On Thu, Feb 8, 2018 at 12:18 PM, Simon Peyton Jones via ghc-devswrote: PS Presumably it’s these commits commit 00f1a4ab80b201ce15c509126f89c5a108786f32 Author: Douglas Wilson Date: Tue Feb 6 17:27:32 2018 -0500 rts: fix some barf format specifiers. Reviewers: bgamari, erikd, simonmar Reviewed By: bgamari Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4390 commit 4d1c3b72ec27c8e51fb40809bba3ce35246a2966 Author: Ben Gamari Date: Tue Feb 6 13:27:35 2018 -0500 rts: Add format attribute to barf Test Plan: Validate Reviewers: erikd, simonmar Reviewed By: simonmar Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4374 From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of Simon Peyton Jones via ghc-devs Sent: 07 February 2018 23:14 To: ghc-devs ; Phyx Subject: Windows build broken -- help! Aargh. Windows build is broken again. Log below. Help! Simon "inplace/bin/ghc-stage1.exe" -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-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -optc-DWINVER=0x06000100 -static -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 -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/StgPrimFloat.c -o rts/dist/build/StgPrimFloat.o rts\Schedule.c:274:14: error: error: unknown conversion type character 'l' in format [-Werror=format=] barf("sched_state: %" FMT_Word, sched_state); ^~~~ | 274 | barf("sched_state: %" FMT_Word, sched_state); | ^ In file included from C:/code/HEAD-1/inplace/mingw/x86_64-w64-mingw32/include/stdio.h:1036:0, from includes/rts/Flags.h:16, from includes/Rts.h:191, from rts\Schedule.c:11:0: error: C:/code/HEAD-1/inplace/mingw/x86_64-w64-mingw32/include/_mingw_print_pop.h:86:18: note: format string is defined here #define PRIu64 "llu" ^ rts\Schedule.c:274:14: error: error: too many arguments for format [-Werror=format-extra-args] barf("sched_state: %" FMT_Word, sched_state); ^~~~ | 274 | barf("sched_state: %" FMT_Word, sched_state); | ^ cc1.exe: all warnings being treated as errors `gcc.exe' failed in phase `C Compiler'. (Exit code: 1) "inplace/bin/ghc-stage1.exe" -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-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -optc-DWINVER=0x06000100 -static -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 -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/Profiling.c -o rts/dist/build/Profiling.o make[1]: *** [rts/ghc.mk:295: rts/dist/build/Schedule.o]
Re: Windows build broken -- help!
Hi Simon, The first patch you quoted half-fixed this. the patch here: https://phabricator.haskell.org/D4392 should fix whole-fix it. (It at least validates green on windows) On Thu, Feb 8, 2018 at 12:18 PM, Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote: > PS Presumably it’s these commits > > commit 00f1a4ab80b201ce15c509126f89c5a108786f32 > > Author: Douglas Wilson> > Date: Tue Feb 6 17:27:32 2018 -0500 > > > > rts: fix some barf format specifiers. > > > > Reviewers: bgamari, erikd, simonmar > > > > Reviewed By: bgamari > > > > Subscribers: rwbarton, thomie, carter > > > > Differential Revision: https://phabricator.haskell.org/D4390 > > > > commit 4d1c3b72ec27c8e51fb40809bba3ce35246a2966 > > Author: Ben Gamari > > Date: Tue Feb 6 13:27:35 2018 -0500 > > > > rts: Add format attribute to barf > > > > Test Plan: Validate > > > > Reviewers: erikd, simonmar > > > > Reviewed By: simonmar > > > > Subscribers: rwbarton, thomie, carter > > > > Differential Revision: https://phabricator.haskell.org/D4374 > > > > > > *From:* ghc-devs [mailto:ghc-devs-boun...@haskell.org] *On Behalf Of *Simon > Peyton Jones via ghc-devs > *Sent:* 07 February 2018 23:14 > *To:* ghc-devs ; Phyx > *Subject:* Windows build broken -- help! > > > > Aargh. Windows build is broken again. Log below. Help! > > Simon > > > > "inplace/bin/ghc-stage1.exe" -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-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 > -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" > -optc-DWINVER=0x06000100 -static -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 -i -irts -irts/dist/build > -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen > -O2 -Wcpp-undef-Wnoncanonical-monad-instances -c rts/StgPrimFloat.c > -o rts/dist/build/StgPrimFloat.o > > > > rts\Schedule.c:274:14: error: > > error: unknown conversion type character 'l' in format > [-Werror=format=] > > barf("sched_state: %" FMT_Word, sched_state); > > ^~~~ > > | > > 274 | barf("sched_state: %" FMT_Word, sched_state); > > | ^ > > In file included from C:/code/HEAD-1/inplace/mingw/ > x86_64-w64-mingw32/include/stdio.h:1036:0, > > from includes/rts/Flags.h:16, > > from includes/Rts.h:191, > > > > from rts\Schedule.c:11:0: error: > > C:/code/HEAD-1/inplace/mingw/x86_64-w64-mingw32/include/_mingw_print_pop.h:86:18: > note: format string is defined here > > #define PRIu64 "llu" > > ^ > > > > rts\Schedule.c:274:14: error: > > error: too many arguments for format [-Werror=format-extra-args] > > barf("sched_state: %" FMT_Word, sched_state); > > ^~~~ > > | > > 274 | barf("sched_state: %" FMT_Word, sched_state); > > | ^ > > cc1.exe: all warnings being treated as errors > > `gcc.exe' failed in phase `C Compiler'. (Exit code: 1) > > "inplace/bin/ghc-stage1.exe" -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-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 > -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" > -optc-DWINVER=0x06000100 -static -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 -i -irts -irts/dist/build > -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen > -O2 -Wcpp-undef-Wnoncanonical-monad-instances -c rts/Profiling.c -o > rts/dist/build/Profiling.o > > make[1]:
Windows build broken -- help!
Aargh. Windows build is broken again. Log below. Help! Simon "inplace/bin/ghc-stage1.exe" -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-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -optc-DWINVER=0x06000100 -static -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 -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen-O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/StgPrimFloat.c -o rts/dist/build/StgPrimFloat.o rts\Schedule.c:274:14: error: error: unknown conversion type character 'l' in format [-Werror=format=] barf("sched_state: %" FMT_Word, sched_state); ^~~~ | 274 | barf("sched_state: %" FMT_Word, sched_state); | ^ In file included from C:/code/HEAD-1/inplace/mingw/x86_64-w64-mingw32/include/stdio.h:1036:0, from includes/rts/Flags.h:16, from includes/Rts.h:191, from rts\Schedule.c:11:0: error: C:/code/HEAD-1/inplace/mingw/x86_64-w64-mingw32/include/_mingw_print_pop.h:86:18: note: format string is defined here #define PRIu64 "llu" ^ rts\Schedule.c:274:14: error: error: too many arguments for format [-Werror=format-extra-args] barf("sched_state: %" FMT_Word, sched_state); ^~~~ | 274 | barf("sched_state: %" FMT_Word, sched_state); | ^ cc1.exe: all warnings being treated as errors `gcc.exe' failed in phase `C Compiler'. (Exit code: 1) "inplace/bin/ghc-stage1.exe" -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-Irts/dist/build/./autogen -optc-Wno-error=inline -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -optc-DWINVER=0x06000100 -static -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 -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen-O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/Profiling.c -o rts/dist/build/Profiling.o make[1]: *** [rts/ghc.mk:295: rts/dist/build/Schedule.o] Error 1 make[1]: *** Waiting for unfinished jobs make: *** [Makefile:127: all] Error 2 /c/code/HEAD-1$ ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Re: package01e failure
The Phabricator differential validated successfully, so that's somewhat surprising. David FeuerWell-Typed, LLP Original message From: Simon Peyton Jones via ghc-devsDate: 2/7/18 4:54 AM (GMT-05:00) To: ghc-devs Subject: package01e failure I'm getting this test failure, presumably because of a version bump in containers. I think this is a clean build from scratch. Could someone have forgotten to update a test file? Simon => package01e(normal) 1 of 1 [0, 0, 0] cd "./package01e.run" && "/5playpen/simonpj/HEAD-5/inplace/test spaces/ghc-stage2" -c package01e.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 -hide-all-packages -XNoImplicitPrelude -package "containers (Data.Map as Map, Data.Set)" Actual stderr output differs from expected: diff -uw "./package01e.run/package01e.stderr.normalised" "./package01e.run/package01e.comp.stderr.normalised" --- ./package01e.run/package01e.stderr.normalised 2018-02-07 09:52:44.562487065 + +++ ./package01e.run/package01e.comp.stderr.normalised 2018-02-07 09:52:44.562487065 + @@ -2,9 +2,11 @@ package01e.hs:2:1: Could not find module 'Data.Map' It is a member of the hidden package 'containers-0.5.11.0'. + It is a member of the hidden package 'containers-0.5.10.2'. Use -v to see a list of the files searched for. package01e.hs:3:1: Could not find module 'Data.IntMap' It is a member of the hidden package 'containers-0.5.11.0'. + It is a member of the hidden package 'containers-0.5.10.2'. Use -v to see a list of the files searched for. *** unexpected failure for package01e(normal) ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
package01e failure
I'm getting this test failure, presumably because of a version bump in containers. I think this is a clean build from scratch. Could someone have forgotten to update a test file? Simon => package01e(normal) 1 of 1 [0, 0, 0] cd "./package01e.run" && "/5playpen/simonpj/HEAD-5/inplace/test spaces/ghc-stage2" -c package01e.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 -hide-all-packages -XNoImplicitPrelude -package "containers (Data.Map as Map, Data.Set)" Actual stderr output differs from expected: diff -uw "./package01e.run/package01e.stderr.normalised" "./package01e.run/package01e.comp.stderr.normalised" --- ./package01e.run/package01e.stderr.normalised2018-02-07 09:52:44.562487065 + +++ ./package01e.run/package01e.comp.stderr.normalised 2018-02-07 09:52:44.562487065 + @@ -2,9 +2,11 @@ package01e.hs:2:1: Could not find module 'Data.Map' It is a member of the hidden package 'containers-0.5.11.0'. +It is a member of the hidden package 'containers-0.5.10.2'. Use -v to see a list of the files searched for. package01e.hs:3:1: Could not find module 'Data.IntMap' It is a member of the hidden package 'containers-0.5.11.0'. +It is a member of the hidden package 'containers-0.5.10.2'. Use -v to see a list of the files searched for. *** unexpected failure for package01e(normal) ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
RE: Can't typeset docs
| > When I have | > | > BUILD_SPHINX_HTML= YES | > | > BUILD_SPHINX_PDF = YES | > I get this error in my build. Any ideas? I think Sphinx is up to | date. | > Thanks | > Simon | > | I suspect the cause here is the --no-clean, which doesn't run ./boot | and ./configure. The latter generates docs/users_guide/ghc_config.py, | which appears to be missing. Is the problem reproducible with a fresh | validate? Thanks Ben. I think you are right -- sorry about that. I didn't know that you need to start from clean of you change those settings. But a fresh validate still fails, just differently. Tail of the log is below. There seem be two suspicious lines: Package cmap Warning: pdftex not detected - exiting. and later (/usr/share/texlive/texmf-dist/doc/support/pedigree-perl/examples/english.cfg ! You can't use `macro parameter character #' in vertical mode. l.1 # An example configuration file for pedigree program No pages of output. Full log below Oh, and I do have pdftex: simonpj@cam-05-unx:~/5builds/HEAD-3$ pdftex --version pdfTeX 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1 Copyright 2015 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). There is NO warranty. Redistribution of this software is covered by the terms of both the pdfTeX copyright and the Lesser GNU General Public License. For more information about these matters, see the file named COPYING and the pdfTeX source. Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). Compiled with libpng 1.6.17; using libpng 1.6.17 Compiled with zlib 1.2.8; using zlib 1.2.8 Compiled with poppler version 0.41.0 simonpj@cam-05-unx:~/5builds/HEAD-3$ Simon flow.thr_l_dyn_o rts/dist/build/sm/MBlock.thr_l_dyn_o rts/dist/build/sm/Scav.thr_l_dyn_o rts/dist/build/sm/CNF.thr_l_dyn_o rts/dist/build/sm/Compact.thr_l_dyn_o rts/dist/build/sm/GCAux.thr_l_dyn_o rts/dist/build/sm/Sweep.thr_l_dyn_o rts/dist/build/sm/GCUtils.thr_l_dyn_o rts/dist/build/sm/BlockAlloc.thr_l_dyn_o rts/dist/build/sm/Evac_thr.thr_l_dyn_o rts/dist/build/sm/MarkWeak.thr_l_dyn_o rts/dist/build/sm/GC.thr_l_dyn_o rts/dist/build/sm/Sanity.thr_l_dyn_o rts/dist/build/sm/Evac.thr_l_dyn_o rts/dist/build/sm/Storage.thr_l_dyn_o rts/dist/build/sm/Scav_thr.thr_l_dyn_o rts/dist/build/eventlog/EventLogWriter.thr_l_dyn_o rts/dist/build/eventlog/EventLog.thr_l_dyn_o rts/dist/build/linker/elf_reloc_aarch64.thr_l_dyn_o rts/dist/build/linker/MachO.thr_l_dyn_o rts/dist/build/linker/PEi386.thr_l_dyn_o rts/dist/build/linker/elf_plt.thr_l_dyn_o rts/dist/build/linker/elf_reloc.thr_l_dyn_o rts/dist/build/linker/elf_plt_aarch64.thr_l_dyn_o rts/dist/build/linker/M32Alloc.thr_l_dyn_o rts/dist/build/linker/Elf.thr_l_dyn_o rts/dist/build/linker/CacheFlush.thr_l_dyn_o rts/dist/build/linker/elf_got.thr_l_dyn_o rts/dist/build/linker/SymbolExtras.thr_l_dyn_o rts/dist/build/linker/elf_plt_arm.thr_l_dyn_o rts/dist/build/linker/LoadArchive.thr_l_dyn_o rts/dist/build/linker/elf_util.thr_l_dyn_o rts/dist/build/posix/OSMem.thr_l_dyn_o rts/dist/build/posix/GetTime.thr_l_dyn_o rts/dist/build/posix/OSThreads.thr_l_dyn_o rts/dist/build/posix/Itimer.thr_l_dyn_o rts/dist/build/posix/TTY.thr_l_dyn_o rts/dist/build/posix/Signals.thr_l_dyn_o rts/dist/build/posix/Select.thr_l_dyn_o rts/dist/build/posix/GetEnv.thr_l_dyn_o rts/dist/build/StgStartup.thr_l_dyn_o rts/dist/build/Updates.thr_l_dyn_o rts/dist/build/Exception.thr_l_dyn_o rts/dist/build/StgMiscClosures.thr_l_dyn_o rts/dist/build/Apply.thr_l_dyn_o rts/dist/build/Compact.thr_l_dyn_o rts/dist/build/StgStdThunks.thr_l_dyn_o rts/dist/build/HeapStackCheck.thr_l_dyn_o rts/dist/build/PrimOps.thr_l_dyn_o rts/dist/build/AutoApply.thr_l_dyn_o -fPIC -dynamic -optc-DTHREADED_RTS -eventlog -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 -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen-O2 -Wcpp-undef-Wnoncanonical-monad-instances -o rts/dist/build/libHSrts_thr_l-ghc8.5.20180207.so reading sources... [ 28%] ffi-chap "rm" -f rts/dist/build/libHSrts_debug.a reading sources... [ 28%] ffi-chap echo rts/dist/build/ProfHeap.debug_o rts/dist/build/TopHandler.debug_o rts/dist/build/Stats.debug_o rts/dist/build/Arena.debug_o rts/dist/build/Stable.debug_o rts/dist/build/Linker.debug_o rts/dist/build/RtsFlags.debug_o rts/dist/build/Sparks.debug_o rts/dist/build/Profiling.debug_o rts/dist/build/RetainerSet.debug_o rts/dist/build/RtsStartup.debug_o rts/dist/build/FileLock.debug_o rts/dist/build/StgPrimFloat.debug_o rts/dist/build/CheckUnload.debug_o rts/dist/build/StaticPtrTable.debug_o rts/dist/build/WSDeque.debug_o rts/dist/build/Disassembler.debug_o
RE: Strict unlifted types
Sounds similar to https://ghc.haskell.org/trac/ghc/wiki/UnliftedDataTypes Simon | -Original Message- | From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of | David Feuer | Sent: 07 February 2018 01:11 | To: ghc-devs| Subject: Strict unlifted types | | Sometimes there's an awkward expressive tension between saying that a | type is *unboxed* and saying that it is *strict* in a field. For | example, I can write | | data SMaybe a = SNothing | SJust !a | | or I can write | | type Maybe# a = (# (# #) | a #) | | but there doesn't seem to be a way to simultaneously get both unboxed | and strict. I'm wondering if it might make sense to add a type to | serve the purpose | | Strict# :: Type -> TYPE 'UnliftedRep | | mkStrict# :: a -> Strict# a -- force the argument getStrict# :: | Strict# a -> a -- do nothing, but know the result is in WHNF | | Then one could write, for example, | | type SMaybe# a = (# (# #) | Strict# a #) | | at which point SMaybe is *precisely* isomorphic to the alternative | representation | | data SMaybe' a = SMaybe' (SMaybe# a) | | David | ___ | ghc-devs mailing list | ghc-devs@haskell.org | https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h | askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc- | devs=04%7C01%7Csimonpj%40microsoft.com%7Cdf3667262c11430fef8008d5 | 6dc7c3e7%7Cee3303d7fb734b0c8589bcd847f1c277%7C1%7C0%7C6365356271225789 | 33%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI | 6Ik1haWwifQ%3D%3D%7C- | 1=x736pxmxWrkybgV6xXLjIT9EFnKibMJuiEyJpj1SfSw%3D=0 ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs