<div dir="ltr">is it possible that this is also connected to <a href="https://ghc.haskell.org/trac/ghc/ticket/13604">https://ghc.haskell.org/trac/ghc/ticket/13604</a> ?<div><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 19, 2017 at 10:00 AM Ben Gamari <<a href="mailto:ben@smart-cactus.org">ben@smart-cactus.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Conal Elliott <<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>> writes:<br>
<br>
> It appears that use of GHC plugins causes client code to get needlessly<br>
> recompiled. (See Trac issues 12567<br>
> <<a href="https://ghc.haskell.org/trac/ghc/ticket/12567" rel="noreferrer" target="_blank">https://ghc.haskell.org/trac/ghc/ticket/12567</a>> and 7414<br>
> <<a href="https://ghc.haskell.org/trac/ghc/ticket/7414" rel="noreferrer" target="_blank">https://ghc.haskell.org/trac/ghc/ticket/7414</a>>.) It’s becoming more of a<br>
> problem for usability of the plugin<br>
> <<a href="http://conal.net/papers/compiling-to-categories" rel="noreferrer" target="_blank">http://conal.net/papers/compiling-to-categories</a>> I’ve been developing, and<br>
> I’m wondering what can be done. Some questions:<br>
><br>
>    - Is there any work in progress on fixing this situation?<br>
>    - Are there serious obstacles to fixing it?<br>
>    - Do plugin writers or users have any workarounds?<br>
><br>
I think the real question is what sort of interface do plugin authors<br>
need?<br>
<br>
I suspect there are a few distinct tasks here,<br>
<br>
 * compute and record module implementation hashes in interface files<br>
<br>
 * to include plugin implementation hashes in the recompilation check<br>
<br>
 * to provide an interface allowing a plugin to compute a hash of its<br>
   arguments which can be included into the recompilation check. One way<br>
   of realising this would be to add a field like the following to Plugin,<br>
<br>
       pluginHash :: [CommandLineOption] -> Maybe Fingerprint<br>
           -- Nothing would denote "always rebuild"<br>
<br>
   Would this help in your case?<br>
<br>
This would allow us to fix the TH problem in #7277 and fix the plugins<br>
problem in #7414 and #12567 in a nearly optimal way (assuming the plugin<br>
author is able to precisely define a hash).<br>
<br>
None of this is terribly difficult and given Nick's recent work on his<br>
row types plugin, it seems like it's getting more urgent.<br>
<br>
Cheers,<br>
<br>
- Ben<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div></div>