What is happening is this.

- there's a SPECIALISE pragma involving data type Reg in FiniteMap
- SpecTyFuns imports FiniteMap
- Haskell 1.2 required closure on import, so Reg therefore had to
  be imported even though it's not used.  Haskell 1.4 doesn't have
  this silly restriction.

Solution: import AsmRegAlloc( Reg ) into SpecTyFuns (and maybe elsewhere)
or remove the SPECIALISE pragmas in FiniteMap (easier; and you won't lose
a lot of performance).

How this ever worked is beyond me!

Simon


> ghc-0.29 -c      -O -hi-diffs -link-chk -cpp -H12m  -fglasgow-exts -DCOMPILING_GHC   
>   -fomit-derived-read     -I. 
>-iutils:basicTypes:uniType:abstractSyn:prelude:envs:rename:typecheck:deSugar:coreSyn:specialise:simplCore:stranal:stgSyn:simplStg:codeGen:nativeGen:absCSyn:main:reader:profiling:deforest:yaccParser
>        -DUSE_ATTACK_PRAGMAS -fshow-pragma-name-errs -fomit-reexported-instances 
>-fshow-import-specs   -DUSE_NEW_READER=1 -DGRAN  -DOMIT_DEFORESTER=1   -o 
>specialise/SpecTyFuns.o specialise/SpecTyFuns.lhs
> ld.so: warning: /usr/lib/libc.so.1.8 has older revision than expected 9
>  
> "utils/FiniteMap.hi", line 14: undefined type constructor: Reg
>  
> "utils/FiniteMap.hi", line 42: undefined type constructor: Reg
>  
> "utils/FiniteMap.hi", line 52: undefined type constructor: Reg
> 
> Compilation had errors
> make[1]: *** [specialise/SpecTyFuns.o] Error 1
> ----
> 
> On the Sun I've managed to compile all of the runtime system but
> I have not got this far on my linux box. I've looked at the code
> and it looks like utils/FiniteMap.hs imports a file with constructor
> "Reg" defined, however this is never imported into 
> specialise/SpecTyFuns.lhs (and a host of other modules).
> 
> Has anyone any idea what I need to do? Incidentally I think that this
> problem also occurs when I try to compile it without gransim enabled.
> 
> Thanks,
> 
> Nathan.
> 


Reply via email to