/usr/share/Yap/pl/yapor.yap is in yap 5.1.3-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | /*************************************************************************
* *
* YAP Prolog *
* *
* Yap Prolog was developed at NCCUP - Universidade do Porto *
* *
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
* *
**************************************************************************
* *
* File: yapor.yap *
* Last rev: 8/2/88 *
* mods: *
* comments: support or-parallelism *
* *
*************************************************************************/
'$parallel_query'(G,[]) :- !, '$start_yapor', '$execute'(G), !,
'$parallel_yes_answer'.
'$parallel_query'(G,V) :- '$start_yapor', '$execute'(G), '$parallel_new_answer'(V).
% ***************************
% * -------- YAPOR -------- *
% ***************************
default_sequential(X) :-
'$default_sequential'(X), !.
default_sequential(_).
'$sequential' :-
'$default_sequential'(X),
'$initialization'('$default_sequential'(X)),
'$default_sequential'(on).
'$parallel' :-
'$default_sequential'(X),
'$initialization'('$default_sequential'(X)),
'$default_sequential'(off).
'$sequential_directive'(X,_) :- var(X), !,
write(user_error, '[ Error: argument to sequential/1 should be a predicate ]'),
nl(user_error),
fail.
'$sequential_directive'((A,B),M) :- !,
'$sequential_directive'(A,M), '$sequential_directive'(B,M).
'$sequential_directive'(M:A,_) :- !,
'$sequential_directive'(A,M).
'$sequential_directive'(A/N,M) :- integer(N), atom(A), !,
functor(T,A,N),
'$flags'(T,M,F,F),
(
X is F /\ 0x00000020, X =\= 0, !,
write(user_error, '[ Warning: '),
write(user_error, M:A/N),
write(user_error, ' is already declared as sequential ]'),
nl(user_error)
;
X is F /\ 0x1991F880, X =:= 0, !, '$sequential'(T,M)
;
write(user_error, '[ Error: '),
write(user_error, M:A/N),
write(user_error, ' cannot be declared as sequential ]'),
nl(user_error),
fail
).
'$sequential_directive'(X,_) :- write(user_error, '[ Error: '),
write(user_error, X),
write(user_error, ' is an invalid argument to sequential/1 ]'),
nl(user_error),
fail.
'$parallel_directive'(X,M) :- var(X), !,
'$do_error'(instantiation_error,parallel(M:X)).
'$parallel_directive'((A,B),M) :- !,
'$parallel_directive'(A,M),
'parallel_directive'(B,M).
'$parallel_directive'(M:A,_) :- !,
'$parallel_directive'(A,M).
'$parallel_directive'(A/N,M) :- integer(N), atom(A), !,
functor(T,A,N), '$flags'(T,M,F,F),
(
NF is F /\ 0x00000020, '$flags'(T,F,NF) ;
write(user_error, '[ Warning: '),
write(user_error, M:A/N),
write(user_error, ' is already declared as sequential ]'),
nl(user_error)
;
X is F /\ 0x1991FC80, X =:= 0, !, '$sequential'(T)
;
write(user_error, '[ Error: '),
write(user_error, M:A/N),
write(user_error, ' cannot be declared as parallel ]'),
nl(user_error),
fail
).
'$parallel_directive'(X,_) :- write(user_error, '[ Error: '),
write(user_error, X),
write(user_error, ' is an invalid argument to parallel/1 ]'),
nl(user_error),
fail.
%
% do not try to run consult in the parallel system.
%
'$parallelizable'(_) :-
nb_getval('$consulting_file',S), S\=[], !, fail.
'$parallelizable'((G1,G2)) :- !,
'$parallelizable'(G1),
'$parallelizable'(G2).
'$parallelizable'((G1;G2)) :- !,
'$parallelizable'(G1),
'$parallelizable'(G2).
'$parallelizable'((G1|G2)) :- !,
'$parallelizable'(G1),
'$parallelizable'(G2).
'$parallelizable'((G1->G2)) :- !,
'$parallelizable'(G1),
'$parallelizable'(G2).
'$parallelizable'([]) :- !, fail.
'$parallelizable'([_|_]) :- !, fail.
'$parallelizable'(consult(_)) :- !, fail.
'$parallelizable'(reconsult(_)) :- !, fail.
'$parallelizable'(compile(_)) :- !, fail.
'$parallelizable'(use_module(_)) :- !, fail.
'$parallelizable'(_).
|