39'$add_multifile'(
Name,
Arity,
Module)
:-
40 source_location(
File,
_),
41 '$add_multifile'(
File,
Name,
Arity,
Module).
43'$add_multifile'(
File,
Name,
Arity,
Module)
:-
44 recorded(
'$multifile_defs',
'$defined'(
File,
Name,
Arity,
Module),
_),
recorded.
46'$add_multifile'(
File,
Name,
Arity,
Module)
:-
47 recordz(
'$multifile_defs',
'$defined'(
File,
Name,
Arity,
Module),
_),
recordz,
49'$add_multifile'(
File,
Name,
Arity,
Module)
:-
50 recorded(
'$mf',
'$mf_clause'(
File,
Name,
Arity,
Module,
Ref),
R),
52 '$erase_clause'(
Ref,
Module),
54'$add_multifile'(
_,
_,
_,
_).
95 '$do_error'(context_error(
dynamic(
X),declaration),query).
97'$dynamic'(
X,
M)
:- var(
X),
var,
98 '$do_error'(instantiation_error,
dynamic(
M:X)).
99'$dynamic'(
X,
M)
:- var(
M),
var,
100 '$do_error'(instantiation_error,
dynamic(
M:X)).
101'$dynamic'(
Mod:Spec,
_)
:- '$dynamic',
102 '$dynamic'(
Spec,
Mod).
103'$dynamic'([],
_)
:- '$dynamic'.
104'$dynamic'([
H|L],
M)
:- '$dynamic',
'$dynamic'(
H,
M),
'$dynamic'(
L,
M).
105'$dynamic'((
A,
B),
M)
:- '$dynamic',
'$dynamic'(
A,
M),
'$dynamic'(
B,
M).
106'$dynamic'(
A//N,
Mod)
:- integer(
N),
integer,
108 '$dynamic'(
A/N1,
Mod).
109'$dynamic'(
A/N,
Mod)
:-
111 '$mk_dynamic'(
Mod:G),
140 strip_module(
P,
OM,
Pred),
141 '$multifile'(
Pred,
OM).
146 '$do_error'(instantiation_error,
multifile(
V)).
147'$multifile'((
X,
Y),
M)
:-
151'$multifile'(
Mod:PredSpec,
_)
:-
153 '$multifile'(
PredSpec,
Mod).
154'$multifile'(
N//A,
M)
:- '$multifile',
157 '$multifile'(
N/A1,
M).
158'$multifile'(
N/A,
M)
:-
159 '$add_multifile'(
N,
A,
M),
161'$multifile'(
N/A,
M)
:-
163 '$new_multifile'(
S,
M),
'$new_multifile'.
164'$multifile'([
H|T],
M)
:- '$multifile',
168 '$do_error'(type_error(predicate_indicator,
P),
multifile(
M:P)).
175'$check_multifile_pred'(
Hd,
M,
_)
:-
177 source_location(
F,
_),
178 recorded(
'$multifile_defs',
'$defined'(
F,
Na,
Ar,
M),
_),
recorded.
180'$check_multifile_pred'(
Hd,
M,
Fl)
:-
183 NFl is \(
0x20000000)
/\ Fl,
184 '$predicate_flags'(
Hd,
M,
Fl,
NFl),
185 '$warn_mfile'(
Na,
Ar).
188 write(user_error,
'% Warning: predicate '),
189 write(user_error,
F/A),
write(user_error,
' was a multifile predicate '),
190 write(user_error,
' (line '),
191 '$start_line'(
LN),
write(user_error,
LN),
192 write(user_error,
')'),
198 strip_module(
P,
OM,
Pred),
199 '$meta_predicate'(
Pred,
OM).
202'$meta_predicate'(
P,
M)
:-
205 '$do_error'(instantiation_error,
meta_predicate(
M:P)).
206'$meta_predicate'(
P,
M)
:-
209 '$do_error'(instantiation_error,
meta_predicate(
M:P)).
210'$meta_predicate'((
P,
_Ps),
M)
:-
211 '$meta_predicate'(
P,
M),
213'$meta_predicate'((
_P,
Ps),
M)
:-
215 '$meta_predicate'(
Ps,
M).
216'$meta_predicate'(
D,
M )
:-
217 '$yap_strip_module'(
M:D,
M1,
P),
220 '$meta_predicate'(
P,
M1 ).
221'$meta_predicate'(
D,
M )
:-
223 '$install_meta_predicate'(
D,
M,
F,
N),
224 '$install_meta_predicate'.
225'$meta_predicate'(
_D,
_M ).
227'$install_meta_predicate'(
P,
M,
_F,
_N)
:-
228 '$new_meta_pred'(
P,
M),
230'$install_meta_predicate'(
_P,
M,
F,
N)
:-
232 (
M = prolog
-> M2 = _ ; M2 = M),
233 recorded(
'$m',
meta_predicate(
M2,
PE),
R),
236'$install_meta_predicate'(
P,
M,
_F,
_N)
:-
237 recordz(
'$m' ,
meta_predicate(
M,
P),
_).
242 '$full_clause_optimisation'/4.
304 strip_module(
P,
OM,
Pred),
305 '$multifile'(
Pred,
OM).
310 '$do_error'(instantiation_error,
multifile(
V)).
311'$multifile'((
X,
Y),
M)
:-
315'$multifile'(
Mod:PredSpec,
_)
:-
317 '$multifile'(
PredSpec,
Mod).
318'$multifile'(
N//A,
M)
:- '$multifile',
321 '$multifile'(
N/A1,
M).
322'$multifile'(
N/A,
M)
:-
323 '$add_multifile'(
N,
A,
M),
325'$multifile'(
N/A,
M)
:-
327 '$new_multifile'(
S,
M),
'$new_multifile'.
328'$multifile'([
H|T],
M)
:- '$multifile',
332 '$do_error'(type_error(predicate_indicator,
P),
multifile(
M:P)).
339'$check_multifile_pred'(
Hd,
M,
_)
:-
341 source_location(
F,
_),
342 recorded(
'$multifile_defs',
'$defined'(
F,
Na,
Ar,
M),
_),
recorded.
344'$check_multifile_pred'(
Hd,
M,
Fl)
:-
347 NFl is \(
0x20000000)
/\ Fl,
348 '$predicate_flags'(
Hd,
M,
Fl,
NFl),
349 '$warn_mfile'(
Na,
Ar).
352 write(user_error,
'% Warning: predicate '),
353 write(user_error,
F/A),
write(user_error,
' was a multifile predicate '),
354 write(user_error,
' (line '),
355 '$start_line'(
LN),
write(user_error,
LN),
356 write(user_error,
')'),
362 strip_module(
P,
OM,
Pred),
363 '$private'(
Pred,
OM).
369 '$do_error'(instantiation_error,private(
M:P)).
373 '$do_error'(instantiation_error,private(
M:P)).
374'$private'((
P,
_Ps),
M)
:-
377'$private'((
_P,
Ps),
M)
:-
381 '$yap_strip_module'(
M:D,
M1,
P),
385'$private'(
F/N,
M )
:-
387 '$install_private'(
D,
M),
391'$install_private'(
P,
M)
:-
396 '$full_clause_optimisation'/4.
402
current_prolog_flag(? Flag,- Value)