summaryrefslogtreecommitdiff
path: root/builtins.c
AgeCommit message (Collapse)Author
2021-07-27remove clausenr from terms, and put it into goals instead. Next up is ↵HEADfrontPeter Mikkelsen
implementing the control constructs in C, since they misbehave right now due to the new changes
2021-07-27Don't use strings to identify vars, use numbersPeter Mikkelsen
2021-07-23Simplify 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-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-22Make predicates private and static by default, and make them dynamic when ↵Peter Mikkelsen
using the dynamic/1 predicate
2021-07-22Actually load repl.pl with the prolog loader, and handle module directivesPeter 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-20Add a new work in progress loader to load all user defined modulesPeter Mikkelsen
2021-07-20Add op/3 and current_op/3Peter Mikkelsen
2021-07-19More work on streamsPeter Mikkelsen
2021-07-18Load extra arguments as module filesPeter Mikkelsen
2021-07-16Handle -d option in prologPeter Mikkelsen
2021-07-16Implement a bit more of prolog flag predicates set_prolog_flag/2 and ↵Peter Mikkelsen
current_prolog_flag/2
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_codes/2Peter Mikkelsen
2021-07-13Add atom_length/2Peter 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-08Add a mark-sweep garbage collectorPeter Mikkelsen
2021-07-08Add clause/2 predicatePeter Mikkelsen
2021-07-08Add arithmetic comparison predicatesPeter 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-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-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
2021-07-02Start work on input/output streamsPeter Mikkelsen
2021-07-02Fix Throw(What) macroPeter Mikkelsen
2021-07-02Begin work on set_prolog_flag/2 and current_prolog_flag/2Peter Mikkelsen
2021-07-02Remove strings, and add a (currently not changable) flag 'double_quotes' ↵Peter Mikkelsen
which defines how double quoted strings are stored.
2021-07-01Add exceptions :) implement catch/3 and throw/1Peter Mikkelsen
2021-07-01Start implementation of is/2Peter Mikkelsen
2021-06-30Add =../2Peter Mikkelsen
2021-06-30Add arg/3Peter Mikkelsen
2021-06-30Add functor/3Peter Mikkelsen