Git Product home page Git Product logo

plugins's Introduction

------------------------------------------------------------------------
                            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

plugins's People

Contributors

alsonkemp avatar benyafallenstein avatar bgamari avatar bringert avatar cgibbard avatar donsbot avatar franklinchen avatar georgevdd avatar igfoo avatar lemmih avatar mchakravarty avatar mokus0 avatar samb avatar spencerjanssen avatar stepcut avatar thjaeger avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.