krasimir
7d72d99c2f
explicitly classify all functions in libpgf as either internal or API functions
2017-04-19 09:34:23 +00:00
krasimir
a8eaa2f2e5
a patch from Bjørnar Luteberget for compatibility with MSVC
2017-04-12 10:24:56 +00:00
krasimir
114e95f43b
fix in evaluator.c
2016-04-14 13:47:29 +00:00
krasimir
b3680b6025
merge the states for reasoning and evaluation into a single structure
2015-07-03 11:53:52 +00:00
kr.angelov
b1e6a21c56
now (+) in the abstract syntax works, i.e. it knows how to deal with partial sums
2014-10-31 14:16:11 +00:00
kr.angelov
26ad164cec
finally proper stack unwind in the evaluator
2014-10-16 10:00:32 +00:00
kr.angelov
6c86e7fa91
replace the hash maps in the abstract syntax with binary search tables
2014-10-09 08:38:55 +00:00
kr.angelov
9c2f71b07a
now we statically allocate closures for all top-level functions and all nullary constructors. closures are dynamically allocated only for CAFs. this reduces memory use and time to allocate dynamic closures
2014-10-08 12:57:29 +00:00
kr.angelov
de1b372ef7
the indirection should be done in the evaluate_expr_thunk gate instead of in the pgf_evaluate_expr_thunk function. this ensures lazyness
2014-10-07 07:12:40 +00:00
kr.angelov
889c0f3df4
partial implementation for the FAIL instruction
2014-10-06 09:04:25 +00:00
kr.angelov
4e00834c68
bugfix in pgf_evaluate_expr_thunk
2014-09-30 17:34:29 +00:00
kr.angelov
f5da57056c
fix pgf_value2expr for partial applications
2014-09-30 13:46:46 +00:00
kr.angelov
70455b88a7
bugfix in the gate evaluate_value_lambda
2014-09-30 08:42:06 +00:00
kr.angelov
14e6eec5ec
now a complete JIT compiler and ByteCode compiler for the def rules in the abstract syntax. there might be some bugs yet to be found, meta variables and computation under lambda is only partially supported
2014-09-25 10:35:06 +00:00
kr.angelov
621d748bac
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
4d28c7632e
the code for def rules now uses proper graph update to preserve lazyness
2014-09-05 11:53:02 +00:00
kr.angelov
c30e2df228
pattern matching in def rules is now supported
2014-08-11 15:53:41 +00:00
kr.angelov
584d589041
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
kr.angelov
0222d2440c
implemented computing with abstract syntax trees. It passes all test cases except those that require def rules. The design is consistent with the STG virtual machine
2014-07-08 19:45:49 +00:00