Commit Graph

573 Commits

Author SHA1 Message Date
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
hallgren
decd7122de Eliminate mutual dependencies between the GF compiler and the PGF library
+ References to modules under src/compiler have been eliminated from the PGF
  library (under src/runtime/haskell). Only two functions had to be moved (from
  GF.Data.Utilities to PGF.Utilities) to make this possible, other apparent
  dependencies turned out to be vacuous.

+ In gf.cabal, the GF executable no longer directly depends on the PGF library
  source directory, but only on the exposed library modules. This means that
  there is less duplication in gf.cabal and that the 30 modules in the
  PGF library will no longer be compiled twice while building GF.

  To make this possible, additional PGF library modules have been exposed, even
  though they should probably be considered for internal use only. They could
  be collected in a PGF.Internal module, or marked as "unstable", to make
  this explicit.

+ Also, by using the -fwarn-unused-imports flag, ~220 redundant imports were
  found and removed, reducing the total number of imports by ~15%.
2013-11-05 13:11:10 +00:00
kr.angelov
d2186b71e3 fix the debug mode of the JIT compiler after the refactoring in libgu 2013-11-04 19:33:29 +00:00
kr.angelov
81ef6714db A simple type checker in the C runtime. Dependent types are not supported yet but HOAS is implemented. The API is accessible from Python as well 2013-11-04 17:10:46 +00:00
kr.angelov
5683367818 bug fix in the linearizer 2013-11-04 12:40:53 +00:00
kr.angelov
0cb3245e26 linearization for HOAS trees. It should word but we need a type checker in order to test it properly 2013-11-02 12:34:00 +00:00
kr.angelov
b9cf05073f remove the include of lexer.h from pgf-parse 2013-11-02 11:28:55 +00:00
kr.angelov
58b20a7e2e fix the parseval metric after the redesign in the C runtime 2013-11-01 17:36:22 +00:00
kr.angelov
72e0c89abe bugfix in the linearizer 2013-11-01 17:26:35 +00:00
kr.angelov
330e33a386 make gu_exn_is_raised non inlined. this is useful to make it callable from Haskell 2013-11-01 16:38:16 +00:00
kr.angelov
d7cd5ba195 fix the robust parser for unknown tokens 2013-11-01 13:05:17 +00:00
kr.angelov
ffa143f1d2 bugfix in linearizer.c 2013-11-01 11:02:12 +00:00
kr.angelov
b05f61e6c6 remove the include to mman.h in jit.c since it doesn't seem to be used 2013-11-01 07:46:24 +00:00
hallgren
d7300ba9fb Add a cabal flag to use the standard binary package
The standard binary package has improved efficiency and error handling [1], so
in the long run we should consider switching to it. At the moment, using it is
possible but not recommended, since it results in incomatible PGF files.

The modified modules from the binary package have been moved from
src/runtime/haskell to src/binary.

[1] http://lennartkolmodin.blogspot.se/2013/03/binary-07.html
2013-10-31 15:43:12 +00:00
kr.angelov
90cc7b8379 fixed utf-8 decoding problem in libgu 2013-10-31 13:20:12 +00:00
kr.angelov
8f565302cc bracketedLinearize in Python is now using the linref 2013-10-31 09:04:07 +00:00
kr.angelov
8019d3a615 use linref in the C linearizer. The robust linearization is now fully supported 2013-10-30 21:43:52 +00:00
kr.angelov
68b40ff0a8 fix the debug mode in the linearizer after the refactoring in libgu 2013-10-30 21:06:55 +00:00
kr.angelov
620e880155 linref is now used by the linearizer. The visible change is that the 'l' command in the shell now can linearize discontinuous phrases 2013-10-30 14:42:29 +00:00
kr.angelov
43fb9b3b7a added the linref construction in GF. The PGF version number is now bumped 2013-10-30 12:53:36 +00:00
kr.angelov
56893dbf54 another fix for 'pre' 2013-10-28 13:54:06 +00:00
kr.angelov
841880144d fix the handling of 'pre' in the C runtime 2013-10-28 12:35:37 +00:00
kr.angelov
fad9947aab bugfix in gu/seq.h 2013-10-28 08:58:36 +00:00
hallgren
ad0e67530b Functions merge trees into tries in the GF Shell and the PGF web service
* In the shell, the new command tt (to_trie) merges a list of trees into a
  trie and prints it in a readable way, where unique subtrees are marked with
  a "*" and alternative subtrees are marked with numbers.
