more cleanups
This commit is contained in:
parent
45f91c9d42
commit
9eb07a8c8a
10
C/atoms.c
10
C/atoms.c
@ -30,6 +30,7 @@ static char SccsId[] = "%W% %G%";
|
|||||||
#include "YapHeap.h"
|
#include "YapHeap.h"
|
||||||
#include "eval.h"
|
#include "eval.h"
|
||||||
#include "yapio.h"
|
#include "yapio.h"
|
||||||
|
#include "pl-shared.h"
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
#include "tab.macros.h"
|
#include "tab.macros.h"
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
@ -656,8 +657,9 @@ p_atom_chars( USES_REGS1 )
|
|||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
LD_FROM_REGS
|
||||||
/* ISO Prolog Mode */
|
/* ISO Prolog Mode */
|
||||||
int has_atoms = yap_flags[STRICT_ISO_FLAG];
|
int has_atoms = truePrologFlag(PLFLAG_ISO);
|
||||||
int has_ints = FALSE;
|
int has_ints = FALSE;
|
||||||
|
|
||||||
while (t != TermNil) {
|
while (t != TermNil) {
|
||||||
@ -1308,7 +1310,8 @@ p_atom_length( USES_REGS1 )
|
|||||||
}
|
}
|
||||||
return Yap_unify(ARG2, MkIntegerTerm(len));
|
return Yap_unify(ARG2, MkIntegerTerm(len));
|
||||||
} else if (!IsAtomTerm(t1)) {
|
} else if (!IsAtomTerm(t1)) {
|
||||||
if (!yap_flags[STRICT_ISO_FLAG]) {
|
LD_FROM_REGS
|
||||||
|
if (!truePrologFlag(PLFLAG_ISO)) {
|
||||||
char *String;
|
char *String;
|
||||||
|
|
||||||
if (IsIntegerTerm(t1)) {
|
if (IsIntegerTerm(t1)) {
|
||||||
@ -1547,7 +1550,8 @@ p_number_chars( USES_REGS1 )
|
|||||||
s = String;
|
s = String;
|
||||||
{
|
{
|
||||||
/* ISO code */
|
/* ISO code */
|
||||||
int has_atoms = yap_flags[STRICT_ISO_FLAG];
|
LD_FROM_REGS
|
||||||
|
int has_atoms = truePrologFlag(PLFLAG_ISO);
|
||||||
int has_ints = FALSE;
|
int has_ints = FALSE;
|
||||||
|
|
||||||
while (t != TermNil) {
|
while (t != TermNil) {
|
||||||
|
9
C/init.c
9
C/init.c
@ -169,7 +169,8 @@ OpDec(int p, char *type, Atom a, Term m)
|
|||||||
WRITE_UNLOCK(ae->ARWLock);
|
WRITE_UNLOCK(ae->ARWLock);
|
||||||
}
|
}
|
||||||
if (i <= 3) {
|
if (i <= 3) {
|
||||||
if (yap_flags[STRICT_ISO_FLAG] &&
|
GET_LD
|
||||||
|
if (truePrologFlag(PLFLAG_ISO) &&
|
||||||
info->Posfix != 0) /* there is a posfix operator */ {
|
info->Posfix != 0) /* there is a posfix operator */ {
|
||||||
/* ISO dictates */
|
/* ISO dictates */
|
||||||
WRITE_UNLOCK(info->OpRWLock);
|
WRITE_UNLOCK(info->OpRWLock);
|
||||||
@ -178,7 +179,8 @@ OpDec(int p, char *type, Atom a, Term m)
|
|||||||
}
|
}
|
||||||
info->Infix = p;
|
info->Infix = p;
|
||||||
} else if (i <= 5) {
|
} else if (i <= 5) {
|
||||||
if (yap_flags[STRICT_ISO_FLAG] &&
|
GET_LD
|
||||||
|
if (truePrologFlag(PLFLAG_ISO) &&
|
||||||
info->Infix != 0) /* there is an infix operator */ {
|
info->Infix != 0) /* there is an infix operator */ {
|
||||||
/* ISO dictates */
|
/* ISO dictates */
|
||||||
WRITE_UNLOCK(info->OpRWLock);
|
WRITE_UNLOCK(info->OpRWLock);
|
||||||
@ -902,7 +904,6 @@ InitFlags(void)
|
|||||||
/* note that Yap_heap_regs must be set first */
|
/* note that Yap_heap_regs must be set first */
|
||||||
|
|
||||||
yap_flags[LANGUAGE_MODE_FLAG] = 0;
|
yap_flags[LANGUAGE_MODE_FLAG] = 0;
|
||||||
yap_flags[STRICT_ISO_FLAG] = FALSE;
|
|
||||||
yap_flags[SOURCE_MODE_FLAG] = FALSE;
|
yap_flags[SOURCE_MODE_FLAG] = FALSE;
|
||||||
yap_flags[WRITE_QUOTED_STRING_FLAG] = FALSE;
|
yap_flags[WRITE_QUOTED_STRING_FLAG] = FALSE;
|
||||||
/* we do not garantee safe assert in parallel mode */
|
/* we do not garantee safe assert in parallel mode */
|
||||||
@ -995,8 +996,6 @@ InitLogDBErasedMarker(void)
|
|||||||
INIT_CLREF_COUNT(Yap_heap_regs->logdb_erased_marker);
|
INIT_CLREF_COUNT(Yap_heap_regs->logdb_erased_marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SWIAtomToAtom(X) SWI_Atoms[(X)>>1]
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
InitSWIAtoms(void)
|
InitSWIAtoms(void)
|
||||||
{
|
{
|
||||||
|
29
C/pl-yap.c
29
C/pl-yap.c
@ -1034,6 +1034,28 @@ PL_dispatch(int fd, int wait)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* SWI: int PL_get_arg(int index, term_t t, term_t a)
|
||||||
|
YAP: YAP_Term YAP_ArgOfTerm(int argno, YAP_Term t)*/
|
||||||
|
X_API int _PL_get_arg__LD(int index, term_t ts, term_t a ARG_LD)
|
||||||
|
{
|
||||||
|
REGS_FROM_LD
|
||||||
|
YAP_Term t = Yap_GetFromSlot(ts PASS_REGS);
|
||||||
|
if ( !YAP_IsApplTerm(t) ) {
|
||||||
|
if (YAP_IsPairTerm(t)) {
|
||||||
|
if (index == 1){
|
||||||
|
Yap_PutInSlot(a,HeadOfTerm(t) PASS_REGS);
|
||||||
|
return 1;
|
||||||
|
} else if (index == 2) {
|
||||||
|
Yap_PutInSlot(a,TailOfTerm(t) PASS_REGS);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Yap_PutInSlot(a,ArgOfTerm(index, t) PASS_REGS);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* SWI: int PL_get_atom(term_t t, YAP_Atom *a)
|
/* SWI: int PL_get_atom(term_t t, YAP_Atom *a)
|
||||||
YAP: YAP_Atom YAP_AtomOfTerm(Term) */
|
YAP: YAP_Atom YAP_AtomOfTerm(Term) */
|
||||||
int PL_get_atom__LD(term_t ts, atom_t *a ARG_LD)
|
int PL_get_atom__LD(term_t ts, atom_t *a ARG_LD)
|
||||||
@ -1046,6 +1068,13 @@ int PL_get_atom__LD(term_t ts, atom_t *a ARG_LD)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
X_API int PL_put_atom__LD(term_t t, atom_t a ARG_LD)
|
||||||
|
{
|
||||||
|
REGS_FROM_LD
|
||||||
|
Yap_PutInSlot(t,MkAtomTerm(SWIAtomToAtom(a)) PASS_REGS);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void PL_put_term__LD(term_t d, term_t s ARG_LD)
|
void PL_put_term__LD(term_t d, term_t s ARG_LD)
|
||||||
{
|
{
|
||||||
REGS_FROM_LD
|
REGS_FROM_LD
|
||||||
|
16
C/scanner.c
16
C/scanner.c
@ -232,12 +232,11 @@ extern double atof(const char *);
|
|||||||
static Term
|
static Term
|
||||||
float_send(char *s, int sign)
|
float_send(char *s, int sign)
|
||||||
{
|
{
|
||||||
CACHE_REGS
|
GET_LD
|
||||||
Float f = (Float)atof(s);
|
Float f = (Float)atof(s);
|
||||||
#if HAVE_FINITE
|
#if HAVE_FINITE
|
||||||
if (yap_flags[LANGUAGE_MODE_FLAG] == 1) { /* iso */
|
if (truePrologFlag(PLFLAG_ISO)) { /* iso */
|
||||||
if (!finite(f)) {
|
if (!finite(f)) {
|
||||||
CACHE_REGS
|
|
||||||
LOCAL_ErrorMessage = "Float overflow while scanning";
|
LOCAL_ErrorMessage = "Float overflow while scanning";
|
||||||
return(MkEvalFl(0.0));
|
return(MkEvalFl(0.0));
|
||||||
}
|
}
|
||||||
@ -279,6 +278,7 @@ send_error_message(char s[])
|
|||||||
static wchar_t
|
static wchar_t
|
||||||
read_quoted_char(int *scan_nextp, IOSTREAM *inp_stream)
|
read_quoted_char(int *scan_nextp, IOSTREAM *inp_stream)
|
||||||
{
|
{
|
||||||
|
GET_LD
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
/* escape sequence */
|
/* escape sequence */
|
||||||
@ -359,7 +359,7 @@ read_quoted_char(int *scan_nextp, IOSTREAM *inp_stream)
|
|||||||
case '`':
|
case '`':
|
||||||
return '`';
|
return '`';
|
||||||
case '^':
|
case '^':
|
||||||
if (FALSE /*yap_flags[CHARACTER_ESCAPE_FLAG] == ISO_CHARACTER_ESCAPES */) {
|
if (truePrologFlag(PLFLAG_ISO)) {
|
||||||
return send_error_message("invalid escape sequence");
|
return send_error_message("invalid escape sequence");
|
||||||
} else {
|
} else {
|
||||||
ch = getchrq(inp_stream);
|
ch = getchrq(inp_stream);
|
||||||
@ -458,7 +458,7 @@ num_send_error_message(char s[])
|
|||||||
static Term
|
static Term
|
||||||
get_num(int *chp, int *chbuffp, IOSTREAM *inp_stream, char *s, UInt max_size, int sign)
|
get_num(int *chp, int *chbuffp, IOSTREAM *inp_stream, char *s, UInt max_size, int sign)
|
||||||
{
|
{
|
||||||
CACHE_REGS
|
GET_LD
|
||||||
char *sp = s;
|
char *sp = s;
|
||||||
int ch = *chp;
|
int ch = *chp;
|
||||||
Int val = 0L, base = ch - '0';
|
Int val = 0L, base = ch - '0';
|
||||||
@ -574,7 +574,7 @@ get_num(int *chp, int *chbuffp, IOSTREAM *inp_stream, char *s, UInt max_size, in
|
|||||||
ch = getchr(inp_stream);
|
ch = getchr(inp_stream);
|
||||||
}
|
}
|
||||||
if (might_be_float && ( ch == '.' || ch == 'e' || ch == 'E')) {
|
if (might_be_float && ( ch == '.' || ch == 'e' || ch == 'E')) {
|
||||||
if (yap_flags[STRICT_ISO_FLAG] && (ch == 'e' || ch == 'E')) {
|
if (truePrologFlag(PLFLAG_ISO) && (ch == 'e' || ch == 'E')) {
|
||||||
return num_send_error_message("Float format not allowed in ISO mode");
|
return num_send_error_message("Float format not allowed in ISO mode");
|
||||||
}
|
}
|
||||||
if (ch == '.') {
|
if (ch == '.') {
|
||||||
@ -796,7 +796,7 @@ ch_to_wide(char *base, char *charp)
|
|||||||
TokEntry *
|
TokEntry *
|
||||||
Yap_tokenizer(IOSTREAM *inp_stream, int store_comments, Term *tposp)
|
Yap_tokenizer(IOSTREAM *inp_stream, int store_comments, Term *tposp)
|
||||||
{
|
{
|
||||||
CACHE_REGS
|
GET_LD
|
||||||
TokEntry *t, *l, *p;
|
TokEntry *t, *l, *p;
|
||||||
enum TokenKinds kind;
|
enum TokenKinds kind;
|
||||||
int solo_flag = TRUE;
|
int solo_flag = TRUE;
|
||||||
@ -1076,7 +1076,7 @@ Yap_tokenizer(IOSTREAM *inp_stream, int store_comments, Term *tposp)
|
|||||||
LOCAL_ErrorMessage = "Heap Overflow While Scanning: please increase code space (-h)";
|
LOCAL_ErrorMessage = "Heap Overflow While Scanning: please increase code space (-h)";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (ch == 10 && FALSE /*yap_flags[CHARACTER_ESCAPE_FLAG] == ISO_CHARACTER_ESCAPES */) {
|
if (ch == 10 && truePrologFlag(PLFLAG_ISO)) {
|
||||||
/* in ISO a new line terminates a string */
|
/* in ISO a new line terminates a string */
|
||||||
LOCAL_ErrorMessage = "layout character \n inside quotes";
|
LOCAL_ErrorMessage = "layout character \n inside quotes";
|
||||||
break;
|
break;
|
||||||
|
28
C/stdpreds.c
28
C/stdpreds.c
@ -273,6 +273,7 @@ static char SccsId[] = "%W% %G%";
|
|||||||
#include "YapHeap.h"
|
#include "YapHeap.h"
|
||||||
#include "eval.h"
|
#include "eval.h"
|
||||||
#include "yapio.h"
|
#include "yapio.h"
|
||||||
|
#include "pl-shared.h"
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
#include "tab.macros.h"
|
#include "tab.macros.h"
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
@ -330,6 +331,7 @@ static Int p_runtime( USES_REGS1 );
|
|||||||
static Int p_walltime( USES_REGS1 );
|
static Int p_walltime( USES_REGS1 );
|
||||||
static Int p_access_yap_flags( USES_REGS1 );
|
static Int p_access_yap_flags( USES_REGS1 );
|
||||||
static Int p_set_yap_flags( USES_REGS1 );
|
static Int p_set_yap_flags( USES_REGS1 );
|
||||||
|
static Int p_break( USES_REGS1 );
|
||||||
|
|
||||||
#ifdef BEAM
|
#ifdef BEAM
|
||||||
Int use_eam( USES_REGS1 );
|
Int use_eam( USES_REGS1 );
|
||||||
@ -1659,11 +1661,6 @@ p_set_yap_flags( USES_REGS1 )
|
|||||||
}
|
}
|
||||||
yap_flags[LANGUAGE_MODE_FLAG] = value;
|
yap_flags[LANGUAGE_MODE_FLAG] = value;
|
||||||
break;
|
break;
|
||||||
case STRICT_ISO_FLAG:
|
|
||||||
if (value != 0 && value != 1)
|
|
||||||
return(FALSE);
|
|
||||||
yap_flags[STRICT_ISO_FLAG] = value;
|
|
||||||
break;
|
|
||||||
case SOURCE_MODE_FLAG:
|
case SOURCE_MODE_FLAG:
|
||||||
if (value != 0 && value != 1)
|
if (value != 0 && value != 1)
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
@ -1837,13 +1834,17 @@ p_loop( USES_REGS1 ) {
|
|||||||
|
|
||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_max_tagged_integer( USES_REGS1 ) {
|
p_break( USES_REGS1 ) {
|
||||||
return Yap_unify(ARG1, MkIntTerm(MAX_ABS_INT-((CELL)1)));
|
Atom at = AtomOfTerm(Deref( ARG1 ));
|
||||||
}
|
if (at == AtomTrue) {
|
||||||
|
LOCAL_PL_local_data_p->break_level++;
|
||||||
static Int
|
return TRUE;
|
||||||
p_min_tagged_integer( USES_REGS1 ) {
|
}
|
||||||
return Yap_unify(ARG1, MkIntTerm(-MAX_ABS_INT));
|
if (at == AtomFalse) {
|
||||||
|
LOCAL_PL_local_data_p->break_level--;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1922,8 +1923,7 @@ Yap_InitCPreds(void)
|
|||||||
Yap_InitCPred("$set_yap_flags", 2, p_set_yap_flags, SafePredFlag|SyncPredFlag);
|
Yap_InitCPred("$set_yap_flags", 2, p_set_yap_flags, SafePredFlag|SyncPredFlag);
|
||||||
Yap_InitCPred("$p_system_mode", 1, p_system_mode, SafePredFlag|SyncPredFlag);
|
Yap_InitCPred("$p_system_mode", 1, p_system_mode, SafePredFlag|SyncPredFlag);
|
||||||
Yap_InitCPred("abort", 0, p_abort, SyncPredFlag);
|
Yap_InitCPred("abort", 0, p_abort, SyncPredFlag);
|
||||||
Yap_InitCPred("$max_tagged_integer", 1, p_max_tagged_integer, SafePredFlag);
|
Yap_InitCPred("$break", 1, p_break, SafePredFlag);
|
||||||
Yap_InitCPred("$min_tagged_integer", 1, p_min_tagged_integer, SafePredFlag);
|
|
||||||
#ifdef BEAM
|
#ifdef BEAM
|
||||||
Yap_InitCPred("@", 0, eager_split, SafePredFlag);
|
Yap_InitCPred("@", 0, eager_split, SafePredFlag);
|
||||||
Yap_InitCPred(":", 0, force_wait, SafePredFlag);
|
Yap_InitCPred(":", 0, force_wait, SafePredFlag);
|
||||||
|
1
H/Yap.h
1
H/Yap.h
@ -343,7 +343,6 @@ typedef pthread_rwlock_t rwlock_t;
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
LANGUAGE_MODE_FLAG = 8,
|
LANGUAGE_MODE_FLAG = 8,
|
||||||
STRICT_ISO_FLAG = 9,
|
|
||||||
SOURCE_MODE_FLAG = 11,
|
SOURCE_MODE_FLAG = 11,
|
||||||
WRITE_QUOTED_STRING_FLAG = 13,
|
WRITE_QUOTED_STRING_FLAG = 13,
|
||||||
ALLOW_ASSERTING_STATIC_FLAG = 14,
|
ALLOW_ASSERTING_STATIC_FLAG = 14,
|
||||||
|
3
H/eval.h
3
H/eval.h
@ -42,6 +42,9 @@
|
|||||||
#define Int_MIN (-Int_MAX-(CELL)1)
|
#define Int_MIN (-Int_MAX-(CELL)1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define PLMAXTAGGEDINT (MAX_ABS_INT-((CELL)1))
|
||||||
|
#define PLMINTAGGEDINT (-MAX_ABS_INT)
|
||||||
|
|
||||||
#define PLMAXINT Int_MAX
|
#define PLMAXINT Int_MAX
|
||||||
#define PLMININT Int_MIN
|
#define PLMININT Int_MIN
|
||||||
|
|
||||||
|
@ -111,6 +111,8 @@ typedef void *pl_function_t;
|
|||||||
#define IGNORE_LD
|
#define IGNORE_LD
|
||||||
|
|
||||||
#define REGS_FROM_LD
|
#define REGS_FROM_LD
|
||||||
|
#define LD_FROM_CACHE
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define LOCAL_LD (__PL_ld)
|
#define LOCAL_LD (__PL_ld)
|
||||||
@ -126,6 +128,7 @@ typedef void *pl_function_t;
|
|||||||
#define IGNORE_LD (void)__PL_ld;
|
#define IGNORE_LD (void)__PL_ld;
|
||||||
|
|
||||||
#define REGS_FROM_LD struct regstore_t *regcache = __PL_ld->reg_cache;
|
#define REGS_FROM_LD struct regstore_t *regcache = __PL_ld->reg_cache;
|
||||||
|
#define LD_FROM_REGS struct PL_local_data *__PL_ld = LOCAL_PL_local_data_p;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -173,6 +173,7 @@ typedef enum
|
|||||||
#endif
|
#endif
|
||||||
#if __YAP_PROLOG__
|
#if __YAP_PROLOG__
|
||||||
#include "pl-yap.h"
|
#include "pl-yap.h"
|
||||||
|
|
||||||
#if _WIN32
|
#if _WIN32
|
||||||
#define __WINDOWS__ 1
|
#define __WINDOWS__ 1
|
||||||
#else
|
#else
|
||||||
@ -533,8 +534,6 @@ extern int _PL_unify_atomic(term_t t, PL_atomic_t a);
|
|||||||
extern int _PL_unify_string(term_t t, word w);
|
extern int _PL_unify_string(term_t t, word w);
|
||||||
|
|
||||||
|
|
||||||
#define _PL_get_arg(X,Y,Z) PL_get_arg(X,Y,Z)
|
|
||||||
|
|
||||||
extern IOSTREAM ** /* provide access to Suser_input, */
|
extern IOSTREAM ** /* provide access to Suser_input, */
|
||||||
_PL_streams(void); /* Suser_output and Suser_error */
|
_PL_streams(void); /* Suser_output and Suser_error */
|
||||||
|
|
||||||
@ -781,12 +780,14 @@ COMMON(int) f_is_prolog_atom_start(wint_t c);
|
|||||||
COMMON(int) f_is_prolog_identifier_continue(wint_t c);
|
COMMON(int) f_is_prolog_identifier_continue(wint_t c);
|
||||||
COMMON(int) f_is_prolog_symbol(wint_t c);
|
COMMON(int) f_is_prolog_symbol(wint_t c);
|
||||||
|
|
||||||
|
COMMON(int) _PL_get_arg__LD(int index, term_t t, term_t a ARG_LD);
|
||||||
|
|
||||||
COMMON(int) PL_get_atom__LD(term_t t1, atom_t *a ARG_LD);
|
COMMON(int) PL_get_atom__LD(term_t t1, atom_t *a ARG_LD);
|
||||||
COMMON(int) PL_get_atom_ex__LD(term_t t, atom_t *a ARG_LD);
|
COMMON(int) PL_get_atom_ex__LD(term_t t, atom_t *a ARG_LD);
|
||||||
COMMON(int) PL_get_text__LD(term_t l, PL_chars_t *text, int flags ARG_LD);
|
COMMON(int) PL_get_text__LD(term_t l, PL_chars_t *text, int flags ARG_LD);
|
||||||
COMMON(int) PL_is_variable__LD(term_t t ARG_LD);
|
COMMON(int) PL_is_variable__LD(term_t t ARG_LD);
|
||||||
COMMON(term_t) PL_new_term_ref__LD(ARG1_LD);
|
COMMON(term_t) PL_new_term_ref__LD(ARG1_LD);
|
||||||
|
COMMON(int) PL_put_atom__LD(term_t t, atom_t a ARG_LD);
|
||||||
COMMON(void) PL_put_term__LD(term_t t1, term_t t2 ARG_LD);
|
COMMON(void) PL_put_term__LD(term_t t1, term_t t2 ARG_LD);
|
||||||
COMMON(int) PL_unify__LD(term_t t1, term_t t2 ARG_LD);
|
COMMON(int) PL_unify__LD(term_t t1, term_t t2 ARG_LD);
|
||||||
COMMON(int) PL_unify_atom__LD(term_t t, atom_t a ARG_LD);
|
COMMON(int) PL_unify_atom__LD(term_t t, atom_t a ARG_LD);
|
||||||
|
@ -147,5 +147,8 @@ getUnknownModule(module_t m);
|
|||||||
|
|
||||||
COMMON(int) debugmode(debug_type new, debug_type *old);
|
COMMON(int) debugmode(debug_type new, debug_type *old);
|
||||||
COMMON(int) tracemode(debug_type new, debug_type *old);
|
COMMON(int) tracemode(debug_type new, debug_type *old);
|
||||||
|
COMMON(void) Yap_setCurrentSourceLocation(IOSTREAM **s);
|
||||||
|
|
||||||
|
#define SWIAtomToAtom(X) SWI_Atoms[(X)>>1]
|
||||||
|
|
||||||
#endif /* PL_SHARED_INCLUDE */
|
#endif /* PL_SHARED_INCLUDE */
|
||||||
|
@ -193,10 +193,13 @@ charCode(Term w)
|
|||||||
#define PL_get_text(l, t, f) PL_get_text__LD(l, t, f PASS_LD)
|
#define PL_get_text(l, t, f) PL_get_text__LD(l, t, f PASS_LD)
|
||||||
#define PL_is_variable(t) PL_is_variable__LD(t PASS_LD)
|
#define PL_is_variable(t) PL_is_variable__LD(t PASS_LD)
|
||||||
#define PL_new_term_ref() PL_new_term_ref__LD(PASS_LD1)
|
#define PL_new_term_ref() PL_new_term_ref__LD(PASS_LD1)
|
||||||
|
#define PL_put_atom(t, a) PL_put_atom__LD(t, a PASS_LD)
|
||||||
#define PL_put_term(t1, t2) PL_put_term__LD(t1, t2 PASS_LD)
|
#define PL_put_term(t1, t2) PL_put_term__LD(t1, t2 PASS_LD)
|
||||||
#define PL_unify_atom(t, a) PL_unify_atom__LD(t, a PASS_LD)
|
#define PL_unify_atom(t, a) PL_unify_atom__LD(t, a PASS_LD)
|
||||||
#define PL_unify_integer(t, i) PL_unify_integer__LD(t, i PASS_LD)
|
#define PL_unify_integer(t, i) PL_unify_integer__LD(t, i PASS_LD)
|
||||||
|
|
||||||
|
#define _PL_get_arg(i, t, a) _PL_get_arg__LD(i, t, a PASS_LD);
|
||||||
|
|
||||||
#endif /* __YAP_PROLOG__ */
|
#endif /* __YAP_PROLOG__ */
|
||||||
|
|
||||||
unsigned int getUnknownModule(module_t m);
|
unsigned int getUnknownModule(module_t m);
|
||||||
|
@ -207,28 +207,6 @@ X_API int PL_get_arg(int index, term_t ts, term_t a)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SWI: int PL_get_arg(int index, term_t t, term_t a)
|
|
||||||
YAP: YAP_Term YAP_ArgOfTerm(int argno, YAP_Term t)*/
|
|
||||||
X_API int _PL_get_arg(int index, term_t ts, term_t a)
|
|
||||||
{
|
|
||||||
CACHE_REGS
|
|
||||||
YAP_Term t = Yap_GetFromSlot(ts PASS_REGS);
|
|
||||||
if ( !YAP_IsApplTerm(t) ) {
|
|
||||||
if (YAP_IsPairTerm(t)) {
|
|
||||||
if (index == 1){
|
|
||||||
Yap_PutInSlot(a,HeadOfTerm(t) PASS_REGS);
|
|
||||||
return 1;
|
|
||||||
} else if (index == 2) {
|
|
||||||
Yap_PutInSlot(a,TailOfTerm(t) PASS_REGS);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
Yap_PutInSlot(a,ArgOfTerm(index, t) PASS_REGS);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SWI: int PL_get_atom(term_t t, YAP_Atom *a)
|
/* SWI: int PL_get_atom(term_t t, YAP_Atom *a)
|
||||||
YAP: YAP_Atom YAP_AtomOfTerm(Term) */
|
YAP: YAP_Atom YAP_AtomOfTerm(Term) */
|
||||||
X_API int PL_get_atom(term_t ts, atom_t *a)
|
X_API int PL_get_atom(term_t ts, atom_t *a)
|
||||||
|
@ -1174,13 +1174,8 @@ initPrologFlags(void)
|
|||||||
setPrologFlag("max_integer", FT_INT64|FF_READONLY, PLMAXINT);
|
setPrologFlag("max_integer", FT_INT64|FF_READONLY, PLMAXINT);
|
||||||
setPrologFlag("min_integer", FT_INT64|FF_READONLY, PLMININT);
|
setPrologFlag("min_integer", FT_INT64|FF_READONLY, PLMININT);
|
||||||
#endif
|
#endif
|
||||||
#ifndef __YAP_PROLOG__
|
|
||||||
setPrologFlag("max_tagged_integer", FT_INTEGER|FF_READONLY, PLMAXTAGGEDINT);
|
setPrologFlag("max_tagged_integer", FT_INTEGER|FF_READONLY, PLMAXTAGGEDINT);
|
||||||
setPrologFlag("min_tagged_integer", FT_INTEGER|FF_READONLY, PLMINTAGGEDINT);
|
setPrologFlag("min_tagged_integer", FT_INTEGER|FF_READONLY, PLMINTAGGEDINT);
|
||||||
#else
|
|
||||||
setPrologFlag("max_tagged_integer", FT_INTEGER|FF_READONLY, Int_MAX);
|
|
||||||
setPrologFlag("min_tagged_integer", FT_INTEGER|FF_READONLY, Int_MIN);
|
|
||||||
#endif
|
|
||||||
#ifdef O_GMP
|
#ifdef O_GMP
|
||||||
setPrologFlag("bounded", FT_BOOL|FF_READONLY, FALSE, 0);
|
setPrologFlag("bounded", FT_BOOL|FF_READONLY, FALSE, 0);
|
||||||
#ifdef __GNU_MP__
|
#ifdef __GNU_MP__
|
||||||
|
14
pl/boot.yap
14
pl/boot.yap
@ -93,7 +93,7 @@ true :- true.
|
|||||||
|
|
||||||
'$init_globals' :-
|
'$init_globals' :-
|
||||||
'$init_consult',
|
'$init_consult',
|
||||||
nb_setval('$break',0),
|
% '$swi_set_prolog_flag'(break_level, 0),
|
||||||
% '$set_read_error_handler'(error), let the user do that
|
% '$set_read_error_handler'(error), let the user do that
|
||||||
nb_setval('$system_mode',off),
|
nb_setval('$system_mode',off),
|
||||||
nb_setval('$chr_toplevel_show_store',false).
|
nb_setval('$chr_toplevel_show_store',false).
|
||||||
@ -189,7 +189,7 @@ true :- true.
|
|||||||
'$clean_up_dead_clauses',
|
'$clean_up_dead_clauses',
|
||||||
fail.
|
fail.
|
||||||
'$enter_top_level' :-
|
'$enter_top_level' :-
|
||||||
'$nb_getval'('$break',BreakLevel,fail),
|
'$swi_current_prolog_flag'(break_level, BreakLevel),
|
||||||
'$swi_current_prolog_flag'(debug, DBON),
|
'$swi_current_prolog_flag'(debug, DBON),
|
||||||
(
|
(
|
||||||
'$nb_getval'('$trace', on, fail)
|
'$nb_getval'('$trace', on, fail)
|
||||||
@ -208,8 +208,8 @@ true :- true.
|
|||||||
get_value('$top_level_goal',GA), GA \= [], !,
|
get_value('$top_level_goal',GA), GA \= [], !,
|
||||||
set_value('$top_level_goal',[]),
|
set_value('$top_level_goal',[]),
|
||||||
'$run_atom_goal'(GA),
|
'$run_atom_goal'(GA),
|
||||||
'$nb_getval'('$break',BreakLevel,fail),
|
'$swi_current_prolog_flag'(break_level, BreakLevel),
|
||||||
( BreakLevel \= 0 -> true ; '$pred_exists'(halt(_), user) -> halt(0) ; '$halt'(0) ).
|
( Breaklevel \= 0 -> true ; '$pred_exists'(halt(_), user) -> halt(0) ; '$halt'(0) ).
|
||||||
'$enter_top_level' :-
|
'$enter_top_level' :-
|
||||||
'$run_toplevel_hooks',
|
'$run_toplevel_hooks',
|
||||||
prompt1(' ?- '),
|
prompt1(' ?- '),
|
||||||
@ -219,7 +219,7 @@ true :- true.
|
|||||||
nb_setval('$debug_run',off),
|
nb_setval('$debug_run',off),
|
||||||
nb_setval('$debug_jump',off),
|
nb_setval('$debug_jump',off),
|
||||||
'$command'(Command,Varnames,_Pos,top),
|
'$command'(Command,Varnames,_Pos,top),
|
||||||
'$nb_getval'('$break',BreakLevel,fail),
|
'$swi_current_prolog_flag'(break_level, BreakLevel),
|
||||||
( BreakLevel \= 0 -> true ; '$pred_exists'(halt(_), user) -> halt(0) ; '$halt'(0) ).
|
( BreakLevel \= 0 -> true ; '$pred_exists'(halt(_), user) -> halt(0) ; '$halt'(0) ).
|
||||||
|
|
||||||
|
|
||||||
@ -559,7 +559,7 @@ true :- true.
|
|||||||
flush_output,
|
flush_output,
|
||||||
fail.
|
fail.
|
||||||
'$present_answer'((?-), Answ) :-
|
'$present_answer'((?-), Answ) :-
|
||||||
'$nb_getval'('$break',BL,fail),
|
'$swi_current_prolog_flag'(break_level, BL ),
|
||||||
( BL \= 0 -> format(user_error, '[~p] ',[BL]) ;
|
( BL \= 0 -> format(user_error, '[~p] ',[BL]) ;
|
||||||
true ),
|
true ),
|
||||||
( recorded('$print_options','$toplevel'(Opts),_) ->
|
( recorded('$print_options','$toplevel'(Opts),_) ->
|
||||||
@ -1221,7 +1221,7 @@ catch_ball(Ball, V) :-
|
|||||||
catch_ball(C, C).
|
catch_ball(C, C).
|
||||||
|
|
||||||
'$run_toplevel_hooks' :-
|
'$run_toplevel_hooks' :-
|
||||||
'$nb_getval'('$break', 0, fail),
|
'$swi_current_prolog_flag'(break_level, 0 ),
|
||||||
recorded('$toplevel_hooks',H,_),
|
recorded('$toplevel_hooks',H,_),
|
||||||
H \= fail, !,
|
H \= fail, !,
|
||||||
( call(user:H1) -> true ; true).
|
( call(user:H1) -> true ; true).
|
||||||
|
@ -273,12 +273,12 @@ break :-
|
|||||||
nb_getval('$debug_run',Run),
|
nb_getval('$debug_run',Run),
|
||||||
'$swi_current_prolog_flag'(debug, Debug),
|
'$swi_current_prolog_flag'(debug, Debug),
|
||||||
'$swi_set_prolog_flag'(debug, false),
|
'$swi_set_prolog_flag'(debug, false),
|
||||||
nb_getval('$break',BL), NBL is BL+1,
|
'$break'( true ),
|
||||||
nb_getval('$spy_gn',SPY_GN),
|
nb_getval('$spy_gn',SPY_GN),
|
||||||
b_getval('$spy_glist',GList),
|
b_getval('$spy_glist',GList),
|
||||||
b_setval('$spy_glist',[]),
|
b_setval('$spy_glist',[]),
|
||||||
nb_setval('$break',NBL),
|
|
||||||
current_output(OutStream), current_input(InpStream),
|
current_output(OutStream), current_input(InpStream),
|
||||||
|
'$swi_current_prolog_flag'(break_level, NBL ),
|
||||||
format(user_error, '% Break (level ~w)~n', [NBL]),
|
format(user_error, '% Break (level ~w)~n', [NBL]),
|
||||||
'$do_live',
|
'$do_live',
|
||||||
!,
|
!,
|
||||||
@ -291,7 +291,7 @@ break :-
|
|||||||
nb_setval('$debug_jump',Jump),
|
nb_setval('$debug_jump',Jump),
|
||||||
nb_setval('$debug_run',Run),
|
nb_setval('$debug_run',Run),
|
||||||
nb_setval('$trace',Trace),
|
nb_setval('$trace',Trace),
|
||||||
nb_setval('$break',BL),
|
'$break'( false ),
|
||||||
nb_setval('$system_mode',SystemMode).
|
nb_setval('$system_mode',SystemMode).
|
||||||
|
|
||||||
|
|
||||||
|
@ -506,12 +506,10 @@ yap_flag(max_threads,X) :-
|
|||||||
'$do_error'(domain_error(flag_value,max_threads+X),yap_flag(max_threads,X)).
|
'$do_error'(domain_error(flag_value,max_threads+X),yap_flag(max_threads,X)).
|
||||||
|
|
||||||
'$yap_system_flag'(agc_margin).
|
'$yap_system_flag'(agc_margin).
|
||||||
'$yap_system_flag'(answer_format).
|
|
||||||
'$yap_system_flag'(chr_toplevel_show_store).
|
'$yap_system_flag'(chr_toplevel_show_store).
|
||||||
'$yap_system_flag'(debugger_print_options).
|
'$yap_system_flag'(debugger_print_options).
|
||||||
'$yap_system_flag'(discontiguous_warnings).
|
'$yap_system_flag'(discontiguous_warnings).
|
||||||
'$yap_system_flag'(dollar_as_lower_case).
|
'$yap_system_flag'(dollar_as_lower_case).
|
||||||
'$yap_system_flag'(double_quotes).
|
|
||||||
% V = fast ;
|
% V = fast ;
|
||||||
% '$yap_system_flag'(file_name_variables).
|
% '$yap_system_flag'(file_name_variables).
|
||||||
% '$yap_system_flag'(fileerrors ).
|
% '$yap_system_flag'(fileerrors ).
|
||||||
|
Reference in New Issue
Block a user