By the way, this was with hs-plugins-1.0-rc1. I appear to be unable to install hs-plugins-0.9.10 now (perhaps because of 1.0-rc1). In case it helps this is the not so pretty output from doing a "make check" in 1.0rc1: === testing testsuite/conf/simple ... === testing testsuite/dynload/io ... === testing testsuite/dynload/poly ... === testing testsuite/dynload/should_fail ... === testing testsuite/dynload/should_fail_1 ... === testing testsuite/dynload/should_fail_2 ... === testing testsuite/dynload/should_fail_3 ... === testing testsuite/dynload/simple ... === testing testsuite/eval/eval1 ... === testing testsuite/eval/eval2 ... === testing testsuite/eval/eval3 ... === testing testsuite/eval/eval_ ... === testing testsuite/eval/eval_fn ... === testing testsuite/eval/eval_fn1 ... === testing testsuite/eval/foreign_eval ... ignored. === testing testsuite/eval/foreign_eval1 ... ignored. === testing testsuite/eval/foreign_should_fail ... ignored. === testing testsuite/eval/foreign_should_fail_illtyped ... ignored. === testing testsuite/eval/unsafeidir ... === testing testsuite/hier/hier1 ... === testing testsuite/hier/hier2 ... === testing testsuite/hier/hier3 ... === testing testsuite/hier/hier4 ... === testing testsuite/iface/null ... === testing testsuite/load/io ... === testing testsuite/load/load_0 ... === testing testsuite/load/loadpkg ... === testing testsuite/load/null ... === testing testsuite/load/thiemann0 ... === testing testsuite/load/thiemann2 ... === testing testsuite/load/unloadpkg ... === testing testsuite/loadCLib/null ... === testing testsuite/make/makeall001 ... === testing testsuite/make/null ... === testing testsuite/make/o ... === testing testsuite/make/odir ... === testing testsuite/make/remake001 ... === testing testsuite/make/remake001_should_fail ... === testing testsuite/make/simple ... === testing testsuite/makewith/global_pragma ... === testing testsuite/makewith/io ... === testing testsuite/makewith/merge00 ... === testing testsuite/makewith/mergeto0 ... === testing testsuite/makewith/module_name ... === testing testsuite/makewith/multi_make ... === testing testsuite/makewith/should_fail_0 ... === testing testsuite/makewith/tiny ... === testing testsuite/makewith/unsafeio ... === testing testsuite/misc/mkstemps ... === testing testsuite/multi/3plugins ... === testing testsuite/objc/expression_parser ... ignored. === testing testsuite/pdynload/badint ... === testing testsuite/pdynload/bayley1 ... === testing testsuite/pdynload/null ... === testing testsuite/pdynload/numclass ... === testing testsuite/pdynload/poly ... === testing testsuite/pdynload/poly1 ... === testing testsuite/pdynload/should_fail0 ... === testing testsuite/pdynload/should_fail1 ... === testing testsuite/pdynload/small ... === testing testsuite/pdynload/spj1 ... ignored. === testing testsuite/pdynload/spj2 ... === testing testsuite/pdynload/spj3 ... === testing testsuite/pdynload/spj4 ... === testing testsuite/pdynload/typealias ... === testing testsuite/pdynload/univquant ... === testing testsuite/pkgconf/null ... ignored. === testing testsuite/plugs/plugs ... failed with: / .___/_/\__,_/\__, /____/ Type :? for help /_/ /____/ -Loading package base ... linking ... plugs> plugs> done -453973694165307953197296969697410619233826 +Loading package base ... linking ... plugs> let fibs = 1 : 1 : zipWith (+) fibs (tail fibs) in fibs !! 200 +plugs: +unknown symbol `_base_GHCziList_znzn_closure' +done +plugs: user error (resolvedObjs failed.) + === testing testsuite/plugs/runplugs ... === testing testsuite/reload/null ... === testing testsuite/shell/shell ... ignored. === testing testsuite/shell/simple ... ignored. === testing testsuite/unload/null ... === testing testsuite/unload/sjwtrap ... === testing testsuite/unloadAll/null ... On 10/1/07, Björn Buckwalter <bjorn.buckwalter@gmail.com> wrote:
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