summaryrefslogtreecommitdiff
path: root/src/runtime/haskell-bind
AgeCommit message (Collapse)Author
2015-01-20PGF2: introduced some type synonyms to make type signature more readablehallgren
2014-12-29API for word alignment in the C runtime and in the Haskell bindingkr.angelov
2014-12-19bugfix and tiny optimization for callbacks from Haskellkr.angelov
2014-12-19haddock comments for parseWithHeuristicskr.angelov
2014-12-19added mkStr to the Haskell bindingkr.angelov
2014-12-19added mkApp to the Haskell bindingkr.angelov
2014-12-16fix in the Haskell bindingkr.angelov
2014-12-16forgot to export parseWithHeuristics from Haskellkr.angelov
2014-12-16change in the API for literalskr.angelov
The API in the C runtime as well as in the Haskell, Python and Java binding is changed. Now instead of adding the literal callbacks to the concrete syntax you need to supply them every time when you need to parse. The main reason is: - referentially transparent API for Haskell - when we start using memory mapped files we will not be allowed to change anything in the grammar data structures. At that point the old API would be impossible to use.
2014-10-09throw away the long obsolete runtime type information in the C runtimekr.angelov
2014-09-22haskell-bind/PGF2.hsc: unexport functions that break referential transparencyhallgren
loadConcr, unloadConcr and addLiteral modify the Concr structure as a side effect. This means that other functions with a Concr argument (e.g. parse and linearize) are no longer pure. Possible solutions: 1. Don't try to hide the imperative nature of the C run-time system: remove all uses of unsafePerformIO and let all functions operate in the IO monad. 2. Don't export functions with side effects. Perhaps the desired functionality of loadConcr, unloadConcr and addLiteral can be folded into readPGF. The Concr structures can then treaded as immutable after after the readPGF function returns...
2014-09-10now release the FunPtr:s that are allocated for each literal callbackkr.angelov
2014-09-10added an API for custom literals in the Haskell bindingkr.angelov
2014-09-10added loadConcr/unloadConcr to the Haskell binding. This exposes an API for ↵kr.angelov
loading grammars compiled with -split-pgf
2014-06-16fixed memory leak in the Haskell binding to the C runtimekr.angelov
2014-06-12PGF library: expose only PGF and PGF.Internal instead of all moduleshallgren
PGF exports the public, stable API. PGF.Internal exports additional things needed in the GF compiler & shell, including the nonstardard version of Data.Binary.
2014-06-10PGF2.hsc: use throwIO instead of throwhallgren
From the documentation: the throwIO variant should be used in preference to throw to raise an exception within the IO monad because it guarantees ordering with respect to other IO operations, whereas throw does not. Also removed some unused imports.
2014-05-13Haskell binding: free memory pool to avoid space leak when readPGF failshallgren
2014-05-08fix memory leak in the Haskell bindingkr.angelov
2014-05-07pgf-shell.hs: fix compilation problem with GHC 7.4hallgren
2014-05-07Two improvements in the pgf-shell examplehallgren
1. Like pgf-translate, it now shows one result at a time, press Enter to get more results. 2. You can load a new grammar with the command 'i <path-to-pgf>'
2014-04-04fix the haskell binding to handle parse errorskr.angelov
2014-03-12haskell-bind: comment out superfluous importshallgren
2014-02-10Restore compatibility with GHC 7.0hallgren
2014-02-10proper error checking in the C runtimekr.angelov
2014-02-10haskell-bind: fix broken pgf-shellhallgren
The type CId was replaced with String, so can't use show and read anymore.
2014-02-10bugfix in pgf2-bind.cabalkr.angelov
2014-02-09updated haskell-bind/READMEkr.angelov
2014-02-09cleanup the code for the FFI binding. The API is now more uniform with the ↵kr.angelov
Python and the Java bindings. Fixed a lot of memory leaks.
2014-02-07pgf-shell: show the names of the concrete syntaxes after loading the grammarhallgren
2014-02-07haskell-bind: add function languagesinari
2014-02-07pgf-shell: enable -rtsopts, call performGC between commandshallgren
This is to make it easier to find the cause of space leaks.
2014-02-06fixed some memory leaksinari
2014-01-29changes to pools in haskell bindingsinari
2014-01-20Optionally include C run-time supporthallgren
If the C run-time library is compiled and installed on your system, you can now do 'cabal configure -fc-runtime' to get the following extras: + The haskell binding to the C run-time library will be included in the PGF library (so you can import it in Haskell applications). Documentation on the new modules will be included when you run 'cabal haddock'. + The new command 'pgf-shell', implemented on top of haskell binding to the C run-time system. + Three new commands in the web API: c-parse, c-linearize and c-translate. Their interfaces are similar to the corresponding commands without the "c-" prefix, but they should be considered preliminary.
2014-01-20haskell-bind: add an export list to hide internal stuffhallgren
It also makes the generated haddock documentaiton more structured.
2014-01-17haskell-bind.cabal: relax overly restrictive version bounds and add cc-optionshallgren
2014-01-17haskell-bind: add a cabal file and examples/pgf-shell.hshallgren
* The haskell-bind.cabal file makes it easy to build the haskell binding and use it in ghci. * pgf-shell.hs is a simple example of how to use the haskell binding.
2014-01-17haskell-bind: change the type of CRuntimeFFI.getConcrhallgren
Change the type of getConcr from getConcr :: PGF -> Language -> Concr to getConcr :: PGF -> Language -> Maybe Concr This is to prevent programs from crashing later if you try to select a concrete syntax that is not present in a grammar.
2013-12-10move src/runtime/haskell/CRuntimeFFI to src/runtime/haskell-bind. Don't mess ↵kr.angelov
up with the stable Haskell runtime!