BuildWrapper icon indicating copy to clipboard operation
BuildWrapper copied to clipboard

Buildwrapper in panic

Open varosi opened this issue 10 years ago • 8 comments

When I open this module I get panic message: bugscreenshot

I have source distributable to share. But here it did not gave me rights to upload it, so I have uploaded it to GHC ticket. As message states I posted this issue on GHC bug tracking system here: https://ghc.haskell.org/trac/ghc/ticket/9877

I have posted it here, too, because it is not reproducable from cabal build, but only in EclipseFP.

varosi avatar Dec 14 '14 15:12 varosi

As the message explicitly says, this is a GHC bug. EclipseFP does a lot more than just building, so buildwrapper uses the GHC API.

JPMoresmau avatar Dec 15 '14 06:12 JPMoresmau

Is it possible to isolate the bug even more? For example - running buildwrapper with my module of of EclipseFP?

2014-12-15 8:31 GMT+02:00 JP Moresmau [email protected]:

As the message explicitly says, this is a GHC bug. EclipseFP does a lot more than just building, so buildwrapper uses the GHC API.

— Reply to this email directly or view it on GitHub https://github.com/JPMoresmau/BuildWrapper/issues/49#issuecomment-66954654 .

varosi avatar Dec 15 '14 15:12 varosi

Sorry, I didn't see you already have the bug registered. It may be Win32 specific. What you should do is try to narrow the bug down by writing directly the GHC code. In https://ghc.haskell.org/trac/ghc/ticket/9845#no1 you can see I did that to expose another bug. The code buildwrapper used to invoke GHC is in the GHC module. give me a shout if you're struggling.

JPMoresmau avatar Dec 15 '14 15:12 JPMoresmau

It seems to be a duplicate of https://ghc.haskell.org/trac/ghc/ticket/8588 that is closed as being "a buildwrapper bug" but I don't remember anybody notifying me.

JPMoresmau avatar Dec 15 '14 15:12 JPMoresmau

An example of code exercising the ghc api. Try with your own module to see if you can cause the error. Check in the buildwrapper log which operation causes the failure.

module Main where

import GHC
import GHC.Paths ( libdir )
import Outputable (ppr, showSDoc)

