[GHC] #3990: UNPACK doesn't unbox data families

GHC ghc-devs at haskell.org
Fri Apr 22 10:36:53 UTC 2016


#3990: UNPACK doesn't unbox data families
-------------------------------------+-------------------------------------
        Reporter:  rl                |                Owner:
            Type:  bug               |               Status:  closed
        Priority:  low               |            Milestone:
       Component:  Compiler          |              Version:  7.0.3
      Resolution:  fixed             |             Keywords:  TypeFamilies
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  Runtime           |            Test Case:
  performance bug                    |  simplCore/should_compile/T3990
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by simonpj):

 * testcase:   => simplCore/should_compile/T3990
 * status:  new => closed
 * resolution:   => fixed


Comment:

 This commit
 [https://ghc.haskell.org/trac/ghc/changeset/353d8ae6fafe117a1cac4adf6f029a5baccc2780/ghc
 353d8ae6/ghc] from #11348:
 {{{
 In SCC analysis for instances as well as types/classes

 This big patch is in pursuit of Trac #11348.

 It is largely the work of Alex Veith (thank you!), with some
 follow-up simplification and refactoring from Simon PJ.

 The main payload is described in RnSource
   Note [Dependency analysis of type, class, and instance decls]
 which is pretty detailed.

 * There is a new data type HsDecls.TyClGroup, for a strongly
   connected component of type/class/instance/role decls.

   The hs_instds field of HsGroup disappears, in consequence

   This forces some knock-on changes, including a minor
   haddock submodule update

 Smaller, weakly-related things

 * I found that both the renamer and typechecker were building an
   identical env for RoleAnnots, so I put common code for
   RoleAnnotEnv in RnEnv.

 * I found that tcInstDecls1 had very clumsy error handling, so I
   put it together into TcInstDcls.doClsInstErrorChecks
 }}}
 deals with the ToDo in comment:13:
 {{{
     Still to do: need to do knot-tying to allow instances to take effect
     within the same module.
 }}}
 So now we are good; e.g. comment:20 is fixed.  I've added a test case.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/3990#comment:25>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list