###
# Modern Albufeira Prolog Interpreter
#
# Warranty & Liability
# To the extent permitted by applicable law and unless explicitly
# otherwise agreed upon, XLOG Technologies AG makes no warranties
# regarding the provided information. XLOG Technologies AG assumes
# no liability that any problems might be solved with the information
# provided by XLOG Technologies AG.
#
# Rights & License
# All industrial property rights regarding the information - copyright
# and patent rights in particular - are the sole property of XLOG
# Technologies AG. If the company was not the originator of some
# excerpts, XLOG Technologies AG has at least obtained the right to
# reproduce, change and translate the information.
#
# Reproduction is restricted to the whole unaltered document. Reproduction
# of the information is only allowed for non-commercial uses. Selling,
# giving away or letting of the execution of the library is prohibited.
# The library can be distributed as part of your applications and libraries
# for execution provided this comment remains unchanged.
#
# Restrictions
# Only to be distributed with programs that add significant and primary
# functionality to the library. Not to be distributed with additional
# software intended to replace any components of the library.
#
# Trademarks
# Jekejeke is a registered trademark of XLOG Technologies AG.
##
################################################################
# Import Native API #
################################################################
# embedding native API
import nova.store as store
from nova.store import (Clause, add, set, Cache, make_defined,
set_stage, clear, set_partition, Goal, is_provable)
import nova.machine as machine
from nova.machine import (run, Context,
is_cache, VOID_ARGS, launch_async, task_async)
from nova.runtime import (
check_provable)
# engine native API
from nova.store import (is_compound, Item, is_logical, is_stick,
stack_push, stack_peek, stack_pop, size_peek, check_nonvar)
from nova.machine import ( cont, make_error,
register_signal, real_time,
gc_major, is_frozen, Frozen, is_special)
from nova.special import (check_atom, narrow_float,
make_arithmetic, make_check, check_number, check_integer,
check_atomic, check_callable, MAX_ARITY,
check_clause, check_goal, make_special)
# term native API
from nova.store import (Variable, is_variable, Compound,
is_structure, VAR_MASK_SEEN, deref, copy_term,
VAR_MASK_STATE, VAR_MASK_SERNO, variable_serno)
from nova.machine import (is_atom, is_number, is_integer,
unify, bind, exec_deref, is_pending,
union_find, union_add, union_undo, is_float,
exec_eval, exec_unify, exec_build)
from nova.special import (objects_list, list_objects,
walk_vars, atom_integer_encode)
from nova.eval import (equal_term, walk_compute,
walk_uncompute, Triple, is_triple)
# stream native API
from nova.runtime import (Source, Sink, check_sink, check_source,
put_atom, stream_close, stream_flush, MASK_DST_FEAT,
MASK_SRC_AREAD, map_stream_error, get_encoding,
set_bootbase, file_read_promise, MASK_DST_LINE)
# theatre native API
from nova.theatre import (post, perform, set_to_list,
perform_async, FFI_FUNC, register)
# specific native API
from nova.machine import (object_equals, int32,
object_hash_code)
# engine native API
def get_cont():
return machine.call
def get_mark():
return machine.trail
def get_engine():
return store.engine
def get_ctx():
return machine.ctx
def get_stage():
return store.stage
def get_gc_enter():
return machine.gc_enter
def get_gc_time():
return machine.gc_time
def get_gc_maxinfs():
return machine.gc_maxinfs