mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-06-09 18:16:32 -06:00
partial evaluator work
* Evaluate operators once, not every time they are looked up * Remember the list of parameter values instead of recomputing it from the pattern type every time a table selection is made. * Quick fix for partial application of some predefined functions.
This commit is contained in:
@@ -18,7 +18,7 @@ import GF.Grammar.ShowTerm
|
||||
import GF.Grammar.Lookup (allOpers,allOpersTo)
|
||||
import GF.Compile.Rename(renameSourceTerm)
|
||||
import GF.Compile.Compute.Concrete (computeConcrete,checkPredefError)
|
||||
import qualified GF.Compile.Compute.ConcreteNew as CN(normalForm)
|
||||
import qualified GF.Compile.Compute.ConcreteNew as CN(normalForm,resourceValues)
|
||||
import GF.Compile.TypeCheck.Concrete (inferLType,ppType)
|
||||
import GF.Infra.Dependencies(depGraph)
|
||||
import GF.Infra.CheckM
|
||||
@@ -333,7 +333,7 @@ checkComputeTerm' new sgr t = do
|
||||
((t,_),_) <- runCheck $ do t <- renameSourceTerm sgr mo t
|
||||
inferLType sgr [] t
|
||||
t1 <- if new
|
||||
then return (CN.normalForm sgr t)
|
||||
then return (CN.normalForm (CN.resourceValues sgr) t)
|
||||
else computeConcrete sgr t
|
||||
checkPredefError sgr t1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user