Up on that, anybody already tried to load an haskell interpreter in a QuasiQuoter?
On Sat, Feb 23, 2013 at 12:03 AM, Corentin Dupont <corentin.dup...@gmail.com > wrote: > I'm trying to load my interpreter in the Q monad: > > cr :: QuasiQuoter > cr = QuasiQuoter { quoteExp = quoteRuleFunc} > > quoteRuleFunc :: String -> Q TH.Exp > quoteRuleFunc s = do > res <- runIO $ runInterpreter $ do > setImports ["Prelude", "Language.Nomyx.Rule", > "Language.Nomyx.Expression", "Language.Nomyx.Test", > "Language.Nomyx.Examples", "GHC.Base", "Data.Maybe"] > interpret s (as :: RuleFunc) > case res of > Right _ -> [| s |] > Left e -> fail $ show e > > > However, I always obtain an error durring compilation: > > ... > Loading package XXX ... linking ... done. > > > GHCi runtime linker: fatal error: I found a duplicate definition for symbol > __stginit_ghczm7zi4zi1_DsMeta > whilst processing object file > /usr/lib/ghc/ghc-7.4.1/libHSghc-7.4.1.a > This could be caused by: > * Loading two different object files which export the same symbol > * Specifying the same object file twice on the GHCi command line > * An incorrect `package.conf' entry, causing some object to be > loaded twice. > GHCi cannot safely continue in this situation. Exiting now. Sorry. > > > I vaguely understand that the interpreted modules are conflicting with the > compiled ones... > > > > On Fri, Feb 22, 2013 at 11:51 PM, Corentin Dupont < > corentin.dup...@gmail.com> wrote: > >> Great! That seems very powerful. So you can do what you want during >> compilation, readin files, send data over the network? >> Other question, in my example how can I halt the compilation if a test >> program is wrong? >> >> >> On Fri, Feb 22, 2013 at 8:30 PM, Francesco Mazzoli <f...@mazzo.li> wrote: >> >>> At Fri, 22 Feb 2013 19:43:51 +0100, >>> Corentin Dupont wrote: >>> > Hi Adam, >>> > that looks interresting. I'm totally new to TH and QuasiQuotes, though. >>> > Can I run IO in a QuasiQuoter? I can run my own interpreter. >>> >>> Yes, you can: >>> < >>> http://hackage.haskell.org/packages/archive/template-haskell/2.8.0.0/doc/html/Language-Haskell-TH.html#v:runIO >>> >. >>> >>> Francesco >>> >> >> >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe