Commit Graph

24 Commits

Author SHA1 Message Date
aarne 69f84defb0 bug fix in AppPredefined: don't compare values that contain variables. this should be checked even more generally. 2012-02-28 15:13:32 +00:00
aarne aa7668ef75 the Predef function eqVal to compare equality of parameter values 2012-02-24 10:00:27 +00:00
kr.angelov c52f05ed46 The typechecker is still unfinished but at least it can typecheck the English resource grammar 2011-12-02 12:33:26 +00:00
kr.angelov b859edee38 Hopefully complete Value type and a little bit more on computations. 2011-11-30 20:56:31 +00:00
kr.angelov 7863b21c1a more stuff in the new type checker 2011-11-30 14:55:52 +00:00
kr.angelov fffc5f2507 Sketch of the new type checker for the concrete syntax. Enabled only with -new-comp 2011-11-29 12:12:51 +00:00
kr.angelov 416d231c5e Now PMCFG is compiled per module and at the end we only link it. The new compilation schema is few times faster. 2011-11-10 14:09:41 +00:00
kr.angelov 734c66710e merge GF.Infra.Modules and GF.Grammar.Grammar. This is a preparation for the separate PGF building 2011-11-02 13:57:11 +00:00
kr.angelov 5fe49ed9f7 Now the compiler maintains more precise information for the source locations of the different definitions. There is a --tags option which generates a list of all identifiers with their source locations. 2011-11-02 11:44:59 +00:00
hallgren f8665c7213 Remove configuration flag cclazy 2011-11-01 13:45:12 +00:00
hallgren c4ee13abac Recording an alternative version of look in Compute/ConcreteLazy.hs
Commented out, causes problems in the greek example.
2011-10-25 18:50:07 +00:00
aarne 7372da3d7f use associativity to force more precompilation of pre expressions 2011-10-24 12:52:20 +00:00
hallgren ed451653bd Introduce an explicit error value in the Term type
This makes it easier to treat run-time errors (e.g. caused by calls to
Predef.error) in a way that is more typical for a lazy functional language.
2011-10-20 14:36:30 +00:00
hallgren ef4fac9d82 Compute/ConcreteLazy.hs: no need to reverse when looking up labels in records 2011-10-20 14:19:33 +00:00
hallgren d8d60adb15 AppPredefined.hs: more readable notation for the types of primitives 2011-10-20 14:17:37 +00:00
hallgren 42ea96a5ca Remove unused function computeConcreteRec.
This also allows the parameter rec to be removed from function computeTermOpt.
(The change is made in GF.Compile.Compute.ConcreteLazy, but not in 
GF.Compile.Compute.ConcreteStrict.)
2011-09-09 12:25:27 +00:00
hallgren 875df01dc6 Add lazy version of GF.Compile.Compute.Concrete
This patch adds GF.Compile.Compute.ConcreteLazy, which replaces the Err monad
with the Identity monad. While the Err monad makes the interpreter
(hyper)strict, the Identity monad let's the interpreter inherit Haskell's
laziness.  This can give big speedups: from 50s to 1s in one example,
from ~4 minutes to ~2 minutes for the RGL.

This is still experimental and might be buggy, so it is off by default.
You can turn it on by configuring with the -fcclazy flag, e.g.

	cabal configure -fcclazy

Let me know if anything breaks.
2011-09-01 16:39:41 +00:00
aarne 6757ab2b41 reload command in shell 2011-08-25 15:58:38 +00:00
aarne 3afefb0ac9 commented Compute/Concrete with explanations 2011-08-22 17:08:07 +00:00
aarne a3924abece Predef functions toUpper, toLower, isUpper 2011-06-02 16:10:46 +00:00
aarne 445a3aafeb Predef.error surfaces as error message in compilation and cc command 2011-02-25 17:01:10 +00:00
aarne 9b5223a06b fixed the failure to partial-evaluate pre in right-associative context 2010-12-11 16:27:35 +00:00
krasimir 710b8f1bf7 the abstract syntax for Predef.gf is now hard-coded in AppPredefined.hs 2010-07-01 15:38:16 +00:00
krasimir e0231cbf5b reorganize the modules in GF.Compile.* 2010-07-01 14:19:32 +00:00