RE: [Haskell] Using -main-is with GHC 6.4/Windows

[Redirecting to GHC users, which is where GHC-specific questions belong] | OK, it's not so bad. If I delete the AffyDataCalc.o file before compiling | AffyDataCalcTest, it all works fine. ... | Hmmm... is there something the GHC --make feature can do to force | recompilation of the other modules previously compiled as main | modules? Just a thought. We're always wary of adding too much magic! I'll add a note to the -main-is documentation though. Simon -----Original Message----- From: haskell-bounces@haskell.org [mailto:haskell-bounces@haskell.org] On Behalf Of Graham Klyne Sent: 17 March 2005 15:57 To: Haskell Mailing List Subject: [Haskell] Using -main-is with GHC 6.4/Windows I've been trying to use the -main-is option with GHC 6.4 on Windows. In isolation it works fine, but it still doesn't achieve what I hoped it would. Consider this compilation output frgament: [[ Compiling AffyDataCalcTest ( AffyDataCalcTest.hs, AffyDataCalcTest.o ) Linking ... ./AffyDataCalc.o(.data+0xa70):fake: multiple definition of `ZCMain_main_srt' AffyDataCalcTest.o(.data+0x1fc):fake: first defined here ./AffyDataCalc.o(.data+0xa78):fake: multiple definition of `ZCMain_main_closure' AffyDataCalcTest.o(.data+0x204):fake: first defined here ./AffyDataCalc.o(.text+0x9158):fake: multiple definition of `ZCMain_main_info' AffyDataCalcTest.o(.text+0x1ff0):fake: first defined here ./AffyDataCalc.o(.text+0x9408):fake: multiple definition of `__stginit_ZCMain' AffyDataCalcTest.o(.text+0x20c0):fake: first defined here ]] The module 'AffyDataCalc' contains a function called 'main', which is the topo-level function of the target program I have under development. The module AffyDataCalcTest also has top-level function called runtest, which, you guessed it, runs a test of the program functions. It seems that the top-level functions still interfere with each other. [later] OK, it's not so bad. If I delete the AffyDataCalc.o file before compiling AffyDataCalcTest, it all works fine. [[ E:\OxfordCVS\DTGED\AffyData>ghc --make -fglasgow-exts -iD:\Cvs\DEV\HaskellUti C:\Dev\Haskell\Lib\HUnit;C:\Dev\Haskell\Lib\Parsec;C:\Dev\Haskell\MyLibs \ -o yDataCalcTest.exe -main-is AffyDataCalcTest.runtest AffyDataCalcTest Chasing modules from: AffyDataCalcTest Compiling ParseCSV ( ./ParseCSV.hs, ./ParseCSV.o ) Compiling FormatCSV ( ./FormatCSV.hs, ./FormatCSV.o ) Skipping ListHelpers ( D:\Cvs\DEV\HaskellUtils/ListHelpers.hs, D:\Cvs\D HaskellUtils/ListHelpers.o ) Compiling AffyDataCalc ( ./AffyDataCalc.hs, ./AffyDataCalc.o ) Skipping HUnitLang ( C:\Dev\Haskell\Lib\HUnit/HUnitLang.lhs, C:\Dev\H ell\Lib\HUnit/HUnitLang.o ) Skipping HUnitBase ( C:\Dev\Haskell\Lib\HUnit/HUnitBase.lhs, C:\Dev\H ell\Lib\HUnit/HUnitBase.o ) Skipping HUnitText ( C:\Dev\Haskell\Lib\HUnit/HUnitText.lhs, C:\Dev\H ell\Lib\HUnit/HUnitText.o ) Skipping HUnit ( C:\Dev\Haskell\Lib\HUnit/HUnit.lhs, C:\Dev\Haske Lib\HUnit/HUnit.o ) Skipping TestHelpers ( D:\Cvs\DEV\HaskellUtils/TestHelpers.hs, D:\Cvs\D HaskellUtils/TestHelpers.o ) Compiling AffyDataCalcTest ( AffyDataCalcTest.hs, AffyDataCalcTest.o ) Linking ... E:\OxfordCVS\DTGED\AffyData>affydatacalctest Cases: 2 Tried: 0 Errors: 0 Failures: 0AffyDataCalc done. Cases: 2 Tried: 1 Errors: 0 Failures: 0AffyDataCalc done. Cases: 2 Tried: 2 Errors: 0 Failures: 0 E:\OxfordCVS\DTGED\AffyData>ghcc AffyDataCalc ]] Hmmm... is there something the GHC --make feature can do to force recompilation of the other modules previously compiled as main modules? Just a thought. #g ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
participants (1)
-
Simon Peyton-Jones