-
Notifications
You must be signed in to change notification settings - Fork 17
/
README
112 lines (78 loc) · 3.83 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
NOTE: This README is now very out of date.
------------------------------------------------------------------------
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