main::IO()
main = do
    let options=[]
    let fp="ArrowTest.hs"
    let lflags=map noLoc options
    (_leftovers, _) <- parseStaticFlags lflags
    s<-runGhc (Just libdir) $ do
        flg <- getSessionDynFlags
        (flg', _, _) <- parseDynamicFlags flg _leftovers
        defaultCleanupHandler flg' $ do
                setSessionDynFlags  flg'{hscTarget = HscInterpreted, ghcLink = LinkInMemory , ghcMode = CompManager }
                addTarget Target { targetId = TargetFile fp Nothing, targetAllowObjCode = True, targetContents = Nothing }
                let howMuch=LoadAllTargets
                sf<-load howMuch
                modSum <- getModSummary $ mkModuleName "ArrowTest"
                p <- parseModule modSum
                t <- typecheckModule p
                d <- desugarModule t -- to get warnings
                l <- loadModule d
                setContext [IIModule $ moduleName  $ ms_mod modSum]      
                return $ showSDoc flg' $ ppr $ modSum
    print s
    return ()

JPMoresmau avatar Dec 15 '14 16:12 JPMoresmau

This is my buildwrapper log:

C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe build --output=true --cabaltarget=Source --tempfolder=.dist-buildwrapper --cabalpath=C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe --cabalfile =D:\Project\haskell_luna\GHCBug\GHCBug.cabal --cabalflags= --cabaloption=--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc.exe --logcabal=true "C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe" "build" "--verbose=1" "--builddir=D:\Project\haskell_luna\GHCBug.dist-buildwrapper\dist" "--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc. exe" build-wrapper-json:[{"r":true,"fps":["src\Persist.hs"]},[]] C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe components --tempfolder=.dist-buildwrapper --cabalpath=C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe --cabalfile=D:\Project\haskell_luna\GHCBu g\GHCBug.cabal --cabalflags= --cabaloption=--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc.exe --logcabal=true build-wrapper-json:[[{"Library":true}],[]] C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe generateusage --cabalcomponent= --returnall=true --tempfolder=.dist-buildwrapper --cabalpath=C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe --c abalfile=D:\Project\haskell_luna\GHCBug\GHCBug.cabal --cabalflags= --cabaloption=--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc.exe --logcabal=true [Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 17.0,Number 1.0,Number 20.0])),("Name",String "cSIDL_LOCAL_APPDATA"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",Strin g ""),("Package",String ""),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 17.0,Number 23.0,Number 29.0])),("Na me",String "fromInteger"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Num"),("Package",String "base"),("Type",String "Integer -> INT"),("QType",String "GHC.Integer.Ty pe.Integer -> System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 14.0,Number 1.0,Number 8.0])),("Name",String "maxPath"),("GType",String "Var"),("AllTypes ",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Int"),("QType",String "GHC.Types.Int")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Nu mber 1.0,Number 15.0])),("Name",String "getShellFolder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "INT -> IO String"),("QType", String "System.Win32.Types.INT -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Number 16.0,Number 21.0])),("Name",String "csidl"),("GType ",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("P os",Array (fromList [Number 20.0,Number 24.0,Number 36.0])),("Name",String "allocaArray0"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Foreign.Marshal.Array"),("Package", String "base"),("Type",String "Int -> (Ptr CWchar -> IO String) -> IO String"),("QType",String "GHC.Types.Int\n-> (GHC.Ptr.Ptr Foreign.C.Types.CWchar\n -> GHC.Types.IO GHC.Base.String)\n-> GHC.Type s.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Number 37.0,Number 44.0])),("Name",String "maxPath"),("GType",String "Var"),("AllTypes",Array (fromL ist [])),("Module",String "Persist"),("Package",String "GHCBug-0.1"),("Type",String "Int"),("QType",String "GHC.Types.Int")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0 ,Number 45.0])),("Name",String "$"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "((Ptr CWchar -> IO String) -> IO Stri ng)\n-> (Ptr CWchar -> IO String) -> IO String"),("QType",String "((GHC.Ptr.Ptr Foreign.C.Types.CWchar\n -> GHC.Types.IO GHC.Base.String)\n -> GHC.Types.IO GHC.Base.String)\n-> (GHC.Ptr.Ptr Foreign.C .Types.CWchar\n -> GHC.Types.IO GHC.Base.String)\n-> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Number 48.0,Number 52.0])),("Name",S tring "path"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Ptr CWchar"),("QType",String "GHC.Ptr.Ptr Foreign.C.Types.CWchar")]),Ob ject (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 10.0,Number 27.0])),("Name",String "cSHGetFolderPathW"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module ",String "Persist"),("Package",String "GHCBug-0.1"),("Type",String "HWND -> INT -> HANDLE -> DWORD -> CWString -> IO LONG"),("QType",String "Graphics.Win32.GDI.Types.HWND\n-> System.Win32.Types.INT\n-

System.Win32.Types.HANDLE\n-> System.Win32.Types.DWORD\n-> Foreign.C.String.CWString\n-> GHC.Types.IO System.Win32.Types.LONG")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Numbe r 21.0,Number 28.0,Number 38.0])),("Name",String "nullHANDLE"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.Win32.Types"),("Package",String "Win32-2.3.0.2"),("Type" ,String "HANDLE"),("QType",String "System.Win32.Types.HANDLE")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 39.0,Number 44.0])),("Name",String "csidl"),("GType", String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos ",Array (fromList [Number 21.0,Number 45.0,Number 55.0])),("Name",String "nullHANDLE"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.Win32.Types"),("Package",String "Win32-2.3.0.2"),("Type",String "HANDLE"),("QType",String "System.Win32.Types.HANDLE")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 56.0])),("Name",String "fromI nteger"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Num"),("Package",String "base"),("Type",String "Integer -> DWORD"),("QType",String "GHC.Integer.Type.Integer -> S ystem.Win32.Types.DWORD")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 58.0,Number 62.0])),("Name",String "path"),("GType",String "Var"),("AllTypes",Array (fromL ist [])),("Module",String ""),("Package",String ""),("Type",String "Ptr CWchar"),("QType",String "GHC.Ptr.Ptr Foreign.C.Types.CWchar")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [ Number 22.0,Number 5.0,Number 17.0])),("Name",String "peekCWString"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Foreign.C.String"),("Package",String "base"),("Type",Stri ng "CWString -> IO String"),("QType",String "Foreign.C.String.CWString -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 22.0,Number 18.0,Number 22.0])),("Name",String "path"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Ptr CWchar"),("QType",String "GHC.Ptr.Ptr Foreign.C.T ypes.CWchar")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 25.0,Number 1.0,Number 13.0])),("Name",String "persistWrite"),("GType",String "Var"),("AllTypes",Array (fromList [ ])),("Module",String ""),("Package",String ""),("Type",String "String -> a -> IO ()"),("QType",String "GHC.Base.String -> a -> GHC.Types.IO ()")]),Object (fromList [("HType",String "v"),("Pos",Array ( fromList [Number 25.0,Number 14.0,Number 18.0])),("Name",String "name"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QT ype",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 25.0,Number 19.0,Number 24.0])),("Name",String "value"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "a"),("QType",String "a")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 26.0,Number 5.0,Number 11.0]) ),("Name",String "folder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (from List [("HType",String "v"),("Pos",Array (fromList [Number 26.0,Number 15.0,Number 29.0])),("Name",String "getShellFolder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Per sist"),("Package",String "GHCBug-0.1"),("Type",String "INT -> IO String"),("QType",String "System.Win32.Types.INT -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Arra y (fromList [Number 26.0,Number 30.0,Number 49.0])),("Name",String "cSIDL_LOCAL_APPDATA"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Persist"),("Package",String "GHCBug- 0.1"),("Type",String "INT"),("QType",String "System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 5.0,Number 14.0])),("Name",String "writeFile") ,("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.IO"),("Package",String "base"),("Type",String "FilePath -> String -> IO ()"),("QType",String "GHC.IO.FilePath -> GHC.B ase.String -> GHC.Types.IO ()")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 16.0,Number 22.0])),("Name",String "folder"),("GType",String "Var"),("AllTypes",Arra y (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Num ber 23.0,Number 25.0])),("Name",String "++"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]") ,("QType",String "[GHC.Types.Char] -> [GHC.Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 31.0,Number 33.0])),("Name",String "++" ),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]"),("QType",String "[GHC.Types.Char] -> [GHC. Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 34.0,Number 38.0])),("Name",String "name"),("GType",String "Var"),("AllTypes",Arra y (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Num ber 41.0,Number 45.0])),("Name",String "show"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Show"),("Package",String "base"),("Type",String "a -> String"),("QType",Str ing "a -> GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 46.0,Number 51.0])),("Name",String "value"),("GType",String "Var"),("AllTypes",Array (fr omList [])),("Module",String ""),("Package",String ""),("Type",String "a"),("QType",String "a")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 30.0,Number 1.0,Number 12.0])),( "Name",String "persistRead"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String -> IO (Maybe b)"),("QType",String "GHC.Base.Strin g -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 30.0,Number 13.0,Number 17.0])),("Name",String "name"),("GType",String "Var"),("AllType s",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 3 1.0,Number 5.0,Number 11.0])),("Name",String "folder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC. Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 31.0,Number 15.0,Number 29.0])),("Name",String "getShellFolder"),("GType",String "Var"),("AllTypes",Array (fromLis t [])),("Module",String "Persist"),("Package",String "GHCBug-0.1"),("Type",String "INT -> IO String"),("QType",String " System.Win32.Types.INT -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HT ype",String "v"),("Pos",Array (fromList [Number 31.0,Number 30.0,Number 49.0])),("Name",String "cSIDL_LOCAL_APPDATA"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Persist" ),("Package",String "GHCBug-0.1"),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 5.0,Number 12.0])) ,("Name",String "content"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Maybe b"),("QType",String "Data.Maybe.Maybe b")]),Object ( fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 16.0,Number 21.0])),("Name",String "catch"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Control. Exception.Base"),("Package",String "base"),("Type",String "IO (Maybe b) -> (IOError -> IO (Maybe b)) -> IO (Maybe b)"),("QType",String "GHC.Types.IO (Data.Maybe.Maybe b)\n-> (GHC.IO.Exception.IOError -> GHC.Types.IO (Data.Maybe.Maybe b))\n-> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 23.0,Number 27.0])),("Name",String "fm ap"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "(String -> Maybe b) -> IO String -> IO (Maybe b)"),("QType",String " (GHC.Base.String -> Data.Maybe.Maybe b)\n-> GHC.Types.IO GHC.Base.String\n-> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 29. 0,Number 33.0])),("Name",String "Just"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Data.Maybe"),("Package",String "base"),("Type",String "b -> Maybe b"),("QType",String "b -> Data.Maybe.Maybe b")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 34.0])),("Name",String "."),("GType",String "Var"),("AllTypes",Array (fromList [])),("Mod ule",String "GHC.Base"),("Package",String "base"),("Type",String "(b -> Maybe b) -> (String -> b) -> String -> Maybe b"),("QType",String "(b -> Data.Maybe.Maybe b)\n-> (GHC.Base.String -> b) -> GHC.Ba se.String -> Data.Maybe.Maybe b")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 36.0,Number 40.0])),("Name",String "read"),("GType",String "Var"),("AllTypes",Arra y (fromList [])),("Module",String "Text.Read"),("Package",String "base"),("Type",String "String -> b"),("QType",String "GHC.Base.String -> b")]),Object (fromList [("HType",String "v"),("Pos",Array (fr omList [Number 32.0,Number 42.0])),("Name",String "."),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "(IO String -> IO ( Maybe b))\n-> (FilePath -> IO String) -> FilePath -> IO (Maybe b)"),("QType",String "(GHC.Types.IO GHC.Base.String -> GHC.Types.IO (Data.Maybe.Maybe b))\n-> (GHC.IO.FilePath -> GHC.Types.IO GHC.Base.S tring)\n-> GHC.IO.FilePath\n-> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 44.0,Number 52.0])),("Name",String "readFile"),(" GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.IO"),("Package",String "base"),("Type",String "FilePath -> IO String"),("QType",String "GHC.IO.FilePath -> GHC.Types.IO G HC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 53.0])),("Name",String "$"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",Strin g "GHC.Base"),("Package",String "base"),("Type",String "(FilePath -> IO (Maybe b)) -> FilePath -> IO (Maybe b)"),("QType",String "(GHC.IO.FilePath -> GHC.Types.IO (Data.Maybe.Maybe b))\n-> GHC.IO.File Path -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 55.0,Number 61.0])),("Name",String "folder"),("GType",String "Var"),("Al lTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Num ber 32.0,Number 62.0,Number 64.0])),("Name",String "++"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]"),("QType",String "[GHC.Types.Char] -> [GHC.Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 70.0,Number 72.0])),("Name" ,String "++"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]"),("QType",String "[GHC.Types.Ch ar] -> [GHC.Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 73.0,Number 77.0])),("Name",String "name"),("GType",String "Var"),("Al lTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Num ber 32.0,Number 99.0,Number 105.0])),("Name",String "return"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "Maybe b -> IO (Maybe b)"),("QType",String "Data.Maybe.Maybe b -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 106.0,Number 113.0])),("Na me",String "Nothing"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Data.Maybe"),("Package",String "base"),("Type",String "Maybe b"),("QType",String "Data.Maybe.Maybe b")]) ,Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 33.0,Number 5.0,Number 11.0])),("Name",String "return"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "Maybe b -> IO (Maybe b)"),("QType",String "Data.Maybe.Maybe b -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Po s",Array (fromList [Number 33.0,Number 12.0,Number 19.0])),("Name",String "content"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String " Maybe b"),("QType",String "Data.Maybe.Maybe b")])] MultipleFile {lmFiles = [("src\Persist.hs","Persist")]} buildwrapper.exe: panic! (the 'impossible' happened) (GHC version 7.8.3 for x86_64-unknown-mingw32): ForeignImport coercion evaluated before typechecking Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug [] build-wrapper-json:[["src\Persist.hs"],[]]

