Ticket #3559 (new task)

Opened 4 years ago

Last modified 8 months ago

split ghci modules off into their own package

Reported by: igloo Owned by:
Priority: low Milestone: 7.6.2
Component: GHCi Version: 6.10.4
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

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

Changed 4 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.

Changed 2 years ago by igloo

  • milestone changed from 7.0.1 to 7.0.2

Changed 2 years ago by igloo

  • milestone changed from 7.0.2 to 7.2.1

Changed 20 months ago by igloo

  • milestone changed from 7.2.1 to 7.4.1

Changed 16 months ago by igloo

  • priority changed from normal to low
  • milestone changed from 7.4.1 to 7.6.1

Changed 8 months ago by igloo

  • milestone changed from 7.6.1 to 7.6.2
Note: See TracTickets for help on using tickets.