summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/evaluator.c
AgeCommit message (Collapse)Author
2017-04-19explicitly classify all functions in libpgf as either internal or API functionskrasimir
2017-04-12a patch from Bjørnar Luteberget for compatibility with MSVCkrasimir
2016-04-14fix in evaluator.ckrasimir
2015-07-03merge the states for reasoning and evaluation into a single structurekrasimir
2014-10-31now (+) in the abstract syntax works, i.e. it knows how to deal with partial ↵kr.angelov
sums
2014-10-16finally proper stack unwind in the evaluatorkr.angelov
2014-10-09replace the hash maps in the abstract syntax with binary search tableskr.angelov
2014-10-08now we statically allocate closures for all top-level functions and all ↵kr.angelov
nullary constructors. closures are dynamically allocated only for CAFs. this reduces memory use and time to allocate dynamic closures
2014-10-07the indirection should be done in the evaluate_expr_thunk gate instead of in ↵kr.angelov
the pgf_evaluate_expr_thunk function. this ensures lazyness
2014-10-06partial implementation for the FAIL instructionkr.angelov
2014-09-30bugfix in pgf_evaluate_expr_thunkkr.angelov
2014-09-30fix pgf_value2expr for partial applicationskr.angelov
2014-09-30bugfix in the gate evaluate_value_lambdakr.angelov
2014-09-25now a complete JIT compiler and ByteCode compiler for the def rules in the ↵kr.angelov
abstract syntax. there might be some bugs yet to be found, meta variables and computation under lambda is only partially supported
2014-09-11a major revision of the bytecode generator and JIT compiler. the effect is ↵kr.angelov
that now we can compute with lambda functions and with true tail recursion
2014-09-05the code for def rules now uses proper graph update to preserve lazynesskr.angelov
2014-08-11pattern matching in def rules is now supportedkr.angelov
2014-08-11a partial support for def rules in the C runtimekr.angelov
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-07-08implemented computing with abstract syntax trees. It passes all test cases ↵kr.angelov
except those that require def rules. The design is consistent with the STG virtual machine