Krasimir Angelov
ae460e76b6
allow compilation with emscripten
2022-07-04 10:42:34 +02:00
krangelov
eb22112178
a pool where the smallest chunks are memory pages
2018-12-16 07:46:14 +01:00
krasimir
7d72d99c2f
explicitly classify all functions in libpgf as either internal or API functions
2017-04-19 09:34:23 +00:00
krasimir
2551ab740b
silence a few warnings on MacOS
2017-04-13 11:07:08 +00:00
krasimir
a8eaa2f2e5
a patch from Bjørnar Luteberget for compatibility with MSVC
2017-04-12 10:24:56 +00:00
krasimir
0894f55661
fix the compilation when debugging is switched off
2016-05-25 09:42:24 +00:00
krasimir
faebebc8f4
pgf_generate_all now works with literals as well
2016-05-25 09:36:05 +00:00
krasimir
76a6cc1bb5
bugfix in the JIT compiler for 64bit machines
2016-04-13 14:58:12 +00:00
krasimir
0b9395fd70
a fix that should solve the segmentation fault on MacOS with the exhaustive generator
2015-12-19 17:30:41 +00:00
krasimir
880f0a63d0
make the virtual machine instructions more uniform
2015-07-16 15:43:18 +00:00
krasimir
fac48d43e8
bugfixes in the JIT compiler for x86_64. One of the fixes is actually in GNU lightning
2015-07-16 15:21:09 +00:00
krasimir
192b1cc018
the reasoner's states are now closures just like the code for the def rules. This means more compact JIT compiled code and uniformity with the code for def rules
2015-07-04 15:06:34 +00:00
krasimir
b3680b6025
merge the states for reasoning and evaluation into a single structure
2015-07-03 11:53:52 +00:00
hallgren
c6cdb66cf2
runtime/c/pf/jit.c: silence warning about alloca on MINGW32
2015-06-23 15:49:31 +00:00
krasimir
5d7633fdb4
added getpagesize() definition for Windows
2015-04-20 09:57:28 +00:00
krasimir
e893d41393
silence some warnings in GNU Lightning for i386_64
2015-02-19 12:53:52 +00:00
kr.angelov
cabafd68a6
expand the JIT window for x64
2014-11-07 15:43:12 +00:00
kr.angelov
b1e6a21c56
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
9b0f354c7c
a more efficient tail call by using the new TUCK instruction
2014-10-30 13:09:50 +00:00
kr.angelov
efedec187c
an explicit SAVE instruction
2014-10-26 11:40:12 +00:00
kr.angelov
c8b3865338
an explicit PUSH_FRAME instruction
2014-10-22 14:11:41 +00:00
kr.angelov
26ad164cec
finally proper stack unwind in the evaluator
2014-10-16 10:00:32 +00:00
kr.angelov
ac288386c4
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
f4dc2c0b6e
bugfix in the bytecode generator
2014-10-14 09:27:24 +00:00
kr.angelov
1c2e02ad50
simplify jit_bare_ret
2014-10-14 09:09:26 +00:00
kr.angelov
86e9acc7a7
throw away the long obsolete runtime type information in the C runtime
2014-10-09 13:44:26 +00:00
kr.angelov
6c86e7fa91
replace the hash maps in the abstract syntax with binary search tables
2014-10-09 08:38:55 +00:00
kr.angelov
9c2f71b07a
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
67781996b6
a missing case in instruction SET
2014-10-07 20:05:05 +00:00
kr.angelov
e98d61b7b7
added a missing case for PUSH instruction with a global closure
2014-10-07 11:46:38 +00:00
kr.angelov
de1b372ef7
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
13c7721bc5
using instruction RET was wrong; now use EVAL
2014-10-06 15:57:42 +00:00
kr.angelov
af7feea385
fix the order in which arguments are stored in the mk_const gate
2014-10-06 12:31:39 +00:00
kr.angelov
a50315396f
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
889c0f3df4
partial implementation for the FAIL instruction
2014-10-06 09:04:25 +00:00
kr.angelov
312d4ff52e
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
70455b88a7
bugfix in the gate evaluate_value_lambda
2014-09-30 08:42:06 +00:00
kr.angelov
80acad4447
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
1ecd61f7f5
bugfix in the RET instruction
2014-09-29 13:04:49 +00:00
kr.angelov
87c5c4b0cc
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
8e64fc6e7e
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
14e6eec5ec
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
kr.angelov
621d748bac
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
4d28c7632e
the code for def rules now uses proper graph update to preserve lazyness
2014-09-05 11:53:02 +00:00
kr.angelov
86b5f78c57
full support for recursive def rules in the C runtime
2014-09-05 10:09:43 +00:00
kr.angelov
bfd414554d
partial implementation for recursive def rules
2014-09-01 14:51:20 +00:00
kr.angelov
342f6e3797
bug fixes in the JIT compiler
2014-09-01 12:53:14 +00:00
kr.angelov
c30e2df228
pattern matching in def rules is now supported
2014-08-11 15:53:41 +00:00
kr.angelov
584d589041
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
kr.angelov
71744f7642
fix for the memory allocation in the jitter which should work for Windows.
2013-11-07 08:47:35 +00:00