Merge branch 'master' of ssh://git.code.sf.net/p/yap/yap-6.3

Conflicts:
	C/write.c
This commit is contained in:
Vitor Santos Costa 2014-05-14 18:00:25 +01:00
commit b532fbd0b9
20 changed files with 1469 additions and 1147 deletions

View File

@ -327,16 +327,6 @@ Var_Ref(Ventry *ve, int is_y_var)
#define no_ref_var() (((Ventry *) (cip->cpc->rnd1))->NoOfVE == 1) #define no_ref_var() (((Ventry *) (cip->cpc->rnd1))->NoOfVE == 1)
#define no_ref(X) (((Ventry *) (X))->NoOfVE == 1) #define no_ref(X) (((Ventry *) (X))->NoOfVE == 1)
inline static yamop *
fill_small(CELL w, yamop *code_p, int pass_no)
{
SMALLUNSGN *ptr = ((SMALLUNSGN *) (code_p));
if (pass_no)
*ptr = (SMALLUNSGN) w;
return (yamop *) (++ptr);
}
inline static yamop * inline static yamop *
fill_a(CELL a, yamop *code_p, int pass_no) fill_a(CELL a, yamop *code_p, int pass_no)
{ {
@ -589,78 +579,6 @@ a_v(op_numbers opcodex, op_numbers opcodey, yamop *code_p, int pass_no, struct P
return code_p; return code_p;
} }
inline static yamop *
a_fi(op_numbers opcodex, op_numbers opcodey, yamop *code_p, int pass_no, struct PSEUDO *cpc, UInt lab, struct intermediates *cip)
{
Ventry *ve = (Ventry *) cpc->rnd1;
OPREG var_offset;
int is_y_var = (ve->KindOfVE == PermVar);
var_offset = Var_Ref(ve, is_y_var);
if (is_y_var) {
if (pass_no) {
code_p->opc = emit_op(opcodey);
code_p->u.syl.y = emit_yreg(var_offset);
code_p->u.syl.l = emit_a(Unsigned(cip->code_addr) + cip->label_offset[lab]);
code_p->u.syl.s = cpc->rnd2;
}
GONEXT(syl);
}
else {
if (pass_no) {
code_p->opc = emit_op(opcodex);
code_p->u.sxl.x = emit_xreg(var_offset);
code_p->u.sxl.l = emit_a(Unsigned(cip->code_addr) + cip->label_offset[lab]);
code_p->u.sxl.s = cpc->rnd2;
}
GONEXT(sxl);
}
return code_p;
}
inline static yamop *
a_fil(op_numbers opcodex, op_numbers opcodey, yamop *code_p, int pass_no, struct PSEUDO *cpc, UInt lab1, UInt lab2, struct intermediates *cip)
{
Ventry *ve = (Ventry *) cpc->rnd1;
OPREG var_offset;
int is_y_var = (ve->KindOfVE == PermVar);
var_offset = Var_Ref(ve, is_y_var);
if (is_y_var) {
if (pass_no) {
code_p->opc = emit_op(opcodey);
code_p->u.syll.s = cpc->rnd2;
code_p->u.syll.y = emit_yreg(var_offset);
if (lab1)
code_p->u.syll.T = emit_a(Unsigned(cip->code_addr) + cip->label_offset[lab1]);
else
code_p->u.syll.T = emit_a(Unsigned(NEXTOP(code_p,syll)));
if (lab2)
code_p->u.syll.F = emit_a(Unsigned(cip->code_addr) + cip->label_offset[lab2]);
else
code_p->u.syll.F = FAILCODE;
}
GONEXT(syll);
}
else {
if (pass_no) {
code_p->opc = emit_op(opcodex);
code_p->u.sxll.s = cpc->rnd2;
code_p->u.sxll.x = emit_xreg(var_offset);
if (lab1)
code_p->u.sxll.T = emit_a(Unsigned(cip->code_addr) + cip->label_offset[lab1]);
else
code_p->u.sxll.T = emit_a(Unsigned(NEXTOP(code_p,sxll)));
if (lab2)
code_p->u.sxll.F = emit_a(Unsigned(cip->code_addr) + cip->label_offset[lab2]);
else
code_p->u.sxll.F = FAILCODE;
}
GONEXT(sxll);
}
return code_p;
}
inline static yamop * inline static yamop *
a_vp(op_numbers opcodex, op_numbers opcodey, yamop *code_p, int pass_no, struct PSEUDO *cpc, clause_info *clinfo) a_vp(op_numbers opcodex, op_numbers opcodey, yamop *code_p, int pass_no, struct PSEUDO *cpc, clause_info *clinfo)
{ {
@ -1424,18 +1342,6 @@ a_dbt(op_numbers opcode, int *clause_has_dbtermp, yamop *code_p, int pass_no, st
return code_p; return code_p;
} }
inline static yamop *
a_rli(op_numbers opcode, int *clause_has_blobsp, yamop *code_p, int pass_no, struct intermediates *cip)
{
if (pass_no) {
code_p->opc = emit_op(opcode);
code_p->u.xc.x = emit_x(cip->cpc->rnd2);
code_p->u.xc.c = AbsAppl((CELL *)(Unsigned(cip->code_addr) + cip->label_offset[cip->cpc->rnd1]));
}
GONEXT(xc);
return code_p;
}
inline static yamop * inline static yamop *
a_r(CELL arnd2, op_numbers opcode, yamop *code_p, int pass_no) a_r(CELL arnd2, op_numbers opcode, yamop *code_p, int pass_no)
{ {

View File

@ -683,6 +683,7 @@ p_acomp( USES_REGS1 )
} }
/** /**
@[
@class arith_eq_2 @class arith_eq_2
@brief =:=/2: Equality of arithmetic expressions @brief =:=/2: Equality of arithmetic expressions
@ -726,6 +727,8 @@ a_eq(Term t1, Term t2)
} }
/** /**
@}
@class arith_dif_2 @class arith_dif_2
@brief =\\=/2: Difference of arithmetic expressions @brief =\\=/2: Difference of arithmetic expressions

View File

@ -191,11 +191,7 @@ BEAM_is(void)
#endif #endif
/** /**
@class is_2 @pred is( X:number, + Y:ground) is det
@anchor is_2
@brief evaluation of arithmetic expressions
<b>? _X_:number is + _Y_:ground is det</b>
This predicate succeeds iff the result of evaluating the expression This predicate succeeds iff the result of evaluating the expression
_Y_ unifies with _X_. This is the predicate normally used to _Y_ unifies with _X_. This is the predicate normally used to
@ -228,11 +224,7 @@ p_is( USES_REGS1 )
} }
/** /**
@class isnan_1 @pred isnan(? X:float) is det
@anchor isnan_1
@brief True if _X_ is not a number
<b> isnan(? _X_:float) is det</b>
Interface to the IEE754 `isnan` test. Interface to the IEE754 `isnan` test.
*/ */
@ -266,11 +258,7 @@ p_isnan( USES_REGS1 )
} }
/** /**
@class isinf_1 @pred isinf(? X:float) is det</b>
@anchor isinf_1
@brief True if _X_ is infinity
<b> isnan(? _X_:float) is det</b>
Interface to the IEE754 `isinf` test. Interface to the IEE754 `isinf` test.
*/ */
@ -305,11 +293,7 @@ p_isinf( USES_REGS1 )
} }
/** /**
@class logsum_3 @pred logsum(+ Log1:float, + Log2:float, - Out:float ) is det
@anchor logsum_3
@brief sum of two logarithms
<b> logsum(+ _Log1_, + _Log2_, - _Out_ ) is det </b>
True if _Log1_ is the logarithm of the positive number _A1_, True if _Log1_ is the logarithm of the positive number _A1_,
_Log2_ is the logarithm of the positive number _A2_, and _Log2_ is the logarithm of the positive number _A2_, and
@ -413,6 +397,22 @@ Yap_ArithError(yap_error_number type, Term where, char *format,...)
return 0L; return 0L;
} }
/**
@{
@pred between(+ Low:int, + High:int, ? Value:int) is nondet
_Low_ and _High_ are integers, _High_ \>= _Low_. If
_Value_ is an integer, _Low_ =\< _Value_
=\< _High_. When _Value_ is a variable it is successively
bound to all integers between _Low_ and _High_. If
_High_ is inf or infinite between/3 is true iff
_Value_ \>= _Low_, a feature that is particularly interesting
for generating integers from a certain value.
*/
static Int cont_between( USES_REGS1 ) static Int cont_between( USES_REGS1 )
{ {
Term t1 = EXTRA_CBACK_ARG(3,1); Term t1 = EXTRA_CBACK_ARG(3,1);
@ -447,25 +447,6 @@ static Int cont_between( USES_REGS1 )
} }
} }
/**
@class between_3
@anchor between_3
@brief sequence of numbers
between(+ _Low_:int, + _High_:int, ? _Value_:int) is nondet
_Low_ and _High_ are integers, _High_ \>= _Low_. If
_Value_ is an integer, _Low_ =\< _Value_
=\< _High_. When _Value_ is a variable it is successively
bound to all integers between _Low_ and _High_. If
_High_ is inf or infinite [between/3](@ref between_3) is true iff
_Value_ \>= _Low_, a feature that is particularly interesting
for generating integers from a certain value.
@}
*/
static Int static Int
init_between( USES_REGS1 ) init_between( USES_REGS1 )
{ {
@ -561,6 +542,12 @@ init_between( USES_REGS1 )
return cont_between( PASS_REGS1 ); return cont_between( PASS_REGS1 );
} }
/**
*
* @}
*
* @}
*/
void void
Yap_InitEval(void) Yap_InitEval(void)
{ {

View File

@ -913,7 +913,10 @@ p_style_checker( USES_REGS1 )
Term h = HeadOfTerm( t ); Term h = HeadOfTerm( t );
t = TailOfTerm( t ); t = TailOfTerm( t );
if (IsAtomTerm(h)) { if (IsVarTerm(h)) {
Yap_Error(INSTANTIATION_ERROR, t, "style_check/1");
return (FALSE);
} if (IsAtomTerm(h)) {
Atom at = AtomOfTerm( h ); Atom at = AtomOfTerm( h );
if (at == AtomAtom) debugstatus.styleCheck |= LONGATOM_CHECK; if (at == AtomAtom) debugstatus.styleCheck |= LONGATOM_CHECK;
else if (at == AtomSingleton) debugstatus.styleCheck |= SINGLETON_CHECK; else if (at == AtomSingleton) debugstatus.styleCheck |= SINGLETON_CHECK;

1618
C/write.c

File diff suppressed because it is too large Load Diff

View File

@ -367,7 +367,8 @@ class YAPParams;
*/ */
class YAPEngine { class YAPEngine {
public: public:
YAPEngine(YAPParams const& params); YAPEngine(YAPParams const& params); /// construct a new engine
YAPQuery *query( char *s ) { return new YAPQuery( s ); } /// build a query on the engine
}; };
/** /**

View File

@ -235,7 +235,7 @@ typedef enum {
* 0 == 2.22e-16 * 0 == 2.22e-16
* 0 == 0 * 0 == 0
* false. * false.
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/ */
op_log10, op_log10,
op_sqrt, op_sqrt,

2
configure vendored
View File

@ -15419,7 +15419,7 @@ if test "$yap_cv_swig" = "no"; then
PKG_SWIG="" PKG_SWIG=""
elif test -e "$srcdir"/packages/swig/Makefile.in ; then elif test -e "$srcdir"/packages/swig/Makefile.in ; then
SWIG_TARGET="all" SWIG_TARGET="all"
PKG_SWIG="swig" PKG_SWIG="packages/swig"
fi fi
if test "$PKG_SWIG" != ""; then if test "$PKG_SWIG" != ""; then

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
:- initialization(main). :- initialization(main).
:- dynamic val/2, item/2, last_node/2, indent/1. :- dynamic val/2, item/2, last_node/2, indent/1, pred/4.
get_arg( Inp, Out ) :- get_arg( Inp, Out ) :-
unix( argv( [Inp, Out] ) ), !. unix( argv( [Inp, Out] ) ), !.
@ -69,7 +69,8 @@ scan_file( Inp ) :-
item( Item0 , ItLines ), item( Item0 , ItLines ),
atom_string(A2, Item0), atom_string(A2, Item0),
cvt_slash( Pred, Key ), cvt_slash( Pred, Key ),
assert_static( pred( A1, Key, A2, Inp:ItLines ) ), \+ pred(_, Key, _, _ ),
assert( pred( A1, Key, A2, Inp:ItLines ) ),
fail fail
; ;
% look for predicates % look for predicates
@ -281,12 +282,12 @@ process("@item", Line, Rest, NewLine , FilePos) :-
( (
Env = "@table", Env = "@table",
atom_string( A, Line ), atom_string( A, Line ),
pred( _Pred, Key, A, FilePos ) pred( _Pred, _Key, A, FilePos )
-> ->
push( list, it(Env, Item, Pos, NNumb) ), push( list, it(Env, Item, Pos, NNumb) ),
( (
% sendout the comand % sendout the comand
format(string(NewLine), '~t~s ~*+<li>~s @anchor ~a', [Marker, Pos1, First, Key]), format(string(NewLine), '~t~s ~*+<li>~s @anchor ~a', [Marker, Pos1, First, _Key]),
push( indent, done ) push( indent, done )
; ;
NewLine = force NewLine = force
@ -601,8 +602,8 @@ simplify( [0'q,0'Q|L]) --> "=", !,
simplify(L). simplify(L).
simplify( [0'q,0'U|L]) --> "?", !, simplify( [0'q,0'U|L]) --> "?", !,
simplify(L). simplify(L).
simplify( [0'_|L]) --> "/", !, simplify( [] ) --> "/",
simplify(L). number, !.
simplify( [0's,0'S|L]) --> "<", !, simplify( [0's,0'S|L]) --> "<", !,
simplify(L). simplify(L).
simplify( [0'u,0'U|L]) --> "\v", !, simplify( [0'u,0'U|L]) --> "\v", !,
@ -627,6 +628,11 @@ simplify( L) --> [_], !,
simplify(L). simplify(L).
simplify( []) --> []. simplify( []) --> [].
number --> [].
number --> [C],
{ C >= "0" , C =< "9" },
number.
first_word(Line, Word, Rest) :- first_word(Line, Word, Rest) :-
jmp_blanks( Line, Line2 ), jmp_blanks( Line, Line2 ),

View File

@ -6830,6 +6830,7 @@ attributes from other known solvers/modules via the module prefix in
* CLPR Non-linear Constraints:: * CLPR Non-linear Constraints::
@end menu @end menu
@include clpr.tex @include clpr.tex
@node CHR, Logtalk, CLPR, Top @node CHR, Logtalk, CLPR, Top
@ -6856,7 +6857,7 @@ systems or by using the @code{Logtalk - YAP} shortcut in the Logtalk
program group in the Start Menu on Windows systems. For more information program group in the Start Menu on Windows systems. For more information
please see the URL @url{http://logtalk.org/}. please see the URL @url{http://logtalk.org/}.
@node MYDDAS, Threads, Logtalk, Extensions @node MYDDAS, Real, Logtalk, Extensions
@section MYDDAS @section MYDDAS
@cindex MYDDAS @cindex MYDDAS
@ -7608,8 +7609,18 @@ action, report an error, we could use the following SQL mode.
You can see the available SQL Modes at the MySQL homepage at You can see the available SQL Modes at the MySQL homepage at
@url{http://www.mysql.org}. @url{http://www.mysql.org}.
@node Threads, Parallelism, MYDDAS, Extensions @node Real, Threads, MYDDAS, Extensions
@section Threads
@chapter Real:: Talking to the R language
@ifplaintext
@copydoc real
@end ifplaintext
@node Threads, Parallelism, Real, Extensions
@chapter Threads
YAP implements a SWI-Prolog compatible multithreading YAP implements a SWI-Prolog compatible multithreading
library. Like in SWI-Prolog, Prolog threads have their own stacks and library. Like in SWI-Prolog, Prolog threads have their own stacks and
@ -9006,9 +9017,9 @@ being designed to work with the swig (@url(www.swig.org}) interface compiler.
<ul> <ul>
<li> The original YAP C-interface exports the YAP engine. <li> The original YAP C-interface exports the YAP engine.
</li> </li>
<li>The @subpage swi-c-interface emulates Jan Wielemaker's SWI foreign language interface. <li>The @ref swi-c-interface emulates Jan Wielemaker's SWI foreign language interface.
</li> </li>
<li>The @subpage yap-cplus-interface is desiged to interface with Object-Oriented systems. <li>The @ref yap-cplus-interface is desiged to interface with Object-Oriented systems.
</li> </li>
</ul> </ul>
@end ifplaintext @end ifplaintext

View File

@ -14,6 +14,14 @@
* * * *
* * * *
*************************************************************************/ *************************************************************************/
/**
*
* @file blobs.c
*
* @addtogroup swi-c-interface
*
* @{
*/
#include <Yap.h> #include <Yap.h>
#include <Yatom.h> #include <Yatom.h>
@ -248,3 +256,7 @@ Yap_install_blobs(void)
{ {
} }
/**
* @}
*/

View File

@ -5,29 +5,17 @@
* Email: steve.moyle@comlab.ox.ac.uk * Email: steve.moyle@comlab.ox.ac.uk
* Date: 21 January 2002 * Date: 21 January 2002
* Copyright (c) 2002 Steve Moyle. All rights reserved. * Copyright (c) 2002-2014 Vitor Santos Costa from an original version by Steve Moyle. All rights reserved.
*/ */
/** /**
* *
* @defgroup swi-c-interface SWI-Prolog Foreign Language Interface. * @file swi.c
* *
* @addtogroup swi-c-interface
* *
* @tableofcontents * @{
*
* A reimplementation of Jan Wielemaker's SWI-Prolog C-language interface, it supports
* most of the functionality in the original implementation. It allows for:
*
* - Term Construction, Access, and Unification
* - Manipulation of Atoms, Strings, Lists of Codes and Lists of Atoms
* - Query evaluation
* - Thread and Prolog engine management
* - Data-Base Access
*
* In this interface, all Prolog data known by C is referenced through term references (term_t), hence
* Prolog has all the information necessary to perform its memory management without special precautions
* from the C programmer.
*/ */
#define PL_KERNEL 1 #define PL_KERNEL 1
@ -3267,3 +3255,8 @@ int WINAPI win_yap2swi(HANDLE hinst, DWORD reason, LPVOID reserved)
} }
#endif #endif
/**
* @}
* @}
*/

View File

@ -1,3 +1,37 @@
/*************************************************************************
* *
* YAP Prolog *
* *
* Yap Prolog was developed at NCCUP - Universidade do Porto *
* *
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-2014 *
* *
*************************************************************************/
/**
@file swi.h
@defgroup swi-c-interface SWI-Prolog Foreign Language Interface
*
* @tableofcontents
*
* A reimplementation of Jan Wielemaker's SWI-Prolog C-language interface, it supports
* most of the functionality in the original implementation. It allows for:
*
* - Term Construction, Access, and Unification
* - Manipulation of Atoms, Strings, Lists of Codes and Lists of Atoms
* - Query evaluation
* - Thread and Prolog engine management
* - Data-Base Access
*
* In this interface, all Prolog data known by C is referenced through term references (term_t), hence
* Prolog has all the information necessary to perform its memory management without special precautions
* from the C programmer.
@{
*/
void Yap_swi_install(void); void Yap_swi_install(void);
void Yap_install_blobs(void); void Yap_install_blobs(void);
@ -61,3 +95,7 @@ FunctorToSWIFunctor(Functor at)
} }
#define isDefinedProcedure(pred) TRUE // TBD #define isDefinedProcedure(pred) TRUE // TBD
/**
@}
*/

@ -1 +1 @@
Subproject commit 10fd754c6561313835d4e1ff557d654b3225365e Subproject commit ed5039a28f03b2a8ceb4182c269fa2ca324b6ce4

View File

@ -28,16 +28,16 @@ python/yap_wrap.c: $(srcdir)/yap.i
python/yap_wrap.o: python/yap_wrap.c python/yap_wrap.o: python/yap_wrap.c
$(CXX) -c $(CXXFLAGS) @PYTHON_INCLUDES@ $< -o $@ $(CXX) -c $(CXXFLAGS) @PYTHON_INCLUDES@ $< -o $@
java: java/libyap.@SO@ java/yap.java java: jni/libyap.@SO@ java/yap.java
cd java ; $(JAVAC) *.java; $(JAR) cvf yap.jar *.class cd java ; $(JAVAC) *.java; $(JAR) cvf yap.jar *.class
java/libyap.@SO@: jni/yap_wrap.o jni/libyap.@SO@: jni/yap_wrap.o
$(CXX) -shared $(LDSOFLAGS) -L ../.. -lYap -o java/libyap.@SO@ ../../yapi.o java/yap_wrap.o $(LIBS) @JPLLDFLAGS@ -L ../.. -lYap -lpthread $(CXX) -shared $(LDSOFLAGS) -L ../.. -lYap -o $@ ../../yapi.o $< $(LIBS) @JPLLDFLAGS@ -L ../.. -lYap -lpthread
jni/yap_wrap.c: $(srcdir)/yap.i jni/yap_wrap.c: $(srcdir)/yap.i
$(SWIG) -c++ -java -package pt.up.fc.dcc.yap -outdir src/pt/up/fc/dcc/yap -o $@ $(DEFS) $(CPPFLAGS) -Wall $< $(SWIG) -c++ -java -package pt.up.fc.dcc.yap -outdir java -o $@ $(DEFS) $(CPPFLAGS) -Wall $<
java/yap_wrap.o: java/yap_wrap.c jni/yap_wrap.o: jni/yap_wrap.c
$(CXX) -c $(CXXFLAGS) @JPLCFLAGS@ $< -o $@ $(CXX) -c $(CXXFLAGS) @JPLCFLAGS@ $< -o $@
R: R:

View File

@ -16,7 +16,7 @@ if test "$yap_cv_swig" = "no"; then
PKG_SWIG="" PKG_SWIG=""
elif test -e "$srcdir"/packages/swig/Makefile.in ; then elif test -e "$srcdir"/packages/swig/Makefile.in ; then
SWIG_TARGET="all" SWIG_TARGET="all"
PKG_SWIG="swig" PKG_SWIG="packages/swig"
fi fi
if test "$PKG_SWIG" != ""; then if test "$PKG_SWIG" != ""; then

View File

@ -137,7 +137,6 @@ style_check_(+charset) :-
style_check_(-charset) :- style_check_(-charset) :-
'$style_checker'( [ -charset ] ). '$style_checker'( [ -charset ] ).
style_check_('?'(Info) ) :- style_check_('?'(Info) ) :-
'$style_checker '( [ L ] ),
lists:member( Style, [ singleton, discontiguous, multiple ] ), lists:member( Style, [ singleton, discontiguous, multiple ] ),
( lists:member(Style, L ) -> Info = +Style ; Info = -Style ). ( lists:member(Style, L ) -> Info = +Style ; Info = -Style ).
style_check_([]). style_check_([]).

View File

@ -376,19 +376,28 @@ use_module(M,F,Is) :-
'$use_module'(M,F,Is). '$use_module'(M,F,Is).
'$use_module'(M,F,Is) :- '$use_module'(M,F,Is) :-
var(Is), !, var(Is), !,
'$use_module'(M,F,all). '$use_module'(M,F,all).
'$use_module'(M,F,Is) :- nonvar(M), !, '$use_module'(M,F,Is) :-
nonvar(F), !,
strip_module(F, M0, F0),
'$load_files'(M0:F0, [if(not_loaded),must_be_module(true),imports(Is)], use_module(M,F,Is)),
( var(M) -> true
;
absolute_file_name( F0, F1, [expand(true),file_type(prolog)] ),
recorded('$module','$module'(F1,M,_,_),_)
).
'$use_module'(M,F,Is) :-
nonvar(M), !,
strip_module(F, M0, F0),
( (
recorded('$module','$module'(F1,M,_,_),_) recorded('$module','$module'(F1,M,_,_),_)
-> ->
'$load_files'(F1, [if(not_loaded),must_be_module(true),imports(Is)], use_module(M,F,Is)) '$load_files'(M0:F1, [if(not_loaded),must_be_module(true),imports(Is)], use_module(M,F,Is))
), ),
strip_module(F, _, F0), (var(F0) -> F0 = F1 ; absolute_file_name( F1, F2, [expand(true),file_type(prolog)] ) -> F2 = F0 ).
(var(F0) -> F0 = F1 ; absolute_file_name( F1, F0, [file_type(prolog)] ) ).
'$use_module'(M,F,Is) :- '$use_module'(M,F,Is) :-
strip_module(F, M0, F0), '$do_error'(instantiation_error,use_module(M,F,Is)).
'$load_files'(F0, [if(not_loaded),'$context_module'(M0),must_be_module(true),imports(Is)], use_module(M,F,Is)).
'$csult'(Fs, M) :- '$csult'(Fs, M) :-
'$extract_minus'(Fs, MFs), !, '$extract_minus'(Fs, MFs), !,

View File

@ -320,10 +320,10 @@ yap_flag(discontiguous_warnings,X) :-
var(X), !, var(X), !,
style_check(?(Disc)), style_check(?(Disc)),
( Disc = +discontiguous, ( Disc = +discontiguous,
`X = on X = on
; ;
Disc = -discontiguous, Disc = -discontiguous,
`X = off X = off
), !. ), !.
yap_flag(discontiguous_warnings,X) :- yap_flag(discontiguous_warnings,X) :-
'$transl_to_on_off'(_,X), !, '$transl_to_on_off'(_,X), !,
@ -339,10 +339,10 @@ yap_flag(redefine_warnings,X) :-
var(X), !, var(X), !,
style_check(?(Disc)), style_check(?(Disc)),
( Disc = +multiple, ( Disc = +multiple,
`X = on X = on
; ;
Disc = -multiple, Disc = -multiple,
`X = off X = off
), !. ), !.
yap_flag(redefine_warnings,X) :- yap_flag(redefine_warnings,X) :-
'$transl_to_on_off'(_,X), !, '$transl_to_on_off'(_,X), !,
@ -382,10 +382,10 @@ yap_flag(single_var_warnings,X) :-
var(X), !, var(X), !,
style_check(?(Disc)), style_check(?(Disc)),
( Disc = +singletons, ( Disc = +singletons,
`X = on X = on
; ;
Disc = -singletons, Disc = -singletons,
`X = off X = off
), !. ), !.
yap_flag(single_var_warnings,X) :- yap_flag(single_var_warnings,X) :-
'$transl_to_on_off'(_,X), !, '$transl_to_on_off'(_,X), !,