Skip to content

Internal error with runhaskell and System.Plugins.dynload

I've been trying to learn how to use the plugins package, specifically the dynload function. I ran some code and got the message below: (The "Loading" is from my program)

> runhaskell Main.hs
Loading
Main.hs: internal error: evacuate: strange closure type 894
    (GHC version 7.0.2 for i386_apple_darwin)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

I've copied the two relevant files below - Main.hs and Plug.hs. Before running Main.hs I compiled Plug.hs to Plug.o by running ghc -c Plug.hs. All files are in the same directory.

Main.hs:

-- Test dynamic loading

module Main (main) where

import System.Plugins
import Data.Dynamic

main :: IO ()
main = do
  putStrLn "Loading"
  mv <- dynload "Plug.o" [] [] "thing"
  putStrLn "Loaded"
  case mv of 
    LoadFailure msgs -> putStrLn "fail" >> print msgs
    LoadSuccess _ v -> putStrLn "success" >> print (v::Integer)

Plug.hs:

module Plug (thing) where 
import Data.Dynamic
thing :: Dynamic
thing = toDyn (1234000::Integer)
Trac metadata
Trac field Value
Version 7.0.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system Unknown/Multiple
Architecture Unknown/Multiple
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information