2014-12-15 18:40 GMT+02:00 JP Moresmau [email protected]:

An example of code exercising the ghc api. Try with your own module to see if you can cause the error. Check in the buildwrapper log which operation causes the failure.

module Main where

import GHC import GHC.Paths ( libdir ) import Outputable (ppr, showSDoc)

main::IO() main = do let options=[] let fp="ArrowTest.hs" let lflags=map noLoc options (_leftovers, _) <- parseStaticFlags lflags s<-runGhc (Just libdir) $ do flg <- getSessionDynFlags (flg', _, _) <- parseDynamicFlags flg _leftovers defaultCleanupHandler flg' $ do setSessionDynFlags flg'{hscTarget = HscInterpreted, ghcLink = LinkInMemory , ghcMode = CompManager } addTarget Target { targetId = TargetFile fp Nothing, targetAllowObjCode = True, targetContents = Nothing } let howMuch=LoadAllTargets sf<-load howMuch modSum <- getModSummary $ mkModuleName "ArrowTest" p <- parseModule modSum t <- typecheckModule p d <- desugarModule t -- to get warnings l <- loadModule d setContext [IIModule $ moduleName $ ms_mod modSum] return $ showSDoc flg' $ ppr $ modSum print s return ()

— Reply to this email directly or view it on GitHub https://github.com/JPMoresmau/BuildWrapper/issues/49#issuecomment-67023109 .

varosi avatar Dec 16 '14 08:12 varosi

Running with the code that you have proposed gives this output: "ModSummary {\n ms_hs_date = 2014-12-13 14:47:52 UTC\n ms_mod = main:Persist,\n ms_textual_imps = [import (implicit) Prelude,\n import Control.Exception, import Foreign.Marshal.Array,\n

import Foreign.C.String, import Graphics.Win32.GDI.Types,\n

import System.Win32.Types]\n ms_srcimps = []\n}"

