summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/data.h
AgeCommit message (Collapse)Author
2019-10-09fix the parsing for literals after the latest changes in the parserkrangelov
2019-08-30first version of a parser which returns chunks in case of failurekrangelov
2017-09-25make pgf_production_is_lexical public since it will be needed in the Haskell ↵Krasimir Angelov
binding
2017-09-14make the API for indexing in the parser and the linearizer public since it ↵Krasimir Angelov
will be needed in the Haskell binding
2017-04-19explicitly classify all functions in libpgf as either internal or API functionskrasimir
2017-04-12a patch from Bjørnar Luteberget for compatibility with MSVCkrasimir
2015-07-04the reasoner's states are now closures just like the code for the def rules. ↵krasimir
This means more compact JIT compiled code and uniformity with the code for def rules
2015-06-12the orthographic tokens were broken when they appear inside a dictionary ↵krasimir
entry. Now this is fixed by treating those as syntactic rules
2015-05-11added all orthographic primitiveskrasimir
2015-02-19parsing with meta rules is now removed since we don't use them anymore and I ↵krasimir
would gladly remove some code.
2014-12-16change in the API for literalskr.angelov
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-10-31now (+) in the abstract syntax works, i.e. it knows how to deal with partial ↵kr.angelov
sums
2014-10-30a more efficient tail call by using the new TUCK instructionkr.angelov
2014-10-26an explicit SAVE instructionkr.angelov
2014-10-22an explicit PUSH_FRAME instructionkr.angelov
2014-10-16finally proper stack unwind in the evaluatorkr.angelov
2014-10-14the compiler now allows + to be used as a floating point addition in the ↵kr.angelov
abstract syntax
2014-10-09Prelude.CAPIT is now a built-in primitive. It still generates &| in the ↵kr.angelov
Haskell runtime but will be intepreted in the C runtime
2014-10-09throw away the long obsolete runtime type information in the C runtimekr.angelov
2014-10-09replace the hash maps in the abstract syntax with binary search tableskr.angelov
2014-10-08now we statically allocate closures for all top-level functions and all ↵kr.angelov
nullary constructors. closures are dynamically allocated only for CAFs. this reduces memory use and time to allocate dynamic closures
2014-10-06using instruction RET was wrong; now use EVALkr.angelov
2014-09-29bugfix in the pattern matching compiler and a number of other fixes that I ↵kr.angelov
somehow did not push before
2014-09-25now a complete JIT compiler and ByteCode compiler for the def rules in the ↵kr.angelov
abstract syntax. there might be some bugs yet to be found, meta variables and computation under lambda is only partially supported
2014-09-11a major revision of the bytecode generator and JIT compiler. the effect is ↵kr.angelov
that now we can compute with lambda functions and with true tail recursion
2014-09-05the code for def rules now uses proper graph update to preserve lazynesskr.angelov
2014-09-05full support for recursive def rules in the C runtimekr.angelov
2014-09-01partial implementation for recursive def ruleskr.angelov
2014-08-11a partial support for def rules in the C runtimekr.angelov
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-04-10now fully functional Java API for custom literalskr.angelov
2014-02-09GuVariant is now plain uintptr_t instead of a structure to make it easier to ↵kr.angelov
write Haskell bindings
2013-12-10loading and unloading of languages in the C runtime and in the Python bindingskr.angelov
2013-11-12added Predef.SOFT_BIND. This special token allows zero or more spaces ↵kr.angelov
between ordinary tokens. It is also used in the English RGL to attach the commas to the previous word.
2013-11-06the content of ParseEngAbs3.probs is now merged with ParseEngAbs.probs. The ↵kr.angelov
later is now retrained. Once the grammar is compiled with the .probs file now it doesn't need anything more to do robust parsing. The robustness itself is controlled by the flags 'heuristic_search_factor', 'meta_prob' and 'meta_token_prob' in ParseEngAbs.gf
2013-10-30added the linref construction in GF. The PGF version number is now bumpedkr.angelov
2013-10-28fix the handling of 'pre' in the C runtimekr.angelov
2013-10-23tabular linearization in the C and Java runtimeskr.angelov
2013-10-09a major redesign in the C runtime. The parser and the linearizer now fully ↵kr.angelov
support BIND. The following things are still broken: parseval, word completion, handling 'pre', the robust mode
2013-10-04GuString is now an ordinary C string - it makes live easier. In addition ↵kr.angelov
PgfSymbolKS, PgfExprFun and PgfLiteralStr now keep their strings as embedded flexible arrays. The latest change gives us the same compactness as the old representation but it is a lot easier to use.
2013-10-03the symbol for nonExist in the GF runtime should be the last. this ↵kr.angelov
simplifies the binary search in the C runtime
2013-09-27a major refactoring in the C and the Haskell runtimes. Note incompatible ↵kr.angelov
change in the PGF format!!! The following are the outcomes: - Predef.nonExist is fully supported by both the Haskell and the C runtimes - Predef.BIND is now an internal compiler defined token. For now it behaves just as usual for the Haskell runtime, i.e. it generates &+. However, the special treatment will let us to handle it properly in the C runtime. - This required a major change in the PGF format since both nonExist and BIND may appear inside 'pre' and this was not supported before.
2013-09-17a major refactoring in the C runtime. GuList is now removed and replaced ↵kr.angelov
with GuSeq. The GuSeq/GuBuf API is simplified
2013-09-13remove leftcorner_cat_idx which is now redundantkr.angelov
2013-08-23nonExist now does the expected thingkr.angelov
2013-06-26we no longer maintain an explicit list of functions per category since now ↵kr.angelov
it is implicitly kept in the JIT compiled code
2013-06-25Now there is a just-in-time compiler which generates native code for proof ↵kr.angelov
search. This is already used by the exhaustive generator. The time to generate 10000 abstract trees with ParseEng went down from 4.43 sec to 0.29 sec.
2013-04-26finally the statistical parser is able to return all possible abstract treeskr.angelov
2013-04-18added API for computing bracketed strings from Python and Ckr.angelov
2013-02-11refactoring: now all named objects in the C runtime have an explicit name fieldkr.angelov
2013-02-11remove the pgf2yaml tool which was both broken and redundant. The ↵kr.angelov
declarations for generic programming from data.c are removed as well