Commit Graph

751 Commits

Author SHA1 Message Date
aarne
7ec778d747 lexer for latex code: don't separate backslash from the macro name that it marks 2014-10-17 06:40:06 +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
afd5886cdc fix two warnings in mem.c 2014-10-09 13:22:39 +00:00
kr.angelov
6d79274b2f fix in gu_mmap_pool for Android 2014-10-09 13:21:56 +00:00
kr.angelov
58e1eb33fc fix for lightning for ARM 2014-10-09 13:17:01 +00:00
kr.angelov
2892e6b8c8 remove the pgf-service util which is obsolete anyway 2014-10-09 11:28:56 +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
a94ba9b888 add the const modifier to the key in the two procedures for binary search in libgu 2014-10-09 07:25:26 +00:00
kr.angelov
36bbee588f use MAP_FIXED in gu_mmap_pool 2014-10-08 19:43:08 +00:00
kr.angelov
cd6b92867a an experimental memory mapped pool. still not in use 2014-10-08 18:28:51 +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
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
0d08417efe bugfix in the RET instruction 2014-09-29 13:04:49 +00:00
kr.angelov
1d7e976560 enlarge the code window in pgf_jit_gates to ensure enough space on 64-bit machines 2014-09-29 07:34:32 +00:00
kr.angelov
2cf55a0631 the literals API is now exposed in Python 2014-09-25 11:59:40 +00:00
kr.angelov
3064fc737e switch off the debugging of the JIT compiler which I had turned on accidentally. silence two harmless warnings 2014-09-25 11:44:45 +00:00
kr.angelov
25e8e4ce5a 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
hallgren
38811b06c9 haskell-bind/PGF2.hsc: unexport functions that break referential transparency
loadConcr, unloadConcr and addLiteral modify the Concr structure as a side
effect. This means that other functions with a Concr argument (e.g. parse
and linearize) are no longer pure.

Possible solutions:

1. Don't try to hide the imperative nature of the C run-time system: remove
   all uses of unsafePerformIO and let all functions operate in the IO monad.

2. Don't export functions with side effects. Perhaps the desired functionality
   of loadConcr, unloadConcr and addLiteral can be folded into readPGF.
   The Concr structures can then treaded as immutable after after the
   readPGF function returns...
2014-09-22 14:05:17 +00:00
kr.angelov
db68456727 fix a portability problem with the Python binding (found by Prasanth) 2014-09-17 16:12:40 +00:00
kr.angelov
e308f384de dummy jit_base_tail_finishr for x86_64. 2014-09-16 12:29:35 +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
5c0ef5c4ed now release the FunPtr:s that are allocated for each literal callback 2014-09-10 15:41:53 +00:00
kr.angelov
d84d3b5763 added an API for custom literals in the Haskell binding 2014-09-10 14:56:18 +00:00
kr.angelov
fb18482aeb added loadConcr/unloadConcr to the Haskell binding. This exposes an API for loading grammars compiled with -split-pgf 2014-09-10 14:35:54 +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
9adf01a91e bug fixes in the JIT compiler 2014-09-01 12:53:14 +00:00
kr.angelov
9bc507f1d6 added evaluator.h which I had forgoten 2014-08-29 08:36:53 +00:00
hallgren
1cfdffd5e9 Fix warnings in 16 modules, mostly forward compatibility warnings from GHC 7.8 2014-08-13 22:16:18 +00:00
kr.angelov
912225a5dd pattern matching in def rules is now supported 2014-08-11 15:53:41 +00:00