summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-22Silence warning about singleton variables in system.pl and loader.plPeter Mikkelsen
2021-07-22Fix ; again haha, I can't just wrap variable goals in call/1 due to cuts ↵Peter Mikkelsen
being local in a call
2021-07-22Big 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-22Implement halt/0, halt/1, and understand the --no-repl flagPeter Mikkelsen
2021-07-22Use addgoals to add the goal in catch/3 to the goalstack, allowing mod:pred ↵Peter Mikkelsen
goals too
2021-07-22Understand set_prolog_flag directivePeter Mikkelsen
2021-07-22Understand initialization/1 directivesPeter Mikkelsen
2021-07-22Make predicates private and static by default, and make them dynamic when ↵Peter Mikkelsen
using the dynamic/1 predicate
2021-07-22Fix singleton warnings in repl.plPeter Mikkelsen
2021-07-22Warn about singleton variables in clauses, as it is often a sign of a ↵Peter Mikkelsen
mis-spelling
2021-07-22Actually load repl.pl with the prolog loader, and handle module directivesPeter Mikkelsen
2021-07-22Use the prolog loader to load the repl.Peter Mikkelsen
2021-07-21Always use a fresh clausenr for read teams, and make sure to update the ↵Peter Mikkelsen
clausenr in call/1, so cuts are local to that call
2021-07-20The iso standard want's call(G) to throw a type_error(callable, G), when G ↵Peter Mikkelsen
contains parts that cannot be called, but it is OK for parts of G to be variables, such as G=(write(hey), X).
2021-07-20Throw errors when trying to evaluate goals that cannot be evaluatedPeter Mikkelsen
2021-07-20Add support for character code constants like 0'aPeter Mikkelsen
2021-07-20Add a bit of a hack to the parser so it can parse (a) op arg when a is an ↵Peter Mikkelsen
operator
2021-07-20Support '' in tokensPeter Mikkelsen
2021-07-20Add a new work in progress loader to load all user defined modulesPeter Mikkelsen
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