Opened 8 years ago

Last modified 20 months ago

#3559 new task

split ghci modules off into their own package

Reported by: igloo Owned by:
Priority: low Milestone:
Component: GHCi Version: 6.10.4
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


ghci code should be split into bits that are always compiled (and always work), and modules that are in a separate ghci package. The current situation means that clients of the GHC API cannot specify whether or not they need the ghci modules (or other code inside GHCI ifdefs), and means that clients may accidentally end up using ghci-only interfaces without realising it. This is not just hypothetical: haddock has grown a dependency on ghci code: #3558.

Change History (11)

comment:1 Changed 8 years ago by simonmar

I don't think we can split off a separate ghci package, because it would be mutually recursive with the ghc package. The main reason for the GHCI #ifdef is that we can only use GHCi in stage 2 when the libraries we dynamically load are the same as the ones that GHC itself is linked with, so that data representations etc. are compatible. We never ship a ghc package without GHCi support, so clients don't need to worry about this.

Now, it's possible we could pull enough code out from inside GHCI to fix the Haddock issue described above, and that's not a bad thing. But I don't think this is an issue that affects any other clients.

comment:2 Changed 7 years ago by igloo


comment:3 Changed 7 years ago by igloo


comment:4 Changed 6 years ago by igloo


comment:5 Changed 6 years ago by igloo

Priority: normallow

comment:6 Changed 5 years ago by igloo


comment:7 Changed 3 years ago by thoughtpolice


Moving to 7.10.1.

comment:8 Changed 3 years ago by thoughtpolice


Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

comment:9 Changed 2 years ago by thoughtpolice


Milestone renamed

comment:10 Changed 22 months ago by ezyang

Type of failure: None/Unknown

See also wiki:RemoteGHCi

comment:11 Changed 20 months ago by thomie

Milestone: 8.0.1
Note: See TracTickets for help on using tickets.