kr.angelov
d304bf6348
faster translation in the app
2014-12-01 23:15:24 +00:00
kr.angelov
b552ef79d9
better color filter to indicate listening
2014-12-01 21:13:09 +00:00
kr.angelov
353055c2c0
added visual feedback to indicate that the app is not listening anymore
2014-12-01 20:52:37 +00:00
kr.angelov
30383f6ce2
fix in nordic.xml
2014-12-01 20:24:13 +00:00
kr.angelov
7a4d9af97f
added special nordic keyboard for Finnish and Swedish
2014-12-01 12:43:31 +00:00
kr.angelov
64feca59c8
fix the last patch
2014-12-01 11:03:50 +00:00
kr.angelov
960ba43149
a small optimization in the PGF parser which gives me ~5% speed up
2014-12-01 10:48:15 +00:00
kr.angelov
14a2821fd8
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
35e76a5fe8
fix in linearizer.h to make jpgf compilable
2014-12-01 09:41:48 +00:00
kr.angelov
6f2195f793
fix in linearizer.h which resolves a warning
2014-11-27 15:20:46 +00:00
kr.angelov
f63e8faf00
remove pgf/parser.h
2014-11-27 11:12:14 +00:00
kr.angelov
41e217a641
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
cabafd68a6
expand the JIT window for x64
2014-11-07 15:43:12 +00:00
kr.angelov
70c70fa791
a skeletal module for higher-order pattern unification in the C runtime
2014-10-31 19:57:56 +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
6986f1acd7
comment out a few assertions in bits.h. this code is run too often to have explicit assertions
2014-10-24 11:15:40 +00:00
kr.angelov
8abbd2f67e
make it possible to specify the initial size of a map in libgu
2014-10-24 09:17:22 +00:00
kr.angelov
dc62e52636
simplify gu/map
2014-10-24 08:56:39 +00:00
kr.angelov
550c747941
fix memory leak in the pgf-parse tool
2014-10-24 08:42:32 +00:00
kr.angelov
5cae930723
add extern declarations for all inline functions in seq.h. this ensures that everything works even when the compiler's optimizations are off
2014-10-24 08:26:58 +00:00
kr.angelov
e169f225cf
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
18f8f2e4f4
remove some deadcode in gu/seq.h
2014-10-23 21:21:21 +00:00
kr.angelov
aff68e7422
inline a number of functions in gu/seq.c. this has a noticeable effect on the parser's speed
2014-10-23 21:19:29 +00:00
kr.angelov
3aaeb7a156
a cosmetic optimization in mem.c
2014-10-23 15:45:14 +00:00
kr.angelov
fc6658c2e7
fix the debug mode in the reasoner
2014-10-23 08:15:12 +00:00
kr.angelov
578df576ef
fix warning in ucs.c
2014-10-23 07:44:41 +00:00
kr.angelov
00922153aa
CAPIT is now naturally supported in the C runtime
2014-10-22 15:05:55 +00:00
kr.angelov
df113f9cc4
add Unicode classification routines to libgu. ported from the base package in Haskell.
2014-10-22 14:36:58 +00:00
kr.angelov
c8b3865338
an explicit PUSH_FRAME instruction
2014-10-22 14:11:41 +00:00
kr.angelov
71d5cae4e3
make the fields of BracketedString in the Python binding read/write
2014-10-22 12:18:07 +00:00
kr.angelov
bb1f0f3368
get rid of gu/str.(c|h)
2014-10-20 07:50:42 +00:00
kr.angelov
3f11f3d602
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
c0ebbc4edf
bugfix in the parser for abstract expressions in the C runtime
2014-10-16 11:40:47 +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
b5cc77aea1
yet another bugfix in the byte code
2014-10-14 10:39:28 +00:00
kr.angelov
37bd8dd9fd
another bugfix in the byte code generation
2014-10-14 09:43:43 +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
2b881397c5
a refactoring in the Susanne converter which for some reason was not pushed before
2014-10-10 12:10:44 +00:00
kr.angelov
f8b73d593c
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
86e9acc7a7
throw away the long obsolete runtime type information in the C runtime
2014-10-09 13:44:26 +00:00
kr.angelov
8e3ed825a8
fix two warnings in mem.c
2014-10-09 13:22:39 +00:00
kr.angelov
b905558ce8
fix in gu_mmap_pool for Android
2014-10-09 13:21:56 +00:00
kr.angelov
397276defd
fix for lightning for ARM
2014-10-09 13:17:01 +00:00
kr.angelov
3e49a1cf73
remove the pgf-service util which is obsolete anyway
2014-10-09 11:28:56 +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
84b257e85c
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
a9a781e4a0
use MAP_FIXED in gu_mmap_pool
2014-10-08 19:43:08 +00:00
kr.angelov
f178be5405
an experimental memory mapped pool. still not in use
2014-10-08 18:28:51 +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
35333385b6
bugfix in the byte code compiler
2014-10-07 20:03:54 +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
4e00834c68
bugfix in pgf_evaluate_expr_thunk
2014-09-30 17:34:29 +00:00
kr.angelov
f5da57056c
fix pgf_value2expr for partial applications
2014-09-30 13:46:46 +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
b7798f9348
add evaluator.c in Android.mk
2014-09-30 12:37:18 +00:00
kr.angelov
f25b45e13d
fix in reader.h for compiling jpgf.c
2014-09-30 11:25:27 +00:00
kr.angelov
6be25aa872
fix in pgf_print_expr for lambda abstractions with more than one argument
2014-09-30 09:42:18 +00:00
kr.angelov
70455b88a7
bugfix in the gate evaluate_value_lambda
2014-09-30 08:42:06 +00:00
kr.angelov
f70eecb63c
minor stylistic change in GenerateBC
2014-09-29 15:08:00 +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
7036d56d29
the literals API is now exposed in Python
2014-09-25 11:59:40 +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
3ced115807
forgot to type check the type of a typed let expression
2014-09-17 22:25:08 +00:00
kr.angelov
e34d5b0409
appForm now skips over Typed expressions
2014-09-17 22:02:36 +00:00
kr.angelov
a5f81ff81c
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
818896dec2
fix a portability problem with the Python binding (found by Prasanth)
2014-09-17 16:12:40 +00:00
kr.angelov
3e3178abfa
dummy jit_base_tail_finishr for x86_64.
2014-09-16 12:29:35 +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
df0602723d
now release the FunPtr:s that are allocated for each literal callback
2014-09-10 15:41:53 +00:00
kr.angelov
80725e872b
added an API for custom literals in the Haskell binding
2014-09-10 14:56:18 +00:00
kr.angelov
b553729f37
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
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
cee5f590ca
added evaluator.h which I had forgoten
2014-08-29 08:36:53 +00:00
kr.angelov
a39647d771
bugfix in the android app
2014-08-22 12:33:35 +00:00
kr.angelov
c30e2df228
pattern matching in def rules is now supported
2014-08-11 15:53:41 +00:00
kr.angelov
d3b9652b81
revert an accidental change that I pushed together with the last patch
2014-08-11 11:44:49 +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
0222d2440c
implemented computing with abstract syntax trees. It passes all test cases except those that require def rules. The design is consistent with the STG virtual machine
2014-07-08 19:45:49 +00:00
kr.angelov
e0fe6d01c4
bugfix for the typechecker in the C runtime
2014-07-08 19:19:48 +00:00
kr.angelov
ada85ae44e
an API for visitor patterns on abstract syntax trees from Python. This makes the embedded grammars especially pleasing
2014-07-06 23:48:51 +00:00
kr.angelov
85672af858
small fix for the embedded mode in Python
2014-07-06 19:55:08 +00:00
kr.angelov
e52d5bf715
embedded mode for GF grammar in Python. Only generation for now
2014-07-06 19:49:17 +00:00
kr.angelov
7ad2f7dac3
filter out the leading +/* from the parser tree
2014-07-03 18:27:39 +00:00
kr.angelov
aa746ad0f6
bugfix in the ParseTreeView
2014-07-03 18:09:34 +00:00