Opened 11 years ago

Closed 11 years ago

Last modified 9 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: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

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 11 years ago by simonpj

Resolution: fixed
Status: newclosed

Fixed. Simon

comment:2 Changed 10 years ago by igloo

Milestone: 6.8 branch6.8.1

comment:3 Changed 9 years ago by simonmar

Architecture: MultipleUnknown/Multiple

comment:4 Changed 9 years ago by simonmar

Operating System: MultipleUnknown/Multiple
Note: See TracTickets for help on using tickets.