[GHC] #14709: Extend the plugin mechanism to access program representation

GHC ghc-devs at haskell.org
Mon Jan 29 12:49:16 UTC 2018


#14709: Extend the plugin mechanism to access program representation
-------------------------------------+-------------------------------------
        Reporter:  lazac             |                Owner:  (none)
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  GHC API           |              Version:  8.2.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |  https://phabricator.haskell.org/D4342
  https://ghc.haskell.org/trac/ghc/wiki/ExtendedPluginsProposal|
-------------------------------------+-------------------------------------

Comment (by mpickering):

 These examples are useful for discussing the problems with recompilation
 but I don't think they should
 stop the progress of this patch.

 If we all agree that this is a good direction, which I think we should, we
 should consider each of the proposed plugins and decide whether each of
 them is desirable in turn. To summarise, here are the five proposed
 extensions.

 {{{
  parsedResultAction :: [CommandLineOption] -> ModSummary -> HsParsedModule
  needsRenamedSyntax :: [CommandLineOption] -> ModSummary -> Hsc Bool
  typeCheckResultAction :: [CommandLineOption] -> ModSummary -> TcGblEnv
  spliceRunAction :: [CommandLineOption] -> LHsExpr GhcTc -> TcM (LHsExpr
 GhcTc)
  interfaceLoadAction :: forall lcl . [CommandLineOption] -> ModIface
                                        -> IfM lcl ModIface
 }}}

 I think that `parsedResultAction`, `typecheckResultAction` and
 `splitRunAction` are well motivated hooks which we should definitely
 include.

 I am indifferent towards `interfaceLoadAction`, I don't see a more direct
 place to implement this but feel the hook should instead run after the
 interface is type checked.

 I won't accept a patch which includes the `needsRenamedSyntax` hook which
 is ad-hoc.

 Can other interested parties please comment on these specific so we can
 move this patch forward in a reasonable time frame?

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


More information about the ghc-tickets mailing list