[GHC] #12993: GHC 8.0.2-rc2 template Haskell interface file issue

GHC ghc-devs at haskell.org
Sat Dec 17 16:49:20 UTC 2016


#12993: GHC 8.0.2-rc2 template Haskell interface file issue
-------------------------------------+-------------------------------------
        Reporter:  glguy             |                Owner:
            Type:  bug               |               Status:  new
        Priority:  highest           |            Milestone:  8.0.2
       Component:  Template Haskell  |              Version:  8.0.2-rc2
      Resolution:                    |             Keywords:
Operating System:  MacOS X           |         Architecture:
 Type of failure:  GHC rejects       |  Unknown/Multiple
  valid program                      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by osa1):

 The motivation behind that commit is that if a record selector is not
 exported and not used within the module, code for it was still generated.
 With that commit they're removed.

 I agree that this bug is caused by that change. I think a proper fix would
 be to detect that in these cases the selector is actually used. This is
 already done for toplevel definitions. For example:

 {{{#!haskell
 module Lib (x) where
 x, y :: Int
 x = 1
 y = 2
 }}}

 Compile and run `nm` on the object file, and you'll see that there isn't a
 symbol `Lib_y_closure`. If you export `y` you'll see that symbol. If I
 export `y` in a TH code it still works fine:

 {{{#!haskell
 module Lib (x, z) where
 x, y :: Int
 x = 1
 y = 2
 z = [|y|]
 }}}

 If you run `nm` you'll see that there's a `Lib_y_closure`. Apparently this
 last part is not done for record selectors and we should fix that.

 @bgamari, if this is urgent feel free to revert that commit, I can put it
 back once I figure out how to fix this.

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


More information about the ghc-tickets mailing list