summaryrefslogtreecommitdiff
path: root/src/runtime/haskell-bind
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/haskell-bind')
-rw-r--r--src/runtime/haskell-bind/README30
1 files changed, 12 insertions, 18 deletions
diff --git a/src/runtime/haskell-bind/README b/src/runtime/haskell-bind/README
index 64b6b7276..4782c2d37 100644
--- a/src/runtime/haskell-bind/README
+++ b/src/runtime/haskell-bind/README
@@ -1,32 +1,26 @@
-This is a work in progress, but usable as it is now.
-Some memory leaks and segfaults to be expected.
+This is a binding to the new GF runtime in C.
+The files are:
-The files are
-
-CRuntimeFFI.hsc -- user-friendly functions, almost the same as in the real Haskell PGF library.
-Gu.hsc -- mindlessly copypasted functions from various files in gu/
-PgfLow.hs -- mindlessly copypasted functions from various files in pgf/
-
-The first two files (.hsc) use some special constructions for accessing C objects from Haskell.
-See the syntax here: http://www.haskell.org/ghc/docs/7.2.1/html/users_guide/hsc2hs.html
+PGF2.hsc -- a user API similar to Python and Java APIs
+PGF2/FFI.hs -- an internal module with FFI definitions for
+ -- the relevant C functions
HOW TO COMPILE:
-hsc2hs Gu.hsc CRuntimeFFI.hsc -v --cflag="-std=c99" && ghc -lpgf -lgu --make CRuntimeFFI
+cabal install
HOW TO USE:
-- Symlink or copy the files in this directory to the directory you're working with; these files are not included in any makefiles
-- Import CRuntimeFFI to a Haskell program you're writing
+- Import PGF to the Haskell program that you're writing.
+ The Cabal infrastructure will make sure to tell the compiler
+ where to find the relevant modules. Example:
module Main where
- import CRuntimeFFI
-- Use the functions in your program
+ import PGF2
+ import qualified Data.Map as Map
main = do
pgf <- readPGF "Foo.pgf"
- let english = getConcr pgf (mkCId ("FooEng"))
-
-I haven't managed to make it work in ghci, get errors about unknown symbols (low level C functions).
+ let Just english = Map.lookup "FooEng" (languages pgf)