
Dear all, I'm getting a rather unfriendly error when trying to load a plugin with hs-plugins: my_program: Ix{Int}.index: Index (65536) out of range ((0,7)) The exact numbers in the message vary depending on what I'm trying to do. I'm using GHC-6.6.1 on MacOS X. Here are three files that exhibit the behaviour for me: API.lhs =======
module API where data Config = Config { param :: String }
Main.lhs ========
module Main where import System (getArgs) import System.Plugins import API
getConfig :: [String] -> IO Config getConfig [file] = do status <- make file [] obj <- case status of MakeSuccess _ o -> return o MakeFailure es -> mapM_ putStrLn es >> error "make failed" putStrLn $ "### loading " ++ file m_v <- load_ obj ["."] "config" putStrLn $ "### checking " ++ file val <- case m_v of LoadSuccess _ v -> return v LoadFailure es -> mapM_ putStrLn es >> error "load failed" return val
main = getArgs >>= getConfig >>= putStrLn . param
CustomConfig.hs ===============
module CustomConfig where import API config = Config { param = "Doomed to fail!" }
I compile the above with "ghc --make -o my_program PluginTest.lhs" and execute with "./my_program CustomConfig.lhs". Any hints welcome. Thanks, Bjorn Buckwalter