summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile/Compute/Concrete.hs
AgeCommit message (Collapse)Author
2025-08-02add whitespace on list comprehensions, applications etc.Inari Listenmaa
text editor interprets these things as errors (e.g. unterminated qq for list comprehension) and underlines red, even though there is no real error.
2021-07-12Clean up redundant case expressionsAndreas Källberg
2021-07-12Remove last traces of the Either in value2termAndreas Källberg
2021-07-12Remove the `Either Int` from value2termAndreas Källberg
This prevents HUGE space leak and makes compiling a PGF a LOT faster For example, an application grammar moved from taking over 50GB of ram and taking 5 minutes (most of which is spent on garbage colelction) to taking 1.2 seconds and using 42mb of memory The price we pay is that the "variable #n is out of scope" error is now lazy and will happen when we try to evaluate the term instead of happening when the function returns and allowing the caller to chose how to handle the error. I don't think this should matter in practice, since it's very rare; at least Inari has never encountered it.
2021-07-01Rename GF.Compile.Compute.ConcreteNew to GF.Compile.Compute.ConcreteJohn J. Camilleri
2013-11-29Commment code and options relating to the old partial evaluatorhallgren
This means that the -old-comp and -new-comp flags are not recognized anymore. The only functional difference is that printnames were still normalized with the old partial evaluator. Now that is done with the new partial evaluator.
2011-11-01Remove configuration flag cclazyhallgren
2011-09-01Add lazy version of GF.Compile.Compute.Concretehallgren
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-08-25reload command in shellaarne
2011-08-22commented Compute/Concrete with explanationsaarne
2011-02-25Predef.error surfaces as error message in compilation and cc commandaarne
2010-12-11fixed the failure to partial-evaluate pre in right-associative contextaarne
2010-07-01reorganize the modules in GF.Compile.*krasimir