Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-01-06 | Remove unused imports | Timotej Lazar | |
2016-01-04 | Add function to find predicates used by a Prolog program | Timotej Lazar | |
2015-12-11 | Rename a function | Timotej Lazar | |
2015-12-11 | Use a more general method for extracting edits | Timotej Lazar | |
This is a large overhaul of monkey code. Before, only edits within individual lines were tracked, which required a Prolog-specific method for splitting a program into a list of lines for every rule. In this version, modifications can be tracked within arbitrary code ranges. Ranges to be tracked are determined by selecting "interesting" subtrees in the AST of the starting code version. The new method is simpler, less language-dependent and easier to extend. The downside is that a program must be syntactically correct before we can attempt to fix it (the previous approach could handle programs with syntax errors in some cases). This commit also integrates a call to monkey.fix in prolog_session.hint, by running it if no other hint is found. | |||
2015-12-10 | Support Tree objects in python.util.stringify | Timotej Lazar | |
2015-12-10 | Disable debug info when generating Prolog parser | Timotej Lazar | |
2015-12-10 | Sort token list for Prolog parser | Timotej Lazar | |
Ensures the cached version of parsetab.py is used. | |||
2015-12-10 | Fix a parser bug | Timotej Lazar | |
2015-12-10 | Add prolog.util.parse method | Timotej Lazar | |
2015-12-10 | Use the NLTK ParentedTree class for parser output | Timotej Lazar | |
2015-12-10 | Add copyright info | Timotej Lazar | |
2015-11-30 | Limit the number of inferences for Prolog queries | Timotej Lazar | |
2015-11-27 | Fix: response on /pengine/destroy_all is just "ok" | Timotej Lazar | |
2015-11-18 | Disable predicate autoloading in Prolog engine | Timotej Lazar | |
So that for example append/3 and member/2 are not accessible to users when solving conc/3 and memb/2. | |||
2015-11-18 | Fix test code in prolog.engine | Timotej Lazar | |
2015-11-04 | Fix prolog.engine.check_answers | Timotej Lazar | |
Variables not specified in the set of expected answers are now ignored. | |||
2015-10-05 | Add the prolog runner to be used for daemonisation in init scripts. | Aleš Smodiš | |
2015-09-17 | Replace prolog.engine.ask_all with check_answers | Timotej Lazar | |
When testing a program we can stop searching for new solutions after we have received a wrong one. | |||
2015-09-10 | Update prolog engine (sasha's aux functions for prolog hint testing added). | Aleksander Sadikov | |
2015-08-30 | Replaced localhost with 127.0.0.1 | Aleksander Sadikov | |
Windows takes a while to resolve the above. | |||
2015-08-28 | Fix regex for stripping internal Prolog engine IDs | Timotej Lazar | |
2015-08-27 | Strip trailing periods from Prolog queries | Timotej Lazar | |
2015-08-27 | Replace prolog.engine.run with ask_all | Timotej Lazar | |
Creating and destroying the pengine should be handled somewhere else. This commit also removes query functionality from prolog.engine.create. | |||
2015-08-27 | Fix a typo and add a comment | Timotej Lazar | |
2015-08-26 | Use /destroy_all to abort and destroy pengines | Timotej Lazar | |
Poorly documented, but works better than abort & destroy. | |||
2015-08-21 | Add a hashbang line to the Prolog server script | Timotej Lazar | |
2015-08-20 | Add a Prolog pengine server for running queries | Timotej Lazar | |
Run with "swipl main.pl". | |||
2015-08-20 | Add prolog.engine.run | Timotej Lazar | |
Collects all the answers to a given query within the specified timeout. | |||
2015-08-20 | Simplify and privatize prolog.engine.get_message | Timotej Lazar | |
2015-08-20 | Add a timeout option for prolog.engine requests | Timotej Lazar | |
2015-08-20 | Replace strip_html function in prolog.engine | Timotej Lazar | |
2015-08-11 | Print 'true' on success with no bindings | Timotej Lazar | |
2015-08-11 | Disable parser generation | Timotej Lazar | |
The parser is currently unused. | |||
2015-08-11 | Improve error & warning reporting | Timotej Lazar | |
Hope it does not break anything. | |||
2015-08-11 | Use json-html format for Prolog replies | Timotej Lazar | |
The only way to get residuals in CLP queries. | |||
2015-08-11 | Merge prolog.engine.create{,_and_ask} functions | Timotej Lazar | |
2015-08-11 | Remove app-specific code from prolog.engine | Timotej Lazar | |
2015-08-11 | Specify timeout when generating test cases | Timotej Lazar | |
2015-08-11 | Silence warnings from ply.lex.lex() | Timotej Lazar | |
2015-08-11 | Use Node class from monkey.util in parser | Timotej Lazar | |
Also simplify rules for list expressions. | |||
2015-08-11 | Add a parser for (simplified) Prolog | Timotej Lazar | |
2015-08-11 | Always lex , as COMMA, never as NAME | Timotej Lazar | |
Also a testing loop to prolog.lexer. | |||
2015-08-11 | Remove unused function from prolog.util | Timotej Lazar | |
2015-08-11 | Print a random failing test for incorrect solution | Timotej Lazar | |
2015-08-11 | prolog.engine: use .get() to access reply | Timotej Lazar | |
In case SWI engine goes insane and returns a malformed reply (has happened). Also fix the test case in this file to use the new, classless methods. | |||
2015-08-11 | Annotate tokens instead of splitting program | Timotej Lazar | |
Instead of splitting the program by line numbers, do limited parsing (enough to distinguish , in "memb(X,Y)" from , in "a :- b, c."). Each token in the parsed program is annotated with rule and part number. Rewrite monkey.fix.step to take program as a sequence of annotated tokens instead of lists of lines and rules. Improve message passing to website. | |||
2015-08-11 | Simplify calls to prolog.util.map_vars | Timotej Lazar | |
2015-08-11 | Move normalize to prolog.util | Timotej Lazar | |
2015-08-11 | Clean up prolog.util.decompose | Timotej Lazar | |
2015-08-11 | Remove all trailing punctuation from lines | Timotej Lazar | |
Remove trailing sequences of COMMAs and PERIODs when extracting edits from a trace. This is because subgoal order is rarely important in Prolog, and we don't care if the edit happened on the last line or not. This means that we treat for example "conc(A,B)," → "conc(A,B,C)." the same as "conc(A,B)" → "conc(A,B,C)". |