[GHC] #14626: No need to enter a scrutinised value

GHC ghc-devs at haskell.org
Thu Jan 11 06:37:46 UTC 2018


#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]:
 > 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
 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


More information about the ghc-tickets mailing list