
init.pl
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
$pattr_directive(+Spec, +Module) is det[private]
$hide(:PI)[private]
$meta_call(:Goal)[private]This implementation is used by reset/3 because the continuation cannot be captured if it contains a such a compiled temporary clause.
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
not :Goal is semidet[private]
\+ :Goal is semidet[private]
once(:Goal) is semidet[private]call((Goal, !)).
ignore(:Goal) is det[private]
false[private]
catch(:Goal, +Catcher, :Recover)[private]
prolog_cut_to(+Choice)[private]
reset(:Goal, ?Ball, -Continue)[private]
shift(+Ball)[private]
call_continuation(+Continuation:list)[private]Note that we can technically also push the entire continuation onto the environment and call it. Doing it incrementally as below exploits last-call optimization and therefore possible quadratic expansion of the continuation.
catch_with_backtrace(:Goal, ?Ball, :Recover)[private]
$recover_and_rethrow(:Goal, +Term)[private]
setup_call_cleanup(:Setup, :Goal, :Cleanup)[private]
setup_call_catcher_cleanup(:Setup, :Goal, +Catcher, :Cleanup)[private]
call_cleanup(:Goal, :Cleanup)[private]
call_cleanup(:Goal, +Catcher, :Cleanup)[private]
initialization(:Goal, +When)[private]-g goal goals.Note that all goals are executed when a program is restored.
$run_initialization(?File, +Options) is det[private]
$run_initialization(?File, +Action, +Options) is det[private]runInitialization() in pl-wic.c for .qlf files. The
'$run_initialization'/3 is called with Action set to loaded
when called for a QLF file.
$clear_source_admin(+File) is det[private]
default_module(+Me, -Super) is multi[private]
$undefined_procedure(+Module, +Name, +Arity, -Action) is det[private]
$loading(+Library)[private]
$confirm(Spec)[private]
expand_file_search_path(+Spec, -Expanded) is nondet[private]
absolute_file_name(+Term, -AbsoluteFile, +Options) is nondet[private]
user:prolog_file_type(?Extension, ?Type)[multifile]
Note that qlf must be last when searching for Prolog files.
Otherwise use_module/1 will consider the file as not-loaded
because the .qlf file is not the loaded file. Must be fixed
elsewhere.
$chk_file(+Spec, +Extensions, +Cond, +UseCache, -FullName)[private]
$relative_to(+Condition, +Default, -Dir)[private]relative_to(FileOrDir) options
or implicitely relative to the working directory or current
source-file.
$chk_alias_file(+Spec, +Exts, +Cond, +Cache, +CWD, -FullFile) is nondet[private]
$file_conditions(+Condition, +Path)[private]
$list_to_set(+List, -Set) is det[private]log(N))
version, but sets of file name extensions should be short enough
for this not to matter.
$compilation_level(-Level) is det[private]
compiling[private]
$load_msg_level(+Action, +NestingLevel, -StartVerbose, -EndVerbose)[private]
$source_term(+From, -Read, -RLayout, -Term, -TLayout, -Stream, +Options) is nondet[private]
$term_in_file(+In, -Read, -RLayout, -Term, -TLayout, -Stream, +Parents, +Options) is multi[private]
$add_encoding(+Enc, +Options0, -Options)[private]
$record_included(+Parents, +File, +Path, +Time, -Message) is det[private]I think that the only sensible solution is to have a special statement for this, that may appear both inside and outside QLF `parts'.
$master_file(+File, -MasterFile)[private]
ensure_loaded(+FileOrListOfFiles)[private]
use_module(+FileOrListOfFiles)[private]
use_module(+File, +ImportList)[private]
reexport(+Files)[private]
reexport(+File, +ImportList)[private]
load_files(:File, +Options)[private]
$noload(+Condition, +FullFile, +Options) is semidet[private]
$qlf_file(+Spec, +PlFile, -LoadFile, -Mode, +Options) is det[private]
$qlf_out_of_date(+PlFile, +QlfFile, -Why) is semidet[private]
$qlf_auto(+PlFile, +QlfFile, +Options) is semidet[private]qcompile(QlfMode) or, if this is not present, by
the prolog_flag qcompile.
$load_file(+Spec, +ContextModule, +Options) is det[private]
$translated_source(+Old, +New) is det[private]
$register_resource_file(+FullFile) is det[private]
$already_loaded(+File, +FullFile, +Module, +Options) is det[private]
$mt_load_file(+File, +FullFile, +Module, +Options) is det[private]Synchronisation is handled using a message queue that exists while the file is being loaded. This synchronisation relies on the fact that thread_get_message/1 throws an existence_error if the message queue is destroyed. This is hacky. Events or condition variables would have made a cleaner design.
$do_load_file(+Spec, +FullFile, +ContextModule, -Action, +Options) is det[private]
$save_file_scoped_flags(-State) is det[private]
$restore_file_scoped_flags(-State) is det[private]
$import_from_loaded_module(LoadedModule, Module, Options) is det[private]
$set_verbose_load(+Options, -Old) is det[private]verbose_load flag according to Options and unify Old
with the old value.
$set_sandboxed_load(+Options, -Old) is det[private]sandboxed_load from Options. Old is
unified with the old flag.
$update_autoload_level(+Options, -OldLevel)[private]
$print_message(+Level, +Term) is det[private]
$consult_file(+Path, +Module, -Action, -LoadedIn, +Options)[private]
$save_lex_state(-LexState, +Options) is det[private]
$assert_load_context_module(+File, -Module, -Options)[private]
$load_ctx_options(+Options, -CtxOptions) is det[private]
$load_file(+Path, +Id, -Module, +Options)[private]
state(FirstTerm:boolean,
Module:atom,
AtEnd:atom,
Stop:boolean,
Id:atom,
Dialect:atom)
$set_dialect(+Dialect, +State)[private]Note that expects_dialect/1 itself may be autoloaded from the library.
$module3(+Spec) is det[private]
$module_name(?Name, +Id, -Module, +Options) is semidet[private]module(Module) is given. In that case, use this
module and if Module is the load context, ignore the module
header.
$redefine_module(+Module, +File, -Redefine)[private]
$module_class(+File, -Class, -Super) is det[private]system, while all normal user
modules inherit from user.
$import_list(+TargetModule, +FromModule, +Import, +Reexport) is det[private]all,
a list of optionally mapped predicate indicators or a term
except(Import).
$import_all(+Import, +Context, +Source, +Reexport, +Strength)[private]
$import_all2(+Imports, +Context, +Source, -Imported, -ImpOps, +Strength)[private]
$exported_ops(+Module, -Ops, ?Tail) is det[private]op(P,A,N) terms representing the operators
exported from Module.
$import_ops(+Target, +Source, +Pattern)[private]
$export_list(+Declarations, +Module, -Ops)[private]
$execute_directive(:Goal, +File) is det[private]
$valid_directive(:Directive) is det[private]sandboxed_load is true, this calls
prolog:sandbox_allowed_directive/1. This call can deny execution
of the directive by throwing an exception.
$store_admin_clause(+Clause, ?Layout, +Owner, +SrcLoc) is det[private]
$store_clause(+Clause, ?Layout, +Owner, +SrcLoc) is det[private]
$store_clause(+Term, +Id) is det[private]
compile_aux_clauses(+Clauses) is det[private]If the cross-referencer is active, we should not (re-)assert the clauses. Actually, we should make them known to the cross-referencer. How do we do that? Maybe we need a different API, such as in:
expand_term_aux(Goal, NewGoal, Clauses)
$stage_file(+Target, -Stage) is det[private]
$install_staged_file(+Catcher, +Staged, +Target, +OnError)[private]
length(?List, ?N)[private]
$is_options(@Term) is semidet[private]
$option(?Opt, +Options) is semidet[private]
$option(?Opt, +Options, +Default) is det[private]
$select_option(?Opt, +Options, -Rest) is semidet[private]
$merge_options(+New, +Default, -Merged) is det[private]
at_halt(:Goal)[private]
cancel_halt(+Reason)[private]
$load_additional_boot_files is det[private]compileFileList() in pl-wic.c. Gets the files from
"-c file ..." and loads them into the module user.
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
dynamic +Spec is det[private]
multifile +Spec is det[private]
module_transparent +Spec is det[private]
discontiguous +Spec is det[private]
volatile +Spec is det[private]
thread_local +Spec is det[private]
noprofile(+Spec) is det[private]
public +Spec is det[private]
non_terminal(+Spec) is det[private]
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
call(:Closure, ?A)[private]
call(:Closure, ?A1, ?A2)[private]
call(:Closure, ?A1, ?A2, ?A3)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6)[private]
call(:Closure, ?A1, ?A2, ?A3, ?A4, ?A5, ?A6, ?A7)[private]
setup_call_cleanup(:Setup, :Goal, :Cleanup)[private]
setup_call_catcher_cleanup(:Setup, :Goal, +Catcher, :Cleanup)[private]
call_cleanup(:Goal, :Cleanup)[private]
call_cleanup(:Goal, +Catcher, :Cleanup)[private]
setup_call_cleanup(:Setup, :Goal, :Cleanup)[private]
setup_call_catcher_cleanup(:Setup, :Goal, +Catcher, :Cleanup)[private]
call_cleanup(:Goal, :Cleanup)[private]
call_cleanup(:Goal, +Catcher, :Cleanup)[private]
setup_call_cleanup(:Setup, :Goal, :Cleanup)[private]
setup_call_catcher_cleanup(:Setup, :Goal, +Catcher, :Cleanup)[private]
call_cleanup(:Goal, :Cleanup)[private]
call_cleanup(:Goal, +Catcher, :Cleanup)[private]
$run_initialization(?File, +Options) is det[private]
$run_initialization(?File, +Action, +Options) is det[private]runInitialization() in pl-wic.c for .qlf files. The
'$run_initialization'/3 is called with Action set to loaded
when called for a QLF file.
$save_file_scoped_flags(-State) is det[private]
$restore_file_scoped_flags(-State) is det[private]
$stage_file(+Target, -Stage) is det[private]
$install_staged_file(+Catcher, +Staged, +Target, +OnError)[private]