[GHC] #11179: Allow plugins to access "dead code"

GHC ghc-devs at haskell.org
Tue Dec 8 17:35:20 UTC 2015


#11179: Allow plugins to access "dead code"
-------------------------------------+-------------------------------------
           Reporter:  lerkok         |             Owner:
               Type:  feature        |            Status:  new
  request                            |
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  7.10.2
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 GHC removes dead-bindings quite early in the compilation process, which
 makes perfect sense from a pure compilation point of view. But with user-
 plugins, some of the dead-bindings can be interesting: They might be
 properties or other code that instructs the plugin to do a certain action,
 even if the binding isn't otherwise used anywhere else or exported. (Think
 of embedded properties.)

 Here's a discussion about the issue, where SimonPJ asked for a ticket to
 be filed: [http://mail.haskell.org/pipermail/ghc-
 devs/2015-December/010708.html]

 It appears the desugarer removes some of the dead-code. One option could
 be to stop the desugarer from doing that, and leaving it to the later
 optimizer passes so plugins can still see all the bindings (if they run
 early enough), or require the user to put in an "KeepAlive" pragma on
 bindings that she cares about. While keeping all-dead code in the
 desugarer would be the simplest thing to do, requiring the user to put in
 a pragma isn't a terrible solution either.

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


More information about the ghc-tickets mailing list