summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-20Add a space between printout and ; or .Peter Mikkelsen
2021-07-20Add op/3 and current_op/3Peter Mikkelsen
2021-07-19Update TODOPeter Mikkelsen
2021-07-19Try to print A = B instead of A = _X, B = _X when two variables are equalPeter Mikkelsen
2021-07-19Print errors better in the replPeter Mikkelsen
2021-07-19More work on streamsPeter Mikkelsen
2021-07-18Load extra arguments as module filesPeter Mikkelsen
2021-07-18Install stdlib.pl and repl.pl into /sys/lib/prolog/Peter Mikkelsen
2021-07-16Handle -d option in prologPeter Mikkelsen
2021-07-16Handle the 'unknown' prolog flag correctlyPeter Mikkelsen
2021-07-16Implement a bit more of prolog flag predicates set_prolog_flag/2 and ↵Peter Mikkelsen
current_prolog_flag/2
2021-07-16Pass arguments to repl/1Peter Mikkelsen
2021-07-16Replace the C repl with one written in prolog :)Peter Mikkelsen
2021-07-16Add character input/outputPeter Mikkelsen
2021-07-16Make operators local to each module, and implement some more correct ↵Peter Mikkelsen
prettyprint code, used by write_term
2021-07-15Make read_term understand the three read options:Peter Mikkelsen
variables(Vars), variable_names(VarNames), singletons(Singles) as required per the ISO standard
2021-07-13Add atom_concat/3Peter Mikkelsen
2021-07-13Add atom_codes/2Peter Mikkelsen
2021-07-13Add atom_length/2Peter Mikkelsen
2021-07-13Implement sort/2 and setof/3Peter Mikkelsen
2021-07-13When binding two variables to eachother, always bind to the one with the ↵Peter Mikkelsen
lowest clause number
2021-07-11Using member and then cut always picks the first element anyways, so just ↵Peter Mikkelsen
pick it with = instead
2021-07-11Try to implement bagof/3, but I am not 100% sure it is correctPeter Mikkelsen
2021-07-10Add findall/3 implemented in prologPeter Mikkelsen
2021-07-09Add asserta/1, assertz/1, retract/1, abolish/1 (and retract_one/1, which is ↵Peter Mikkelsen
retract/1 but doesn't backtrack)
2021-07-08Add current_predicate/1 builtinPeter Mikkelsen
2021-07-08Make the repl bindings and query global so the garbage collector can know ↵Peter Mikkelsen
about them
2021-07-08Add a hash table to make the garbage collection fasterPeter Mikkelsen
2021-07-08Add a mark-sweep garbage collectorPeter Mikkelsen
2021-07-08Add licensePeter Mikkelsen
2021-07-08Add clause/2 predicatePeter Mikkelsen
2021-07-08Add arithmetic comparison predicatesPeter Mikkelsen
2021-07-08Update todoPeter Mikkelsen
2021-07-08Implement the full arithmetic part of the ISO spec.Peter Mikkelsen
2021-07-07Add copy_term/2Peter Mikkelsen
2021-07-07Make '=..'/2 work according to spec. Introduce types.c for functions which ↵Peter Mikkelsen
tells us something about term types. Should be used a lot more instead of explicitly looking into terms->tag everywhere
2021-07-07Oops remove debug printPeter Mikkelsen
2021-07-07Make arg/3 work according to specPeter Mikkelsen
2021-07-07Make functor/3 work according to specPeter Mikkelsen
2021-07-07Fix compare/3 for variables named _. They are never equalPeter Mikkelsen
2021-07-07Add missing pre defined operators from iso prologPeter Mikkelsen
2021-07-06Add list modulePeter Mikkelsen
2021-07-06Store 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-06Change the output of the repl a lille bitPeter Mikkelsen
2021-07-06Group 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-05Turn integers and floats into seperate term typesPeter Mikkelsen
2021-07-05First step on modules. Still very very rough.Peter Mikkelsen
2021-07-03Make the goalstack global just like the choicestackPeter Mikkelsen
2021-07-03Add one global choicestack so we don't need to pass it aroundPeter Mikkelsen
2021-07-03Start adding support for read_term and write_termPeter Mikkelsen