17:- system_module( '$_preddecls', [(
discontiguous)
/1,
20 (
discontiguous)
/1], [
'$check_multifile_pred'/3,
24:-
'$add_multifile'/3
use_system_module(
'$_consult', []).
26:-
'$do_error'/2
use_system_module(
'$_errors', []).
52'$public'(
X,
_)
:- var(
X),
var,
53 '$do_error'(instantiation_error,
public(
X)).
54'$public'(
Mod:Spec,
_)
:- '$public',
56'$public'((
A,
B),
M)
:- '$public',
'$public'(
A,
M),
'$public'(
B,
M).
57'$public'([],
_)
:- '$public'.
58'$public'([
H|L],
M)
:- '$public',
'$public'(
H,
M),
'$public'(
L,
M).
59'$public'(
A//N1,
Mod)
:- integer(
N1),
integer,
64 '$do_make_public'(
T,
Mod).
66 '$do_pi_error'(type_error(callable,
X),
dynamic(
Mod:X)).
68'$do_make_public'(
T,
Mod)
:-
69 '$is_dynamic'(
T,
Mod),
'$is_dynamic'.
70'$do_make_public'(
T,
Mod)
:-
71 '$predicate_flags'(
T,
Mod,
F,
F),
72 NF is F\/0'$predicate_flags',
73 '$predicate_flags'(
T,
Mod,
F,
NF).
78 '$do_error'(instantiation_error,
discontiguous(
V)).
79discontiguous(
M:F)
:- ,
80 '$discontiguous'(
F,
M).
83 '$discontiguous'(
F,
M).
85'$discontiguous'(
V,
M)
:- var(
V),
var,
86 '$do_error'(instantiation_error,
M:discontiguous(
V)).
87'$discontiguous'((
X,
Y),
M)
:- '$discontiguous',
88 '$discontiguous'(
X,
M),
89 '$discontiguous'(
Y,
M).
90'$discontiguous'(
M:A,
_)
:- '$discontiguous',
91 '$discontiguous'(
A,
M).
92'$discontiguous'(
N//A1,
M)
:- '$discontiguous',
95 '$discontiguous'(
N/A,
M).
96'$discontiguous'(
N/A,
M)
:- '$discontiguous',
97 '$new_discontiguous'(
N,
A,
M).
98'$discontiguous'(
P,
M)
:-
99 '$do_error'(type_error(predicate_indicator,
P),
M:discontiguous(
P)).
104'$check_multifile_pred'(
Hd,
M,
_)
:-
106 source_location(
F,
_),
107 recorded(
'$multifile_defs',
'$defined'(
F,
Na,
Ar,
M),
_),
recorded.
109'$check_multifile_pred'(
Hd,
M,
Fl)
:-
112 NFl is \(
0x20000000)
/\ Fl,
113 '$predicate_flags'(
Hd,
M,
Fl,
NFl),
114 '$warn_mfile'(
Na,
Ar).
117 write(user_error,
'% Warning: predicate '),
118 write(user_error,
F/A),
write(user_error,
' was a multifile predicate '),
119 write(user_error,
' (line '),
120 '$start_line'(
LN),
write(user_error,
LN),
121 write(user_error,
')'),
124'$is_public'(
T,
Mod)
:-
125 '$is_dynamic'(
T,
Mod),
'$is_dynamic'.
126'$is_public'(
T,
Mod)
:-
127 '$predicate_flags'(
T,
Mod,
F,
F),
128 F\/0'$predicate_flags'
=\= 0.
144:-
'$module_transparent'/4
dynamic().
146'$module_transparent'((
P,
Ps),
M)
:- '$module_transparent',
147 '$module_transparent'(
P,
M),
148 '$module_transparent'(
Ps,
M).
149'$module_transparent'(
M:D,
_)
:- '$module_transparent',
150 '$module_transparent'(
D,
M).
151'$module_transparent'(
F/N,
M)
:-
152 '$module_transparent'(
F,
M,
N,
_),
'$module_transparent'.
153'$module_transparent'(
F/N,
M)
:-
155 asserta(prolog
:'$module_transparent'(
F,
M,
N,
P)),
156 '$predicate_flags'(
P,
M,
Fl,
Fl),
157 NFlags is Fl \/ 0'$predicate_flags',
158 '$predicate_flags'(
P,
M,
Fl,
NFlags).