[Haskell] Dynamic Loading?

Donald Bruce Stewart dons at cse.unsw.edu.au
Sun Mar 20 19:42:31 EST 2005


ashley:
> Is it possible to do dynamic loading in Haskell?
> 
> Let us say you want to have plug-in loadable widgets. You create a 
> widget API, which is in fact a data-type W (which you make an instance 
> of Typeable). You then write an application that loads widgets, using 
> something like this:
> 
>   loadDynamic :: FilePath -> IO Dynamic
> 
> Someone else could then use your widget API to write code that provides 
> a value of type W (or a Dynamic), and compile and link it as a widget 
> that can then be loaded.
> 
> Is this possible?

You want hs-plugins :)

It provides load functions of various flavours, including one similar to
the above:
   dynload :: Typeable a
        => FilePath
        -> [FilePath]
        -> [PackageConf]
        -> Symbol
        -> IO (LoadStatus a)
 
(The type is a little more complex due to the need to interact with the module
and package system). 

dynload() unwraps and checks the Dynamic for you. If you want to do this
manually, a straight load() will work.

    http://www.cse.unsw.edu.au/~dons/hs-plugins

Cheers, 
   Don


More information about the Haskell mailing list