[GHC] #7414: plugins always trigger recompilation

GHC ghc-devs at haskell.org
Thu Jan 25 15:43:56 UTC 2018


#7414: plugins always trigger recompilation
-------------------------------------+-------------------------------------
        Reporter:  jwlato            |                Owner:  (none)
            Type:  feature request   |               Status:  new
        Priority:  high              |            Milestone:  8.6.1
       Component:  Compiler          |              Version:  7.6.1
      Resolution:                    |             Keywords:  plugin,
                                     |  RecompilationCheck
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by mpickering):

 * priority:  normal => high
 * milestone:   => 8.6.1


Comment:

 Is there anything blocking this ticket or does someone just need to
 implement it?

 It makes using plugins quite a bit more hassle than necessary. See also
 #12567

 I really think this should be a priority for the next release (8.6)

 Ben said in an email thread last year that these should be the steps. But,
 if the implementation is slightly broken, implementing anything will be
 better than the current situation I posit! We can get back to the current
 situation by using `-fforce-recomp` after all.

 {{{
 I think the real question is what sort of interface do plugin authors
 need?

 I suspect there are a few distinct tasks here,

  * compute and record module implementation hashes in interface files

  * to include plugin implementation hashes in the recompilation check

  * to provide an interface allowing a plugin to compute a hash of its
    arguments which can be included into the recompilation check. One way
    of realising this would be to add a field like the following to Plugin,

        pluginHash :: [CommandLineOption] -> Maybe Fingerprint
            -- Nothing would denote "always rebuild"

    Would this help in your case?

 This would allow us to fix the TH problem in #7277 and fix the plugins
 problem in #7414 and #12567 in a nearly optimal way (assuming the plugin
 author is able to precisely define a hash).

 None of this is terribly difficult and given Nick's recent work on his
 row types plugin, it seems like it's getting more urgent.

 Cheers,

 - Ben
 }}}

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


More information about the ghc-tickets mailing list