Opened 8 years ago

Closed 8 years ago

Last modified 6 years ago

#909 closed bug (fixed)

problems building base package with --make; wired in things are assumed to not be in current package

Reported by: igloo Owned by: simonpj
Priority: normal Milestone: 6.8.1
Component: Compiler Version: 6.4.2
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

GHC currently assumes that wired in things are not in the current package.
This causes problems when the base package is partially compiled (in particular, GHC.Base is built already) and you try to build the whole thing with --make.
Each time it needs something from GHC.Base, GHC looks to see if it has been loaded from another package yet and, upon finding it hasn't, loads it from the current package.
This results in it loading it multiple times, giving errors like:

GHC/Foo.hs:6:6:
    Overlapping instances for Eq Bool
      arising from use of `==' at GHC/Foo.hs:6:6-17
    Matching instances:
      instance Eq Bool -- Defined in GHC.Base
      instance Eq Bool -- Defined in GHC.Base
      instance Eq Bool -- Defined in GHC.Base
    In the expression: True == True
    In the definition of `foo': foo = True == True

This is now tested by base01 in the testsuite.

Change History (4)

comment:1 Changed 8 years ago by simonpj

  • Resolution set to fixed
  • Status changed from new to closed

Fixed. Simon

comment:2 Changed 6 years ago by igloo

  • Milestone changed from 6.8 branch to 6.8.1

comment:3 Changed 6 years ago by simonmar

  • Architecture changed from Multiple to Unknown/Multiple

comment:4 Changed 6 years ago by simonmar

  • Operating System changed from Multiple to Unknown/Multiple
Note: See TracTickets for help on using tickets.