Tue Apr 1 22:14:12 PDT 2008 Simon Marlow <[EMAIL PROTECTED]>
* Do not #include external header files when compiling via C
This has several advantages:
- -fvia-C is consistent with -fasm with respect to FFI declarations:
both bind to the ABI, not the API.
- foreign calls can now be inlined freely across module boundaries, since
a header file is not required when compiling the call.
- bootstrapping via C will be more reliable, because this difference
in behavour between the two backends has been removed.
There is one disadvantage:
- we get no checking by the C compiler that the FFI declaration
is correct.
So now, the c-includes field in a .cabal file is always ignored by
GHC, as are header files specified in an FFI declaration. This was
previously the case only for -fasm compilations, now it is also the
case for -fvia-C too.
M ./compiler/cmm/CLabel.hs -1 +25
M ./compiler/cmm/CmmParse.y -1 +3
M ./compiler/cmm/PprC.hs -28 +24
M ./compiler/deSugar/DsForeign.lhs -38 +17
M ./compiler/main/CodeOutput.lhs -32 +9
M ./compiler/main/HscTypes.lhs -3
M ./compiler/main/Packages.lhs -6
M ./includes/README -6 +7
M ./includes/Regs.h -13 +10
M ./includes/Rts.h -1 +5
M ./includes/RtsExternal.h -3
M ./includes/RtsTypeable.h -2
M ./includes/SMP.h -151 +3
A ./includes/SMPClosureOps.h
A ./includes/SpinLock.h
M ./includes/Stg.h -3 +6
M ./includes/StgMiscClosures.h +44
M ./rts/Exception.cmm -2
R ./rts/HCIncludes.h
M ./rts/Linker.c -1 +1
M ./rts/Makefile -7 +3
M ./rts/PrimOps.cmm -1 +1
M ./rts/StgCRun.c +2
M ./rts/StgMiscClosures.cmm -6 +4
M ./rts/StgRun.h -2
M ./rts/Typeable.c -1 +1
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc