Commit Graph

621 Commits

Author SHA1 Message Date
kr.angelov
4b8c1db6d2 bugfix in the recognizer for literals in the C runtime 2014-02-05 20:13:52 +00:00
hallgren
abfd4b9c96 PGF.Optimize: one more fix for unsafeFreeze 2014-02-04 13:47:37 +00:00
hallgren
8a5ade8897 PGF.Optimize: import unsafeFreeze from Data.Array.Unsafe for compatibility with ghc-7.8 2014-02-04 13:44:07 +00:00
kr.angelov
f7b978f063 fix in the bracketedLinearize in Haskell 2014-01-31 08:52:32 +00:00
inari
bdf297d0b1 changes to pools in haskell bindings 2014-01-29 16:02:07 +00:00
kr.angelov
fbc8bb6769 fix in the Haskell runtime 2014-01-24 08:34:55 +00:00
hallgren
b8f3914209 Optionally include C run-time support
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-20 17:06:11 +00:00
hallgren
1631a46040 haskell-bind: add an export list to hide internal stuff
It also makes the generated haddock documentaiton more structured.
2014-01-20 14:40:38 +00:00
hallgren
29d1b58ff5 haskell-bind.cabal: relax overly restrictive version bounds and add cc-options 2014-01-17 14:18:20 +00:00
hallgren
4226be69e8 haskell-bind: add a cabal file and examples/pgf-shell.hs
* 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-17 14:02:35 +00:00
hallgren
33024f3130 haskell-bind: change the type of CRuntimeFFI.getConcr
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.
2014-01-17 13:58:48 +00:00
kr.angelov
ac835fe3b0 make sure that pgf_concrete_load has no effect on grammars that are completely loaded 2013-12-17 13:57:16 +00:00
hallgren
d90657f1f1 Add backward compatibility for reading old PGF files
Some backwards incompatible changes were made to the PGF file format after
the release of GF 3.5. This patch adds a module for reading PGF files in the
old format.

This means that old PGF files on the grammaticalframework.org server will
continue to work after we install the latest version of GF.
2013-12-17 13:27:37 +00:00
kr.angelov
e4246d090c move src/runtime/haskell/CRuntimeFFI to src/runtime/haskell-bind. Don't mess up with the stable Haskell runtime! 2013-12-10 16:11:47 +00:00
kr.angelov
87527c5f04 load/unload in the Java binding 2013-12-10 16:06:34 +00:00
inari
4b2d56d56c Haskell bindings for the C runtime
Added Haskell bindings for the C runtime. Work in progress, the files are not (and should not be) included in makefiles or anything.
2013-12-10 15:27:28 +00:00
kr.angelov
6028a63b42 loading and unloading of languages in the C runtime and in the Python bindings 2013-12-10 15:00:52 +00:00
kr.angelov
0f352ba1d5 bugfix in the grammar splitter 2013-12-10 12:31:40 +00:00
kr.angelov
faed1348b1 option --split-pgf replaces option --mk-index. This splits the PGF into one file for the abstract and one more for each concrete syntax. This is a preparation for being able to load only specific languages from the whole grammar. 2013-12-10 10:43:13 +00:00
kr.angelov
d7f3aab994 -optimize-pgf should also apply to the linrefs 2013-11-29 14:25:23 +00:00
kr.angelov
9de4812482 better dictionary visualization in the Android App 2013-11-27 22:16:05 +00:00
kr.angelov
3509a8d4cc added API in the C runtime and the Java binding for checking whether a given function is linearizable in a given language. This is used in the Android UI for better vizualizations 2013-11-27 12:35:11 +00:00
kr.angelov
e68067a83c update the project files for the Java binding 2013-11-27 12:34:33 +00:00
kr.angelov
085808513d space leak in the Java binding 2013-11-27 12:34:06 +00:00
hallgren
a617e50d95 Represent identifiers as UTF-8-encoded ByteStrings
This was a fairly simple change thanks to previous work on making the Ident
type abstract and the fact that PGF.CId already uses UTF-8-encoded
ByteStrings.

One potential pitfall is that Data.ByteString.UTF8 uses the same type for
ByteStrings as Data.ByteString. I renamed ident2bs to ident2utf8 and
bsCId to utf8CId, to make it clearer that they work with UTF-8-encoded
ByteStrings.

Since both the compiler input and identifiers are now UTF-8-encoded
ByteStrings, the lexer now creates identifiers without copying any characters.
**END OF DESCRIPTION***

Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.


This patch contains the following changes:

M ./src/compiler/GF/Compile/CheckGrammar.hs -3 +3
M ./src/compiler/GF/Compile/GrammarToPGF.hs -2 +2
M ./src/compiler/GF/Grammar/Binary.hs -5 +1
M ./src/compiler/GF/Grammar/Lexer.x -11 +13
M ./src/compiler/GF/Infra/Ident.hs -19 +36
M ./src/runtime/haskell/PGF.hs -1 +1
M ./src/runtime/haskell/PGF/CId.hs -2 +3
2013-11-26 16:12:03 +00:00
kr.angelov
4254b101f4 the GF syntax for identifiers is exteded with quoted forms, i.e. you could write for instance 'ab.c' and then everything between the quites is identifier. This includes Unicode characters and non-ASCII symbols. This is useful for automatically generated GF grammars. 2013-11-22 13:30:18 +00:00
kr.angelov
cddc19a5ad bugfix in the debug mode for the parser 2013-11-22 12:26:49 +00:00
kr.angelov
e77c19c783 bugfix in the C runtime 2013-11-21 14:31:28 +00:00
kr.angelov
85e238f824 the Java binding for lookupMorpho should release the local references created in a loop 2013-11-21 14:29:47 +00:00
kr.angelov
b255f19b63 fix in the Python binding 2013-11-20 09:54:37 +00:00
kr.angelov
33a76f1cd5 bugfix in the robust parser 2013-11-18 09:05:27 +00:00
kr.angelov
2dd04b2b2f add gu_buf_insert in libgu 2013-11-18 09:05:09 +00:00
kr.angelov
fb8de0e8ea fixes in the C runtime to avoid warnings when compiling on MacOS 2013-11-15 10:03:22 +00:00
kr.angelov
684a3b8df5 pgf_read should open the grammar file in binary mode to prevent the Windows runtime from messing up the content. 2013-11-15 09:04:00 +00:00
kr.angelov
254aba33a1 pgf_reader_done should do nothing if the reading has failed 2013-11-15 08:59:18 +00:00
kr.angelov
d7dfa01bb0 add additional options for compiling the Java binding on Windows (suggested by Normunds) 2013-11-15 07:48:02 +00:00
kr.angelov
63a90f34af bugfix in the C runtime which had made the parser up to 200 times slower for some sentences 2013-11-13 15:15:28 +00:00
kr.angelov
1d7b6f44b6 added Predef.SOFT_BIND. This special token allows zero or more spaces between ordinary tokens. It is also used in the English RGL to attach the commas to the previous word. 2013-11-12 09:54:57 +00:00
kr.angelov
6729cca568 factor of 3 speedup for the translation without slowing down the grammar loading. The parser still seems to be 8 times slower than before I introduced the BIND. At least the Android UI now feels a lot more comfortable 2013-11-07 11:14:32 +00:00
kr.angelov
03e7c287fd bugfix in the binary search implementation in libgu 2013-11-07 11:13:47 +00:00
kr.angelov
ceb156b93b remove redundant type signature in gu/seq.h 2013-11-07 09:47:07 +00:00
kr.angelov
fe41356a9d fix for the memory allocation in the jitter which should work for Windows. 2013-11-07 08:47:35 +00:00
kr.angelov
cbfa65c7ae the 'Release' configuration in Eclipse is renamed to 'Release (posix)'. In addition now there is 'Release (mingw)' for Windows. 2013-11-07 08:36:17 +00:00
kr.angelov
4265a31003 added #ifdef to detect MinGW in the Java binding and to import the right header for alloca 2013-11-07 08:08:41 +00:00
kr.angelov
6c71830c10 fix in the parsing with pre 2013-11-06 16:25:25 +00:00
kr.angelov
5739785c77 bugfix in the Java binding 2013-11-06 14:41:42 +00:00
hallgren
06453afb1c Remove PGF.Signature
This module should not be part of the public PGF library API, and it was only
used in GF.CompileToAPI, so the code was moved there. The module defined
constFuncs and syntaxFuncs, but only syntaxFuncs was used.
2013-11-06 13:27:29 +00:00
kr.angelov
475f213c99 the content of ParseEngAbs3.probs is now merged with ParseEngAbs.probs. The later is now retrained. Once the grammar is compiled with the .probs file now it doesn't need anything more to do robust parsing. The robustness itself is controlled by the flags 'heuristic_search_factor', 'meta_prob' and 'meta_token_prob' in ParseEngAbs.gf 2013-11-06 10:21:46 +00:00
kr.angelov
d094d671bd when printing floating literals use %lg instead of %lf for better output 2013-11-06 09:46:29 +00:00
aarne
6bc1baa7f7 linearization by chunks in the GF shell: a new command 'lc' needed because 'l' requires type checking and trees with metavariable function heads don't type check. This will hopefully be a temporary command. 2013-11-05 17:28:47 +00:00