kr.angelov
2bde418b15
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
4db6e30b54
a more efficient tail call by using the new TUCK instruction
2014-10-30 13:09:50 +00:00
kr.angelov
77d3775385
an explicit SAVE instruction
2014-10-26 11:40:12 +00:00
kr.angelov
0da379f97b
an explicit PUSH_FRAME instruction
2014-10-22 14:11:41 +00:00
kr.angelov
76a448e26f
finally proper stack unwind in the evaluator
2014-10-16 10:00:32 +00:00
kr.angelov
6aa0fd2590
the compiler now allows + to be used as a floating point addition in the abstract syntax
2014-10-14 11:15:18 +00:00
kr.angelov
d42ffaa546
yet another bugfix in the byte code
2014-10-14 10:39:28 +00:00
kr.angelov
bc8cb8e9d7
another bugfix in the byte code generation
2014-10-14 09:43:43 +00:00
kr.angelov
e8b81c145b
bugfix in the bytecode generator
2014-10-14 09:27:24 +00:00
kr.angelov
23642fbb90
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
297403b350
bugfix in the byte code compiler
2014-10-07 20:03:54 +00:00
kr.angelov
8d09f62efc
using instruction RET was wrong; now use EVAL
2014-10-06 15:57:42 +00:00
kr.angelov
2f7bd0306f
minor stylistic change in GenerateBC
2014-09-29 15:08:00 +00:00
kr.angelov
698329f469
bugfix in the pattern matching compiler and a number of other fixes that I somehow did not push before
2014-09-29 15:00:04 +00:00
kr.angelov
923ad6b3c0
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
d7dc541f74
the code for def rules now uses proper graph update to preserve lazyness
2014-09-05 11:53:02 +00:00
kr.angelov
5e5ad8f2db
full support for recursive def rules in the C runtime
2014-09-05 10:09:43 +00:00
kr.angelov
442dadf100
partial implementation for recursive def rules
2014-09-01 14:51:20 +00:00
kr.angelov
03b067782c
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
hallgren
f739841497
PGF library: expose only PGF and PGF.Internal instead of all modules
...
PGF exports the public, stable API.
PGF.Internal exports additional things needed in the GF compiler & shell,
including the nonstardard version of Data.Binary.
2014-06-12 14:43:18 +00:00
kr.angelov
dd0e9411e1
catch all case in GenerateBC.genFun
2012-09-18 08:32:21 +00:00
kr.angelov
37e1ced6cf
another fix for teyjus
2012-08-30 08:09:30 +00:00
kr.angelov
fd5220038d
A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax
2012-08-29 11:43:02 +00:00