I don't see any exception here. May be buildwrapper is doing something else?

2014-12-16 10:55 GMT+02:00 eng. Vassil Ognyanov Keremidchiev < [email protected]>:

This is my buildwrapper log:

C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe build --output=true --cabaltarget=Source --tempfolder=.dist-buildwrapper --cabalpath=C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe --cabalfile =D:\Project\haskell_luna\GHCBug\GHCBug.cabal --cabalflags= --cabaloption=--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc.exe --logcabal=true "C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe" "build" "--verbose=1" "--builddir=D:\Project\haskell_luna\GHCBug.dist-buildwrapper\dist" "--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc. exe" build-wrapper-json:[{"r":true,"fps":["src\Persist.hs"]},[]] C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe components --tempfolder=.dist-buildwrapper --cabalpath=C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe --cabalfile=D:\Project\haskell_luna\GHCBu g\GHCBug.cabal --cabalflags= --cabaloption=--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc.exe --logcabal=true build-wrapper-json:[[{"Library":true}],[]] C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe generateusage --cabalcomponent= --returnall=true --tempfolder=.dist-buildwrapper --cabalpath=C:\Users\home\AppData\Roaming\cabal\bin\cabal.exe --c abalfile=D:\Project\haskell_luna\GHCBug\GHCBug.cabal --cabalflags= --cabaloption=--with-ghc=C:\Program Files\Haskell Platform\2014.2.0.0\bin\ghc.exe --logcabal=true [Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 17.0,Number 1.0,Number 20.0])),("Name",String "cSIDL_LOCAL_APPDATA"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",Strin g ""),("Package",String ""),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 17.0,Number 23.0,Number 29.0])),("Na me",String "fromInteger"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Num"),("Package",String "base"),("Type",String "Integer -> INT"),("QType",String "GHC.Integer.Ty pe.Integer -> System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 14.0,Number 1.0,Number 8.0])),("Name",String "maxPath"),("GType",String "Var"),("AllTypes ",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Int"),("QType",String "GHC.Types.Int")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Nu mber 1.0,Number 15.0])),("Name",String "getShellFolder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "INT -> IO String"),("QType", String "System.Win32.Types.INT -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Number 16.0,Number 21.0])),("Name",String "csidl"),("GType ",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("P os",Array (fromList [Number 20.0,Number 24.0,Number 36.0])),("Name",String "allocaArray0"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Foreign.Marshal.Array"),("Package", String "base"),("Type",String "Int -> (Ptr CWchar -> IO String) -> IO String"),("QType",String "GHC.Types.Int\n-> (GHC.Ptr.Ptr Foreign.C.Types.CWchar\n -> GHC.Types.IO GHC.Base.String)\n-> GHC.Type s.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Number 37.0,Number 44.0])),("Name",String "maxPath"),("GType",String "Var"),("AllTypes",Array (fromL ist [])),("Module",String "Persist"),("Package",String "GHCBug-0.1"),("Type",String "Int"),("QType",String "GHC.Types.Int")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0 ,Number 45.0])),("Name",String "$"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "((Ptr CWchar -> IO String) -> IO Stri ng)\n-> (Ptr CWchar -> IO String) -> IO String"),("QType",String "((GHC.Ptr.Ptr Foreign.C.Types.CWchar\n -> GHC.Types.IO GHC.Base.String)\n -> GHC.Types.IO GHC.Base.String)\n-> (GHC.Ptr.Ptr Foreign.C .Types.CWchar\n -> GHC.Types.IO GHC.Base.String)\n-> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 20.0,Number 48.0,Number 52.0])),("Name",S tring "path"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Ptr CWchar"),("QType",String "GHC.Ptr.Ptr Foreign.C.Types.CWchar")]),Ob ject (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 10.0,Number 27.0])),("Name",String "cSHGetFolderPathW"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module ",String "Persist"),("Package",String "GHCBug-0.1"),("Type",String "HWND -> INT -> HANDLE -> DWORD -> CWString -> IO LONG"),("QType",String "Graphics.Win32.GDI.Types.HWND\n-> System.Win32.Types.INT\n-

System.Win32.Types.HANDLE\n-> System.Win32.Types.DWORD\n-> Foreign.C.String.CWString\n-> GHC.Types.IO System.Win32.Types.LONG")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Numbe r 21.0,Number 28.0,Number 38.0])),("Name",String "nullHANDLE"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.Win32.Types"),("Package",String "Win32-2.3.0.2"),("Type" ,String "HANDLE"),("QType",String "System.Win32.Types.HANDLE")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 39.0,Number 44.0])),("Name",String "csidl"),("GType", String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos ",Array (fromList [Number 21.0,Number 45.0,Number 55.0])),("Name",String "nullHANDLE"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.Win32.Types"),("Package",String "Win32-2.3.0.2"),("Type",String "HANDLE"),("QType",String "System.Win32.Types.HANDLE")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 56.0])),("Name",String "fromI nteger"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Num"),("Package",String "base"),("Type",String "Integer -> DWORD"),("QType",String "GHC.Integer.Type.Integer -> S ystem.Win32.Types.DWORD")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 21.0,Number 58.0,Number 62.0])),("Name",String "path"),("GType",String "Var"),("AllTypes",Array (fromL ist [])),("Module",String ""),("Package",String ""),("Type",String "Ptr CWchar"),("QType",String "GHC.Ptr.Ptr Foreign.C.Types.CWchar")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [ Number 22.0,Number 5.0,Number 17.0])),("Name",String "peekCWString"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Foreign.C.String"),("Package",String "base"),("Type",Stri ng "CWString -> IO String"),("QType",String "Foreign.C.String.CWString -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 22.0,Number 18.0,Number 22.0])),("Name",String "path"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Ptr CWchar"),("QType",String "GHC.Ptr.Ptr Foreign.C.T ypes.CWchar")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 25.0,Number 1.0,Number 13.0])),("Name",String "persistWrite"),("GType",String "Var"),("AllTypes",Array (fromList [ ])),("Module",String ""),("Package",String ""),("Type",String "String -> a -> IO ()"),("QType",String "GHC.Base.String -> a -> GHC.Types.IO ()")]),Object (fromList [("HType",String "v"),("Pos",Array ( fromList [Number 25.0,Number 14.0,Number 18.0])),("Name",String "name"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QT ype",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 25.0,Number 19.0,Number 24.0])),("Name",String "value"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "a"),("QType",String "a")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 26.0,Number 5.0,Number 11.0]) ),("Name",String "folder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (from List [("HType",String "v"),("Pos",Array (fromList [Number 26.0,Number 15.0,Number 29.0])),("Name",String "getShellFolder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Per sist"),("Package",String "GHCBug-0.1"),("Type",String "INT -> IO String"),("QType",String "System.Win32.Types.INT -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Arra y (fromList [Number 26.0,Number 30.0,Number 49.0])),("Name",String "cSIDL_LOCAL_APPDATA"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Persist"),("Package",String "GHCBug- 0.1"),("Type",String "INT"),("QType",String "System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 5.0,Number 14.0])),("Name",String "writeFile") ,("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.IO"),("Package",String "base"),("Type",String "FilePath -> String -> IO ()"),("QType",String "GHC.IO.FilePath -> GHC.B ase.String -> GHC.Types.IO ()")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 16.0,Number 22.0])),("Name",String "folder"),("GType",String "Var"),("AllTypes",Arra y (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Num ber 23.0,Number 25.0])),("Name",String "++"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]") ,("QType",String "[GHC.Types.Char] -> [GHC.Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 31.0,Number 33.0])),("Name",String "++" ),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]"),("QType",String "[GHC.Types.Char] -> [GHC. Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 34.0,Number 38.0])),("Name",String "name"),("GType",String "Var"),("AllTypes",Arra y (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Num ber 41.0,Number 45.0])),("Name",String "show"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Show"),("Package",String "base"),("Type",String "a -> String"),("QType",Str ing "a -> GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 27.0,Number 46.0,Number 51.0])),("Name",String "value"),("GType",String "Var"),("AllTypes",Array (fr omList [])),("Module",String ""),("Package",String ""),("Type",String "a"),("QType",String "a")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 30.0,Number 1.0,Number 12.0])),( "Name",String "persistRead"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String -> IO (Maybe b)"),("QType",String "GHC.Base.Strin g -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 30.0,Number 13.0,Number 17.0])),("Name",String "name"),("GType",String "Var"),("AllType s",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 3 1.0,Number 5.0,Number 11.0])),("Name",String "folder"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC. Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 31.0,Number 15.0,Number 29.0])),("Name",String "getShellFolder"),("GType",String "Var"),("AllTypes",Array (fromLis t [])),("Module",String "Persist"),("Package",String "GHCBug-0.1"),("Type",String "INT -> IO String"),("QType",String " System.Win32.Types.INT -> GHC.Types.IO GHC.Base.String")]),Object (fromList [("HT ype",String "v"),("Pos",Array (fromList [Number 31.0,Number 30.0,Number 49.0])),("Name",String "cSIDL_LOCAL_APPDATA"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Persist" ),("Package",String "GHCBug-0.1"),("Type",String "INT"),("QType",String " System.Win32.Types.INT")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 5.0,Number 12.0])) ,("Name",String "content"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "Maybe b"),("QType",String "Data.Maybe.Maybe b")]),Object ( fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 16.0,Number 21.0])),("Name",String "catch"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Control. Exception.Base"),("Package",String "base"),("Type",String "IO (Maybe b) -> (IOError -> IO (Maybe b)) -> IO (Maybe b)"),("QType",String "GHC.Types.IO (Data.Maybe.Maybe b)\n-> (GHC.IO.Exception.IOError -> GHC.Types.IO (Data.Maybe.Maybe b))\n-> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 23.0,Number 27.0])),("Name",String "fm ap"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "(String -> Maybe b) -> IO String -> IO (Maybe b)"),("QType",String " (GHC.Base.String -> Data.Maybe.Maybe b)\n-> GHC.Types.IO GHC.Base.String\n-> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 29. 0,Number 33.0])),("Name",String "Just"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Data.Maybe"),("Package",String "base"),("Type",String "b -> Maybe b"),("QType",String "b -> Data.Maybe.Maybe b")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 34.0])),("Name",String "."),("GType",String "Var"),("AllTypes",Array (fromList [])),("Mod ule",String "GHC.Base"),("Package",String "base"),("Type",String "(b -> Maybe b) -> (String -> b) -> String -> Maybe b"),("QType",String "(b -> Data.Maybe.Maybe b)\n-> (GHC.Base.String -> b) -> GHC.Ba se.String -> Data.Maybe.Maybe b")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 36.0,Number 40.0])),("Name",String "read"),("GType",String "Var"),("AllTypes",Arra y (fromList [])),("Module",String "Text.Read"),("Package",String "base"),("Type",String "String -> b"),("QType",String "GHC.Base.String -> b")]),Object (fromList [("HType",String "v"),("Pos",Array (fr omList [Number 32.0,Number 42.0])),("Name",String "."),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "(IO String -> IO ( Maybe b))\n-> (FilePath -> IO String) -> FilePath -> IO (Maybe b)"),("QType",String "(GHC.Types.IO GHC.Base.String -> GHC.Types.IO (Data.Maybe.Maybe b))\n-> (GHC.IO.FilePath -> GHC.Types.IO GHC.Base.S tring)\n-> GHC.IO.FilePath\n-> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 44.0,Number 52.0])),("Name",String "readFile"),(" GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "System.IO"),("Package",String "base"),("Type",String "FilePath -> IO String"),("QType",String "GHC.IO.FilePath -> GHC.Types.IO G HC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 53.0])),("Name",String "$"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",Strin g "GHC.Base"),("Package",String "base"),("Type",String "(FilePath -> IO (Maybe b)) -> FilePath -> IO (Maybe b)"),("QType",String "(GHC.IO.FilePath -> GHC.Types.IO (Data.Maybe.Maybe b))\n-> GHC.IO.File Path -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 55.0,Number 61.0])),("Name",String "folder"),("GType",String "Var"),("Al lTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Num ber 32.0,Number 62.0,Number 64.0])),("Name",String "++"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]"),("QType",String "[GHC.Types.Char] -> [GHC.Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 70.0,Number 72.0])),("Name" ,String "++"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "[Char] -> [Char] -> [Char]"),("QType",String "[GHC.Types.Ch ar] -> [GHC.Types.Char] -> [GHC.Types.Char]")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 73.0,Number 77.0])),("Name",String "name"),("GType",String "Var"),("Al lTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String "String"),("QType",String "GHC.Base.String")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Num ber 32.0,Number 99.0,Number 105.0])),("Name",String "return"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "Maybe b -> IO (Maybe b)"),("QType",String "Data.Maybe.Maybe b -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 32.0,Number 106.0,Number 113.0])),("Na me",String "Nothing"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "Data.Maybe"),("Package",String "base"),("Type",String "Maybe b"),("QType",String "Data.Maybe.Maybe b")]) ,Object (fromList [("HType",String "v"),("Pos",Array (fromList [Number 33.0,Number 5.0,Number 11.0])),("Name",String "return"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String "GHC.Base"),("Package",String "base"),("Type",String "Maybe b -> IO (Maybe b)"),("QType",String "Data.Maybe.Maybe b -> GHC.Types.IO (Data.Maybe.Maybe b)")]),Object (fromList [("HType",String "v"),("Po s",Array (fromList [Number 33.0,Number 12.0,Number 19.0])),("Name",String "content"),("GType",String "Var"),("AllTypes",Array (fromList [])),("Module",String ""),("Package",String ""),("Type",String " Maybe b"),("QType",String "Data.Maybe.Maybe b")])] MultipleFile {lmFiles = [("src\Persist.hs","Persist")]} buildwrapper.exe: panic! (the 'impossible' happened) (GHC version 7.8.3 for x86_64-unknown-mingw32): ForeignImport coercion evaluated before typechecking Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug [] build-wrapper-json:[["src\Persist.hs"],[]]

