Commit Graph

26 Commits

Author SHA1 Message Date
Krasimir Angelov
01a8e1b88f GF.Command.TreeOperations is now independent from the runtime's internals 2017-09-05 10:29:02 +02:00
Krasimir Angelov
b7b7a7c91c the embedded grammars now work with both the pure Haskell and the Haskell binding API 2017-08-29 18:44:50 +02:00
kr.angelov
621d748bac a major revision of the bytecode generator and JIT compiler. the effect is that now we can compute with lambda functions and with true tail recursion 2014-09-11 15:39:39 +00:00
kr.angelov
86b5f78c57 full support for recursive def rules in the C runtime 2014-09-05 10:09:43 +00:00
kr.angelov
584d589041 a partial support for def rules in the C runtime
The def rules are now compiled to byte code by the compiler and then to
native code by the JIT compiler in the runtime. Not all constructions
are implemented yet. The partial implementation is now in the repository
but it is not activated by default since this requires changes in the
PGF format. I will enable it only after it is complete.
2014-08-11 10:59:10 +00:00
aarne
aba666c5bc 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
3814841d7d 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
f8fe23fda7 A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax 2012-08-29 11:43:02 +00:00
Sergei Trofimovich
24740d250b Fix List.foldl / Map.foldl ambiguosity
Fixes the following error:
src/runtime/haskell/PGF/Expr.hs:111:14:
    Ambiguous occurrence `foldl'
    It could refer to either `List.foldl',
                             imported from `Data.List' at src/runtime/haskell/PGF/Expr.hs:27:1-24
                             (and originally defined in `GHC.List')
                          or `Map.foldl',
                             imported from `Data.Map' at src/runtime/haskell/PGF/Expr.hs:28:1-40
2012-03-26 20:18:23 +00:00
kr.angelov
4215fc31bf bugfixes in the typechecker and the tree generator 2011-08-30 11:24:59 +00:00
aarne
380011eb7d skip spaces before closing parenthesis in PGF.Expr.pFactor 2011-08-29 12:03:45 +00:00
krasimir
5941995c59 fix the computation of abstract expressions in the presence of implicit arguments 2011-01-08 20:55:58 +00:00
krasimir
cb8795c222 refactor the API for random generation again. Now PGF contains probabilities in the abstract syntax 2010-10-02 13:03:57 +00:00
krasimir
ab9d27f995 PGF.Expr.normalForm does variable renaming 2010-08-30 07:37:12 +00:00
krasimir
94bd76df72 two new functions in the PGF API: mkAbs, unAbs 2010-07-31 16:40:16 +00:00
krasimir
067d908aa3 now the meta id of the meta variables is accessible via the PGF API 2010-07-31 12:52:20 +00:00
krasimir
0f1cce53c6 fixes in unStr,unInt,unDouble,isMeta 2010-05-01 07:29:41 +00:00
krasimir
973a0cacb7 pattern @ should be propagated to PGF 2010-03-18 20:21:57 +00:00
krasimir
f870c4d80f syntax for inaccessible patterns in GF 2010-03-18 19:34:30 +00:00
krasimir
09da1013f9 refactor PGF.Expr and PGF.TypeCheck so that the evaluator always has access to the meta store 2010-02-22 15:50:41 +00:00
krasimir
acd927f87b add Show instance and remove the Eq and Ord instances for PGF.Expr.Equation and PGF.Expr.Patt 2010-01-31 14:45:44 +00:00
krasimir
3b7e39fa4a bugfix in the PGF typechecker and more test cases 2010-01-29 21:10:14 +00:00
krasimir
890d455793 cleanup the code of the PGF interpreter and polish the binary serialization to match the preliminary specification 2010-01-27 09:39:14 +00:00
krasimir
354269e17c allow metavariables with indices i.e. ?0, ?1, etc in the abstract syntax parser in PGF 2010-01-15 21:23:37 +00:00
krasimir
869621db66 now the abstract syntax in PGF allows the same syntax for integers, floats and strings as in Haskell. This includes negative integers and exponents in the floats 2010-01-15 21:13:46 +00:00
krasimir
f85232947e reorganize the directories under src, and rescue the JavaScript interpreter from deprecated 2009-12-13 18:50:29 +00:00