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
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
hallgren
d0441cf847
GF.Infra.Options: change from String to Int in the type of optJobs
2014-10-08 16:57:04 +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
297403b350
bugfix in the byte code compiler
2014-10-07 20:03:54 +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
f124723236
add evaluator.c in Android.mk
2014-09-30 12:37:18 +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
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
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
aarne
a757798656
checked that course of value tables (table P [...]) have the correct number of values w.r.t the type P. This was previously not checked, and caused hard-to-find run-time errors.
2014-09-27 17:14:35 +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
4d6994ffde
forgot to type check the type of a typed let expression
2014-09-17 22:25:08 +00:00
kr.angelov
4f23ed2289
appForm now skips over Typed expressions
2014-09-17 22:02:36 +00:00
kr.angelov
ff45e7dd3a
the type checker for the abstract syntax now allows let expressions in def rules, since they are easily compilable to byte code. This fails in the Haskell runtime since let expressions are not allowed as abstract syntax expressions.
2014-09-17 21:59:45 +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