2014-12-15 18:40 GMT+02:00 JP Moresmau [email protected]:

An example of code exercising the ghc api. Try with your own module to see if you can cause the error. Check in the buildwrapper log which operation causes the failure.

module Main where

import GHC import GHC.Paths ( libdir ) import Outputable (ppr, showSDoc)

main::IO() main = do let options=[] let fp="ArrowTest.hs" let lflags=map noLoc options (_leftovers, _) <- parseStaticFlags lflags s<-runGhc (Just libdir) $ do flg <- getSessionDynFlags (flg', _, _) <- parseDynamicFlags flg _leftovers defaultCleanupHandler flg' $ do setSessionDynFlags flg'{hscTarget = HscInterpreted, ghcLink = LinkInMemory , ghcMode = CompManager } addTarget Target { targetId = TargetFile fp Nothing, targetAllowObjCode = True, targetContents = Nothing } let howMuch=LoadAllTargets sf<-load howMuch modSum <- getModSummary $ mkModuleName "ArrowTest" p <- parseModule modSum t <- typecheckModule p d <- desugarModule t -- to get warnings l <- loadModule d setContext [IIModule $ moduleName $ ms_mod modSum] return $ showSDoc flg' $ ppr $ modSum print s return ()

— Reply to this email directly or view it on GitHub https://github.com/JPMoresmau/BuildWrapper/issues/49#issuecomment-67023109 .

varosi avatar Dec 16 '14 09:12 varosi

Do I have to report something more to GHC than this: https://ghc.haskell.org/trac/ghc/ticket/9877

varosi avatar Jan 07 '15 21:01 varosi