1
0
forked from GitHub/gf-core
Commit Graph

287 Commits

Author SHA1 Message Date
krasimir 79a7ae6553 remove three more uses of meta productions that were left in debugging mode 2015-02-24 10:59:18 +00:00
krasimir 8664dd80ed implemented escape characters when reading/printing an abstract expression with string literals 2015-02-24 09:35:12 +00:00
krasimir 87c0368281 silence some warnings in GNU Lightning for i386_64 2015-02-19 12:53:52 +00:00
krasimir 2f35aadc6f parsing with meta rules is now removed since we don't use them anymore and I would gladly remove some code. 2015-02-19 11:59:51 +00:00
krasimir 27a12ca9fb fix in the parser for callbacks in the middle of a word 2015-02-18 16:14:29 +00:00
kr.angelov e6f51d7ec6 fix in the JIT compiler that would hopefully make it work on iOS 2015-02-11 13:07:06 +00:00
kr.angelov 328d4df660 API for word alignment in the C runtime and in the Haskell binding 2014-12-29 10:59:20 +00:00
kr.angelov 022849482d added mkStr to the Haskell binding 2014-12-19 08:58:02 +00:00
kr.angelov fdc6c9a3cd added mkApp to the Haskell binding 2014-12-19 08:47:00 +00:00
kr.angelov 9b7e18c25e change in the API for literals
The API in the C runtime as well as in the Haskell, Python and Java binding
is changed. Now instead of adding the literal callbacks to the concrete syntax
you need to supply them every time when you need to parse. The main reason is:

- referentially transparent API for Haskell
- when we start using memory mapped files we will not be allowed to change
  anything in the grammar data structures. At that point the old API would
  be impossible to use.
2014-12-16 10:21:26 +00:00
kr.angelov 995735b272 fix the last patch 2014-12-01 11:03:50 +00:00
kr.angelov 89078c3598 a small optimization in the PGF parser which gives me ~5% speed up 2014-12-01 10:48:15 +00:00
kr.angelov 2927c8b7e1 fix in GNU lightning to enable the compilation of two of the the floating point operations. 2014-12-01 09:42:21 +00:00
kr.angelov 2e765fbfe1 fix in linearizer.h to make jpgf compilable 2014-12-01 09:41:48 +00:00
kr.angelov 0b2a81ad4d fix in linearizer.h which resolves a warning 2014-11-27 15:20:46 +00:00
kr.angelov 80cf34bfd1 remove pgf/parser.h 2014-11-27 11:12:14 +00:00
kr.angelov d830c75da2 fix the handling of the heuristic factor. it was broken when I added the BIND token which means that the App grammar was running about 2-3 times slower. 2014-11-26 15:56:36 +00:00
kr.angelov 057d830133 expand the JIT window for x64 2014-11-07 15:43:12 +00:00
kr.angelov 1cfb975229 a skeletal module for higher-order pattern unification in the C runtime 2014-10-31 19:57:56 +00:00
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 b4046e1797 a simple optimization in cmp_item_prob with great effect on the parser's speed 2014-10-23 21:22:22 +00:00
kr.angelov f421dd4c68 fix the debug mode in the reasoner 2014-10-23 08:15:12 +00:00
kr.angelov 3a95d733dd CAPIT is now naturally supported in the C runtime 2014-10-22 15:05:55 +00:00
kr.angelov 0da379f97b an explicit PUSH_FRAME instruction 2014-10-22 14:11:41 +00:00
kr.angelov 70bf9f78b1 the C runtime now supports reading and writing expressions with indexed meta variables. The type checker generates fresh indices 2014-10-17 09:27:37 +00:00
kr.angelov fd8e4d3dd7 bugfix in the parser for abstract expressions in the C runtime 2014-10-16 11:40:47 +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 e8b81c145b bugfix in the bytecode generator 2014-10-14 09:27:24 +00:00
kr.angelov 0e91de3b5f simplify jit_bare_ret 2014-10-14 09:09:26 +00:00
kr.angelov 4efb2d5a22 Prelude.CAPIT is now a built-in primitive. It still generates &| in the Haskell runtime but will be intepreted in the C runtime 2014-10-09 19:34:12 +00:00
kr.angelov 57f7b61c6b throw away the long obsolete runtime type information in the C runtime 2014-10-09 13:44:26 +00:00
kr.angelov 58e1eb33fc fix for lightning for ARM 2014-10-09 13:17:01 +00:00
kr.angelov 4ac5902fc9 replace the hash maps in the abstract syntax with binary search tables 2014-10-09 08:38:55 +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 e9a871db7f a missing case in instruction SET 2014-10-07 20:05:05 +00:00
kr.angelov e7404c8f7a added a missing case for PUSH instruction with a global closure 2014-10-07 11:46:38 +00:00
kr.angelov 9e493031b2 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 8d09f62efc using instruction RET was wrong; now use EVAL 2014-10-06 15:57:42 +00:00
kr.angelov 2bc0734b6e fix the order in which arguments are stored in the mk_const gate 2014-10-06 12:31:39 +00:00
kr.angelov f5041fa67b push a stack frame around recursive calls to guarantee that a nested call to a failing function will not crash 2014-10-06 09:21:08 +00:00
kr.angelov b07a2652d8 partial implementation for the FAIL instruction 2014-10-06 09:04:25 +00:00
kr.angelov dee64838f4 bugfix in pgf_evaluate_expr_thunk 2014-09-30 17:34:29 +00:00
kr.angelov 0bdd599972 fix pgf_value2expr for partial applications 2014-09-30 13:46:46 +00:00
kr.angelov 8801915523 enough fixes to get the JIT compiler compile for ARM. It is still broken if you try to use it 2014-09-30 12:39:31 +00:00
kr.angelov ceb5b7bbf3 fix in reader.h for compiling jpgf.c 2014-09-30 11:25:27 +00:00
kr.angelov cdac80b6b2 fix in pgf_print_expr for lambda abstractions with more than one argument 2014-09-30 09:42:18 +00:00
kr.angelov 9fd8d5d019 bugfix in the gate evaluate_value_lambda 2014-09-30 08:42:06 +00:00