Opened 7 years ago

Last modified 15 months ago

#1631 new task

Make the External Package Table contain ModDetails not ModIface

Reported by: simonpj Owned by:
Priority: lowest Milestone: 7.6.2
Component: Compiler Version: 6.6.1
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

Currently the External Package Table contains ModIfaces. But that makes it hard to answer the question "which instances were introduced by module Foo" in the GHC API. See Kenny Lu's problem http://www.haskell.org/pipermail/glasgow-haskell-users/2007-August/013027.html

Furthermore the ModIfaces in the EPS are cut-down ones, with decls etc trimmed off becuase they are in the type envts.

Since loadInterface does typechecking etc, it'd make sense for it to return a ModDetails instead and for that ModDetails to be stored in the EPS. This would also tidy up the oddity that a ModIface contains redundant fields for fixity envt and deprecaction envt (they would move to ModDetails).

Then it'd also make sense for the GHC API to use ModDetails instead of ModInfo.

This change isn't truly hard, but it needs care.

Change History (13)

comment:1 Changed 7 years ago by igloo

  • Milestone set to 6.1

comment:2 Changed 6 years ago by simonpj

See also #1617, and Simon's comment on the patch:

Wed Nov  7 08:14:54 PST 2007  Simon Marlow <simonmar@microsoft.com>
  * FIX #1617: reloading didn't change the :browse output as it should
  The problem was that because the interface hadn't changed, we were
  re-using the old ModIface.  Unfortunately the ModIface contains the
  GlobalRdrEnv for the module, and that *had* changed.  The fix is to
  put the new GlobalRdrEnv in the ModIface even if the interface has not
  otherwise changed.

  ModIface is not really the right place for the GlobalRdrEnv, but
  neither is ModDetails, so we should think about a better way to do
  this.

comment:3 Changed 6 years ago by simonmar

  • Architecture changed from Unknown to Unknown/Multiple

comment:4 Changed 6 years ago by simonmar

  • Operating System changed from Unknown to Unknown/Multiple

comment:5 Changed 5 years ago by igloo

  • Milestone changed from 6.10 branch to 6.12 branch

comment:6 Changed 4 years ago by igloo

  • Milestone changed from 6.12 branch to 6.12.3

comment:7 Changed 4 years ago by igloo

  • Milestone changed from 6.12.3 to 6.14.1
  • Priority changed from normal to low

comment:8 Changed 3 years ago by igloo

  • Milestone changed from 7.0.1 to 7.0.2

comment:9 Changed 3 years ago by igloo

  • Milestone changed from 7.0.2 to 7.2.1

comment:10 Changed 3 years ago by igloo

  • Milestone changed from 7.2.1 to 7.4.1

comment:11 Changed 2 years ago by igloo

  • Milestone changed from 7.4.1 to 7.6.1
  • Priority changed from low to lowest

comment:12 Changed 19 months ago by igloo

  • Milestone changed from 7.6.1 to 7.6.2

comment:13 Changed 15 months ago by morabbin

  • Type of failure set to None/Unknown

Bump; time for another look?

Note: See TracTickets for help on using tickets.