Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,354
    • Issues 5,354
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 568
    • Merge requests 568
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #14335
Closed
Open
Issue created Oct 08, 2017 by Ben Gamari@bgamari🐢Maintainer2 of 4 checklist items completed2/4 checklist items

Plugins don't work with -fexternal-interpreter

Plugins don't work with -fexternal-interpreter.

The current plan to fix this is to enable GHC to always use the internal interpreter for plugins, even when -fexternal-interpreter is given. -fexternal-interpreter only determines which interpreter is used for running Template Haskell splices. The following tasks have been identified:

  • Support loading two different UnitState (available units): one for the target, one for plugins
  • Add command-line flags (-plugin-package-db, etc.) to build the plugins UnitState
  • Refactor many functions to explicitly pass Platform configuration (Platform, ways, etc.) as arguments. Currently we often pass DynFlags and callee functions implicitly use the UnitState of the target platform. It doesn't compose well and we want to be explicit about the platform we are using (target or host) (see also #17957).
  • Pretty-printing of Unit (via its Outputable instance) implicitly queries the UnitState of the target platform (via sdocWithDynFlags). We need to remove this Outputable instance.
Edited Jul 07, 2021 by Sylvain Henry
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking