[Haskell-cafe] segfault when using ghc api

Edward Amsden eca7215 at cs.rit.edu
Tue Mar 1 02:12:07 CET 2011


That's doing what I want, but I'm not sure why you passed
[(mkModule (stringToPackageId "base") (mkModuleName "Prelude"), Nothing) ]

to setContext. I found that
[mkModule (stringToPackageId "base") (mkModuleName "Prelude")]

matches the type expected by setContext. Perhaps we are using
different api versions? I'm using 6.12.3

2011/2/28 Daniel Schüssler <anotheraddress at gmx.de>:
> Hi,
>
> On 2011-February-27 Sunday 16:20:06 Edward Amsden wrote:
>> Secondly,
>>
>> I'd like to get to a GHC session that just has, say, Prelude in scope
>> so I can use dynCompileExpr with "show" etc, but I cannot figure out
>> how to bring it into scope. The closest I got was to get GHC
>> complaining that it was a package module.
>
> I don't know if setContext is the proper/best way to do it, but it seems to
> work:
>
> import GHC
> import GHC.Paths ( libdir )
> import DynFlags ( defaultDynFlags )
> import Module(stringToPackageId, mkModuleName)
> import Data.Dynamic(fromDynamic)
> import System.Environment
>
> evalString s =
>    defaultErrorHandler defaultDynFlags $ do
>      runGhc (Just libdir) $ do
>        dflags <- getSessionDynFlags
>        setSessionDynFlags dflags
>        setContext [] [ (mkModule (stringToPackageId "base") (mkModuleName
> "Prelude")
>                        ,Nothing) ]
>
>        dyn <- dynCompileExpr s
>        return $ fromDynamic dyn
>
> main = do
>  (s:_) <- getArgs
>  e <- evalString s
>  putStrLn $ maybe "oops" id e
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



-- 
Edward Amsden
Undergraduate
Computer Science
Rochester Institute of Technology
www.edwardamsden.com



More information about the Haskell-Cafe mailing list