Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-23 | Simplify parsing a bit, and make sure the prolog loader calls read_term with ↵ | Peter Mikkelsen | |
the correct module to pick up the correct operators | |||
2021-07-22 | Big commit changing the way the system is loaded at startup. | Peter Mikkelsen | |
1) The loader and system modules are loaded by the C directly into the user module 2) The system module is then loaded with the loader from the user module 3) The loader module is then loaded with the loader from the user module 4) The repl is then loaded with the loader from the loader module 5) The user module is cleared | |||
2021-07-20 | Throw errors when trying to evaluate goals that cannot be evaluated | Peter Mikkelsen | |
2021-07-16 | Handle -d option in prolog | Peter Mikkelsen | |
2021-07-16 | Handle the 'unknown' prolog flag correctly | Peter Mikkelsen | |
2021-07-16 | Replace the C repl with one written in prolog :) | Peter Mikkelsen | |
2021-07-16 | Make operators local to each module, and implement some more correct ↵ | Peter Mikkelsen | |
prettyprint code, used by write_term | |||
2021-07-13 | When binding two variables to eachother, always bind to the one with the ↵ | Peter Mikkelsen | |
lowest clause number | |||
2021-07-08 | Add a mark-sweep garbage collector | Peter Mikkelsen | |
2021-07-08 | Add clause/2 predicate | Peter Mikkelsen | |
2021-07-07 | Add copy_term/2 | Peter Mikkelsen | |
2021-07-06 | Store the calling module in each goal, and fix a bug where unification could ↵ | Peter Mikkelsen | |
leave behind some bindings even though the unification failed. | |||
2021-07-06 | Group clauses into predicates, and create all valid choicepoints at once. ↵ | Peter Mikkelsen | |
This is wastefull if one branch loops forever, but it is much nicer otherwise, since we know the choicepoints only gets created as long as their head is unifiable with the goal. | |||
2021-07-05 | Turn integers and floats into seperate term types | Peter Mikkelsen | |
2021-07-05 | First step on modules. Still very very rough. | Peter Mikkelsen | |
2021-07-03 | Make the goalstack global just like the choicestack | Peter Mikkelsen | |
2021-07-03 | Add one global choicestack so we don't need to pass it around | Peter Mikkelsen | |
2021-07-03 | Start adding support for read_term and write_term | Peter Mikkelsen | |
2021-07-02 | Remove strings, and add a (currently not changable) flag 'double_quotes' ↵ | Peter Mikkelsen | |
which defines how double quoted strings are stored. | |||
2021-07-01 | Add exceptions :) implement catch/3 and throw/1 | Peter Mikkelsen | |
2021-06-30 | Allow the repl to backtrack to give alternative results | Peter Mikkelsen | |
2021-06-30 | Add functor/3 | Peter Mikkelsen | |
2021-06-30 | Add comparison predicates | Peter Mikkelsen | |
2021-06-30 | Add a standard library with the "builtins" that doesn't really need to be ↵ | Peter Mikkelsen | |
actual builtins | |||
2021-06-30 | Add support for builtins, and implement true/0, fail/0, call/1, and !/0 builtins | Peter Mikkelsen | |
2021-06-30 | Give queries another id than clauses, so variable names doesn't clash | Peter Mikkelsen | |
2021-06-30 | Add a basic repl | Peter Mikkelsen | |
2021-06-30 | Treat the variable _ differently, in that it doesn't introduce a new binding | Peter Mikkelsen | |
2021-06-30 | Add backtracking to the evaluator. This means we have to keep track of ↵ | Peter Mikkelsen | |
choicepoints which is implemented the easy but wasteful way for now. I have also added a number which is used to differentiate variables from different application of the clauses. | |||
2021-06-30 | Start work on an evaluator. For now it knows how to unify but doesn't know ↵ | Peter Mikkelsen | |
how to handle builtin predicates or how to backtrack |