
Once more, I urge you ''not'' to try debugging a stage2 compiler, unless you have a great deal of time on your hands. Instead, compile the
#14626: No need to enter a scrutinised value -------------------------------------+------------------------------------- Reporter: heisenbug | Owner: heisenbug Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: performance Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #13861 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by heisenbug): Replying to [comment:12 simonpj]: libraries and stage2 compiler without the optimisation; and then try the testsuite and nofib. These are small programs and much easier to debug. Yup, I entertained this idea of an assertion for some time, but it looked like too much of a hassle compared to some quick debugging session. Turns out you are right. So I now plant in taggedness assertions (pushed to `wip/T14626` for your reviewing pleasure) for suspicious constellations, and they fire indeed! {{{ * frame #0: 0x000000010a0fcbc8 libHSrts_thr- ghc8.5.20180103.dylib`checkTagged frame #1: 0x000000010073e2c1 libHSghc-8.5-ghc8.5.20180103.dylib`ghc_Name_nzuocc_info [inlined] _cpOv + 17 at Name.hs:111 frame #2: 0x000000010073e2b0 libHSghc-8.5-ghc8.5.20180103.dylib`ghc_Name_nzuocc_info + 72 frame #3: 0x000000010a104fb0 libHSrts_thr- ghc8.5.20180103.dylib`stg_upd_frame_info_dsp + 16 }}} `Name.hs:111` is a strict record field BTW. Does this ring a bell? Why is it `OtherCon _ <- idUnfolding id` but not tagged? Is it possibly implicitly unpacked? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14626#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler