Can anyone tell me what I'm doing wrong with the GHC API? I'm getting the following error message from the GHC API:
Can't find interface-file declaration for variable Main.picture Probable cause: bug in .hi-boot file, or inconsistent .hi file Use -ddump-if-trace to get an idea of which file caused the error The source code I'm loading doesn't seem to matter at all, except that it defines a top-level variable called 'picture'. Of course, if I change the module name then I get a different module name in the error, but that's about it. The code I'm using to load the file is as follows: getPicture src = do fn <- chooseFileName ".hs" B.writeFile fn src codeErrors <- newIORef [] GHC.defaultErrorHandler (addErrorTo codeErrors) $ GHC.runGhc (Just GHC.libdir) $ GHC.handleSourceError (handle codeErrors) $ do dflags <- GHC.getSessionDynFlags GHC.setSessionDynFlags $ dflags { GHC.ghcMode = GHC.OneShot, GHC.ghcLink = GHC.LinkInMemory, GHC.hscTarget = GHC.HscInterpreted, GHC.log_action = addErrorTo codeErrors } target <- GHC.guessTarget fn Nothing GHC.setTargets [target] r <- fmap GHC.succeeded (GHC.load GHC.LoadAllTargets) case r of True -> do mods <- GHC.getModuleGraph GHC.setContext [ GHC.ms_mod (head mods) ] [ GHC.simpleImportDecl (GHC.mkModuleName "Graphics.Gloss") ] v <- GHC.compileExpr "picture :: Picture" return (Right (unsafeCoerce# v :: Picture)) False -> return (Left codeErrors) I can't see anything I'm doing obviously wrong here, but I'm not at all familiar with GHC's build process, so I'm hoping someone can pipe up and point out the obvious stuff I've missed. Any ideas? -- Chris Smith _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe