krasimir
dfd69d5d4b
bugfix in the parser which caused some items to be poped in the wrong order if their probability differ with less that 0.5
2015-02-26 12:17:59 +00:00
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