restore callable.
This commit is contained in:
parent
bf0844a2a0
commit
d40b9d1426
@ -2616,7 +2616,7 @@ p_compile( USES_REGS1 )
|
|||||||
YAPLeaveCriticalSection();
|
YAPLeaveCriticalSection();
|
||||||
if (LOCAL_ErrorMessage) {
|
if (LOCAL_ErrorMessage) {
|
||||||
if (LOCAL_Error_TYPE == TYPE_ERROR_CALLABLE) {
|
if (LOCAL_Error_TYPE == TYPE_ERROR_CALLABLE) {
|
||||||
Yap_Error(LOCAL_Error_TYPE, Yap_PredicateIndicator(t, mod), LOCAL_ErrorMessage);
|
Yap_Error(LOCAL_Error_TYPE, t, LOCAL_ErrorMessage);
|
||||||
}
|
}
|
||||||
if (IntOfTerm(t1) & 4) {
|
if (IntOfTerm(t1) & 4) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE, LOCAL_Error_Term,
|
Yap_Error(TYPE_ERROR_CALLABLE, LOCAL_Error_Term,
|
||||||
|
@ -3604,8 +3604,8 @@ Yap_cclause(volatile Term inp_clause, Int NOfArgs, Term mod, volatile Term src)
|
|||||||
}
|
}
|
||||||
if (IsVarTerm(head) || IsPairTerm(head) || IsIntTerm(head) || IsFloatTerm(head) || IsRefTerm(head)) {
|
if (IsVarTerm(head) || IsPairTerm(head) || IsIntTerm(head) || IsFloatTerm(head) || IsRefTerm(head)) {
|
||||||
LOCAL_Error_TYPE = TYPE_ERROR_CALLABLE;
|
LOCAL_Error_TYPE = TYPE_ERROR_CALLABLE;
|
||||||
LOCAL_Error_Term = my_clause;
|
LOCAL_Error_Term = head;
|
||||||
LOCAL_ErrorMessage = "clause should be atom or term";
|
LOCAL_ErrorMessage = "clause head should be atom or compound term";
|
||||||
return (0);
|
return (0);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
14
C/exec.c
14
C/exec.c
@ -137,10 +137,10 @@ CallError(yap_error_number err, Term t, Term mod USES_REGS)
|
|||||||
return(CallMetaCall(t, mod PASS_REGS));
|
return(CallMetaCall(t, mod PASS_REGS));
|
||||||
} else {
|
} else {
|
||||||
if (err == TYPE_ERROR_CALLABLE) {
|
if (err == TYPE_ERROR_CALLABLE) {
|
||||||
t = Yap_PredicateIndicator(t, mod);
|
t = Yap_StripModule(t, &mod);
|
||||||
}
|
}
|
||||||
Yap_Error(err, t, "call/1");
|
Yap_Error(err, t, "call/1");
|
||||||
return(FALSE);
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -830,7 +830,7 @@ p_execute0( USES_REGS1 )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t, mod),"call/1");
|
Yap_Error(TYPE_ERROR_CALLABLE, t,"call/1");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
/* N = arity; */
|
/* N = arity; */
|
||||||
@ -901,7 +901,7 @@ p_execute_nonstop( USES_REGS1 )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t, mod),"call/1");
|
Yap_Error(TYPE_ERROR_CALLABLE,t,"call/1");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
/* N = arity; */
|
/* N = arity; */
|
||||||
@ -1305,7 +1305,7 @@ Yap_execute_goal(Term t, int nargs, Term mod)
|
|||||||
Functor f = FunctorOfTerm(t);
|
Functor f = FunctorOfTerm(t);
|
||||||
|
|
||||||
if (IsBlobFunctor(f)) {
|
if (IsBlobFunctor(f)) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t, mod),"call/1");
|
Yap_Error(TYPE_ERROR_CALLABLE,t,"call/1");
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
/* I cannot use the standard macro here because
|
/* I cannot use the standard macro here because
|
||||||
@ -1314,7 +1314,7 @@ Yap_execute_goal(Term t, int nargs, Term mod)
|
|||||||
pt = RepAppl(t)+1;
|
pt = RepAppl(t)+1;
|
||||||
pe = PredPropByFunc(f, mod);
|
pe = PredPropByFunc(f, mod);
|
||||||
} else {
|
} else {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t, mod),"call/1");
|
Yap_Error(TYPE_ERROR_CALLABLE,t,"call/1");
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
ppe = RepPredProp(pe);
|
ppe = RepPredProp(pe);
|
||||||
@ -1368,7 +1368,7 @@ Yap_RunTopGoal(Term t)
|
|||||||
Functor f = FunctorOfTerm(t);
|
Functor f = FunctorOfTerm(t);
|
||||||
|
|
||||||
if (IsBlobFunctor(f)) {
|
if (IsBlobFunctor(f)) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t, mod),"call/1");
|
Yap_Error(TYPE_ERROR_CALLABLE,t,"call/1");
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
if (f == FunctorModule) {
|
if (f == FunctorModule) {
|
||||||
|
@ -260,7 +260,7 @@ p_strip_module( USES_REGS1 )
|
|||||||
}
|
}
|
||||||
t1 = Yap_StripModule( t1, &tmod );
|
t1 = Yap_StripModule( t1, &tmod );
|
||||||
if (!t1) {
|
if (!t1) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t1,tmod),"trying to obtain module");
|
Yap_Error(TYPE_ERROR_CALLABLE,t1,"trying to obtain module");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return Yap_unify(ARG3, t1) &&
|
return Yap_unify(ARG3, t1) &&
|
||||||
@ -316,7 +316,7 @@ p_yap_strip_module( USES_REGS1 )
|
|||||||
}
|
}
|
||||||
t1 = Yap_YapStripModule( t1, &tmod );
|
t1 = Yap_YapStripModule( t1, &tmod );
|
||||||
if (!t1) {
|
if (!t1) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE,Yap_PredicateIndicator(t1, tmod),"trying to obtain module");
|
Yap_Error(TYPE_ERROR_CALLABLE, t1, "trying to obtain module");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return Yap_unify(ARG3, t1) &&
|
return Yap_unify(ARG3, t1) &&
|
||||||
|
@ -995,12 +995,12 @@ p_with_mutex( USES_REGS1 )
|
|||||||
|
|
||||||
f = FunctorOfTerm(tg);
|
f = FunctorOfTerm(tg);
|
||||||
if (IsExtensionFunctor(f)) {
|
if (IsExtensionFunctor(f)) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE, Yap_PredicateIndicator(tg, tm), "with_mutex/2");
|
Yap_Error(TYPE_ERROR_CALLABLE, tg, "with_mutex/2");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
arity = ArityOfFunctor(f);
|
arity = ArityOfFunctor(f);
|
||||||
if (arity > MaxTemps) {
|
if (arity > MaxTemps) {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE, Yap_PredicateIndicator(tg, tm), "with_mutex/2");
|
Yap_Error(TYPE_ERROR_CALLABLE, tg, "with_mutex/2");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
pe = RepPredProp(PredPropByFunc(f, tm));
|
pe = RepPredProp(PredPropByFunc(f, tm));
|
||||||
@ -1019,7 +1019,7 @@ p_with_mutex( USES_REGS1 )
|
|||||||
XREGS[1] = pt[0];
|
XREGS[1] = pt[0];
|
||||||
XREGS[2] = pt[1];
|
XREGS[2] = pt[1];
|
||||||
} else {
|
} else {
|
||||||
Yap_Error(TYPE_ERROR_CALLABLE, Yap_PredicateIndicator(tg, tm), "with_mutex/2");
|
Yap_Error(TYPE_ERROR_CALLABLE, tg, "with_mutex/2");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
|
12
pl/boot.yap
12
pl/boot.yap
@ -628,9 +628,9 @@ number of steps.
|
|||||||
'$execute_command'(C,_,_,top,Source) :- var(C), !,
|
'$execute_command'(C,_,_,top,Source) :- var(C), !,
|
||||||
'$do_error'(instantiation_error,meta_call(Source)).
|
'$do_error'(instantiation_error,meta_call(Source)).
|
||||||
'$execute_command'(C,_,_,top,Source) :- number(C), !,
|
'$execute_command'(C,_,_,top,Source) :- number(C), !,
|
||||||
'$do_error'(type_error(callable,C/0),meta_call(Source)).
|
'$do_error'(type_error(callable,C),meta_call(Source)).
|
||||||
'$execute_command'(R,_,_,top,Source) :- db_reference(R), !,
|
'$execute_command'(R,_,_,top,Source) :- db_reference(R), !,
|
||||||
'$do_error'(type_error(callable,R/0),meta_call(Source)).
|
'$do_error'(type_error(callable,R),meta_call(Source)).
|
||||||
'$execute_command'(end_of_file,_,_,_,_) :- !.
|
'$execute_command'(end_of_file,_,_,_,_) :- !.
|
||||||
'$execute_command'(Command,_,_,_,_) :-
|
'$execute_command'(Command,_,_,_,_) :-
|
||||||
'$nb_getval'('$if_skip_mode', skip, fail),
|
'$nb_getval'('$if_skip_mode', skip, fail),
|
||||||
@ -1299,9 +1299,9 @@ not(G) :- \+ '$execute'(G).
|
|||||||
'$check_callable'(_:G1,G) :- !,
|
'$check_callable'(_:G1,G) :- !,
|
||||||
'$check_callable'(G1,G).
|
'$check_callable'(G1,G).
|
||||||
'$check_callable'(A,G) :- number(A), !,
|
'$check_callable'(A,G) :- number(A), !,
|
||||||
'$do_error'(type_error(callable,A/0),G).
|
'$do_error'(type_error(callable,A),G).
|
||||||
'$check_callable'(R,G) :- db_reference(R), !,
|
'$check_callable'(R,G) :- db_reference(R), !,
|
||||||
'$do_error'(type_error(callable,R/0),G).
|
'$do_error'(type_error(callable,R),G).
|
||||||
'$check_callable'(_,_).
|
'$check_callable'(_,_).
|
||||||
|
|
||||||
|
|
||||||
@ -1395,9 +1395,9 @@ bootstrap(F) :-
|
|||||||
'$check_head'(H,P) :- var(H), !,
|
'$check_head'(H,P) :- var(H), !,
|
||||||
'$do_error'(instantiation_error,P).
|
'$do_error'(instantiation_error,P).
|
||||||
'$check_head'(H,P) :- number(H), !,
|
'$check_head'(H,P) :- number(H), !,
|
||||||
'$do_error'(type_error(callable,H/0),P).
|
'$do_error'(type_error(callable,H),P).
|
||||||
'$check_head'(H,P) :- db_reference(H), !,
|
'$check_head'(H,P) :- db_reference(H), !,
|
||||||
'$do_error'(type_error(callable,H/0),P).
|
'$do_error'(type_error(callable,H),P).
|
||||||
'$check_head'(_,_).
|
'$check_head'(_,_).
|
||||||
|
|
||||||
% term expansion
|
% term expansion
|
||||||
|
@ -1398,9 +1398,9 @@ environment. Use initialization/2 for more flexible behavior.
|
|||||||
var(V), !,
|
var(V), !,
|
||||||
'$do_error'(instantiation_error,initialization(V)).
|
'$do_error'(instantiation_error,initialization(V)).
|
||||||
'$initialization'(C) :- number(C), !,
|
'$initialization'(C) :- number(C), !,
|
||||||
'$do_error'(type_error(callable,C/0),initialization(C)).
|
'$do_error'(type_error(callable,C),initialization(C)).
|
||||||
'$initialization'(C) :- db_reference(C), !,
|
'$initialization'(C) :- db_reference(C), !,
|
||||||
'$do_error'(type_error(callable,C/0),initialization(C)).
|
'$do_error'(type_error(callable,C),initialization(C)).
|
||||||
'$initialization'(G) :-
|
'$initialization'(G) :-
|
||||||
'$show_consult_level'(Level1),
|
'$show_consult_level'(Level1),
|
||||||
% it will be done after we leave the current consult level.
|
% it will be done after we leave the current consult level.
|
||||||
@ -1438,11 +1438,11 @@ initialization(G,OPT) :-
|
|||||||
;
|
;
|
||||||
number(G)
|
number(G)
|
||||||
->
|
->
|
||||||
'$do_error'(type_error(callable,G/0),initialization(G,OPT))
|
'$do_error'(type_error(callable,G),initialization(G,OPT))
|
||||||
;
|
;
|
||||||
db_reference(G)
|
db_reference(G)
|
||||||
->
|
->
|
||||||
'$do_error'(type_error(callable,G/0),initialization(G,OPT))
|
'$do_error'(type_error(callable,G),initialization(G,OPT))
|
||||||
;
|
;
|
||||||
var(OPT)
|
var(OPT)
|
||||||
->
|
->
|
||||||
|
@ -516,7 +516,7 @@ prolog_initialization(G) :- var(G), !,
|
|||||||
prolog_initialization(T) :- callable(T), !,
|
prolog_initialization(T) :- callable(T), !,
|
||||||
'$assert_init'(T).
|
'$assert_init'(T).
|
||||||
prolog_initialization(T) :-
|
prolog_initialization(T) :-
|
||||||
'$do_error'(type_error(callable,T/0),initialization(T)).
|
'$do_error'(type_error(callable,T),initialization(T)).
|
||||||
|
|
||||||
'$assert_init'(T) :- recordz('$startup_goal',T,_), fail.
|
'$assert_init'(T) :- recordz('$startup_goal',T,_), fail.
|
||||||
'$assert_init'(_).
|
'$assert_init'(_).
|
||||||
|
@ -103,7 +103,7 @@ dynamic(X) :-
|
|||||||
'$do_error'(permission_error(modify,static_procedure,A/N),dynamic(Mod:A/N))
|
'$do_error'(permission_error(modify,static_procedure,A/N),dynamic(Mod:A/N))
|
||||||
).
|
).
|
||||||
'$dynamic2'(X,Mod) :-
|
'$dynamic2'(X,Mod) :-
|
||||||
'$do_error'(type_error(callable,X/0),dynamic(Mod:X)).
|
'$do_error'(type_error(callable,X),dynamic(Mod:X)).
|
||||||
|
|
||||||
'$logical_updatable'(A//N,Mod) :- integer(N), !,
|
'$logical_updatable'(A//N,Mod) :- integer(N), !,
|
||||||
N1 is N+2,
|
N1 is N+2,
|
||||||
@ -118,7 +118,7 @@ dynamic(X) :-
|
|||||||
'$do_error'(permission_error(modify,static_procedure,A/N),dynamic(Mod:A/N))
|
'$do_error'(permission_error(modify,static_procedure,A/N),dynamic(Mod:A/N))
|
||||||
).
|
).
|
||||||
'$logical_updatable'(X,Mod) :-
|
'$logical_updatable'(X,Mod) :-
|
||||||
'$do_error'(type_error(callable,X/0),dynamic(Mod:X)).
|
'$do_error'(type_error(callable,X),dynamic(Mod:X)).
|
||||||
|
|
||||||
/** @pred public( _P_ ) is iso
|
/** @pred public( _P_ ) is iso
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ defines all new or redefined predicates to be public.
|
|||||||
functor(T,A,N),
|
functor(T,A,N),
|
||||||
'$do_make_public'(T, Mod).
|
'$do_make_public'(T, Mod).
|
||||||
'$public'(X, Mod) :-
|
'$public'(X, Mod) :-
|
||||||
'$do_error'(type_error(callable,X/0),dynamic(Mod:X)).
|
'$do_error'(type_error(callable,X),dynamic(Mod:X)).
|
||||||
|
|
||||||
'$do_make_public'(T, Mod) :-
|
'$do_make_public'(T, Mod) :-
|
||||||
'$is_dynamic'(T, Mod), !. % all dynamic predicates are public.
|
'$is_dynamic'(T, Mod), !. % all dynamic predicates are public.
|
||||||
|
@ -163,7 +163,7 @@ assert(C) :-
|
|||||||
'$assert'(V,Mod,_,_,_) :- var(Mod), !,
|
'$assert'(V,Mod,_,_,_) :- var(Mod), !,
|
||||||
'$do_error'(instantiation_error,assert(Mod:V)).
|
'$do_error'(instantiation_error,assert(Mod:V)).
|
||||||
'$assert'(I,Mod,_,_,_) :- number(I), !,
|
'$assert'(I,Mod,_,_,_) :- number(I), !,
|
||||||
'$do_error'(type_error(callable,I/0),assert(Mod:I)).
|
'$do_error'(type_error(callable,I),assert(Mod:I)).
|
||||||
'$assert'(M:C,_,Where,R,P) :- !,
|
'$assert'(M:C,_,Where,R,P) :- !,
|
||||||
'$assert'(C,M,Where,R,P).
|
'$assert'(C,M,Where,R,P).
|
||||||
'$assert'((H:-G),M1,Where,R,P) :- !,
|
'$assert'((H:-G),M1,Where,R,P) :- !,
|
||||||
@ -487,10 +487,10 @@ clause(V,Q,R) :-
|
|||||||
'$do_error'(instantiation_error,clause(M:V,Q,R)).
|
'$do_error'(instantiation_error,clause(M:V,Q,R)).
|
||||||
'$clause'(C,M,Q,R) :-
|
'$clause'(C,M,Q,R) :-
|
||||||
number(C), !,
|
number(C), !,
|
||||||
'$do_error'(type_error(callable,C/0),clause(M:C,Q,R)).
|
'$do_error'(type_error(callable,C),clause(M:C,Q,R)).
|
||||||
'$clause'(C,M,Q,R) :-
|
'$clause'(C,M,Q,R) :-
|
||||||
db_reference(C), !,
|
db_reference(C), !,
|
||||||
'$do_error'(type_error(callable,C/0),clause(M:R,Q,R)).
|
'$do_error'(type_error(callable,C),clause(M:R,Q,R)).
|
||||||
'$clause'(M:P,_,Q,R) :- !,
|
'$clause'(M:P,_,Q,R) :- !,
|
||||||
'$clause'(P,M,Q,R).
|
'$clause'(P,M,Q,R).
|
||||||
'$clause'(P,M,Q,R) :-
|
'$clause'(P,M,Q,R) :-
|
||||||
|
@ -187,7 +187,7 @@ save_program(File, _Goal) :-
|
|||||||
recordz('$restore_flag',goal(M1:G1),_)
|
recordz('$restore_flag',goal(M1:G1),_)
|
||||||
;
|
;
|
||||||
strip_module(M:B, M1, G1),
|
strip_module(M:B, M1, G1),
|
||||||
'$do_error'(type_error(callable,G1/0),G)
|
'$do_error'(type_error(callable,G1),G)
|
||||||
).
|
).
|
||||||
'$cvt_qsave_flag'(toplevel(B), G, M) :- !,
|
'$cvt_qsave_flag'(toplevel(B), G, M) :- !,
|
||||||
( callable(B) ->
|
( callable(B) ->
|
||||||
@ -195,7 +195,7 @@ save_program(File, _Goal) :-
|
|||||||
recordz('$restore_flag',toplevel(M1:G1),_)
|
recordz('$restore_flag',toplevel(M1:G1),_)
|
||||||
;
|
;
|
||||||
strip_module(M:B, M1, G1),
|
strip_module(M:B, M1, G1),
|
||||||
'$do_error'(type_error(callable,G1/0),G)
|
'$do_error'(type_error(callable,G1),G)
|
||||||
).
|
).
|
||||||
'$cvt_qsave_flag'(init_file(B), G, M) :- !,
|
'$cvt_qsave_flag'(init_file(B), G, M) :- !,
|
||||||
( atom(B) ->
|
( atom(B) ->
|
||||||
|
@ -38,7 +38,7 @@ save_program(A, G) :- var(A), !,
|
|||||||
save_program(A, G) :- var(G), !,
|
save_program(A, G) :- var(G), !,
|
||||||
'$do_error'(instantiation_error, save_program(A,G)).
|
'$do_error'(instantiation_error, save_program(A,G)).
|
||||||
save_program(A, G) :- \+ callable(G), !,
|
save_program(A, G) :- \+ callable(G), !,
|
||||||
'$do_error'(type_error(callable,G/0), save_program(A,G)).
|
'$do_error'(type_error(callable,G), save_program(A,G)).
|
||||||
save_program(A, G) :-
|
save_program(A, G) :-
|
||||||
( atom(A) -> atom_codes(A,S) ; A = S),
|
( atom(A) -> atom_codes(A,S) ; A = S),
|
||||||
'$save_program2'(S, G),
|
'$save_program2'(S, G),
|
||||||
|
@ -290,11 +290,11 @@ on_signal(Signal,OldAction,Action) :-
|
|||||||
on_signal(Signal,OldAction,Action) :-
|
on_signal(Signal,OldAction,Action) :-
|
||||||
'$reset_signal'(Signal, OldAction),
|
'$reset_signal'(Signal, OldAction),
|
||||||
% 13211-2 speaks only about callable
|
% 13211-2 speaks only about callable
|
||||||
( Action = M:Goal -> true ; throw(error(type_error(callable,Action/0),on_signal/3)) ),
|
( Action = M:Goal -> true ; throw(error(type_error(callable,Action),on_signal/3)) ),
|
||||||
% the following disagrees with 13211-2:6.7.1.4 which disagrees with 13211-1:7.12.2a
|
% the following disagrees with 13211-2:6.7.1.4 which disagrees with 13211-1:7.12.2a
|
||||||
% but the following agrees with 13211-1:7.12.2a
|
% but the following agrees with 13211-1:7.12.2a
|
||||||
( nonvar(M) -> true ; throw(error(instantiation_error,on_signal/3)) ),
|
( nonvar(M) -> true ; throw(error(instantiation_error,on_signal/3)) ),
|
||||||
( atom(M) -> true ; throw(error(type_error(callable,Action/0),on_signal/3)) ),
|
( atom(M) -> true ; throw(error(type_error(callable,Action),on_signal/3)) ),
|
||||||
( nonvar(Goal) -> true ; throw(error(instantiation_error,on_signal/3)) ),
|
( nonvar(Goal) -> true ; throw(error(instantiation_error,on_signal/3)) ),
|
||||||
recordz('$signal_handler', action(Signal,Action), _).
|
recordz('$signal_handler', action(Signal,Action), _).
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ time(_:Goal) :-
|
|||||||
var(Goal),
|
var(Goal),
|
||||||
'$do_error'(instantiation_error,time(Goal)).
|
'$do_error'(instantiation_error,time(Goal)).
|
||||||
time(Goal) :- \+ callable(Goal), !,
|
time(Goal) :- \+ callable(Goal), !,
|
||||||
'$do_error'(type_error(callable,Goal/0),time(Goal)).
|
'$do_error'(type_error(callable,Goal),time(Goal)).
|
||||||
time(Goal) :-
|
time(Goal) :-
|
||||||
statistics(walltime, _),
|
statistics(walltime, _),
|
||||||
statistics(cputime, _),
|
statistics(cputime, _),
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
'$do_error'(instantiation_error,call(G)).
|
'$do_error'(instantiation_error,call(G)).
|
||||||
'$iso_check_goal'(V,G) :-
|
'$iso_check_goal'(V,G) :-
|
||||||
number(V), !,
|
number(V), !,
|
||||||
'$do_error'(type_error(callable,V/0),G).
|
'$do_error'(type_error(callable,V),G).
|
||||||
'$iso_check_goal'(_:G,G0) :- !,
|
'$iso_check_goal'(_:G,G0) :- !,
|
||||||
'$iso_check_goal'(G,G0).
|
'$iso_check_goal'(G,G0).
|
||||||
'$iso_check_goal'((G1,G2),G0) :- !,
|
'$iso_check_goal'((G1,G2),G0) :- !,
|
||||||
@ -44,7 +44,7 @@
|
|||||||
'$do_error'(instantiation_error,call(G)).
|
'$do_error'(instantiation_error,call(G)).
|
||||||
'$iso_check_a_goal'(V,E,G) :-
|
'$iso_check_a_goal'(V,E,G) :-
|
||||||
number(V), !,
|
number(V), !,
|
||||||
'$do_error'(type_error(callable,E/0),call(G)).
|
'$do_error'(type_error(callable,E),call(G)).
|
||||||
'$iso_check_a_goal'(_:G,E,G0) :- !,
|
'$iso_check_a_goal'(_:G,E,G0) :- !,
|
||||||
'$iso_check_a_goal'(G,E,G0).
|
'$iso_check_a_goal'(G,E,G0).
|
||||||
'$iso_check_a_goal'((G1,G2),E,G0) :- !,
|
'$iso_check_a_goal'((G1,G2),E,G0) :- !,
|
||||||
|
@ -281,7 +281,7 @@ table(Pred) :-
|
|||||||
functor(PredFunctor,PredName,PredArity), !,
|
functor(PredFunctor,PredName,PredArity), !,
|
||||||
'$set_table'(Mod,PredFunctor,PredModeList).
|
'$set_table'(Mod,PredFunctor,PredModeList).
|
||||||
'$do_table'(Mod,Pred) :-
|
'$do_table'(Mod,Pred) :-
|
||||||
'$do_error'(type_error(callable,Pred/0),table(Mod:Pred)).
|
'$do_error'(type_error(callable,Pred),table(Mod:Pred)).
|
||||||
|
|
||||||
'$set_table'(Mod,PredFunctor,_PredModeList) :-
|
'$set_table'(Mod,PredFunctor,_PredModeList) :-
|
||||||
'$undefined'('$c_table'(_,_,_),prolog), !,
|
'$undefined'('$c_table'(_,_,_),prolog), !,
|
||||||
@ -349,7 +349,7 @@ is_tabled(Pred) :-
|
|||||||
'$flags'(PredFunctor,Mod,Flags,Flags), !,
|
'$flags'(PredFunctor,Mod,Flags,Flags), !,
|
||||||
Flags /\ 0x000040 =\= 0.
|
Flags /\ 0x000040 =\= 0.
|
||||||
'$do_is_tabled'(Mod,Pred) :-
|
'$do_is_tabled'(Mod,Pred) :-
|
||||||
'$do_error'(type_error(callable,Pred/0),is_tabled(Mod:Pred)).
|
'$do_error'(type_error(callable,Pred),is_tabled(Mod:Pred)).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -384,7 +384,7 @@ tabling_mode(Pred,Options) :-
|
|||||||
'$do_error'(domain_error(table,Mod:PredName/PredArity),tabling_mode(Mod:PredName/PredArity,Options))
|
'$do_error'(domain_error(table,Mod:PredName/PredArity),tabling_mode(Mod:PredName/PredArity,Options))
|
||||||
).
|
).
|
||||||
'$do_tabling_mode'(Mod,Pred,Options) :-
|
'$do_tabling_mode'(Mod,Pred,Options) :-
|
||||||
'$do_error'(type_error(callable,Pred/0),tabling_mode(Mod:Pred,Options)).
|
'$do_error'(type_error(callable,Pred),tabling_mode(Mod:Pred,Options)).
|
||||||
|
|
||||||
'$set_tabling_mode'(Mod,PredFunctor,Options) :-
|
'$set_tabling_mode'(Mod,PredFunctor,Options) :-
|
||||||
var(Options), !,
|
var(Options), !,
|
||||||
@ -445,7 +445,7 @@ abolish_table(Pred) :-
|
|||||||
'$do_error'(domain_error(table,Mod:PredName/PredArity),abolish_table(Mod:PredName/PredArity))
|
'$do_error'(domain_error(table,Mod:PredName/PredArity),abolish_table(Mod:PredName/PredArity))
|
||||||
).
|
).
|
||||||
'$do_abolish_table'(Mod,Pred) :-
|
'$do_abolish_table'(Mod,Pred) :-
|
||||||
'$do_error'(type_error(callable,Pred/0),abolish_table(Mod:Pred)).
|
'$do_error'(type_error(callable,Pred),abolish_table(Mod:Pred)).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -485,7 +485,7 @@ show_table(Stream,Pred) :-
|
|||||||
'$do_error'(domain_error(table,Mod:PredName/PredArity),show_table(Mod:PredName/PredArity))
|
'$do_error'(domain_error(table,Mod:PredName/PredArity),show_table(Mod:PredName/PredArity))
|
||||||
).
|
).
|
||||||
'$do_show_table'(_,Mod,Pred) :-
|
'$do_show_table'(_,Mod,Pred) :-
|
||||||
'$do_error'(type_error(callable,Pred/0),show_table(Mod:Pred)).
|
'$do_error'(type_error(callable,Pred),show_table(Mod:Pred)).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -525,7 +525,7 @@ table_statistics(Stream,Pred) :-
|
|||||||
'$do_error'(domain_error(table,Mod:PredName/PredArity),table_statistics(Mod:PredName/PredArity))
|
'$do_error'(domain_error(table,Mod:PredName/PredArity),table_statistics(Mod:PredName/PredArity))
|
||||||
).
|
).
|
||||||
'$do_table_statistics'(_,Mod,Pred) :-
|
'$do_table_statistics'(_,Mod,Pred) :-
|
||||||
'$do_error'(type_error(callable,Pred/0),table_statistics(Mod:Pred)).
|
'$do_error'(type_error(callable,Pred),table_statistics(Mod:Pred)).
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
@ -421,7 +421,7 @@ thread_set_default(Default) :-
|
|||||||
|
|
||||||
'$thread_set_default'(at_exit(AtExit), G) :-
|
'$thread_set_default'(at_exit(AtExit), G) :-
|
||||||
\+ callable(AtExit), !,
|
\+ callable(AtExit), !,
|
||||||
'$do_error'(type_error(callable, AtExit/0), G).
|
'$do_error'(type_error(callable, AtExit), G).
|
||||||
'$thread_set_default'(at_exit(AtExit), _) :- !,
|
'$thread_set_default'(at_exit(AtExit), _) :- !,
|
||||||
recorded('$thread_defaults', [Stack, Trail, System, Detached, _], Ref),
|
recorded('$thread_defaults', [Stack, Trail, System, Detached, _], Ref),
|
||||||
erase(Ref),
|
erase(Ref),
|
||||||
@ -1099,7 +1099,7 @@ with_mutex(M, G) :-
|
|||||||
var(G) -> mutex_unlock(M), '$do_error'(instantiation_error,with_mutex(M, G))
|
var(G) -> mutex_unlock(M), '$do_error'(instantiation_error,with_mutex(M, G))
|
||||||
;
|
;
|
||||||
\+ callable(G) ->
|
\+ callable(G) ->
|
||||||
mutex_unlock(M), '$do_error'(type_error(callable,G/0),with_mutex(M, G))
|
mutex_unlock(M), '$do_error'(type_error(callable,G),with_mutex(M, G))
|
||||||
;
|
;
|
||||||
catch('$execute'(G), E, (mutex_unlock(M), throw(E))) ->
|
catch('$execute'(G), E, (mutex_unlock(M), throw(E))) ->
|
||||||
mutex_unlock(M)
|
mutex_unlock(M)
|
||||||
@ -1552,7 +1552,7 @@ thread_local(X) :-
|
|||||||
'$do_error'(permission_error(modify,static_procedure,A/N),thread_local(Mod:A/N))
|
'$do_error'(permission_error(modify,static_procedure,A/N),thread_local(Mod:A/N))
|
||||||
).
|
).
|
||||||
'$thread_local2'(X,Mod) :-
|
'$thread_local2'(X,Mod) :-
|
||||||
'$do_error'(type_error(callable,X/0),thread_local(Mod:X)).
|
'$do_error'(type_error(callable,X),thread_local(Mod:X)).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user