Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,274
    • Issues 4,274
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 412
    • Merge Requests 412
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #14335

Closed
Open
Opened Oct 08, 2017 by Ben Gamari@bgamari🐢Maintainer2 of 4 tasks completed2/4 tasks

Allow to run TH splices in an external interpreter in modules using compiler plugins

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 Oct 15, 2020 by Sylvain Henry
Assignee
Assign to
8.6.1
Milestone
8.6.1 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#14335