indenting

This commit is contained in:
Vítor Santos Costa 2015-10-20 08:13:09 +01:00
parent c26e5afaf0
commit cc6949681b
5 changed files with 1667 additions and 1854 deletions

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,7 @@
#ifdef SCCS #ifdef SCCS
static char SccsId[] = "%W% %G%"; static char SccsId[] = "%W% %G%";
#endif #endif
a
/* /*
* This file is an entry for user defined C-predicates. * This file is an entry for user defined C-predicates.
* *
@ -51,7 +51,8 @@ static char SccsId[] = "%W% %G%";
/* You should include here the prototypes for all static functions */ /* You should include here the prototypes for all static functions */
#ifdef EUROTRA #ifdef EUROTRA
static int p_clean(void); static int
p_clean(void);
static int p_namelength(void); static int p_namelength(void);
static int p_getpid(void); static int p_getpid(void);
static int p_exit(void); static int p_exit(void);
@ -68,13 +69,10 @@ static SignalProc skel_signal(int, SignalProc);
static int chdir(char *); static int chdir(char *);
#endif #endif
#ifdef SFUNC #ifdef SFUNC
static int p_softfunctor(void); static int p_softfunctor(void);
#endif /* SFUNC */ #endif /* SFUNC */
#ifdef USERPREDS #ifdef USERPREDS
/* These are some examples of user-defined functions */ /* These are some examples of user-defined functions */
@ -102,9 +100,7 @@ static int p_softfunctor(void);
/* occurs-in --> checks if the variable V occurs in term S */ /* occurs-in --> checks if the variable V occurs in term S */
static int static int occurs_check(V, T) Term V, T;
occurs_check(V, T)
Term V, T;
{ {
/* V and S are always derefed */ /* V and S are always derefed */
if (IsVarTerm(T)) { if (IsVarTerm(T)) {
@ -112,8 +108,7 @@ occurs_check(V, T)
} else if (IsPrimitiveTerm(T)) { } else if (IsPrimitiveTerm(T)) {
return (TRUE); return (TRUE);
} else if (IsPairTerm(T)) { } else if (IsPairTerm(T)) {
return (occurs_check(V, HeadOfTerm(T)) return (occurs_check(V, HeadOfTerm(T)) && occurs_check(V, TailOfTerm(T)));
&& occurs_check(V, TailOfTerm(T)));
} else if (IsApplTerm(T)) { } else if (IsApplTerm(T)) {
unsigned int i; unsigned int i;
unsigned int arity = ArityOfFunctor(FunctorOfTerm(T)); unsigned int arity = ArityOfFunctor(FunctorOfTerm(T));
@ -131,9 +126,7 @@ occurs_check(V, T)
arguments before dereferencing, otherwise unify() won't be arguments before dereferencing, otherwise unify() won't be
to wake possible bound variables to wake possible bound variables
*/ */
static int static int full_unification(T1, T2) Term T1, T2;
full_unification(T1, T2)
Term T1, T2;
{ {
Term t1 = Deref(T1); Term t1 = Deref(T1);
Term t2 = Deref(T2); Term t2 = Deref(T2);
@ -182,21 +175,16 @@ Term T1, T2;
#endif #endif
} }
static int static int p_occurs_check() { /* occurs_check(?,?) */
p_occurs_check()
{ /* occurs_check(?,?) */
return (occurs_check(Deref(ARG1), Deref(DARG2))); return (occurs_check(Deref(ARG1), Deref(DARG2)));
} }
/* Out of date, use unify_with_occurs_check instead*/ /* Out of date, use unify_with_occurs_check instead*/
static int static int p_unify() { /* unify(?,?) */
p_unify()
{ /* unify(?,?) */
/* routines that perform unification must receive the original arguments */ /* routines that perform unification must receive the original arguments */
return (full_unification(ARG1, ARG2)); return (full_unification(ARG1, ARG2));
} }
/* /*
* One example of a counter using the atom value functions counter(Atom,M,N) * One example of a counter using the atom value functions counter(Atom,M,N)
* *
@ -205,9 +193,7 @@ p_unify()
* value. The third argument then be unified with the next integer, which * value. The third argument then be unified with the next integer, which
* will become the current counter value. * will become the current counter value.
*/ */
static int static int p_counter() { /* counter(+Atom,?Number,?Next) */
p_counter()
{ /* counter(+Atom,?Number,?Next) */
Term TCount, TNext, T1, T2; Term TCount, TNext, T1, T2;
Atom a; Atom a;
/* Int -> an YAP integer */ /* Int -> an YAP integer */
@ -248,9 +234,7 @@ p_counter()
* avoid it whenever possible * avoid it whenever possible
*/ */
#ifdef COMMENT #ifdef COMMENT
static int static int p_iconcat() { /* iconcat(+L1,+L2,-L) */
p_iconcat()
{ /* iconcat(+L1,+L2,-L) */
Term Tkeep[1025]; /* Will do it just for lists less Term Tkeep[1025]; /* Will do it just for lists less
* than 1024 elements long */ * than 1024 elements long */
register Term *Tkp = Tkeep; register Term *Tkp = Tkeep;
@ -276,9 +260,7 @@ p_iconcat()
} }
#endif /* COMMENT */ #endif /* COMMENT */
static int static int p_iconcat() { /* iconcat(+L1,+L2,-L) */
p_iconcat()
{ /* iconcat(+L1,+L2,-L) */
register Term *Tkp = H, *tp; register Term *Tkp = H, *tp;
register Term L0, L1; register Term L0, L1;
Term T2; Term T2;
@ -302,8 +284,7 @@ p_iconcat()
#ifdef EUROTRA #ifdef EUROTRA
static int static int p_clean() /* predicate clean for ets */
p_clean() /* predicate clean for ets */
/* /*
* clean(FB,CFB) :- FB =.. [fb|L],!, clean1(L,CL), CFB =.. [fb|CL]. * clean(FB,CFB) :- FB =.. [fb|L],!, clean1(L,CL), CFB =.. [fb|CL].
* clean(FB,CFB) :- var(FB). * clean(FB,CFB) :- var(FB).
@ -318,8 +299,7 @@ p_clean() /* predicate clean for ets */
if (IsVarTerm(t1)) if (IsVarTerm(t1))
return (TRUE); return (TRUE);
if (!(IsApplTerm(t1) if (!(IsApplTerm(t1) && NameOfFunctor(FunctorOfTerm(t1)) == AtomFB))
&& NameOfFunctor(FunctorOfTerm(t1)) == AtomFB))
return (FALSE); return (FALSE);
arity = ArityOfFunctor(FunctorOfTerm(t1)); arity = ArityOfFunctor(FunctorOfTerm(t1));
#ifdef SFUNC #ifdef SFUNC
@ -349,9 +329,7 @@ static Term *subs_table;
static int subs_entries; static int subs_entries;
#define SUBS_TABLE_SIZE 500 #define SUBS_TABLE_SIZE 500
static int static int subsumes(T1, T2) Term T1, T2;
subsumes(T1, T2)
Term T1, T2;
{ {
int i; int i;
@ -441,7 +419,8 @@ Term T1, T2;
*TR++ = Unsigned(a2p); *TR++ = Unsigned(a2p);
return (TRUE); return (TRUE);
} }
while ((*pt++ = *a1a++)); while ((*pt++ = *a1a++))
;
*a1p = Unsigned(H); *a1p = Unsigned(H);
if (a1p < HB) if (a1p < HB)
*TR++ = Unsigned(a1p); *TR++ = Unsigned(a1p);
@ -486,18 +465,14 @@ Term T1, T2;
return (FALSE); return (FALSE);
} }
static int static int p_subsumes() {
p_subsumes()
{
Term work_space[SUBS_TABLE_SIZE]; Term work_space[SUBS_TABLE_SIZE];
subs_table = work_space; subs_table = work_space;
subs_entries = 0; subs_entries = 0;
return (subsumes(Deref(ARG1), Deref(ARG2))); return (subsumes(Deref(ARG1), Deref(ARG2)));
} }
static int static int p_namelength() {
p_namelength()
{
register Term t = Deref(ARG1); register Term t = Deref(ARG1);
Term tf; Term tf;
@ -519,9 +494,7 @@ p_namelength()
return (FALSE); return (FALSE);
} }
static int static int p_getpid() {
p_getpid()
{
#ifndef MPW #ifndef MPW
Term t = MkIntTerm(getpid()); Term t = MkIntTerm(getpid());
#else #else
@ -530,9 +503,7 @@ p_getpid()
return (Yap_unify_constant(ARG1, t)); return (Yap_unify_constant(ARG1, t));
} }
static int static int p_exit() {
p_exit()
{
register Term t = Deref(ARG1); register Term t = Deref(ARG1);
if (IsVarTerm(t) || !IsIntTerm(t)) if (IsVarTerm(t) || !IsIntTerm(t))
return (FALSE); return (FALSE);
@ -542,9 +513,7 @@ p_exit()
static int current_pos; static int current_pos;
static int static int p_incrcounter() {
p_incrcounter()
{
register Term t = Deref(ARG1); register Term t = Deref(ARG1);
if (IsVarTerm(t) || !IsIntTerm(t)) if (IsVarTerm(t) || !IsIntTerm(t))
return (FALSE); return (FALSE);
@ -552,9 +521,7 @@ p_incrcounter()
return (TRUE); return (TRUE);
} }
static int static int p_setcounter() {
p_setcounter()
{
register Term t = Deref(ARG1); register Term t = Deref(ARG1);
if (IsVarTerm(t) || !IsIntTerm(t)) { if (IsVarTerm(t) || !IsIntTerm(t)) {
return (Yap_unify_constant(ARG1, MkIntTerm(current_pos))); return (Yap_unify_constant(ARG1, MkIntTerm(current_pos)));
@ -573,24 +540,20 @@ p_setcounter()
#define EOF -1 #define EOF -1
#endif #endif
static int static int p_trapsignal(void) {
p_trapsignal(void)
{
#ifndef MPW #ifndef MPW
signal(SIGINT, SIG_IGN); signal(SIGINT, SIG_IGN);
#endif #endif
return (TRUE); return (TRUE);
} }
#define varstarter(ch) ((ch >= 'A' && ch <= 'Z') || ch == '_') #define varstarter(ch) ((ch >= 'A' && ch <= 'Z') || ch == '_')
#define idstarter(ch) (ch >= 'a' && ch <= 'z') #define idstarter(ch) (ch >= 'a' && ch <= 'z')
#define idchar(ch) ((ch>='0' && ch<='9') || (ch>='A' && ch<='Z') || \ #define idchar(ch) \
((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || \
(ch >= 'a' && ch <= 'z') || ch == '_') (ch >= 'a' && ch <= 'z') || ch == '_')
static int static int p_grab_tokens() {
p_grab_tokens()
{
Term *p = ASP - 20, *p0, t; Term *p = ASP - 20, *p0, t;
Functor IdFunctor, VarFunctor; Functor IdFunctor, VarFunctor;
char ch, IdChars[256], *chp; char ch, IdChars[256], *chp;
@ -605,7 +568,8 @@ p_grab_tokens()
if (ch == '.' || ch == EOF) if (ch == '.' || ch == EOF)
break; break;
if (ch == '%') { if (ch == '%') {
while ((ch = Yap_PlGetchar()) != 10); while ((ch = Yap_PlGetchar()) != 10)
;
ch = Yap_PlGetchar(); ch = Yap_PlGetchar();
continue; continue;
} }
@ -622,7 +586,6 @@ p_grab_tokens()
*p-- = Yap_MkApplTerm(IdFunctor, 1, &t); *p-- = Yap_MkApplTerm(IdFunctor, 1, &t);
ch = Yap_PlGetchar(); ch = Yap_PlGetchar();
continue; continue;
} }
if (varstarter(ch)) { if (varstarter(ch)) {
chp = IdChars; chp = IdChars;
@ -668,9 +631,7 @@ p_grab_tokens()
#ifdef SFUNC #ifdef SFUNC
static static p_softfunctor() {
p_softfunctor()
{
Term nilvalue = 0; Term nilvalue = 0;
SFEntry *pe; SFEntry *pe;
Prop p0; Prop p0;
@ -703,13 +664,12 @@ p_softfunctor()
static Int static Int
p_matching_distances(void) p_matching_distances(void)
{ {
return(fabs(FloatOfTerm(Deref(ARG1))-FloatOfTerm(Deref(ARG2))) <= FloatOfTerm(Deref(ARG3))); return(fabs(FloatOfTerm(Deref(ARG1))-FloatOfTerm(Deref(ARG2))) <=
FloatOfTerm(Deref(ARG3)));
} }
*/ */
void void Yap_InitUserCPreds(void) {
Yap_InitUserCPreds(void)
{
#ifdef XINTERFACE #ifdef XINTERFACE
Yap_InitXPreds(); Yap_InitXPreds();
#endif #endif
@ -721,21 +681,19 @@ Yap_InitUserCPreds(void)
Yap_InitCPred("incr_counter", 1, p_incrcounter, SafePredFlag | SyncPredFlag); Yap_InitCPred("incr_counter", 1, p_incrcounter, SafePredFlag | SyncPredFlag);
Yap_InitCPred("set_counter", 1, p_setcounter, SafePredFlag | SyncPredFlag); Yap_InitCPred("set_counter", 1, p_setcounter, SafePredFlag | SyncPredFlag);
Yap_InitCPred("trap_signal", 0, p_trapsignal, SafePredFlag | SyncPredFlag); Yap_InitCPred("trap_signal", 0, p_trapsignal, SafePredFlag | SyncPredFlag);
Yap_InitCPred("mark2_grab_tokens", 1, p_grab_tokens, SafePredFlag|SyncPredFlag); Yap_InitCPred("mark2_grab_tokens", 1, p_grab_tokens,
SafePredFlag | SyncPredFlag);
Yap_InitCPred("subsumes", 2, p_subsumes, SafePredFlag); Yap_InitCPred("subsumes", 2, p_subsumes, SafePredFlag);
#endif #endif
#ifdef SFUNC #ifdef SFUNC
Yap_InitCPred("sparse_functor", 2, p_softfunctor, SafePredFlag); Yap_InitCPred("sparse_functor", 2, p_softfunctor, SafePredFlag);
#endif /* SFUNC */ #endif /* SFUNC */
/* Yap_InitCPred("match_distances", 3, p_matching_distances, SafePredFlag); */ /* Yap_InitCPred("match_distances", 3, p_matching_distances, SafePredFlag);
*/
/* Yap_InitCPred("unify",2,p_unify,SafePredFlag); */ /* Yap_InitCPred("unify",2,p_unify,SafePredFlag); */
/* Yap_InitCPred("occurs_check",2,p_occurs_check,SafePredFlag); */ /* Yap_InitCPred("occurs_check",2,p_occurs_check,SafePredFlag); */
/* Yap_InitCPred("counter",3,p_counter,SafePredFlag); */ /* Yap_InitCPred("counter",3,p_counter,SafePredFlag); */
/* Yap_InitCPred("iconcat",3,p_iconcat,SafePredFlag); */ /* Yap_InitCPred("iconcat",3,p_iconcat,SafePredFlag); */
} }
void Yap_InitUserBacks(void) {}
void
Yap_InitUserBacks(void)
{
}

View File

@ -30,21 +30,32 @@ Set or read system properties for _Param_:
/// `address_bits` /// `address_bits`
/// ///
/// Number of address bits in the machine, either 64 or 32 bits. /// Number of address bits in the machine, either 64 or 32 bits.
YAP_FLAG( ADDRESS_BITS_FLAG, "address_bits", false, nat, BITNESS , NULL ), /** `address_bits` YAP_FLAG(ADDRESS_BITS_FLAG, "address_bits", false, nat, BITNESS,
NULL), /** `address_bits`
Number of address bits in the machine, either 64 or 32 bits */ Number of address bits in the machine, either 64 or 32 bits */
YAP_FLAG( AGC_MARGIN_FLAG, "agc_margin", true, nat, "10000" , agc_threshold ), /**`agc_margin ` YAP_FLAG(AGC_MARGIN_FLAG, "agc_margin", true, nat, "10000",
agc_threshold), /**`agc_margin `
An integer: if this amount of atoms has been created since the last An integer: if this amount of atoms has been created since the last
atom-garbage collection, perform atom garbage collection at the first atom-garbage collection, perform atom garbage collection at the first
opportunity. Initial value is 10,000. May be changed. A value of 0 opportunity. Initial value is 10,000. May be changed. A value of 0
(zero) disables atom garbage collection. (zero) disables atom garbage collection.
*/ */
YAP_FLAG( ALLOW_ASSERT_FOR_STATIC_PREDICATES, "allow_assert_for_static_predicates", true, boolean, "true" , NULL ), /**< `allow asserting and retracting clauses of static predicates. */ YAP_FLAG(ALLOW_ASSERT_FOR_STATIC_PREDICATES,
"allow_assert_for_static_predicates", true, boolean, "true",
NULL), /**< `allow asserting and retracting clauses of static
predicates. */
/* YAP_FLAG( ALLOW_VARIABLE_NAME_AS_FUNCTOR_FLAG, "allow_variable_name_as_functor", true, boolean, "false" , NULL ), /\**< `allow_variable_name_as_functor` */ /* YAP_FLAG( ALLOW_VARIABLE_NAME_AS_FUNCTOR_FLAG,
"allow_variable_name_as_functor", true, boolean, "false" , NULL ), /\**<
`allow_variable_name_as_functor` */
/* allow A(X) *\/ */ /* allow
YAP_FLAG( ANSWER_FORMAT_FLAG, "answer_format", true, isatom, "~p" , Yap_set_fpu_exceptions ), /** `arithmetic_exceptions ` * A(X)
* *\/
*/
YAP_FLAG(ANSWER_FORMAT_FLAG, "answer_format", true, isatom, "~p",
NULL), /** `arithmetic_exceptions `
Read-write flag telling whether arithmetic exceptions generate Read-write flag telling whether arithmetic exceptions generate
Prolog exceptions. If enabled: Prolog exceptions. If enabled:
@ -61,7 +72,8 @@ YAP_FLAG( ANSWER_FORMAT_FLAG, "answer_format", true, isatom, "~p" , Yap_set_fpu
X = (+inf). X = (+inf).
~~~~ ~~~~
It is `true` by default, but it is disabled by packages like CLP(BN) and ProbLog. It is `true` by default, but it is disabled by packages like CLP(BN) and
ProbLog.
*/ */
#if __APPLE__ #if __APPLE__
YAP_FLAG(APPLE_FLAG, "apple", false, boolean, "true", NULL), /**< `apple` YAP_FLAG(APPLE_FLAG, "apple", false, boolean, "true", NULL), /**< `apple`
@ -72,15 +84,18 @@ running on an Apple machine.
#endif #endif
YAP_FLAG(ARCH_FLAG, "arch", false, isatom, YAP_ARCH, NULL), YAP_FLAG(ARCH_FLAG, "arch", false, isatom, YAP_ARCH, NULL),
YAP_FLAG(ARGV_FLAG, "argv", false, argv, "?-", NULL), YAP_FLAG(ARGV_FLAG, "argv", false, argv, "?-", NULL),
YAP_FLAG( ARITHMETIC_EXCEPTIONS_FLAG, "arithmetic_exceptions", true, boolean, "true" , NULL ), YAP_FLAG(ARITHMETIC_EXCEPTIONS_FLAG, "arithmetic_exceptions", true, boolean,
YAP_FLAG( BACKQUOTED_STRING_FLAG, "backquoted_string", true, isatom, "string" , ), /**> "true", NULL),
YAP_FLAG(BACKQUOTED_STRING_FLAG, "backquoted_string", true, isatom,
"string", ), /**>
If _Value_ is unbound, tell whether a double quoted list of characters If _Value_ is unbound, tell whether a double quoted list of characters
token is converted to a list of atoms, `chars`, to a list of integers, token is converted to a list of atoms, `chars`, to a list of integers,
`codes`, or to a single atom, `atom`. If _Value_ is bound, set to `codes`, or to a single atom, `atom`. If _Value_ is bound, set to
the corresponding behavior. The default value is `string` the corresponding behavior. The default value is `string`
*/ */
YAP_FLAG( BOUNDED_FLAG, "bounded", false, boolean, "false" , NULL ), /**< `bounded` is iso YAP_FLAG(BOUNDED_FLAG, "bounded", false, boolean, "false",
NULL), /**< `bounded` is iso
Read-only flag telling whether integers are bounded. The value depends Read-only flag telling whether integers are bounded. The value depends
on whether YAP uses the GMP library or not. on whether YAP uses the GMP library or not.
@ -90,57 +105,75 @@ YAP_FLAG( C_CFLAGS_FLAG, "c_cflags", false, isatom, C_CFLAGS , NULL ),
YAP_FLAG(C_LDFLAGS_FLAG, "c_ldflags", false, isatom, C_LDFLAGS, NULL), YAP_FLAG(C_LDFLAGS_FLAG, "c_ldflags", false, isatom, C_LDFLAGS, NULL),
YAP_FLAG(C_LIBPLSO_FLAG, "c_libplso", false, isatom, C_LIBPLSO, NULL), YAP_FLAG(C_LIBPLSO_FLAG, "c_libplso", false, isatom, C_LIBPLSO, NULL),
YAP_FLAG(C_LIBS_FLAG, "c_libs", false, isatom, C_LIBS, NULL), YAP_FLAG(C_LIBS_FLAG, "c_libs", false, isatom, C_LIBS, NULL),
YAP_FLAG( CHAR_CONVERSION_FLAG, "char_conversion", true, boolean, "false" , NULL ), /**< `char_conversion is iso` YAP_FLAG(CHAR_CONVERSION_FLAG, "char_conversion", true, boolean, "false",
NULL), /**< `char_conversion is iso`
Writable flag telling whether a character conversion table is used when Writable flag telling whether a character conversion table is used when
reading terms. The default value for this flag is `off` except in reading terms. The default value for this flag is `off` except in
`sicstus` and `iso` language modes, where it is `on`. `sicstus` and `iso` language modes, where it is `on`.
*/ */
YAP_FLAG( CHARACTER_ESCAPES_FLAG, "character_escapes", true, boolean, "true" , NULL ), /**< `character_escapes is iso ` YAP_FLAG(CHARACTER_ESCAPES_FLAG, "character_escapes", true, boolean, "true",
NULL), /**< `character_escapes is iso `
Writable flag telling whether a character escapes are enables, Writable flag telling whether a character escapes are enables,
`true`, or disabled, `false`. The default value for this flag is `true`, or disabled, `false`. The default value for this flag is
`true`. */ `true`. */
YAP_FLAG( COLON_SETS_CALLING_CONTEXT_FLAG, "colon_sets_calling_context", true, boolean, "true" , NULL ), YAP_FLAG(COLON_SETS_CALLING_CONTEXT_FLAG, "colon_sets_calling_context",
YAP_FLAG( COMPILED_AT_FLAG, "compiled_at", false, isatom, YAP_COMPILED_AT , NULL ), /**< `compiled_at ` true, boolean, "true", NULL),
YAP_FLAG(COMPILED_AT_FLAG, "compiled_at", false, isatom, YAP_COMPILED_AT,
NULL), /**< `compiled_at `
Read-only flag that gives the time when the main YAP binary was compiled. It is obtained staight from the __TIME__ macro, as defined in the C99. Read-only flag that gives the time when the main YAP binary was compiled. It is
obtained staight from the __TIME__ macro, as defined in the C99.
*/ */
YAP_FLAG( DEBUG_FLAG, "debug", true, boolean, "false" , NULL ), /**< `debug is iso ` YAP_FLAG(DEBUG_FLAG, "debug", true, boolean, "false",
NULL), /**< `debug is iso `
If _Value_ is unbound, tell whether debugging is `true` or If _Value_ is unbound, tell whether debugging is `true` or
`false`. If _Value_ is bound to `true` enable debugging, and if `false`. If _Value_ is bound to `true` enable debugging, and if
it is bound to `false` disable debugging. it is bound to `false` disable debugging.
*/ */
YAP_FLAG(DEBUG_INFO_FLAG, "debug_info", true, boolean, "true", NULL), YAP_FLAG(DEBUG_INFO_FLAG, "debug_info", true, boolean, "true", NULL),
YAP_FLAG( DEBUG_ON_ERROR_FLAG, "debug_on_error", true, boolean, "true" , NULL ), YAP_FLAG(DEBUG_ON_ERROR_FLAG, "debug_on_error", true, boolean, "true",
YAP_FLAG( DEBUGGER_PRINT_OPTIONS_FLAG, "debugger_print_options", true, list_option, "[quoted(true),numbervars(true),portrayed(true),max_depth(10)]" , NULL ), /**< `debugger_print_options ` NULL),
YAP_FLAG(DEBUGGER_PRINT_OPTIONS_FLAG, "debugger_print_options", true,
list_option,
"[quoted(true),numbervars(true),portrayed(true),max_depth(10)]",
NULL), /**< `debugger_print_options `
If bound, set the argument to the `write_term/3` options the If bound, set the argument to the `write_term/3` options the
debugger uses to write terms. If unbound, show the current options. debugger uses to write terms. If unbound, show the current options.
*/ */
YAP_FLAG( DEBUGGER_SHOW_CONTEXT_FLAG, "debugger_show_context", true, boolean, "false" , NULL ), YAP_FLAG(DEBUGGER_SHOW_CONTEXT_FLAG, "debugger_show_context", true, boolean,
YAP_FLAG( DIALECT_FLAG, "dialect", false, ro, "yap" , NULL ), /**< `dialect ` "false", NULL),
YAP_FLAG(DIALECT_FLAG, "dialect", false, ro, "yap",
NULL), /**< `dialect `
Read-only flag that always returns `yap`. Read-only flag that always returns `yap`.
*/ */
YAP_FLAG( DISCONTIGUOUS_WARNINGS_FLAG, "discontiguous_warnings", true, boolean, "true" , NULL ), /**< `discontiguous_warnings ` YAP_FLAG(DISCONTIGUOUS_WARNINGS_FLAG, "discontiguous_warnings", true,
boolean, "true", NULL), /**< `discontiguous_warnings `
If `true` (default `true`) YAP checks for definitions of the same predicate that are separated by clauses for other predicates. This may indicate that different procedures have the sam*e name. If `true` (default `true`) YAP checks for definitions of the same predicate that
are separated by clauses for other predicates. This may indicate that different
procedures have the sam*e name.
*/ */
YAP_FLAG( DOLLAR_AS_LOWER_CASE_FLAG, "dollar_as_lower_case", true, boolean, "false" , NULL ), /**< `dollar_as_lower_case ` YAP_FLAG(DOLLAR_AS_LOWER_CASE_FLAG, "dollar_as_lower_case", true, boolean,
"false", NULL), /**< `dollar_as_lower_case `
If `off` (default) consider the character `$` a control character, if If `off` (default) consider the character `$` a control character, if
`on` consider `$` a lower case character. `on` consider `$` a lower case character.
*/ */
YAP_FLAG( DOUBLE_QUOTES_FLAG, "double_quotes", true, isatom, "codes" , dqf ), /**< `double_quotes is iso ` YAP_FLAG(DOUBLE_QUOTES_FLAG, "double_quotes", true, isatom, "codes",
dqf), /**< `double_quotes is iso `
If _Value_ is unbound, tell whether a double quoted list of characters If _Value_ is unbound, tell whether a double quoted list of characters
token is converted to a list of atoms, `chars`, to a list of integers, token is converted to a list of atoms, `chars`, to a list of integers,
`codes`, or to a single atom, `atom`. If _Value_ is bound, set to `codes`, or to a single atom, `atom`. If _Value_ is bound, set to
the corresponding behavior. The default value is `codes`. */ the corresponding behavior. The default value is `codes`. */
YAP_FLAG(EDITOR_FLAG, "editor", true, isatom, "$EDITOR", NULL), YAP_FLAG(EDITOR_FLAG, "editor", true, isatom, "$EDITOR", NULL),
YAP_FLAG( EXECUTABLE_FLAG, "executable", false, isatom, "yap" , executable ), /**< `executable ` YAP_FLAG(EXECUTABLE_FLAG, "executable", false, isatom, "yap",
executable), /**< `executable `
Read-only flag. It unifies with an atom that gives the Read-only flag. It unifies with an atom that gives the
original program path. original program path.
@ -150,8 +183,10 @@ YAP_FLAG( FAST_FLAG, "fast", true, boolean, "false" , NULL ), /**< `fast `
If `on` allow fast machine code, if `off` (default) disable it. Only If `on` allow fast machine code, if `off` (default) disable it. Only
available in experimental implemexbntations. available in experimental implemexbntations.
*/ */
YAP_FLAG( FILE_NAME_VARIABLES_FLAG, "file_name_variables", true, boolean, "true" , NULL ), YAP_FLAG(FILE_NAME_VARIABLES_FLAG, "file_name_variables", true, boolean,
YAP_FLAG( FLOAT_FORMAT_FLAG, "float_format", true, isatom, "%15e" , NULL ), /**< + `float_format ` "true", NULL),
YAP_FLAG(FLOAT_FORMAT_FLAG, "float_format", true, isatom, "%15e",
NULL), /**< + `float_format `
C-library `printf()` format specification used by write/1 and C-library `printf()` format specification used by write/1 and
friends to determine how floating point numbers are printed. The friends to determine how floating point numbers are printed. The
@ -164,13 +199,15 @@ YAP_FLAG( GC_FLAG, "gc", true, boolean, "on" , NULL ), /**< `gc`
If `on` allow garbage collection (default), if `off` disable it. If `on` allow garbage collection (default), if `off` disable it.
*/ */
YAP_FLAG( GC_MARGIN_FLAG, "gc_margin", true, nat, "0" , gc_margin ), /**< `gc_margin ` YAP_FLAG(GC_MARGIN_FLAG, "gc_margin", true, nat, "0",
gc_margin), /**< `gc_margin `
Set or show the minimum free stack before starting garbage Set or show the minimum free stack before starting garbage
collection. The default depends on total stack size. collection. The default depends on total stack size.
*/ */
YAP_FLAG( GC_TRACE_FLAG, "gc_trace", true, isatom, "off" , NULL ), /**< `gc_trace ` YAP_FLAG(GC_TRACE_FLAG, "gc_trace", true, isatom, "off",
NULL), /**< `gc_trace `
If `off` (default) do not show information on garbage collection If `off` (default) do not show information on garbage collection
and stack shifts, if `on` inform when a garbage collection or stack and stack shifts, if `on` inform when a garbage collection or stack
@ -179,7 +216,8 @@ collection and stack shifts. Last, if `very_verbose` give detailed
information on data-structures found during the garbage collection information on data-structures found during the garbage collection
process, namely, on choice-points. process, namely, on choice-points.
*/ */
YAP_FLAG( GENERATE_DEBUGGING_INFO_FLAG, "generate_debug_info", true, boolean, "true" , NULL ), /**< `generate_debug_info ` YAP_FLAG(GENERATE_DEBUGGING_INFO_FLAG, "generate_debug_info", true, boolean,
"true", NULL), /**< `generate_debug_info `
If `true` (default) generate debugging information for If `true` (default) generate debugging information for
procedures, including source mode. If `false` predicates no procedures, including source mode. If `false` predicates no
@ -188,13 +226,15 @@ source mode is disabled.
*/ */
YAP_FLAG(GMP_VERSION_FLAG, "gmp_version", false, isatom, "4.8.12", NULL), YAP_FLAG(GMP_VERSION_FLAG, "gmp_version", false, isatom, "4.8.12", NULL),
YAP_FLAG( HALT_AFTER_CONSULT_FLAG, "halt_after_consult", false, boolean, "false" , NULL ), YAP_FLAG(HALT_AFTER_CONSULT_FLAG, "halt_after_consult", false, boolean,
"false", NULL),
YAP_FLAG(HOME_FLAG, "home", false, isatom, YAP_ROOTDIR, NULL), /**< home ` YAP_FLAG(HOME_FLAG, "home", false, isatom, YAP_ROOTDIR, NULL), /**< home `
the root of the YAP installation, by default `/usr/local` in Unix or the root of the YAP installation, by default `/usr/local` in Unix or
`c:\Yap` in Windows system. Can only be set at configure tien `c:\Yap` in Windows system. Can only be set at configure tien
*/ */
YAP_FLAG( HOST_TYPE_FLAG, "host_type", false, isatom, HOST_ALIAS , NULL ), /**< host_type ` YAP_FLAG(HOST_TYPE_FLAG, "host_type", false, isatom, HOST_ALIAS,
NULL), /**< host_type `
Return `configure` system information, including the machine-id Return `configure` system information, including the machine-id
for which YAP was compiled and Operating System information. for which YAP was compiled and Operating System information.
@ -204,24 +244,29 @@ YAP_FLAG( INDEX_FLAG, "index", true, isatom, "multi" , indexer ), /**< `index `
If `on` allow indexing (default), if `off` disable it, if If `on` allow indexing (default), if `off` disable it, if
`single` allow on first argument only. `single` allow on first argument only.
*/ */
YAP_FLAG( INDEX_SUB_TERM_SEARCH_DEPTH_FLAG, "index_sub_term_search_depth", true, nat, "0" , NULL ), /**< `Index_sub_term_search_depth ` YAP_FLAG(INDEX_SUB_TERM_SEARCH_DEPTH_FLAG, "index_sub_term_search_depth",
true, nat, "0", NULL), /**< `Index_sub_term_search_depth `
Maximum bound on searching sub-terms for indexing, if `0` (default) no bound. Maximum bound on searching sub-terms for indexing, if `0` (default) no bound.
*/ */
YAP_FLAG( INFORMATIONAL_MESSAGES_FLAG, "informational_messages", true, isatom, "normal" , NULL ), /**< `informational_messages ` YAP_FLAG(INFORMATIONAL_MESSAGES_FLAG, "informational_messages", true,
isatom, "normal", NULL), /**< `informational_messages `
If `on` allow printing of informational messages, such as the ones If `on` allow printing of informational messages, such as the ones
that are printed when consulting. If `off` disable printing that are printed when consulting. If `off` disable printing
these messages. It is `on` by default except if YAP is booted with these messages. It is `on` by default except if YAP is booted with
the `-L` flag. the `-L` flag.
*/ */
YAP_FLAG( INTEGER_ROUNDING_FUNCTION_FLAG, "integer_rounding_function", true, isatom, "toward_zero" , NULL ), /**< `integer_rounding_function is iso ` YAP_FLAG(INTEGER_ROUNDING_FUNCTION_FLAG, "integer_rounding_function", true,
isatom, "toward_zero",
NULL), /**< `integer_rounding_function is iso `
Read-only flag telling the rounding function used for integers. Takes the value Read-only flag telling the rounding function used for integers. Takes the value
`toward_zero` for the current version of YAP. `toward_zero` for the current version of YAP.
*/ */
YAP_FLAG(ISO_FLAG, "iso", true, boolean, "false", NULL), YAP_FLAG(ISO_FLAG, "iso", true, boolean, "false", NULL),
YAP_FLAG( LANGUAGE_FLAG, "language", true, isatom, "yap" , NULL ), /**< `language ` YAP_FLAG(LANGUAGE_FLAG, "language", true, isatom, "yap",
NULL), /**< `language `
Choose whether YAP follows native, closer to C-Prolog, `yap`, iso-prolog, Choose whether YAP follows native, closer to C-Prolog, `yap`, iso-prolog,
`iso` or SICStus Prolog, `sicstus`. The current default is `iso` or SICStus Prolog, `sicstus`. The current default is
@ -230,24 +275,30 @@ style checking, handling calls to undefined procedures, how directives
are interpreted, when to use dynamic, character escapes, and how files are interpreted, when to use dynamic, character escapes, and how files
are consulted. Also check the `dialect` option. are consulted. Also check the `dialect` option.
*/ */
YAP_FLAG( MAX_ARITY_FLAG, "max_arity", false, isatom, "unbounded" , NULL ), /**< `max_arity is iso ` YAP_FLAG(MAX_ARITY_FLAG, "max_arity", false, isatom, "unbounded",
NULL), /**< `max_arity is iso `
Read-only flag telling the maximum arity of a functor. Takes the value Read-only flag telling the maximum arity of a functor. Takes the value
`unbounded` for the current version of YAP. `unbounded` for the current version of YAP.
*/ */
YAP_FLAG( MAX_TAGGED_INTEGER_FLAG, "max_tagged_integer", false, at2n, "INT_MAX" , NULL ), YAP_FLAG(MAX_TAGGED_INTEGER_FLAG, "max_tagged_integer", false, at2n,
"INT_MAX", NULL),
YAP_FLAG(MAX_THREADS_FLAG, "max_threads", false, at2n, "MAX_THREADS", NULL), YAP_FLAG(MAX_THREADS_FLAG, "max_threads", false, at2n, "MAX_THREADS", NULL),
YAP_FLAG(MAX_WORKERS_FLAG, "max_workers", false, at2n, "MAX_WORKERS", NULL), YAP_FLAG(MAX_WORKERS_FLAG, "max_workers", false, at2n, "MAX_WORKERS", NULL),
YAP_FLAG( MIN_TAGGED_INTEGER_FLAG, "min_tagged_integer", false, at2n, "INT_MIN" , NULL ), YAP_FLAG(MIN_TAGGED_INTEGER_FLAG, "min_tagged_integer", false, at2n,
YAP_FLAG( N_OF_INTEGER_KEYS_IN_DB_FLAG, "n_of_integer_keys_in_db", false, ro, "256" , NULL ), "INT_MIN", NULL),
YAP_FLAG(N_OF_INTEGER_KEYS_IN_DB_FLAG, "n_of_integer_keys_in_db", false, ro,
"256", NULL),
YAP_FLAG(OCCURS_CHECK_FLAG, "occurs_check", true, boolean, "false", NULL), YAP_FLAG(OCCURS_CHECK_FLAG, "occurs_check", true, boolean, "false", NULL),
YAP_FLAG( OPEN_EXPANDS_FILENAME_FLAG, "open_expands_filename", true, boolean, "true" , NULL ), /**< `open_expands_filename ` YAP_FLAG(OPEN_EXPANDS_FILENAME_FLAG, "open_expands_filename", true, boolean,
"true", NULL), /**< `open_expands_filename `
If `true` the open/3 builtin performs filename-expansion If `true` the open/3 builtin performs filename-expansion
before opening a file (SICStus Prolog like). If `false` it does not before opening a file (SICStus Prolog like). If `false` it does not
(SWI-Prolog like). (SWI-Prolog like).
*/ */
YAP_FLAG( OPEN_SHARED_OBJECT_FLAG, "open_shared_object", true, boolean, "true" , NULL ), /**< `open_shared_object ` YAP_FLAG(OPEN_SHARED_OBJECT_FLAG, "open_shared_object", true, boolean,
"true", NULL), /**< `open_shared_object `
If true, `open_shared_object/2` and friends are implemented, If true, `open_shared_object/2` and friends are implemented,
providing access to shared libraries (`.so` files) or to dynamic link providing access to shared libraries (`.so` files) or to dynamic link
@ -257,40 +308,54 @@ YAP_FLAG( OPTIMISE_FLAG, "optimise", true, boolean, "false" , NULL ),
YAP_FLAG(OS_ARGV_FLAG, "os_argv", false, os_argv, "?-", NULL), YAP_FLAG(OS_ARGV_FLAG, "os_argv", false, os_argv, "?-", NULL),
YAP_FLAG(PID_FLAG, "pid", false, ro, "0", NULL), YAP_FLAG(PID_FLAG, "pid", false, ro, "0", NULL),
YAP_FLAG(PIPE_FLAG, "pipe", true, boolean, "true", NULL), YAP_FLAG(PIPE_FLAG, "pipe", true, boolean, "true", NULL),
YAP_FLAG( PROFILING_FLAG, "profiling", true, boolean, "false" , NULL ), /**< `profiling ` YAP_FLAG(PROFILING_FLAG, "profiling", true, boolean, "false",
NULL), /**< `profiling `
If `off` (default) do not compile call counting information for If `off` (default) do not compile call counting information for
procedures. If `on` compile predicates so that they calls and procedures. If `on` compile predicates so that they calls and
retries to the predicate may be counted. Profiling data can be read through the retries to the predicate may be counted. Profiling data can be read through the
call_count_data/3 built-in. call_count_data/3 built-in.
*/ */
YAP_FLAG( PROMPT_ALTERNATIVES_ON_FLAG, "prompt_alternatives_on", true, isatom, "determinism" , NULL ), /**< `prompt_alternatives_on(atom, changeable) ` YAP_FLAG(PROMPT_ALTERNATIVES_ON_FLAG, "prompt_alternatives_on", true,
isatom, "determinism", NULL), /**< `prompt_alternatives_on(atom,
changeable) `
SWI-Compatible option, determines prompting for alternatives in the Prolog toplevel. Default is <tt>groundness</tt>, YAP prompts for alternatives if and only if the query contains variables. The alternative, default in SWI-Prolog is <tt>determinism</tt> which implies the system prompts for alternatives if the goal succeeded while leaving choicepoints. */ SWI-Compatible option, determines prompting for alternatives in the Prolog
YAP_FLAG( QUASI_QUOTATIONS_FLAG, "quasi_quotations", true, boolean, "true" , NULL ), toplevel. Default is <tt>groundness</tt>, YAP prompts for alternatives if and
only if the query contains variables. The alternative, default in SWI-Prolog is
<tt>determinism</tt> which implies the system prompts for alternatives if the
goal succeeded while leaving choicepoints. */
YAP_FLAG(QUASI_QUOTATIONS_FLAG, "quasi_quotations", true, boolean, "true",
NULL),
YAP_FLAG(READLINE_FLAG, "readline", true, boolean, "true", NULL), YAP_FLAG(READLINE_FLAG, "readline", true, boolean, "true", NULL),
YAP_FLAG(REPORT_ERROR_FLAG, "report_error", true, boolean, "true", NULL), YAP_FLAG(REPORT_ERROR_FLAG, "report_error", true, boolean, "true", NULL),
YAP_FLAG( SHARED_OBJECT_EXTENSION_FLAG, "shared_object_extension", false, isatom, SO_EXT ,NULL ), /**< `shared_object_extension ` YAP_FLAG(SHARED_OBJECT_EXTENSION_FLAG, "shared_object_extension", false,
isatom, SO_EXT, NULL), /**< `shared_object_extension `
Suffix associated with loadable code. Suffix associated with loadable code.
*/ */
YAP_FLAG( SHARED_OBJECT_SEARCH_PATH_FLAG, "shared_object_search_path", true, isatom, SO_PATH , NULL ), /**< `shared_object_search_path ` YAP_FLAG(SHARED_OBJECT_SEARCH_PATH_FLAG, "shared_object_search_path", true,
isatom, SO_PATH, NULL), /**< `shared_object_search_path `
Name of the environment variable used by the system to search for shared Name of the environment variable used by the system to search for shared
objects. objects.
*/ */
YAP_FLAG( SIGNALS_FLAG, "signals", true, boolean, "true" , NULL ), /**< `signals` YAP_FLAG(SIGNALS_FLAG, "signals", true, boolean, "true",
NULL), /**< `signals`
If `true` (default) YAP handles Signals such as `^C` (`SIGINT`). If `true` (default) YAP handles Signals such as `^C`
(`SIGINT`).
*/ */
YAP_FLAG(SOURCE_FLAG, "source", true, boolean, "true", NULL), /**< `source` YAP_FLAG(SOURCE_FLAG, "source", true, boolean, "true", NULL), /**< `source`
If `true` maintain the source for all clauses. Notice that this is trivially supported for facts, and always supported for dynamic code. If `true` maintain the source for all clauses. Notice that this is trivially
supported for facts, and always supported for dynamic code.
*/ */
YAP_FLAG( STRICT_ISO_FLAG, "strict_iso", true, boolean, "false" , NULL ), /**< `strict_iso ` YAP_FLAG(STRICT_ISO_FLAG, "strict_iso", true, boolean, "false",
NULL), /**< `strict_iso `
If _Value_ is unbound, tell whether strict ISO compatibility mode If _Value_ is unbound, tell whether strict ISO compatibility mode
is `on` or `off`. If _Value_ is bound to `on` set is `on` or `off`. If _Value_ is bound to `on` set
@ -312,7 +377,10 @@ believe this mode is mostly useful when investigating how a program
depends on a Prolog's platform specific features. depends on a Prolog's platform specific features.
*/ */
YAP_FLAG( SYSTEM_OPTIONS_FLAG, "system_options", false, ro, "[big_numbers,coroutining,depth_limit,low_level_tracer,rational_trees,threads,tabling]" , NULL ), /**< `system_options ` YAP_FLAG(SYSTEM_OPTIONS_FLAG, "system_options", false, ro,
"[big_numbers,coroutining,depth_limit,low_level_tracer,rational_"
"trees,threads,tabling]",
NULL), /**< `system_options `
This read only flag tells which options were used to compile This read only flag tells which options were used to compile
YAP. Currently it informs whether the system supports `big_numbers`, YAP. Currently it informs whether the system supports `big_numbers`,
@ -320,8 +388,10 @@ YAP. Currently it informs whether the system supports `big_numbers`,
`or-parallelism`, `rational_trees`, `readline`, `tabling`, `or-parallelism`, `rational_trees`, `readline`, `tabling`,
`threads`, or the `wam_profiler`. `threads`, or the `wam_profiler`.
*/ */
YAP_FLAG( SYSTEM_THREAD_ID_FLAG, "system_thread_id", false, ro, "0", sys_thread_id ), YAP_FLAG(SYSTEM_THREAD_ID_FLAG, "system_thread_id", false, ro, "0",
YAP_FLAG( TABLING_MODE_FLAG, "tabling_mode", true, isatom, "[]" , NULL ), /**< `tabling_mode` sys_thread_id),
YAP_FLAG(TABLING_MODE_FLAG, "tabling_mode", true, isatom, "[]",
NULL), /**< `tabling_mode`
Sets or reads the tabling mode for all tabled predicates. Please Sets or reads the tabling mode for all tabled predicates. Please
(see Tabling) for the list of options. (see Tabling) for the list of options.
@ -329,8 +399,11 @@ YAP_FLAG( TABLING_MODE_FLAG, "tabling_mode", true, isatom, "[]" , NULL ), /**<
*/ */
YAP_FLAG(THREADS_FLAG, "threads", false, ro, "MAX_THREADS", NULL), YAP_FLAG(THREADS_FLAG, "threads", false, ro, "MAX_THREADS", NULL),
YAP_FLAG(TIMEZONE_FLAG, "timezone", false, ro, "18000", NULL), YAP_FLAG(TIMEZONE_FLAG, "timezone", false, ro, "18000", NULL),
YAP_FLAG( TOPLEVEL_PRINT_ANON_FLAG, "toplevel_print_anon", true, boolean, "true" , NULL ), YAP_FLAG(TOPLEVEL_PRINT_ANON_FLAG, "toplevel_print_anon", true, boolean,
YAP_FLAG( TOPLEVEL_PRINT_OPTIONS_FLAG, "toplevel_print_options", true, list_option, "[quoted(true),numbervars(true),portrayed(true)]" , NULL ), /**< `toplevel_hook ` "true", NULL),
YAP_FLAG(TOPLEVEL_PRINT_OPTIONS_FLAG, "toplevel_print_options", true,
list_option, "[quoted(true),numbervars(true),portrayed(true)]",
NULL), /**< `toplevel_hook `
If bound, set the argument to a goal to be executed before entering the If bound, set the argument to a goal to be executed before entering the
top-level. If unbound show the current goal or `true` if none is top-level. If unbound show the current goal or `true` if none is
@ -338,7 +411,8 @@ presented. Only the first solution is considered and the goal is not
backtracked into. backtracked into.
*/ */
YAP_FLAG( TOPLEVEL_PROMPT_FLAG, "toplevel_prompt", true, isatom, "~m~d~l~! ?- " , mkprompt ), YAP_FLAG(TOPLEVEL_PROMPT_FLAG, "toplevel_prompt", true, isatom,
"~m~d~l~! ?- ", mkprompt),
YAP_FLAG(TTY_CONTROL_FLAG, "tty_control", true, boolean, "true", NULL), YAP_FLAG(TTY_CONTROL_FLAG, "tty_control", true, boolean, "true", NULL),
YAP_FLAG(UNIX_FLAG, "unix", false, ro, "true", NULL), /**< `unix` YAP_FLAG(UNIX_FLAG, "unix", false, ro, "true", NULL), /**< `unix`
@ -346,7 +420,8 @@ YAP_FLAG( UNIX_FLAG, "unix", false, ro, "true" , NULL ), /**< `unix`
running on an Unix system. Defined if the C-compiler used to compile running on an Unix system. Defined if the C-compiler used to compile
this version of YAP either defines `__unix__` or `unix`. this version of YAP either defines `__unix__` or `unix`.
*/ */
YAP_FLAG( UPDATE_SEMANTICS_FLAG, "update_semantics", true, isatom, "logical" , NULL ), /**< `update_semantics ` YAP_FLAG(UPDATE_SEMANTICS_FLAG, "update_semantics", true, isatom, "logical",
NULL), /**< `update_semantics `
Define whether YAP should follow `immediate` update Define whether YAP should follow `immediate` update
semantics, as in C-Prolog (default), `logical` update semantics, semantics, as in C-Prolog (default), `logical` update semantics,
@ -355,17 +430,28 @@ also an intermediate mode, `logical_assert`, where dynamic
procedures follow logical semantics but the internal data base still procedures follow logical semantics but the internal data base still
follows immediate semantics. follows immediate semantics.
*/ */
YAP_FLAG( USER_FLAGS_FLAG, "user_flags", true, isatom, "error" , NULL ), /**< `user_flags ` YAP_FLAG(USER_FLAGS_FLAG, "user_flags", true, isatom, "error", NULL), /**<
`user_flags `
Define the behaviour of set_prolog_flag/2 if the flag is not known. Values are `silent`, `warning` and `error`. The first two create the flag on-the-fly, with `warning` printing a message. The value `error` is consistent with ISO: it raises an existence error and does not create the flag. See also `create_prolog_flag/3`. The default is`error`, and developers are encouraged to use `create_prolog_flag/3` to create flags for their library. Define the behaviour of set_prolog_flag/2 if the flag is not known. Values
are `silent`, `warning` and `error`. The first two create the flag
on-the-fly, with `warning` printing a message. The value `error` is
consistent with ISO: it raises an existence error and does not create the
flag. See also `create_prolog_flag/3`. The default is`error`, and developers
are encouraged to use `create_prolog_flag/3` to create flags for their
library.
*/ */
YAP_FLAG( UNKNOWN_FLAG, "unknown", true, isatom, "error" , NULL ), /**< `unknown is iso` YAP_FLAG(UNKNOWN_FLAG, "unknown", true, isatom, "error",
NULL), /**< `unknown is iso`
Corresponds to calling the unknown/2 built-in. Possible values Corresponds to calling the unknown/2 built-in. Possible values
are `error`, `fail`, and `warning`. are `error`, `fail`, and `warning`.
*/ */
YAP_FLAG( VARIABLE_NAMES_MAY_END_WITH_QUOTES_FLAG, "variable_names_may_end_with_quotes", true, boolean, "false" , NULL ), YAP_FLAG(VARIABLE_NAMES_MAY_END_WITH_QUOTES_FLAG,
YAP_FLAG( VERBOSE_FLAG, "verbose", true, isatom, "normal" , NULL ), /**< `verbose ` "variable_names_may_end_with_quotes", true, boolean, "false",
NULL),
YAP_FLAG(VERBOSE_FLAG, "verbose", true, isatom, "normal",
NULL), /**< `verbose `
If `normal` allow printing of informational and banner messages, If `normal` allow printing of informational and banner messages,
such as the ones that are printed when consulting. If `silent` such as the ones that are printed when consulting. If `silent`
@ -373,39 +459,49 @@ disable printing these messages. It is `normal` by default except if
YAP is booted with the `-q` or `-L` flag. YAP is booted with the `-q` or `-L` flag.
*/ */
YAP_FLAG( VERBOSE_AUTOLOAD_FLAG, "verbose_autoload", true, boolean, "false" , NULL ), YAP_FLAG(VERBOSE_AUTOLOAD_FLAG, "verbose_autoload", true, boolean, "false",
YAP_FLAG( VERBOSE_FILE_SEARCH_FLAG, "verbose_file_search", true, boolean, "false" , NULL ), /**< `verbose_file_search ` NULL),
YAP_FLAG(VERBOSE_FILE_SEARCH_FLAG, "verbose_file_search", true, boolean,
"false", NULL), /**< `verbose_file_search `
If `true` allow printing of informational messages when If `true` allow printing of informational messages when
searching for file names. If `false` disable printing these messages. It searching for file names. If `false` disable printing these messages. It
is `false` by default except if YAP is booted with the `-L` is `false` by default except if YAP is booted with the `-L`
flag. flag.
*/ */
YAP_FLAG( VERBOSE_LOAD_FLAG, "verbose_load", true, isatom, "normal" , NULL ), /**< `verbose_load ` YAP_FLAG(VERBOSE_LOAD_FLAG, "verbose_load", true, isatom, "normal",
NULL), /**< `verbose_load `
If `true` allow printing of informational messages when If `true` allow printing of informational messages when
consulting files. If `false` disable printing these messages. It consulting files. If `false` disable printing these messages. It
is `normal` by default except if YAP is booted with the `-L` is `normal` by default except if YAP is booted with the `-L`
flag. flag.
*/ */
YAP_FLAG( VERSION_FLAG, "version", false, nat, YAP_NUMERIC_VERSION , NULL ), /**< `version_data ` YAP_FLAG(VERSION_FLAG, "version", false, nat, YAP_NUMERIC_VERSION,
NULL), /**< `version_data `
Read-only flag that unifies with a number of the form Read-only flag that unifies with a number of the form
`_Major_ * 100000 + _Minor_ *100 + _Patch_`, where `_Major_ * 100000 + _Minor_ *100 + _Patch_`, where
_Major_ is the major version, _Minor_ is the minor version, _Major_ is the major version, _Minor_ is the minor version,
and _Patch_ is the patch number. and _Patch_ is the patch number.
*/ */
YAP_FLAG( VERSION_DATA_FLAG, "version_data", false, ro, YAP_TVERSION , NULL ), /**< YAP_FLAG(VERSION_DATA_FLAG, "version_data", false, ro, YAP_TVERSION,
NULL), /**<
`version ` Read-only flag that returns an a compound term with the `version ` Read-only flag that returns an a compound term with the
current version of YAP. The term will have the name `yap` and arity 4, the first argument will be the current version of YAP. The term will have the name `yap` and arity 4, the first
major version, the second the minor version, the third the patch number, and the last one is reserved. argument will be the
major version, the second the minor version, the third the patch number, and the
last one is reserved.
*/ */
YAP_FLAG( VERSION_GIT_FLAG, "version_git", false, isatom, YAP_GIT_HEAD , NULL ), /**< `version_git ` YAP_FLAG(VERSION_GIT_FLAG, "version_git", false, isatom, YAP_GIT_HEAD,
NULL), /**< `version_git `
` `
this is the unique identifier for the last commit of the current GIT HEAD, it xan be used to identify versions that differ on small (or large) updates. this is the unique identifier for the last commit of the current GIT HEAD, it
xan be used to identify versions that differ on small (or large) updates.
*/ */
YAP_FLAG( WRITE_ATTRIBUTES_FLAG, "write_attributes", true, isatom, "ignore" , NULL ), YAP_FLAG(WRITE_ATTRIBUTES_FLAG, "write_attributes", true, isatom, "ignore",
NULL),
#if __WINDOWS__ #if __WINDOWS__
YAP_FLAG(WINDOWS_FLAG, "windows", false, ro, "true", NULL), /**< `windows ` YAP_FLAG(WINDOWS_FLAG, "windows", false, ro, "true", NULL), /**< `windows `
@ -413,7 +509,8 @@ YAP_FLAG( WINDOWS_FLAG, "windows", false, ro, "true" , NULL ), /**< `windows `
running on an Windows machine. running on an Windows machine.
*/ */
#endif #endif
YAP_FLAG( WRITE_STRINGS_FLAG, "write_strings", true, boolean, "false" , NULL ), /**< `write_strings ` YAP_FLAG(WRITE_STRINGS_FLAG, "write_strings", true, boolean, "false",
NULL), /**< `write_strings `
Writable flag telling whether the system should write lists of Writable flag telling whether the system should write lists of
integers that are writable character codes using the list notation. It integers that are writable character codes using the list notation. It

View File

@ -2,38 +2,8 @@
/* This file, rhstruct.h, was generated automatically by "yap -L misc/buildheap" /* This file, rhstruct.h, was generated automatically by "yap -L misc/buildheap"
please do not update, update misc/HEAPFIELDS instead */ please do not update, update misc/HEAPFIELDS instead */
#if USE_DL_MALLOC #if USE_DL_MALLOC
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
REINIT_LOCK(DLMallocLock); REINIT_LOCK(DLMallocLock);
#endif #endif
@ -47,9 +17,6 @@
#endif #endif
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
REINIT_LOCK(FreeBlocksLock); REINIT_LOCK(FreeBlocksLock);
REINIT_LOCK(HeapUsedLock); REINIT_LOCK(HeapUsedLock);
@ -57,9 +24,6 @@
#endif #endif
#if USE_THREADED_CODE #if USE_THREADED_CODE
OP_RTABLE = OpRTableAdjust(OP_RTABLE); OP_RTABLE = OpRTableAdjust(OP_RTABLE);
#endif #endif
@ -74,10 +38,6 @@
RETRY_USERC_OPCODE = Yap_opcode(_retry_userc); RETRY_USERC_OPCODE = Yap_opcode(_retry_userc);
EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred); EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred);
RestoreInvisibleAtoms(); RestoreInvisibleAtoms();
RestoreWideAtoms(); RestoreWideAtoms();
RestoreAtoms(); RestoreAtoms();
@ -102,29 +62,17 @@
DBLOAD_MODULE = AtomTermAdjust(DBLOAD_MODULE); DBLOAD_MODULE = AtomTermAdjust(DBLOAD_MODULE);
RANGE_MODULE = AtomTermAdjust(RANGE_MODULE); RANGE_MODULE = AtomTermAdjust(RANGE_MODULE);
CurrentModules = ModEntryPtrAdjust(CurrentModules); CurrentModules = ModEntryPtrAdjust(CurrentModules);
RestoreHiddenPredicates(); RestoreHiddenPredicates();
RestoreFlags(GLOBAL_flagCount); RestoreFlags(GLOBAL_flagCount);
RestorePredHash(); RestorePredHash();
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
#endif #endif
CreepCode = PtoPredAdjust(CreepCode); CreepCode = PtoPredAdjust(CreepCode);
UndefCode = PtoPredAdjust(UndefCode); UndefCode = PtoPredAdjust(UndefCode);
SpyCode = PtoPredAdjust(SpyCode); SpyCode = PtoPredAdjust(SpyCode);
@ -160,17 +108,6 @@
#endif #endif
#endif #endif
DUMMYCODE->opc = Yap_opcode(_op_fail); DUMMYCODE->opc = Yap_opcode(_op_fail);
FAILCODE->opc = Yap_opcode(_op_fail); FAILCODE->opc = Yap_opcode(_op_fail);
NOCODE->opc = Yap_opcode(_Nstop); NOCODE->opc = Yap_opcode(_Nstop);
@ -193,36 +130,21 @@
RestoreOtaplInst(ANSWER_RESOLUTION, _table_answer_resolution, PredFail); RestoreOtaplInst(ANSWER_RESOLUTION, _table_answer_resolution, PredFail);
RestoreOtaplInst(COMPLETION, _table_completion, PredFail); RestoreOtaplInst(COMPLETION, _table_completion, PredFail);
#ifdef THREADS_CONSUMER_SHARING #ifdef THREADS_CONSUMER_SHARING
RestoreOtaplInst(ANSWER_RESOLUTION_COMPLETION,_table_answer_resolution_completion,PredFail); RestoreOtaplInst(ANSWER_RESOLUTION_COMPLETION,
_table_answer_resolution_completion, PredFail);
#endif /* THREADS_CONSUMER_SHARING */ #endif /* THREADS_CONSUMER_SHARING */
#endif /* TABLING */ #endif /* TABLING */
P_before_spy = PtoOpAdjust(P_before_spy); P_before_spy = PtoOpAdjust(P_before_spy);
RETRY_C_RECORDEDP_CODE = PtoOpAdjust(RETRY_C_RECORDEDP_CODE); RETRY_C_RECORDEDP_CODE = PtoOpAdjust(RETRY_C_RECORDEDP_CODE);
RETRY_C_RECORDED_K_CODE = PtoOpAdjust(RETRY_C_RECORDED_K_CODE); RETRY_C_RECORDED_K_CODE = PtoOpAdjust(RETRY_C_RECORDED_K_CODE);
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
REINIT_LOCK(DBTermsListLock); REINIT_LOCK(DBTermsListLock);
#endif #endif
RestoreDBTermsList(); RestoreDBTermsList();
RestoreExpandList(); RestoreExpandList();
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
@ -232,27 +154,14 @@
#ifdef DEBUG #ifdef DEBUG
#endif #endif
RestoreUdiControlBlocks(); RestoreUdiControlBlocks();
RestoreIntKeys(); RestoreIntKeys();
RestoreIntLUKeys(); RestoreIntLUKeys();
RestoreIntBBKeys(); RestoreIntBBKeys();
RestoreDBErasedMarker(); RestoreDBErasedMarker();
RestoreLogDBErasedMarker(); RestoreLogDBErasedMarker();
@ -268,36 +177,21 @@
#endif #endif
#ifdef COROUTINING #ifdef COROUTINING
#endif #endif
OpList = OpListAdjust(OpList); OpList = OpListAdjust(OpList);
RestoreForeignCode(); RestoreForeignCode();
RestoreYapRecords(); RestoreYapRecords();
RestoreSWIAtoms(); RestoreSWIAtoms();
RestoreEmptyWakeups(); RestoreEmptyWakeups();
RestoreBlobTypes(); RestoreBlobTypes();
RestoreBlobs(); RestoreBlobs();
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
REINIT_LOCK(Blobs_Lock); REINIT_LOCK(Blobs_Lock);
#endif #endif