1
0
forked from GitHub/gf-core
Commit Graph

24 Commits

Author SHA1 Message Date
kr.angelov
923ad6b3c0 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
5e5ad8f2db full support for recursive def rules in the C runtime 2014-09-05 10:09:43 +00:00
kr.angelov
03b067782c 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
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
fd5220038d A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax 2012-08-29 11:43:02 +00:00
Sergei Trofimovich
4404be284d 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
dbe00fd0eb bugfixes in the typechecker and the tree generator 2011-08-30 11:24:59 +00:00
aarne
7bf4683c02 skip spaces before closing parenthesis in PGF.Expr.pFactor 2011-08-29 12:03:45 +00:00
krasimir
adbe9cd94d fix the computation of abstract expressions in the presence of implicit arguments 2011-01-08 20:55:58 +00:00
krasimir
be9ad26aea refactor the API for random generation again. Now PGF contains probabilities in the abstract syntax 2010-10-02 13:03:57 +00:00
krasimir
b0e78f33bc PGF.Expr.normalForm does variable renaming 2010-08-30 07:37:12 +00:00
krasimir
71ea541765 two new functions in the PGF API: mkAbs, unAbs 2010-07-31 16:40:16 +00:00
krasimir
b227c8a586 now the meta id of the meta variables is accessible via the PGF API 2010-07-31 12:52:20 +00:00
krasimir
9fe715a58d fixes in unStr,unInt,unDouble,isMeta 2010-05-01 07:29:41 +00:00
krasimir
a74a81b8a1 pattern @ should be propagated to PGF 2010-03-18 20:21:57 +00:00
krasimir
0c2944fa7f syntax for inaccessible patterns in GF 2010-03-18 19:34:30 +00:00
krasimir
5d2b204246 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
c93e406997 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
9e547710f5 bugfix in the PGF typechecker and more test cases 2010-01-29 21:10:14 +00:00
krasimir
3685595ece 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
e0dda5b65a 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
a04cbcfb63 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
c92f9d1c0c reorganize the directories under src, and rescue the JavaScript interpreter from deprecated 2009-12-13 18:50:29 +00:00