The plugins package

[Tags: bsd3, library]

Dynamic linking and runtime evaluation of Haskell, and C, including dependency chasing and package resolution.

Described in the papers: * Plugging Haskell In, http://www.cse.unsw.edu.au/~dons/papers/PSSC04.html * Dynamic Applications from the Ground Up, http://www.cse.unsw.edu.au/~dons/papers/SC05.html * Dynamic Extension of Typed Functional Languages.


[Skip to ReadMe]

Properties

Versions1.0, 1.1, 1.2, 1.3, 1.3.1, 1.4.0, 1.4.1, 1.5.1, 1.5.1.1, 1.5.1.2, 1.5.1.3, 1.5.1.4, 1.5.2.1, 1.5.2.2, 1.5.2.3, 1.5.3.0, 1.5.4.0
Change logNone available
Dependenciesarray, base (==4.*), Cabal (>=1.6), containers, directory, filepath, ghc (>=6.10), ghc-prim, haskell-src, process, random [details]
LicenseBSD3
AuthorDon Stewart 2004..2010
MaintainerDon Stewart <dons@galois.com>
CategorySystem
Home pagehttp://code.haskell.org/~dons/code/hs-plugins
UploadedMon Oct 18 18:13:16 UTC 2010 by DonaldStewart
Downloads4216 total (148 in last 30 days)
Votes
1 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for plugins-1.5.1.4

------------------------------------------------------------------------
                            hs-plugins
------------------------------------------------------------------------

Compiler and tool support for compiling and loading, and evaluating
Haskell at runtime. 

The library provides a convenient interface to GHC's runtime loader
and linker, letting you load compiled Haskell code. 

It also provides a `make' system for compiling plugin source
automagically and for combining the user's .hs file with a stub of
standard declarations and syntax, saving the user from having to write
standard code themselves.

It provides an `eval' function, for generating new, well-typed, compiled
code from a Haskell source string.

It also provides a new variation of printf for Haskell-- a runtime
generated, dynamically-typed printf.

Read the documentation in doc/ for more.

------------------------------------------------------------------------

BUILDING:
        $ chmod +x Setup.lhs configure
        $ ./Setup.lhs configure --prefix=/usr/local
        $ ./Setup.lhs build
        $ ./Setup.lhs install

------------------------------------------------------------------------

DEPENDENCIES:

* Requires GHC >= 6.4
* Requires Cabal

------------------------------------------------------------------------

* Optional:
   If you are doing a lot of `merge'-related operations, and require
   an extended haskell parser, you can compile hs-plugins to use 
   HSX, Niklas Broberg's Haskell parser library, available at:

    darcs get http://www.cs.chalmers.se/~d00nibro/haskell-src-exts

   To get hs-plugins to use HSX, use: 

        $ mv plugins.cabal.hsx plugins.cabal
        $ ./Setup.lhs configure --enable-hsx

   Make sure to install HSX first though :)

------------------------------------------------------------------------

* On cygwin/windows you (a) make sure the cygwin "find" is before the
  windows "find" on your PATH, and (b) to give the windows-style path
  (e.g., "c:/cygwin/usr/local") in the ./configure --prefix=foo/bar
  step

* 'plugs' requires a working readline library.

* If you wish to use TH in plugins, or to run load()-programs in GHCi,
  you require a patch to GHC's linker, that was committed into ghc
  6.3, and ghc 6.2 -stable branch, and is available from 6.2.2 onwards.

* If you need to regenerate ./configure you need >= autoreconf-2.53

* The documentation relies on haddock, latex, dvips, tex2page:

        $ cd doc && make

------------------------------------------------------------------------

EXAMPLES:

Have a look in the testsuite/ directory for many examples of how to
arrange your code.

LICENSE:

This library is distributed under the terms of the LGPL. The runtime
loader code is based on code written by Andr�Pang, and others, and is
distributed under the BSD-style Glasgow University license.

PORTABILITY:

Requires GHC 6.4 or greater, though most testing has be done on 6.4.
The dynamic loader requires a functional GHCi implementation.

---------------------+--------------------------------------------------
  Platform           |  Works   Should work*    Unknown    Won't work
---------------------+--------------------------------------------------
i386-*-linux         |    X
i386-*-freebsd       |    X
i386-*-openbsd       |    X           
powerpc-apple-darwin |    X            
powerpc-*-linux      |    X            
sparc-*-solaris2     |    X            
ia64-*-linux         |    #
i386-*-solaris2      |                X
sparc-*-linux        |                X
sparc-*-openbsd      |                X
i386-*-netbsd        |                              X 
amd64-*-openbsd      |                              X
mips64-sgi-irix      |                                         X
---------------------+--------------------------------------------------

# .hi file parsing is currently broken