2 ######## # # ######### ########## ##########
6 ## # ######### # ## # #
9 horde: a forth written in haskell
11 1 - intro: what is horde?
16 2.2.2 - development version
17 2.2.3 - stable version
19 2.2.5 - debug builds, profiling, etc..
24 5 - development, bugs, contact, etc.
29 ========================================
30 | 1 - intro: what is horde? |
31 ========================================
32 horde is a Forth implementation written in the purely functional language,
33 Haskell. it is designed to be a fully compliant ANS Forth implementation in
34 the same kin as gforth, while also optionally embeddable as a haskell library.
40 ========================================
42 ========================================
43 there are two modes for installing horde: from binaries and from source code
47 ----------------------------------------
49 ----------------------------------------
50 binary packages of horde are currently not yet available for microsoft windows
55 ----------------------------------------
57 ----------------------------------------
58 if you wish to install horde from source, simply follow the below
61 ++++++++++++++++++++++++++++++++++++++++++
62 + 2.2.1 - prerequisites +
63 ++++++++++++++++++++++++++++++++++++++++++
65 * the glasgow haskell compiler
66 http://haskell.org/ghc (v6.6.x or v6.8.1 will suffice)
67 * cabal >= 1.2 installed for the compiler (comes with ghc 6.8.1)
68 http://haskell.org/cabal/
69 * the haskell harpy library >= 0.2
70 http://hackage.haskell.org/cgi-bin/hackage-scripts/package/harpy
73 ++++++++++++++++++++++++++++++++++++++++++
74 + 2.2.2 - stable version +
75 ++++++++++++++++++++++++++++++++++++++++++
76 (this is the recommended version to grab if you wish to use it and
79 you may download tarballs of horde from here:
80 http://hackage.haskell.org/cgi-bin/hackage-scripts/package/horde
83 ++++++++++++++++++++++++++++++++++++++++++
84 + 2.2.3 - development version +
85 ++++++++++++++++++++++++++++++++++++++++++
86 if you wish to get the development version of horde, run:
88 $ git clone git://repo.or.gz/horde.git
90 note: this is only recommended for people interested in hacking on
91 horde; there's no guarantee it will work properly or even build in whatever
95 ++++++++++++++++++++++++++++++++++++++++++
97 ++++++++++++++++++++++++++++++++++++++++++
98 after you have gotten the source to horde, building it is easy and
99 can be done in a few steps.
101 $ runghc Setup.lhs configure --prefix=$HOME
103 this will configure horde to do a local installation with the
104 root set to your $HOME. if you wish to do a global install, you may
105 omit the --prefix flag.
106 NOTE: if you are using ghc 6.6, and do not have the split up base
107 package installed (which you probably don't,) be SURE to configure
110 $ runghc Setup.lhs configure -fold-base
112 ghc 6.8 did a massive package split of the base libraries,
113 and without this flag, you will get plenty of 'unsatisified
116 after configuring, installing can be done in two steps:
118 $ runghc Setup.lhs build
119 $ runghc Setup.lhs install --user
121 if you did not configure horde with the --prefix flag in the configure
122 step, the --user in the install step may be omitted.
125 horde is now installed!
128 ++++++++++++++++++++++++++++++++++++++++++
129 + 2.2.5 - debug builds, profiling, etc.. +
130 ++++++++++++++++++++++++++++++++++++++++++
131 if you're a developer and hacking on horde, you should know that when
132 building from source, by providing certain flags to the configuration
135 * debugging msgs, etc -- pass -fdebug to the configure step
136 * profiling -- pass -fprof to the configure step
137 * code coverage -- pass -fcoverage to the configure step
138 * all above -- pass -fdebug-all to the configure step
140 it's encouraged you turn these options on while developing. by providing
141 none of them, horde does a 'release build' which is basically none of
142 this plus optimizations turned on.
144 note, in order to compile with profiling, you will need a profiled version
145 of harpy available, which can be done by configuring it with the flag
146 '--enable-library-profiling' and building.
152 ========================================
154 ========================================
155 you have two options when using horde: simply as a
156 standalone, Forth interpreter, or as an embedded language
157 in Haskell as a library.
161 ----------------------------------------
163 ----------------------------------------
167 ----------------------------------------
168 | 3.2 - as a library |
169 ----------------------------------------
175 ========================================
176 | 4 - documentation |
177 ========================================
178 in order to build documentation for horde as a library, you may run:
180 $ runghc Setup.lhs configure
181 $ runghc Setup.lhs haddock
183 this will require you to have the haskell documentation tool, haddock, installed.
184 see http://haskell.org/haddock/
190 =========================================
191 | 5 - development, bugs, contact, etc. |
192 =========================================
193 horde uses the git content tracker for source control. patches from anybody
194 wishing to contribute my be sent using `git-format-patch' from the git repository to:
197 austin at youareinferior dot net
199 mad dot one at gmail dot com
202 feature additions, optimizations (to the compiler, executable, forth libs,
203 etc) and bug fixes are all tremendously welcome.
204 if you wish to be added as a horde developer, give me a ring at one of the
205 above addresses so I may add you to the project as a user on http://repo.or.cz
207 also, as a side note, the horde project hosted on repo.or.cz will also have
208 the mob user available. this will allow anybody to commit to the project's mob
209 branch, allowing collaberation (i.e. wikipedia) without necessarily being added
210 as an actual user. for more info, please see http://repo.or.cz/mob.html and
211 follow the instructions there.
212 DISCLAIMER: i do not take any responsibility for any code in that branch, what it will do,
213 or what state it is in. if it fires the missles, don't blame me.
216 questions may also be sent to the above address[es].
218 otherwise, happy hacking and thinking forth!