* In the PGF web service, adding the parameter trie=yes to the parse and
  translate commands augments the JSON output with a trie.

Example to try in the shell:

	Phrasebook> p -lang=Eng "your son waits for you" | tt
2013-10-24 17:29:02 +00:00
kr.angelov
c98a9a3266 tabular linearization in the C and Java runtimes 2013-10-23 14:49:28 +00:00
kr.angelov
cf05e78712 clumsy fix for nonExist in pgf-translate 2013-10-21 12:35:34 +00:00
kr.angelov
e3dc98dd0f bugfix for the custom literals in the C runtime 2013-10-21 12:34:57 +00:00
kr.angelov
8103703858 fix the grammar serialization for nonExist and BIND 2013-10-21 10:03:43 +00:00
kr.angelov
3f3c5d968a make MorphoAnalysis serializable 2013-10-11 08:10:58 +00:00
kr.angelov
7b1db5d36e readExpr in the Java binding 2013-10-11 08:10:04 +00:00
kr.angelov
76014aa2cc added lookupMorpho in the Java binding 2013-10-09 19:39:50 +00:00
kr.angelov
835a15a343 fix in the Java binding 2013-10-09 19:37:57 +00:00
kr.angelov
82544f74c0 avoid warning in parser.c when debugging is OFF 2013-10-09 13:41:02 +00:00
kr.angelov
b058fdd17d a major redesign in the C runtime. The parser and the linearizer now fully support BIND. The following things are still broken: parseval, word completion, handling 'pre', the robust mode 2013-10-09 12:08:51 +00:00
kr.angelov
eff9a3011c added gu_is_space in gu/utf8.h. this helps to avoid the dependency on the broken unicode library for C. 2013-10-09 08:37:42 +00:00
kr.angelov
adc952a61d fix the robust parser after the change of GuString 2013-10-08 15:00:42 +00:00
kr.angelov
527ea8fc5c bugfix in GNU lightning for ARM 2013-10-08 13:33:18 +00:00
kr.angelov
f6b708ecab fix the grammar printer after the change of GuString in libgu 2013-10-07 09:46:35 +00:00
kr.angelov
0d9d926131 fixes in the Java binding after the refactoring of GuString 2013-10-04 19:53:19 +00:00
kr.angelov
747590b86d suppress warning in graphviz.c 2013-10-04 12:56:45 +00:00
kr.angelov
2f78333e28 GuString is now an ordinary C string - it makes live easier. In addition PgfSymbolKS, PgfExprFun and PgfLiteralStr now keep their strings as embedded flexible arrays. The latest change gives us the same compactness as the old representation but it is a lot easier to use. 2013-10-04 12:04:39 +00:00
kr.angelov
96399838b7 space leak in the Java binding 2013-10-03 21:00:45 +00:00
kr.angelov
357ddfb5d3 the symbol for nonExist in the GF runtime should be the last. this simplifies the binary search in the C runtime 2013-10-03 08:21:31 +00:00
kr.angelov
573654e125 fix the bracketed linearization in Python after the introduction of nonExist and BIND 2013-09-30 11:49:51 +00:00
kr.angelov
cedf848b5d fix the graphviz visualization after the introduction of nonExist and BIND 2013-09-30 10:38:28 +00:00
kr.angelov
c4f68adca9 better handling for nonExist in the C runtime. BIND is also supported in the linearizer but not in the parser yet 2013-09-30 10:25:39 +00:00
kr.angelov
efa4bc4d62 a major refactoring in the C and the Haskell runtimes. Note incompatible change in the PGF format!!!
The following are the outcomes:

   - Predef.nonExist is fully supported by both the Haskell and the C runtimes

   - Predef.BIND is now an internal compiler defined token. For now
     it behaves just as usual for the Haskell runtime, i.e. it generates &+.
     However, the special treatment will let us to handle it properly in 
     the C runtime.

   - This required a major change in the PGF format since both 
     nonExist and BIND may appear inside 'pre' and this was not supported
     before.
2013-09-27 15:09:48 +00:00
kr.angelov
a6e0ef76f1 remove pgf/edsl.h from the C runtime 2013-09-26 11:59:35 +00:00
kr.angelov
ab52863534 add gu_variant_close in libgu 2013-09-26 10:41:52 +00:00