fix fflush
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@125 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
3e6060a84f
commit
eade18026c
19
C/iopreds.c
19
C/iopreds.c
@ -313,7 +313,15 @@ YP_putc(int ch, int sno)
|
|||||||
int
|
int
|
||||||
YP_fflush(int sno)
|
YP_fflush(int sno)
|
||||||
{
|
{
|
||||||
if (Stream[sno].status & (Null_Stream_f|InMemory_Stream_f|Socket_Stream_f|Pipe_Stream_f))
|
if ( (Stream[sno].status & Output_Stream_f) &&
|
||||||
|
! (Stream[sno].status &
|
||||||
|
(Null_Stream_f|
|
||||||
|
InMemory_Stream_f|
|
||||||
|
Socket_Stream_f|
|
||||||
|
Pipe_Stream_f|
|
||||||
|
Free_Stream_f)) )
|
||||||
|
return(fflush(Stream[sno].u.file.file));
|
||||||
|
else
|
||||||
return(0);
|
return(0);
|
||||||
return(fflush(Stream[sno].u.file.file));
|
return(fflush(Stream[sno].u.file.file));
|
||||||
}
|
}
|
||||||
@ -2541,7 +2549,7 @@ p_write (void)
|
|||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_write2 (void)
|
p_write2 (void)
|
||||||
{ /* '$write'(+Flags,?Term) */
|
{ /* '$write'(+Stream,+Flags,?Term) */
|
||||||
int old_output_stream = c_output_stream;
|
int old_output_stream = c_output_stream;
|
||||||
c_output_stream = CheckStream (ARG1, Output_Stream_f, "write/2");
|
c_output_stream = CheckStream (ARG1, Output_Stream_f, "write/2");
|
||||||
if (c_output_stream == -1) {
|
if (c_output_stream == -1) {
|
||||||
@ -4338,7 +4346,14 @@ p_flush (void)
|
|||||||
static Int
|
static Int
|
||||||
p_flush_all_streams (void)
|
p_flush_all_streams (void)
|
||||||
{ /* $flush_all_streams */
|
{ /* $flush_all_streams */
|
||||||
|
#if BROKEN_FFLUSH_NULL
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < MaxStreams; ++i)
|
||||||
|
YP_fflush (i);
|
||||||
|
#else
|
||||||
fflush (NULL);
|
fflush (NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
33
C/save.c
33
C/save.c
@ -1595,6 +1595,14 @@ RestoreClause(Clause *Cl)
|
|||||||
case _getwork:
|
case _getwork:
|
||||||
case _getwork_seq:
|
case _getwork_seq:
|
||||||
case _sync:
|
case _sync:
|
||||||
|
#endif
|
||||||
|
#ifdef TABLING
|
||||||
|
case _table_try_me_single:
|
||||||
|
case _table_try_me:
|
||||||
|
case _table_retry_me:
|
||||||
|
case _table_trust_me:
|
||||||
|
case _table_answer_resolution:
|
||||||
|
case _table_completion:
|
||||||
#endif
|
#endif
|
||||||
pc->u.ld.p = CodeAddrAdjust(pc->u.ld.p);
|
pc->u.ld.p = CodeAddrAdjust(pc->u.ld.p);
|
||||||
pc->u.ld.d = CodeAddrAdjust(pc->u.ld.d);
|
pc->u.ld.d = CodeAddrAdjust(pc->u.ld.d);
|
||||||
@ -1646,6 +1654,28 @@ RestoreClause(Clause *Cl)
|
|||||||
case _p_functor:
|
case _p_functor:
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
case _getwork_first_time:
|
case _getwork_first_time:
|
||||||
|
#endif
|
||||||
|
#ifdef TABLING
|
||||||
|
case _trie_do_var:
|
||||||
|
case _trie_trust_var:
|
||||||
|
case _trie_try_var:
|
||||||
|
case _trie_retry_var:
|
||||||
|
case _trie_do_val:
|
||||||
|
case _trie_trust_val:
|
||||||
|
case _trie_try_val:
|
||||||
|
case _trie_retry_val:
|
||||||
|
case _trie_do_atom:
|
||||||
|
case _trie_trust_atom:
|
||||||
|
case _trie_try_atom:
|
||||||
|
case _trie_retry_atom:
|
||||||
|
case _trie_do_list:
|
||||||
|
case _trie_trust_list:
|
||||||
|
case _trie_try_list:
|
||||||
|
case _trie_retry_list:
|
||||||
|
case _trie_do_struct:
|
||||||
|
case _trie_trust_struct:
|
||||||
|
case _trie_try_struct:
|
||||||
|
case _trie_retry_struct:
|
||||||
#endif
|
#endif
|
||||||
pc = NEXTOP(pc,e);
|
pc = NEXTOP(pc,e);
|
||||||
break;
|
break;
|
||||||
@ -1891,6 +1921,9 @@ RestoreClause(Clause *Cl)
|
|||||||
/* instructions type s */
|
/* instructions type s */
|
||||||
case _write_n_voids:
|
case _write_n_voids:
|
||||||
case _pop_n:
|
case _pop_n:
|
||||||
|
#ifdef TABLING
|
||||||
|
case _table_new_answer:
|
||||||
|
#endif
|
||||||
pc = NEXTOP(pc,s);
|
pc = NEXTOP(pc,s);
|
||||||
break;
|
break;
|
||||||
/* instructions type c */
|
/* instructions type c */
|
||||||
|
11
C/sysbits.c
11
C/sysbits.c
@ -1473,7 +1473,8 @@ int TrueFileName (char *source, char *result, int in_lib)
|
|||||||
|
|
||||||
#if __simplescalar__
|
#if __simplescalar__
|
||||||
/* does not implement getcwd */
|
/* does not implement getcwd */
|
||||||
strncpy(ares1,".",YAP_FILENAME_MAX);
|
char *yap_pwd = getenv("PWD");
|
||||||
|
strncpy(ares1,yap_pwd,YAP_FILENAME_MAX);
|
||||||
#elif HAVE_GETCWD
|
#elif HAVE_GETCWD
|
||||||
if (getcwd (ares1, YAP_FILENAME_MAX) == NULL)
|
if (getcwd (ares1, YAP_FILENAME_MAX) == NULL)
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
@ -1562,7 +1563,8 @@ p_getcwd(void)
|
|||||||
|
|
||||||
#if __simplescalar__
|
#if __simplescalar__
|
||||||
/* does not implement getcwd */
|
/* does not implement getcwd */
|
||||||
strncpy(FileNameBuf,".",YAP_FILENAME_MAX);
|
char *yap_pwd = getenv("PWD");
|
||||||
|
strncpy(FileNameBuf,yap_pwd,YAP_FILENAME_MAX);
|
||||||
#elif HAVE_GETCWD
|
#elif HAVE_GETCWD
|
||||||
if (getcwd (FileNameBuf, YAP_FILENAME_MAX) == NULL)
|
if (getcwd (FileNameBuf, YAP_FILENAME_MAX) == NULL)
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
@ -1752,6 +1754,11 @@ p_cd (void)
|
|||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
TrueFileName (FileNameBuf, FileNameBuf2, FALSE);
|
TrueFileName (FileNameBuf, FileNameBuf2, FALSE);
|
||||||
|
#if __simplescalar__
|
||||||
|
strncpy(FileNameBuf,"PWD=",YAP_FILENAME_MAX);
|
||||||
|
strncat(FileNameBuf,FileNameBuf2,YAP_FILENAME_MAX);
|
||||||
|
putenv(FileNameBuf);
|
||||||
|
#endif
|
||||||
return (!chdir (FileNameBuf2));
|
return (!chdir (FileNameBuf2));
|
||||||
#else
|
#else
|
||||||
#ifdef MACYAP
|
#ifdef MACYAP
|
||||||
|
@ -129,7 +129,7 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args)
|
|||||||
extern int gc_calls;
|
extern int gc_calls;
|
||||||
|
|
||||||
vsc_count++;
|
vsc_count++;
|
||||||
if (vsc_count < 2518) return;
|
/* if (vsc_count < 2518) return; */
|
||||||
/* if (vsc_count > 500000) exit(0); */
|
/* if (vsc_count > 500000) exit(0); */
|
||||||
/* if (gc_calls < 1) return;*/
|
/* if (gc_calls < 1) return;*/
|
||||||
YP_fprintf(YP_stderr,"%lu (%p)", vsc_count, H);
|
YP_fprintf(YP_stderr,"%lu (%p)", vsc_count, H);
|
||||||
|
@ -46,8 +46,7 @@ typedef struct PropEntryStruct *Prop;
|
|||||||
/* I can only define the structure after I define the actual atoms */
|
/* I can only define the structure after I define the actual atoms */
|
||||||
|
|
||||||
/* atom structure */
|
/* atom structure */
|
||||||
typedef struct AtomEntryStruct
|
typedef struct AtomEntryStruct {
|
||||||
{
|
|
||||||
Atom NextOfAE; /* used to build hash chains */
|
Atom NextOfAE; /* used to build hash chains */
|
||||||
Prop PropOfAE; /* property list for this atom */
|
Prop PropOfAE; /* property list for this atom */
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
@ -79,12 +78,10 @@ AtomEntry;
|
|||||||
typedef SFLAGS PropFlags;
|
typedef SFLAGS PropFlags;
|
||||||
|
|
||||||
/* basic property entry structure */
|
/* basic property entry structure */
|
||||||
typedef struct PropEntryStruct
|
typedef struct PropEntryStruct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
}
|
} PropEntry;
|
||||||
PropEntry;
|
|
||||||
|
|
||||||
/* ************************* Functors **********************************/
|
/* ************************* Functors **********************************/
|
||||||
|
|
||||||
@ -100,14 +97,13 @@ PropEntry;
|
|||||||
#define FunctorProperty ((PropFlags)(0xbb00))
|
#define FunctorProperty ((PropFlags)(0xbb00))
|
||||||
|
|
||||||
/* functor property */
|
/* functor property */
|
||||||
typedef struct FunctorEntryStruct
|
typedef struct FunctorEntryStruct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
unsigned int ArityOfFE; /* arity of functor */
|
unsigned int ArityOfFE; /* arity of functor */
|
||||||
Atom NameOfFE; /* back pointer to owner atom */
|
Atom NameOfFE; /* back pointer to owner atom */
|
||||||
Prop PropsOfFE; /* pointer to list of properties for this functor */
|
Prop PropsOfFE; /* pointer to list of properties for this functor */
|
||||||
}
|
} FunctorEntry;
|
||||||
FunctorEntry;
|
|
||||||
|
|
||||||
typedef FunctorEntry *Functor;
|
typedef FunctorEntry *Functor;
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* Last rev: December 90 *
|
* Last rev: December 90 *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: Tag Scheme for machines with 24 bits adresses (m68000) *
|
* comments: Tag Scheme for machines with 24 bits adresses (m68000) *
|
||||||
* version: $Id: Tags_24bits.h,v 1.1.1.1 2001-04-09 19:53:40 vsc Exp $ *
|
* version: $Id: Tags_24bits.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
/* Version for 24 bit addresses (68000)
|
/* Version for 24 bit addresses (68000)
|
||||||
@ -66,8 +66,7 @@
|
|||||||
|
|
||||||
inline EXTERN int IsVarTerm(Term);
|
inline EXTERN int IsVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsVarTerm(Term t)
|
||||||
IsVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (Signed(t) >= 0);
|
return (int) (Signed(t) >= 0);
|
||||||
}
|
}
|
||||||
@ -76,8 +75,7 @@ IsVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsNonVarTerm(Term);
|
inline EXTERN int IsNonVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsNonVarTerm(Term t)
|
||||||
IsNonVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (Signed(t) < 0);
|
return (int) (Signed(t) < 0);
|
||||||
}
|
}
|
||||||
@ -86,8 +84,7 @@ IsNonVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepPair(Term);
|
inline EXTERN Term * RepPair(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepPair(Term t)
|
||||||
RepPair (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (NonTagPart(t));
|
return (Term *) (NonTagPart(t));
|
||||||
}
|
}
|
||||||
@ -96,8 +93,7 @@ RepPair (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsPair(Term *);
|
inline EXTERN Term AbsPair(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsPair(Term * p)
|
||||||
AbsPair (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGEDA(PairTag, (p)));
|
return (Term) (TAGGEDA(PairTag, (p)));
|
||||||
}
|
}
|
||||||
@ -106,8 +102,7 @@ AbsPair (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsPairTerm(Term);
|
inline EXTERN Int IsPairTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPairTerm(Term t)
|
||||||
IsPairTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (BitOn(PairBit, (t)));
|
return (Int) (BitOn(PairBit, (t)));
|
||||||
}
|
}
|
||||||
@ -116,8 +111,7 @@ IsPairTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepAppl(Term);
|
inline EXTERN Term * RepAppl(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepAppl(Term t)
|
||||||
RepAppl (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (NonTagPart(t));
|
return (Term *) (NonTagPart(t));
|
||||||
}
|
}
|
||||||
@ -126,8 +120,7 @@ RepAppl (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsAppl(Term *);
|
inline EXTERN Term AbsAppl(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsAppl(Term * p)
|
||||||
AbsAppl (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGEDA(ApplTag, (p)));
|
return (Term) (TAGGEDA(ApplTag, (p)));
|
||||||
}
|
}
|
||||||
@ -136,8 +129,7 @@ AbsAppl (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsApplTerm(Term);
|
inline EXTERN Int IsApplTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsApplTerm(Term t)
|
||||||
IsApplTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (BitOn(ApplBit, (t)));
|
return (Int) (BitOn(ApplBit, (t)));
|
||||||
}
|
}
|
||||||
@ -146,8 +138,7 @@ IsApplTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsAtomOrIntTerm(Term);
|
inline EXTERN Int IsAtomOrIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAtomOrIntTerm(Term t)
|
||||||
IsAtomOrIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (!(Unsigned(t) & CompBits));
|
return (Int) (!(Unsigned(t) & CompBits));
|
||||||
}
|
}
|
||||||
@ -157,8 +148,7 @@ IsAtomOrIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustPtr(Term t, Term off);
|
inline EXTERN Term AdjustPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustPtr(Term t, Term off)
|
||||||
AdjustPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -167,8 +157,7 @@ AdjustPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off)
|
||||||
AdjustIDBPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -185,3 +174,4 @@ IntOfTerm (Term t)
|
|||||||
n |= 0xfc000000;
|
n |= 0xfc000000;
|
||||||
return (n);
|
return (n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* Last rev: December 90 *
|
* Last rev: December 90 *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
||||||
* version: $Id: Tags_32LowTag.h,v 1.1.1.1 2001-04-09 19:53:40 vsc Exp $ *
|
* version: $Id: Tags_32LowTag.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#define TAG_LOW_BITS_32 1
|
#define TAG_LOW_BITS_32 1
|
||||||
@ -84,8 +84,7 @@
|
|||||||
|
|
||||||
inline EXTERN int IsVarTerm(Term);
|
inline EXTERN int IsVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsVarTerm(Term t)
|
||||||
IsVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (!((t) & LowTagBits));
|
return (int) (!((t) & LowTagBits));
|
||||||
}
|
}
|
||||||
@ -94,8 +93,7 @@ IsVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsNonVarTerm(Term);
|
inline EXTERN int IsNonVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsNonVarTerm(Term t)
|
||||||
IsNonVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (((t) & LowTagBits));
|
return (int) (((t) & LowTagBits));
|
||||||
}
|
}
|
||||||
@ -104,8 +102,7 @@ IsNonVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepPair(Term);
|
inline EXTERN Term * RepPair(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepPair(Term t)
|
||||||
RepPair (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) ((t)-PairBits);
|
return (Term *) ((t)-PairBits);
|
||||||
}
|
}
|
||||||
@ -114,8 +111,7 @@ RepPair (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsPair(Term *);
|
inline EXTERN Term AbsPair(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsPair(Term * p)
|
||||||
AbsPair (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (Unsigned(p)+PairBits);
|
return (Term) (Unsigned(p)+PairBits);
|
||||||
}
|
}
|
||||||
@ -124,8 +120,7 @@ AbsPair (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsPairTerm(Term);
|
inline EXTERN Int IsPairTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPairTerm(Term t)
|
||||||
IsPairTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((((t) & LowTagBits) == PairBits));
|
return (Int) ((((t) & LowTagBits) == PairBits));
|
||||||
}
|
}
|
||||||
@ -134,8 +129,7 @@ IsPairTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepAppl(Term);
|
inline EXTERN Term * RepAppl(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepAppl(Term t)
|
||||||
RepAppl (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (((t)-ApplBit));
|
return (Term *) (((t)-ApplBit));
|
||||||
}
|
}
|
||||||
@ -144,8 +138,7 @@ RepAppl (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsAppl(Term *);
|
inline EXTERN Term AbsAppl(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsAppl(Term * p)
|
||||||
AbsAppl (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (Unsigned(p)+ApplBit);
|
return (Term) (Unsigned(p)+ApplBit);
|
||||||
}
|
}
|
||||||
@ -154,8 +147,7 @@ AbsAppl (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsApplTerm(Term);
|
inline EXTERN Int IsApplTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsApplTerm(Term t)
|
||||||
IsApplTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((((t) & LowTagBits) == ApplBit));
|
return (Int) ((((t) & LowTagBits) == ApplBit));
|
||||||
}
|
}
|
||||||
@ -164,8 +156,7 @@ IsApplTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsAtomOrIntTerm(Term);
|
inline EXTERN Int IsAtomOrIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAtomOrIntTerm(Term t)
|
||||||
IsAtomOrIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((((t) & LowTagBits) == 2));
|
return (Int) ((((t) & LowTagBits) == 2));
|
||||||
}
|
}
|
||||||
@ -175,8 +166,7 @@ IsAtomOrIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustPtr(Term t, Term off);
|
inline EXTERN Term AdjustPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustPtr(Term t, Term off)
|
||||||
AdjustPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -185,8 +175,7 @@ AdjustPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off)
|
||||||
AdjustIDBPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -196,8 +185,10 @@ AdjustIDBPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Int IntOfTerm(Term);
|
inline EXTERN Int IntOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IntOfTerm(Term t)
|
||||||
IntOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (((Int)(t << 1))>>(SHIFT_LOW_TAG+SHIFT_HIGH_TAG+1));
|
return (Int) (((Int)(t << 1))>>(SHIFT_LOW_TAG+SHIFT_HIGH_TAG+1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* Last rev: December 90 *
|
* Last rev: December 90 *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
||||||
* version: $Id: Tags_32Ops.h,v 1.1.1.1 2001-04-09 19:53:40 vsc Exp $ *
|
* version: $Id: Tags_32Ops.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -101,8 +101,7 @@ are now 1 in compound terms and structures.
|
|||||||
|
|
||||||
inline EXTERN int IsVarTerm(Term);
|
inline EXTERN int IsVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsVarTerm(Term t)
|
||||||
IsVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (Signed(t) >= 0);
|
return (int) (Signed(t) >= 0);
|
||||||
}
|
}
|
||||||
@ -111,8 +110,7 @@ IsVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsNonVarTerm(Term);
|
inline EXTERN int IsNonVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsNonVarTerm(Term t)
|
||||||
IsNonVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (Signed(t) < 0);
|
return (int) (Signed(t) < 0);
|
||||||
}
|
}
|
||||||
@ -122,8 +120,7 @@ IsNonVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepPair(Term);
|
inline EXTERN Term * RepPair(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepPair(Term t)
|
||||||
RepPair (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) ((~(t)));
|
return (Term *) ((~(t)));
|
||||||
}
|
}
|
||||||
@ -132,8 +129,7 @@ RepPair (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsPair(Term *);
|
inline EXTERN Term AbsPair(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsPair(Term * p)
|
||||||
AbsPair (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) ((~Unsigned(p)));
|
return (Term) ((~Unsigned(p)));
|
||||||
}
|
}
|
||||||
@ -142,8 +138,7 @@ AbsPair (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsPairTerm(Term);
|
inline EXTERN Int IsPairTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPairTerm(Term t)
|
||||||
IsPairTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (((t) & PairBit));
|
return (Int) (((t) & PairBit));
|
||||||
}
|
}
|
||||||
@ -152,8 +147,7 @@ IsPairTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepAppl(Term);
|
inline EXTERN Term * RepAppl(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepAppl(Term t)
|
||||||
RepAppl (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) ((-Signed(t)));
|
return (Term *) ((-Signed(t)));
|
||||||
}
|
}
|
||||||
@ -162,8 +156,7 @@ RepAppl (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsAppl(Term *);
|
inline EXTERN Term AbsAppl(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsAppl(Term * p)
|
||||||
AbsAppl (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) ((-Signed(p)));
|
return (Term) ((-Signed(p)));
|
||||||
}
|
}
|
||||||
@ -172,8 +165,7 @@ AbsAppl (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsApplTerm(Term);
|
inline EXTERN Int IsApplTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsApplTerm(Term t)
|
||||||
IsApplTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((!((t) & LowTagBits)));
|
return (Int) ((!((t) & LowTagBits)));
|
||||||
}
|
}
|
||||||
@ -183,8 +175,7 @@ IsApplTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepPair(Term);
|
inline EXTERN Term * RepPair(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepPair(Term t)
|
||||||
RepPair (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) ((-Signed(t)));
|
return (Term *) ((-Signed(t)));
|
||||||
}
|
}
|
||||||
@ -193,8 +184,7 @@ RepPair (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsPair(Term *);
|
inline EXTERN Term AbsPair(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsPair(Term * p)
|
||||||
AbsPair (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (((CELL)(-Signed(p))));
|
return (Term) (((CELL)(-Signed(p))));
|
||||||
}
|
}
|
||||||
@ -203,8 +193,7 @@ AbsPair (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsPairTerm(Term);
|
inline EXTERN Int IsPairTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPairTerm(Term t)
|
||||||
IsPairTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((!((t) & LowTagBits)));
|
return (Int) ((!((t) & LowTagBits)));
|
||||||
}
|
}
|
||||||
@ -213,8 +202,7 @@ IsPairTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepAppl(Term);
|
inline EXTERN Term * RepAppl(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepAppl(Term t)
|
||||||
RepAppl (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) ((~(t)));
|
return (Term *) ((~(t)));
|
||||||
}
|
}
|
||||||
@ -223,8 +211,7 @@ RepAppl (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsAppl(Term *);
|
inline EXTERN Term AbsAppl(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsAppl(Term * p)
|
||||||
AbsAppl (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) ((~Unsigned(p)));
|
return (Term) ((~Unsigned(p)));
|
||||||
}
|
}
|
||||||
@ -233,8 +220,7 @@ AbsAppl (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsApplTerm(Term);
|
inline EXTERN Int IsApplTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsApplTerm(Term t)
|
||||||
IsApplTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (((t) & ApplBit));
|
return (Int) (((t) & ApplBit));
|
||||||
}
|
}
|
||||||
@ -244,8 +230,7 @@ IsApplTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsAtomOrIntTerm(Term);
|
inline EXTERN Int IsAtomOrIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAtomOrIntTerm(Term t)
|
||||||
IsAtomOrIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (((Unsigned(t) & LowTagBits) == 0x2));
|
return (Int) (((Unsigned(t) & LowTagBits) == 0x2));
|
||||||
}
|
}
|
||||||
@ -255,8 +240,7 @@ IsAtomOrIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IntOfTerm(Term);
|
inline EXTERN Int IntOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IntOfTerm(Term t)
|
||||||
IntOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((Int)(Unsigned(t) << 3) >> 5);
|
return (Int) ((Int)(Unsigned(t) << 3) >> 5);
|
||||||
}
|
}
|
||||||
@ -267,22 +251,16 @@ IntOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustPtr(Term t, Term off);
|
inline EXTERN Term AdjustPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustPtr(Term t, Term off)
|
||||||
AdjustPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) (((IsVarTerm (t)
|
return (Term) (((IsVarTerm(t) || IsAtomOrIntTerm(t)) ? (t)+(off) : (IsPairTerm(t) ? (CELL)AbsPair((CELL *)((CELL)RepPair(t)+(off))) : (t)-(off))));
|
||||||
|| IsAtomOrIntTerm (t)) ? (t) +
|
|
||||||
(off) : (IsPairTerm (t) ? (CELL)
|
|
||||||
AbsPair ((CELL *) ((CELL) RepPair (t) +
|
|
||||||
(off))) : (t) - (off))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off)
|
||||||
AdjustIDBPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) (IsVarTerm(t) ? (t)+(off) : (t)-(off));
|
return (Term) (IsVarTerm(t) ? (t)+(off) : (t)-(off));
|
||||||
}
|
}
|
||||||
@ -292,28 +270,21 @@ AdjustIDBPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustPtr(Term t, Term off);
|
inline EXTERN Term AdjustPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustPtr(Term t, Term off)
|
||||||
AdjustPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) (((IsVarTerm (t)
|
return (Term) (((IsVarTerm(t) || IsAtomOrIntTerm(t)) ? (t)+(off) : (IsApplTerm(t) ? (CELL)AbsAppl((CELL *)((CELL)RepAppl(t)+(off))) : (t)-(off))));
|
||||||
|| IsAtomOrIntTerm (t)) ? (t) +
|
|
||||||
(off) : (IsApplTerm (t) ? (CELL)
|
|
||||||
AbsAppl ((CELL *) ((CELL) RepAppl (t) +
|
|
||||||
(off))) : (t) - (off))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off)
|
||||||
AdjustIDBPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) (IsVarTerm (t) ? (t) +
|
return (Term) (IsVarTerm(t) ? (t)+(off) : (IsApplTerm(t) ? (CELL)AbsAppl((CELL *)((CELL)RepAppl(t)+(off))) : (t)-(off)));
|
||||||
(off) : (IsApplTerm (t) ? (CELL)
|
|
||||||
AbsAppl ((CELL *) ((CELL) RepAppl (t) +
|
|
||||||
(off))) : (t) - (off)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* Last rev: December 90 *
|
* Last rev: December 90 *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
||||||
* version: $Id: Tags_32bits.h,v 1.1.1.1 2001-04-09 19:53:41 vsc Exp $ *
|
* version: $Id: Tags_32bits.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
/* Original version for 32 bit addresses machines,
|
/* Original version for 32 bit addresses machines,
|
||||||
@ -71,8 +71,7 @@ property list
|
|||||||
|
|
||||||
inline EXTERN int IsVarTerm(Term);
|
inline EXTERN int IsVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsVarTerm(Term t)
|
||||||
IsVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (Signed(t) >= 0);
|
return (int) (Signed(t) >= 0);
|
||||||
}
|
}
|
||||||
@ -81,8 +80,7 @@ IsVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsNonVarTerm(Term);
|
inline EXTERN int IsNonVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsNonVarTerm(Term t)
|
||||||
IsNonVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (Signed(t) < 0);
|
return (int) (Signed(t) < 0);
|
||||||
}
|
}
|
||||||
@ -91,8 +89,7 @@ IsNonVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepPair(Term);
|
inline EXTERN Term * RepPair(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepPair(Term t)
|
||||||
RepPair (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (NonTagPart(t));
|
return (Term *) (NonTagPart(t));
|
||||||
}
|
}
|
||||||
@ -101,8 +98,7 @@ RepPair (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsPair(Term *);
|
inline EXTERN Term AbsPair(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsPair(Term * p)
|
||||||
AbsPair (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGEDA(PairTag, (p)));
|
return (Term) (TAGGEDA(PairTag, (p)));
|
||||||
}
|
}
|
||||||
@ -111,8 +107,7 @@ AbsPair (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsPairTerm(Term);
|
inline EXTERN Int IsPairTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPairTerm(Term t)
|
||||||
IsPairTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (BitOn(PairBit, (t)));
|
return (Int) (BitOn(PairBit, (t)));
|
||||||
}
|
}
|
||||||
@ -121,8 +116,7 @@ IsPairTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepAppl(Term);
|
inline EXTERN Term * RepAppl(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepAppl(Term t)
|
||||||
RepAppl (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (NonTagPart(t));
|
return (Term *) (NonTagPart(t));
|
||||||
}
|
}
|
||||||
@ -131,8 +125,7 @@ RepAppl (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsAppl(Term *);
|
inline EXTERN Term AbsAppl(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsAppl(Term * p)
|
||||||
AbsAppl (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGEDA(ApplTag, (p)));
|
return (Term) (TAGGEDA(ApplTag, (p)));
|
||||||
}
|
}
|
||||||
@ -141,8 +134,7 @@ AbsAppl (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsApplTerm(Term);
|
inline EXTERN Int IsApplTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsApplTerm(Term t)
|
||||||
IsApplTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (BitOn(ApplBit, (t)));
|
return (Int) (BitOn(ApplBit, (t)));
|
||||||
}
|
}
|
||||||
@ -151,8 +143,7 @@ IsApplTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsAtomOrIntTerm(Term);
|
inline EXTERN int IsAtomOrIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsAtomOrIntTerm(Term t)
|
||||||
IsAtomOrIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (((Unsigned(t) & LowTagBits) == 0));
|
return (int) (((Unsigned(t) & LowTagBits) == 0));
|
||||||
}
|
}
|
||||||
@ -162,8 +153,7 @@ IsAtomOrIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustPtr(Term t, Term off);
|
inline EXTERN Term AdjustPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustPtr(Term t, Term off)
|
||||||
AdjustPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -172,8 +162,7 @@ AdjustPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off)
|
||||||
AdjustIDBPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -183,8 +172,11 @@ AdjustIDBPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Int IntOfTerm(Term);
|
inline EXTERN Int IntOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IntOfTerm(Term t)
|
||||||
IntOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (((Int)(t << 3))>>(3+2));
|
return (Int) (((Int)(t << 3))>>(3+2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* Last rev: December 90 *
|
* Last rev: December 90 *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
* comments: Original Tag Scheme for machines with 32 bits adresses *
|
||||||
* version: $Id: Tags_64bits.h,v 1.1.1.1 2001-04-09 19:53:41 vsc Exp $ *
|
* version: $Id: Tags_64bits.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#define TAG_64BITS 1
|
#define TAG_64BITS 1
|
||||||
@ -51,7 +51,7 @@ property list
|
|||||||
#define MaskPrim /* 0x0ffffff8L */ ((((UInt)1) << (SHIFT_HIGH_TAG))-8)
|
#define MaskPrim /* 0x0ffffff8L */ ((((UInt)1) << (SHIFT_HIGH_TAG))-8)
|
||||||
#define NumberTag /* 0x30000001L */ MKTAG(0x1,1)
|
#define NumberTag /* 0x30000001L */ MKTAG(0x1,1)
|
||||||
#define AtomTag /* 0x10000001L */ MKTAG(0x0,1)
|
#define AtomTag /* 0x10000001L */ MKTAG(0x0,1)
|
||||||
#define MAX_ABS_INT /* 0xfe00000LL */ (((UInt)1) << (63-(2+4)))
|
#define MAX_ABS_INT /* 0xfe00000LL */ (((Int)1) << (63-(2+4)))
|
||||||
|
|
||||||
/* bits that should not be used by anyone but us */
|
/* bits that should not be used by anyone but us */
|
||||||
#define YAP_PROTECTED_MASK 0xe000000000000000L
|
#define YAP_PROTECTED_MASK 0xe000000000000000L
|
||||||
@ -73,8 +73,7 @@ property list
|
|||||||
|
|
||||||
inline EXTERN int IsVarTerm(Term);
|
inline EXTERN int IsVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsVarTerm(Term t)
|
||||||
IsVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) ((!((t) & 0x1)));
|
return (int) ((!((t) & 0x1)));
|
||||||
}
|
}
|
||||||
@ -83,8 +82,7 @@ IsVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsNonVarTerm(Term);
|
inline EXTERN int IsNonVarTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsNonVarTerm(Term t)
|
||||||
IsNonVarTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (((t) & 0x1));
|
return (int) (((t) & 0x1));
|
||||||
}
|
}
|
||||||
@ -93,8 +91,7 @@ IsNonVarTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepPair(Term);
|
inline EXTERN Term * RepPair(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepPair(Term t)
|
||||||
RepPair (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (((t)-PairBits));
|
return (Term *) (((t)-PairBits));
|
||||||
}
|
}
|
||||||
@ -103,8 +100,7 @@ RepPair (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsPair(Term *);
|
inline EXTERN Term AbsPair(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsPair(Term * p)
|
||||||
AbsPair (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (((CELL)(p)+PairBits));
|
return (Term) (((CELL)(p)+PairBits));
|
||||||
}
|
}
|
||||||
@ -113,8 +109,7 @@ AbsPair (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsPairTerm(Term);
|
inline EXTERN Int IsPairTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPairTerm(Term t)
|
||||||
IsPairTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (((t) & 0x2));
|
return (Int) (((t) & 0x2));
|
||||||
}
|
}
|
||||||
@ -123,8 +118,7 @@ IsPairTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term * RepAppl(Term);
|
inline EXTERN Term * RepAppl(Term);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * RepAppl(Term t)
|
||||||
RepAppl (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (((t)-ApplBits));
|
return (Term *) (((t)-ApplBits));
|
||||||
}
|
}
|
||||||
@ -133,8 +127,7 @@ RepAppl (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AbsAppl(Term *);
|
inline EXTERN Term AbsAppl(Term *);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AbsAppl(Term * p)
|
||||||
AbsAppl (Term * p)
|
|
||||||
{
|
{
|
||||||
return (Term) (((CELL)(p)+ApplBits));
|
return (Term) (((CELL)(p)+ApplBits));
|
||||||
}
|
}
|
||||||
@ -143,8 +136,7 @@ AbsAppl (Term * p)
|
|||||||
|
|
||||||
inline EXTERN Int IsApplTerm(Term);
|
inline EXTERN Int IsApplTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsApplTerm(Term t)
|
||||||
IsApplTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((((t) & 0x4)));
|
return (Int) ((((t) & 0x4)));
|
||||||
}
|
}
|
||||||
@ -153,8 +145,7 @@ IsApplTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsAtomOrIntTerm(Term);
|
inline EXTERN Int IsAtomOrIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAtomOrIntTerm(Term t)
|
||||||
IsAtomOrIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((((t) & LowTagBits) == 0x1));
|
return (Int) ((((t) & LowTagBits) == 0x1));
|
||||||
}
|
}
|
||||||
@ -164,8 +155,7 @@ IsAtomOrIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustPtr(Term t, Term off);
|
inline EXTERN Term AdjustPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustPtr(Term t, Term off)
|
||||||
AdjustPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) (((t)+off));
|
return (Term) (((t)+off));
|
||||||
}
|
}
|
||||||
@ -174,8 +164,7 @@ AdjustPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AdjustIDBPtr(Term t, Term off)
|
||||||
AdjustIDBPtr (Term t, Term off)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t)+off);
|
return (Term) ((t)+off);
|
||||||
}
|
}
|
||||||
@ -185,8 +174,10 @@ AdjustIDBPtr (Term t, Term off)
|
|||||||
|
|
||||||
inline EXTERN Int IntOfTerm(Term);
|
inline EXTERN Int IntOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IntOfTerm(Term t)
|
||||||
IntOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((Int)(Unsigned(t) << 3) >> 6);
|
return (Int) ((Int)(Unsigned(t) << 3) >> 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
* File: TermExt.h *
|
* File: TermExt.h *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: Extensions to standard terms for YAP *
|
* comments: Extensions to standard terms for YAP *
|
||||||
* version: $Id: TermExt.h,v 1.1.1.1 2001-04-09 19:53:41 vsc Exp $ *
|
* version: $Id: TermExt.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#if USE_OFFSETS
|
#if USE_OFFSETS
|
||||||
@ -35,8 +35,7 @@
|
|||||||
#define TermDot MkAtomTerm(AtomDot)
|
#define TermDot MkAtomTerm(AtomDot)
|
||||||
|
|
||||||
#ifdef IN_SECOND_QUADRANT
|
#ifdef IN_SECOND_QUADRANT
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
db_ref_e = sizeof(Functor *)|RBIT,
|
db_ref_e = sizeof(Functor *)|RBIT,
|
||||||
long_int_e = 2*sizeof(Functor *)|RBIT,
|
long_int_e = 2*sizeof(Functor *)|RBIT,
|
||||||
#ifdef USE_GMP
|
#ifdef USE_GMP
|
||||||
@ -45,11 +44,9 @@ typedef enum
|
|||||||
#else
|
#else
|
||||||
double_e = 3*sizeof(Functor *)|RBIT
|
double_e = 3*sizeof(Functor *)|RBIT
|
||||||
#endif
|
#endif
|
||||||
}
|
} blob_type;
|
||||||
blob_type;
|
|
||||||
#else
|
#else
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
db_ref_e = sizeof(Functor *),
|
db_ref_e = sizeof(Functor *),
|
||||||
long_int_e = 2*sizeof(Functor *),
|
long_int_e = 2*sizeof(Functor *),
|
||||||
#ifdef USE_GMP
|
#ifdef USE_GMP
|
||||||
@ -58,8 +55,7 @@ typedef enum
|
|||||||
#else
|
#else
|
||||||
double_e = 3*sizeof(Functor *)
|
double_e = 3*sizeof(Functor *)
|
||||||
#endif
|
#endif
|
||||||
}
|
} blob_type;
|
||||||
blob_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FunctorDBRef ((Functor)(db_ref_e))
|
#define FunctorDBRef ((Functor)(db_ref_e))
|
||||||
@ -73,8 +69,7 @@ blob_type;
|
|||||||
|
|
||||||
inline EXTERN blob_type BlobOfFunctor(Functor f);
|
inline EXTERN blob_type BlobOfFunctor(Functor f);
|
||||||
|
|
||||||
inline EXTERN blob_type
|
inline EXTERN blob_type BlobOfFunctor(Functor f)
|
||||||
BlobOfFunctor (Functor f)
|
|
||||||
{
|
{
|
||||||
return (blob_type) ((CELL)f);
|
return (blob_type) ((CELL)f);
|
||||||
}
|
}
|
||||||
@ -85,8 +80,7 @@ BlobOfFunctor (Functor f)
|
|||||||
|
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
|
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
/* what to do when someone tries to bind our term to someone else
|
/* what to do when someone tries to bind our term to someone else
|
||||||
in some predefined context */
|
in some predefined context */
|
||||||
void (*bind_op)(Term *, Term);
|
void (*bind_op)(Term *, Term);
|
||||||
@ -94,19 +88,16 @@ typedef struct
|
|||||||
int (*copy_term_op)(Term, CELL ***);
|
int (*copy_term_op)(Term, CELL ***);
|
||||||
/* op called to do marking in GC */
|
/* op called to do marking in GC */
|
||||||
void (*mark_op)(CELL *);
|
void (*mark_op)(CELL *);
|
||||||
}
|
} ext_op;
|
||||||
ext_op;
|
|
||||||
|
|
||||||
/* known delays */
|
/* known delays */
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
empty_ext = 0*sizeof(ext_op), /* default op, this should never be called */
|
empty_ext = 0*sizeof(ext_op), /* default op, this should never be called */
|
||||||
susp_ext = 1*sizeof(ext_op), /* support for delayable goals */
|
susp_ext = 1*sizeof(ext_op), /* support for delayable goals */
|
||||||
attvars_ext = 2*sizeof(ext_op), /* support for attributed variables */
|
attvars_ext = 2*sizeof(ext_op), /* support for attributed variables */
|
||||||
/* add your own extensions here */
|
/* add your own extensions here */
|
||||||
/* keep this one */
|
/* keep this one */
|
||||||
}
|
} exts;
|
||||||
exts;
|
|
||||||
|
|
||||||
|
|
||||||
/* array with the ops for your favourite extensions */
|
/* array with the ops for your favourite extensions */
|
||||||
@ -131,12 +122,9 @@ special_functors;
|
|||||||
|
|
||||||
inline EXTERN Term MkFloatTerm(Float);
|
inline EXTERN Term MkFloatTerm(Float);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkFloatTerm(Float dbl)
|
||||||
MkFloatTerm (Float dbl)
|
|
||||||
{
|
{
|
||||||
return (Term) ((H[0] = (CELL) FunctorDouble, *(Float *) (H + 1) =
|
return (Term) ((H[0] = (CELL)FunctorDouble, *(Float *)(H+1) = dbl, H[2]=((2*sizeof(CELL)+EndSpecials)|MBIT),H+=3,AbsAppl(H-3)));
|
||||||
dbl, H[2] = ((2 * sizeof (CELL) + EndSpecials) | MBIT), H +=
|
|
||||||
3, AbsAppl (H - 3)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -144,8 +132,7 @@ MkFloatTerm (Float dbl)
|
|||||||
|
|
||||||
inline EXTERN Float FloatOfTerm(Term t);
|
inline EXTERN Float FloatOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN Float
|
inline EXTERN Float FloatOfTerm(Term t)
|
||||||
FloatOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Float) (*(Float *)(RepAppl(t)+1));
|
return (Float) (*(Float *)(RepAppl(t)+1));
|
||||||
}
|
}
|
||||||
@ -173,12 +160,7 @@ inline EXTERN void STD_PROTO (AlignGlobalForDouble, (void));
|
|||||||
inline EXTERN Float
|
inline EXTERN Float
|
||||||
CpFloatUnaligned(CELL *ptr)
|
CpFloatUnaligned(CELL *ptr)
|
||||||
{
|
{
|
||||||
union
|
union { Float f; CELL d[2]; } u;
|
||||||
{
|
|
||||||
Float f;
|
|
||||||
CELL d[2];
|
|
||||||
}
|
|
||||||
u;
|
|
||||||
u.d[0] = ptr[1];
|
u.d[0] = ptr[1];
|
||||||
u.d[1] = ptr[2];
|
u.d[1] = ptr[2];
|
||||||
return(u.f);
|
return(u.f);
|
||||||
@ -187,13 +169,9 @@ CpFloatUnaligned (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN Term MkFloatTerm(Float);
|
inline EXTERN Term MkFloatTerm(Float);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkFloatTerm(Float dbl)
|
||||||
MkFloatTerm (Float dbl)
|
|
||||||
{
|
{
|
||||||
return (Term) ((AlignGlobalForDouble (), H[0] =
|
return (Term) ((AlignGlobalForDouble(), H[0] = (CELL)FunctorDouble, *(Float *)(H+1) = dbl, H[3]=((3*sizeof(CELL)+EndSpecials)|MBIT), H+=4, AbsAppl(H-4)));
|
||||||
(CELL) FunctorDouble, *(Float *) (H + 1) = dbl, H[3] =
|
|
||||||
((3 * sizeof (CELL) + EndSpecials) | MBIT), H +=
|
|
||||||
4, AbsAppl (H - 4)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -201,11 +179,9 @@ MkFloatTerm (Float dbl)
|
|||||||
|
|
||||||
inline EXTERN Float FloatOfTerm(Term t);
|
inline EXTERN Float FloatOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN Float
|
inline EXTERN Float FloatOfTerm(Term t)
|
||||||
FloatOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Float) ((DOUBLE_ALIGNED (RepAppl (t)) ? *(Float *) (RepAppl (t) + 1)
|
return (Float) ((DOUBLE_ALIGNED(RepAppl(t)) ? *(Float *)(RepAppl(t)+1) : CpFloatUnaligned(RepAppl(t))));
|
||||||
: CpFloatUnaligned (RepAppl (t))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -219,8 +195,7 @@ FloatOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsFloatTerm(Term);
|
inline EXTERN int IsFloatTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsFloatTerm(Term t)
|
||||||
IsFloatTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorDouble);
|
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorDouble);
|
||||||
}
|
}
|
||||||
@ -232,20 +207,16 @@ IsFloatTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkLongIntTerm(Int);
|
inline EXTERN Term MkLongIntTerm(Int);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkLongIntTerm(Int i)
|
||||||
MkLongIntTerm (Int i)
|
|
||||||
{
|
{
|
||||||
return (Term) ((H[0] = (CELL) FunctorLongInt, H[1] = (CELL) i, H[2] =
|
return (Term) ((H[0] = (CELL)FunctorLongInt,H[1] = (CELL)(i),H[2]=((2*sizeof(CELL)+EndSpecials)|MBIT),H+=3,AbsAppl(H-3)));
|
||||||
((2 * sizeof (CELL) + EndSpecials) | MBIT), H +=
|
|
||||||
3, AbsAppl (H - 3)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline EXTERN Int LongIntOfTerm(Term t);
|
inline EXTERN Int LongIntOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int LongIntOfTerm(Term t)
|
||||||
LongIntOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (RepAppl(t)[1]);
|
return (Int) (RepAppl(t)[1]);
|
||||||
}
|
}
|
||||||
@ -254,8 +225,7 @@ LongIntOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsLongIntTerm(Term);
|
inline EXTERN int IsLongIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsLongIntTerm(Term t)
|
||||||
IsLongIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorLongInt);
|
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorLongInt);
|
||||||
}
|
}
|
||||||
@ -277,8 +247,7 @@ MP_INT *STD_PROTO (BigIntOfTerm, (Term));
|
|||||||
|
|
||||||
inline EXTERN int IsBigIntTerm(Term);
|
inline EXTERN int IsBigIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsBigIntTerm(Term t)
|
||||||
IsBigIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorBigInt);
|
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorBigInt);
|
||||||
}
|
}
|
||||||
@ -288,12 +257,9 @@ IsBigIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsLargeIntTerm(Term);
|
inline EXTERN int IsLargeIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsLargeIntTerm(Term t)
|
||||||
IsLargeIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm (t)
|
return (int) (IsApplTerm(t) && ((FunctorOfTerm(t) <= FunctorBigInt) && (FunctorOfTerm(t) >= FunctorLongInt)));
|
||||||
&& ((FunctorOfTerm (t) <= FunctorBigInt)
|
|
||||||
&& (FunctorOfTerm (t) >= FunctorLongInt)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -303,8 +269,7 @@ IsLargeIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsBigIntTerm(Term);
|
inline EXTERN int IsBigIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsBigIntTerm(Term t)
|
||||||
IsBigIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (FALSE);
|
return (int) (FALSE);
|
||||||
}
|
}
|
||||||
@ -314,8 +279,7 @@ IsBigIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsLargeIntTerm(Term);
|
inline EXTERN int IsLargeIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsLargeIntTerm(Term t)
|
||||||
IsLargeIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorLongInt);
|
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorLongInt);
|
||||||
}
|
}
|
||||||
@ -328,12 +292,9 @@ IsLargeIntTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsLargeNumTerm(Term);
|
inline EXTERN int IsLargeNumTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsLargeNumTerm(Term t)
|
||||||
IsLargeNumTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm (t)
|
return (int) (IsApplTerm(t) && ((FunctorOfTerm(t) <= FunctorDouble) && (FunctorOfTerm(t) >= FunctorLongInt)));
|
||||||
&& ((FunctorOfTerm (t) <= FunctorDouble)
|
|
||||||
&& (FunctorOfTerm (t) >= FunctorLongInt)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -341,8 +302,7 @@ IsLargeNumTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsNumTerm(Term);
|
inline EXTERN int IsNumTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsNumTerm(Term t)
|
||||||
IsNumTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) ((IsIntTerm(t) || IsLargeNumTerm(t)));
|
return (int) ((IsIntTerm(t) || IsLargeNumTerm(t)));
|
||||||
}
|
}
|
||||||
@ -352,8 +312,7 @@ IsNumTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsAtomicTerm(Term);
|
inline EXTERN Int IsAtomicTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAtomicTerm(Term t)
|
||||||
IsAtomicTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (IsAtomOrIntTerm(t) || IsLargeNumTerm(t));
|
return (Int) (IsAtomOrIntTerm(t) || IsLargeNumTerm(t));
|
||||||
}
|
}
|
||||||
@ -363,8 +322,7 @@ IsAtomicTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsExtensionFunctor(Functor);
|
inline EXTERN Int IsExtensionFunctor(Functor);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsExtensionFunctor(Functor f)
|
||||||
IsExtensionFunctor (Functor f)
|
|
||||||
{
|
{
|
||||||
return (Int) (f <= FunctorDouble);
|
return (Int) (f <= FunctorDouble);
|
||||||
}
|
}
|
||||||
@ -373,8 +331,7 @@ IsExtensionFunctor (Functor f)
|
|||||||
|
|
||||||
inline EXTERN Int IsBlobFunctor(Functor);
|
inline EXTERN Int IsBlobFunctor(Functor);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsBlobFunctor(Functor f)
|
||||||
IsBlobFunctor (Functor f)
|
|
||||||
{
|
{
|
||||||
return (Int) ((f <= FunctorDouble && f >= FunctorDBRef));
|
return (Int) ((f <= FunctorDouble && f >= FunctorDBRef));
|
||||||
}
|
}
|
||||||
@ -383,11 +340,9 @@ IsBlobFunctor (Functor f)
|
|||||||
|
|
||||||
inline EXTERN Int IsPrimitiveTerm(Term);
|
inline EXTERN Int IsPrimitiveTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsPrimitiveTerm(Term t)
|
||||||
IsPrimitiveTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((IsAtomOrIntTerm (t)
|
return (Int) ((IsAtomOrIntTerm(t) || (IsApplTerm(t) && IsBlobFunctor(FunctorOfTerm(t)))));
|
||||||
|| (IsApplTerm (t) && IsBlobFunctor (FunctorOfTerm (t)))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -397,8 +352,7 @@ IsPrimitiveTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IsAttachFunc(Functor);
|
inline EXTERN Int IsAttachFunc(Functor);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAttachFunc(Functor f)
|
||||||
IsAttachFunc (Functor f)
|
|
||||||
{
|
{
|
||||||
return (Int) (FALSE);
|
return (Int) (FALSE);
|
||||||
}
|
}
|
||||||
@ -408,8 +362,7 @@ IsAttachFunc (Functor f)
|
|||||||
|
|
||||||
inline EXTERN Int IsAttachedTerm(Term);
|
inline EXTERN Int IsAttachedTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAttachedTerm(Term t)
|
||||||
IsAttachedTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) ((IsVarTerm(t) && VarOfTerm(t) < H0) );
|
return (Int) ((IsVarTerm(t) && VarOfTerm(t) < H0) );
|
||||||
}
|
}
|
||||||
@ -419,8 +372,7 @@ IsAttachedTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN exts ExtFromCell(CELL *);
|
inline EXTERN exts ExtFromCell(CELL *);
|
||||||
|
|
||||||
inline EXTERN exts
|
inline EXTERN exts ExtFromCell(CELL * pt)
|
||||||
ExtFromCell (CELL * pt)
|
|
||||||
{
|
{
|
||||||
return (exts) (pt[1]);
|
return (exts) (pt[1]);
|
||||||
}
|
}
|
||||||
@ -432,8 +384,7 @@ ExtFromCell (CELL * pt)
|
|||||||
|
|
||||||
inline EXTERN Int IsAttachFunc(Functor);
|
inline EXTERN Int IsAttachFunc(Functor);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAttachFunc(Functor f)
|
||||||
IsAttachFunc (Functor f)
|
|
||||||
{
|
{
|
||||||
return (Int) (FALSE);
|
return (Int) (FALSE);
|
||||||
}
|
}
|
||||||
@ -443,8 +394,7 @@ IsAttachFunc (Functor f)
|
|||||||
|
|
||||||
inline EXTERN Int IsAttachedTerm(Term);
|
inline EXTERN Int IsAttachedTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IsAttachedTerm(Term t)
|
||||||
IsAttachedTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (FALSE);
|
return (Int) (FALSE);
|
||||||
}
|
}
|
||||||
@ -458,8 +408,7 @@ EXTERN int STD_PROTO (unify_extension, (Functor, CELL, CELL *, CELL));
|
|||||||
inline EXTERN int
|
inline EXTERN int
|
||||||
unify_extension(Functor f, CELL d0, CELL *pt0, CELL d1)
|
unify_extension(Functor f, CELL d0, CELL *pt0, CELL d1)
|
||||||
{
|
{
|
||||||
switch (BlobOfFunctor (f))
|
switch(BlobOfFunctor(f)) {
|
||||||
{
|
|
||||||
case db_ref_e:
|
case db_ref_e:
|
||||||
return (d0 == d1);
|
return (d0 == d1);
|
||||||
case long_int_e:
|
case long_int_e:
|
||||||
@ -480,3 +429,4 @@ unify_extension (Functor f, CELL d0, CELL * pt0, CELL d1)
|
|||||||
}
|
}
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
189
VC/include/Yap.h
189
VC/include/Yap.h
@ -17,7 +17,7 @@
|
|||||||
* File: Yap.h.m4 *
|
* File: Yap.h.m4 *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: main header file for YAP *
|
* comments: main header file for YAP *
|
||||||
* version: $Id: Yap.h,v 1.1.1.1 2001-04-09 19:53:41 vsc Exp $ *
|
* version: $Id: Yap.h,v 1.2 2001-07-16 15:26:14 vsc Exp $ *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@ -86,6 +86,20 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SBA
|
||||||
|
#ifdef YAPOR
|
||||||
|
#ifndef FROZEN_STACKS
|
||||||
|
#define FROZEN_STACKS 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TABLING
|
||||||
|
#ifndef FROZEN_STACKS
|
||||||
|
#define FROZEN_STACKS 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _MSC_VER /* Microsoft's Visual C++ Compiler */
|
#ifdef _MSC_VER /* Microsoft's Visual C++ Compiler */
|
||||||
/* adjust a config.h from mingw32 to work with vc++ */
|
/* adjust a config.h from mingw32 to work with vc++ */
|
||||||
#ifdef HAVE_GCC
|
#ifdef HAVE_GCC
|
||||||
@ -159,6 +173,7 @@
|
|||||||
#else
|
#else
|
||||||
error Yap require integer types of the same size as a pointer
|
error Yap require integer types of the same size as a pointer
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SIZEOF_SHORT_INT==2
|
#if SIZEOF_SHORT_INT==2
|
||||||
/* */ typedef short int Short;
|
/* */ typedef short int Short;
|
||||||
/* */ typedef unsigned short int UShort;
|
/* */ typedef unsigned short int UShort;
|
||||||
@ -166,6 +181,7 @@ error Yap require integer types of the same size as a pointer
|
|||||||
#else
|
#else
|
||||||
error Yap requires integer types half the size of a pointer
|
error Yap requires integer types half the size of a pointer
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif SIZEOF_INT_P==8
|
#elif SIZEOF_INT_P==8
|
||||||
|
|
||||||
# if SIZEOF_INT==8
|
# if SIZEOF_INT==8
|
||||||
@ -183,6 +199,7 @@ error Yap require integer types of the same size as a pointer
|
|||||||
# else
|
# else
|
||||||
error Yap requires integer types of the same size as a pointer
|
error Yap requires integer types of the same size as a pointer
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if SIZEOF_SHORT_INT==4
|
# if SIZEOF_SHORT_INT==4
|
||||||
/* */ typedef short int Short;
|
/* */ typedef short int Short;
|
||||||
/* */ typedef unsigned short int UShort;
|
/* */ typedef unsigned short int UShort;
|
||||||
@ -194,10 +211,13 @@ error Yap requires integer types of the same size as a pointer
|
|||||||
# else
|
# else
|
||||||
error Yap requires integer types half the size of a pointer
|
error Yap requires integer types half the size of a pointer
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
error Yap requires pointers of size 4 or 8
|
error Yap requires pointers of size 4 or 8
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* */ typedef double Float;
|
/* */ typedef double Float;
|
||||||
|
|
||||||
#if SIZEOF_INT<SIZEOF_INT_P
|
#if SIZEOF_INT<SIZEOF_INT_P
|
||||||
@ -224,8 +244,10 @@ extern char Option[20];
|
|||||||
#define MMAP_ADDR 0x40000000
|
#define MMAP_ADDR 0x40000000
|
||||||
#elif mips
|
#elif mips
|
||||||
#define MMAP_ADDR 0x02000000
|
#define MMAP_ADDR 0x02000000
|
||||||
|
#elif __APPLE__
|
||||||
|
#define MMAP_ADDR 0x01000000
|
||||||
#else
|
#else
|
||||||
#define MMAP_ADDR 0x10010000
|
#define MMAP_ADDR 0x10000000
|
||||||
#endif
|
#endif
|
||||||
#elif __svr4__
|
#elif __svr4__
|
||||||
#define MMAP_ADDR 0x02000000
|
#define MMAP_ADDR 0x02000000
|
||||||
@ -370,8 +392,7 @@ extern sigjmp_buf RestartEnv; /* used to restart after an abort */
|
|||||||
/************ variables concerned with Error Handling *************/
|
/************ variables concerned with Error Handling *************/
|
||||||
|
|
||||||
/* Types of Errors */
|
/* Types of Errors */
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
NO_ERROR,
|
NO_ERROR,
|
||||||
FATAL_ERROR,
|
FATAL_ERROR,
|
||||||
INTERNAL_ERROR,
|
INTERNAL_ERROR,
|
||||||
@ -407,6 +428,7 @@ typedef enum
|
|||||||
EXISTENCE_ERROR_STREAM,
|
EXISTENCE_ERROR_STREAM,
|
||||||
INSTANTIATION_ERROR,
|
INSTANTIATION_ERROR,
|
||||||
PERMISSION_ERROR_ACCESS_PRIVATE_PROCEDURE,
|
PERMISSION_ERROR_ACCESS_PRIVATE_PROCEDURE,
|
||||||
|
PERMISSION_ERROR_NEW_ALIAS_FOR_STREAM,
|
||||||
PERMISSION_ERROR_CREATE_ARRAY,
|
PERMISSION_ERROR_CREATE_ARRAY,
|
||||||
PERMISSION_ERROR_CREATE_OPERATOR,
|
PERMISSION_ERROR_CREATE_OPERATOR,
|
||||||
PERMISSION_ERROR_INPUT_BINARY_STREAM,
|
PERMISSION_ERROR_INPUT_BINARY_STREAM,
|
||||||
@ -445,15 +467,13 @@ typedef enum
|
|||||||
TYPE_ERROR_UBYTE,
|
TYPE_ERROR_UBYTE,
|
||||||
TYPE_ERROR_VARIABLE,
|
TYPE_ERROR_VARIABLE,
|
||||||
UNKNOWN_ERROR
|
UNKNOWN_ERROR
|
||||||
}
|
} yap_error_number;
|
||||||
yap_error_number;
|
|
||||||
|
|
||||||
extern char *ErrorMessage; /* used to pass error messages */
|
extern char *ErrorMessage; /* used to pass error messages */
|
||||||
extern Term Error_Term; /* used to pass error terms */
|
extern Term Error_Term; /* used to pass error terms */
|
||||||
extern yap_error_number Error_TYPE; /* used to pass the error */
|
extern yap_error_number Error_TYPE; /* used to pass the error */
|
||||||
|
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
YAP_INT_BOUNDED_FLAG = 0,
|
YAP_INT_BOUNDED_FLAG = 0,
|
||||||
MAX_ARITY_FLAG = 1,
|
MAX_ARITY_FLAG = 1,
|
||||||
INTEGER_ROUNDING_FLAG = 2,
|
INTEGER_ROUNDING_FLAG = 2,
|
||||||
@ -470,8 +490,7 @@ typedef enum
|
|||||||
WRITE_QUOTED_STRING_FLAG = 13,
|
WRITE_QUOTED_STRING_FLAG = 13,
|
||||||
ALLOW_ASSERTING_STATIC_FLAG = 14,
|
ALLOW_ASSERTING_STATIC_FLAG = 14,
|
||||||
HALT_AFTER_CONSULT_FLAG = 15
|
HALT_AFTER_CONSULT_FLAG = 15
|
||||||
}
|
} yap_flags;
|
||||||
yap_flags;
|
|
||||||
|
|
||||||
#define STRING_AS_CHARS 0
|
#define STRING_AS_CHARS 0
|
||||||
#define STRING_AS_ATOM 2
|
#define STRING_AS_ATOM 2
|
||||||
@ -481,6 +500,7 @@ yap_flags;
|
|||||||
|
|
||||||
#define CPROLOG_CHARACTER_ESCAPES 0
|
#define CPROLOG_CHARACTER_ESCAPES 0
|
||||||
#define ISO_CHARACTER_ESCAPES 1
|
#define ISO_CHARACTER_ESCAPES 1
|
||||||
|
#define SICSTUS_CHARACTER_ESCAPES 2
|
||||||
|
|
||||||
#define NUMBER_OF_YAP_FLAGS HALT_AFTER_CONSULT_FLAG+1
|
#define NUMBER_OF_YAP_FLAGS HALT_AFTER_CONSULT_FLAG+1
|
||||||
|
|
||||||
@ -606,8 +626,7 @@ yap_flags;
|
|||||||
|
|
||||||
inline EXTERN Term * VarOfTerm(Term t);
|
inline EXTERN Term * VarOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN Term *
|
inline EXTERN Term * VarOfTerm(Term t)
|
||||||
VarOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term *) (t);
|
return (Term *) (t);
|
||||||
}
|
}
|
||||||
@ -617,8 +636,7 @@ VarOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkVarTerm(void);
|
inline EXTERN Term MkVarTerm(void);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkVarTerm()
|
||||||
MkVarTerm ()
|
|
||||||
{
|
{
|
||||||
return (Term) ((*H = 0, H++));
|
return (Term) ((*H = 0, H++));
|
||||||
}
|
}
|
||||||
@ -627,8 +645,7 @@ MkVarTerm ()
|
|||||||
|
|
||||||
inline EXTERN int IsUnboundVar(Term);
|
inline EXTERN int IsUnboundVar(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsUnboundVar(Term t)
|
||||||
IsUnboundVar (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (t == 0);
|
return (int) (t == 0);
|
||||||
}
|
}
|
||||||
@ -638,8 +655,7 @@ IsUnboundVar (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkVarTerm(void);
|
inline EXTERN Term MkVarTerm(void);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkVarTerm()
|
||||||
MkVarTerm ()
|
|
||||||
{
|
{
|
||||||
return (Term) ((*H = (CELL) H, H++));
|
return (Term) ((*H = (CELL) H, H++));
|
||||||
}
|
}
|
||||||
@ -648,8 +664,7 @@ MkVarTerm ()
|
|||||||
|
|
||||||
inline EXTERN int IsUnboundVar(Term);
|
inline EXTERN int IsUnboundVar(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsUnboundVar(Term t)
|
||||||
IsUnboundVar (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (*VarOfTerm(t) == (t));
|
return (int) (*VarOfTerm(t) == (t));
|
||||||
}
|
}
|
||||||
@ -659,8 +674,7 @@ IsUnboundVar (Term t)
|
|||||||
|
|
||||||
inline EXTERN CELL * PtrOfTerm(Term);
|
inline EXTERN CELL * PtrOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * PtrOfTerm(Term t)
|
||||||
PtrOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (*(CELL *)(t));
|
return (CELL *) (*(CELL *)(t));
|
||||||
}
|
}
|
||||||
@ -670,8 +684,7 @@ PtrOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Functor FunctorOfTerm(Term);
|
inline EXTERN Functor FunctorOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Functor
|
inline EXTERN Functor FunctorOfTerm(Term t)
|
||||||
FunctorOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Functor) (*RepAppl(t));
|
return (Functor) (*RepAppl(t));
|
||||||
}
|
}
|
||||||
@ -681,8 +694,7 @@ FunctorOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkAtomTerm(Atom);
|
inline EXTERN Term MkAtomTerm(Atom);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkAtomTerm(Atom a)
|
||||||
MkAtomTerm (Atom a)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGEDA(AtomTag, (CELL *)(a)-(CELL *)HEAP_INIT_BASE));
|
return (Term) (TAGGEDA(AtomTag, (CELL *)(a)-(CELL *)HEAP_INIT_BASE));
|
||||||
}
|
}
|
||||||
@ -691,8 +703,7 @@ MkAtomTerm (Atom a)
|
|||||||
|
|
||||||
inline EXTERN Atom AtomOfTerm(Term t);
|
inline EXTERN Atom AtomOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom AtomOfTerm(Term t)
|
||||||
AtomOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Atom) ((CELL *)HEAP_INIT_BASE+NonTagPart(t));
|
return (Atom) ((CELL *)HEAP_INIT_BASE+NonTagPart(t));
|
||||||
}
|
}
|
||||||
@ -702,8 +713,7 @@ AtomOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkAtomTerm(Atom);
|
inline EXTERN Term MkAtomTerm(Atom);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkAtomTerm(Atom a)
|
||||||
MkAtomTerm (Atom a)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGEDA(AtomTag, (a)));
|
return (Term) (TAGGEDA(AtomTag, (a)));
|
||||||
}
|
}
|
||||||
@ -712,8 +722,7 @@ MkAtomTerm (Atom a)
|
|||||||
|
|
||||||
inline EXTERN Atom AtomOfTerm(Term t);
|
inline EXTERN Atom AtomOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom AtomOfTerm(Term t)
|
||||||
AtomOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Atom) (NonTagPart(t));
|
return (Atom) (NonTagPart(t));
|
||||||
}
|
}
|
||||||
@ -723,8 +732,7 @@ AtomOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsAtomTerm(Term);
|
inline EXTERN int IsAtomTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsAtomTerm(Term t)
|
||||||
IsAtomTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (CHKTAG((t), AtomTag));
|
return (int) (CHKTAG((t), AtomTag));
|
||||||
}
|
}
|
||||||
@ -734,8 +742,7 @@ IsAtomTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkIntTerm(Int);
|
inline EXTERN Term MkIntTerm(Int);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkIntTerm(Int n)
|
||||||
MkIntTerm (Int n)
|
|
||||||
{
|
{
|
||||||
return (Term) (TAGGED(NumberTag, (n)));
|
return (Term) (TAGGED(NumberTag, (n)));
|
||||||
}
|
}
|
||||||
@ -748,8 +755,7 @@ MkIntTerm (Int n)
|
|||||||
|
|
||||||
inline EXTERN Term MkIntConstant(Int);
|
inline EXTERN Term MkIntConstant(Int);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkIntConstant(Int n)
|
||||||
MkIntConstant (Int n)
|
|
||||||
{
|
{
|
||||||
return (Term) (NONTAGGED(NumberTag, (n)));
|
return (Term) (NONTAGGED(NumberTag, (n)));
|
||||||
}
|
}
|
||||||
@ -758,8 +764,7 @@ MkIntConstant (Int n)
|
|||||||
|
|
||||||
inline EXTERN int IsIntTerm(Term);
|
inline EXTERN int IsIntTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsIntTerm(Term t)
|
||||||
IsIntTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (CHKTAG((t), NumberTag));
|
return (int) (CHKTAG((t), NumberTag));
|
||||||
}
|
}
|
||||||
@ -775,8 +780,8 @@ IsIntTerm (Term t)
|
|||||||
#ifdef TAGS_FAST_OPS
|
#ifdef TAGS_FAST_OPS
|
||||||
#define IntInBnd(X) (Unsigned( ( (Int)(X) >> (32-7) ) + 1) <= 1)
|
#define IntInBnd(X) (Unsigned( ( (Int)(X) >> (32-7) ) + 1) <= 1)
|
||||||
#else
|
#else
|
||||||
#define IntInBnd(X) ( (X) < (Int)MAX_ABS_INT && \
|
#define IntInBnd(X) ( (X) < MAX_ABS_INT && \
|
||||||
(X) > -(Int)MAX_ABS_INT-1 )
|
(X) > -MAX_ABS_INT-1L )
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef C_PROLOG
|
#ifdef C_PROLOG
|
||||||
@ -791,7 +796,8 @@ IsIntTerm (Term t)
|
|||||||
extern ADDR HeapBase,
|
extern ADDR HeapBase,
|
||||||
LocalBase,
|
LocalBase,
|
||||||
GlobalBase,
|
GlobalBase,
|
||||||
TrailBase, TrailTop, ForeignCodeBase, ForeignCodeTop, ForeignCodeMax;
|
TrailBase, TrailTop,
|
||||||
|
ForeignCodeBase, ForeignCodeTop, ForeignCodeMax;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -811,8 +817,7 @@ extern ADDR HeapBase,
|
|||||||
|
|
||||||
inline EXTERN Term MkIntegerTerm(Int);
|
inline EXTERN Term MkIntegerTerm(Int);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkIntegerTerm(Int n)
|
||||||
MkIntegerTerm (Int n)
|
|
||||||
{
|
{
|
||||||
return (Term) (IntInBnd(n) ? MkIntTerm(n) : MkLongIntTerm(n));
|
return (Term) (IntInBnd(n) ? MkIntTerm(n) : MkLongIntTerm(n));
|
||||||
}
|
}
|
||||||
@ -821,8 +826,7 @@ MkIntegerTerm (Int n)
|
|||||||
|
|
||||||
inline EXTERN int IsIntegerTerm(Term);
|
inline EXTERN int IsIntegerTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsIntegerTerm(Term t)
|
||||||
IsIntegerTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsIntTerm(t) || IsLongIntTerm(t));
|
return (int) (IsIntTerm(t) || IsLongIntTerm(t));
|
||||||
}
|
}
|
||||||
@ -831,8 +835,7 @@ IsIntegerTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Int IntegerOfTerm(Term);
|
inline EXTERN Int IntegerOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Int
|
inline EXTERN Int IntegerOfTerm(Term t)
|
||||||
IntegerOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Int) (IsIntTerm(t) ? IntOfTerm(t) : LongIntOfTerm(t));
|
return (Int) (IsIntTerm(t) ? IntOfTerm(t) : LongIntOfTerm(t));
|
||||||
}
|
}
|
||||||
@ -853,8 +856,7 @@ IntegerOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term ArgOfTerm(int i, Term t);
|
inline EXTERN Term ArgOfTerm(int i, Term t);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term ArgOfTerm(int i, Term t)
|
||||||
ArgOfTerm (int i, Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) (Derefa(RepAppl(t) + (i)));
|
return (Term) (Derefa(RepAppl(t) + (i)));
|
||||||
}
|
}
|
||||||
@ -863,8 +865,7 @@ ArgOfTerm (int i, Term t)
|
|||||||
|
|
||||||
inline EXTERN Term HeadOfTerm(Term);
|
inline EXTERN Term HeadOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term HeadOfTerm(Term t)
|
||||||
HeadOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) (Derefa(RepPair(t)));
|
return (Term) (Derefa(RepPair(t)));
|
||||||
}
|
}
|
||||||
@ -873,8 +874,7 @@ HeadOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term TailOfTerm(Term);
|
inline EXTERN Term TailOfTerm(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term TailOfTerm(Term t)
|
||||||
TailOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) (Derefa(RepPair(t) + 1));
|
return (Term) (Derefa(RepPair(t) + 1));
|
||||||
}
|
}
|
||||||
@ -884,8 +884,7 @@ TailOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term ArgOfTermCell(int i, Term t);
|
inline EXTERN Term ArgOfTermCell(int i, Term t);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term ArgOfTermCell(int i, Term t)
|
||||||
ArgOfTermCell (int i, Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) ((CELL)(RepAppl(t) + (i)));
|
return (Term) ((CELL)(RepAppl(t) + (i)));
|
||||||
}
|
}
|
||||||
@ -894,8 +893,7 @@ ArgOfTermCell (int i, Term t)
|
|||||||
|
|
||||||
inline EXTERN Term HeadOfTermCell(Term);
|
inline EXTERN Term HeadOfTermCell(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term HeadOfTermCell(Term t)
|
||||||
HeadOfTermCell (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) ((CELL)(RepPair(t)));
|
return (Term) ((CELL)(RepPair(t)));
|
||||||
}
|
}
|
||||||
@ -904,8 +902,7 @@ HeadOfTermCell (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term TailOfTermCell(Term);
|
inline EXTERN Term TailOfTermCell(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term TailOfTermCell(Term t)
|
||||||
TailOfTermCell (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) ((CELL)(RepPair(t) + 1));
|
return (Term) ((CELL)(RepPair(t) + 1));
|
||||||
}
|
}
|
||||||
@ -937,14 +934,12 @@ extern char version_number[];
|
|||||||
|
|
||||||
/* consult stack management */
|
/* consult stack management */
|
||||||
|
|
||||||
typedef union CONSULT_OBJ
|
typedef union CONSULT_OBJ {
|
||||||
{
|
|
||||||
char *filename;
|
char *filename;
|
||||||
int mode;
|
int mode;
|
||||||
Prop p;
|
Prop p;
|
||||||
union CONSULT_OBJ *c;
|
union CONSULT_OBJ *c;
|
||||||
}
|
} consult_obj;
|
||||||
consult_obj;
|
|
||||||
|
|
||||||
/********* common instructions codes*************************/
|
/********* common instructions codes*************************/
|
||||||
|
|
||||||
@ -953,12 +948,10 @@ consult_obj;
|
|||||||
#if USE_THREADED_CODE
|
#if USE_THREADED_CODE
|
||||||
|
|
||||||
/************ reverse lookup of instructions *****************/
|
/************ reverse lookup of instructions *****************/
|
||||||
typedef struct opcode_tab_entry
|
typedef struct opcode_tab_entry {
|
||||||
{
|
|
||||||
OPCODE opc;
|
OPCODE opc;
|
||||||
op_numbers opnum;
|
op_numbers opnum;
|
||||||
}
|
} opentry;
|
||||||
opentry;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -974,14 +967,16 @@ extern int CurFileNo;
|
|||||||
|
|
||||||
/********* Prolog may be in several modes *******************************/
|
/********* Prolog may be in several modes *******************************/
|
||||||
|
|
||||||
#define BootMode 1 /* if booting or restoring */
|
typedef enum {
|
||||||
#define UserMode 2 /* Normal mode */
|
BootMode = 1, /* if booting or restoring */
|
||||||
#define CritMode 4 /* If we are meddling with the heap */
|
UserMode = 2, /* Normal mode */
|
||||||
#define FullLMode 8 /* to access the hidden atoms chain */
|
CritMode = 4, /* If we are meddling with the heap */
|
||||||
#define AbortMode 16 /* expecting to abort */
|
AbortMode = 8, /* expecting to abort */
|
||||||
#define InterruptMode 32 /* under an interrupt */
|
InterruptMode = 16 /* under an interrupt */
|
||||||
|
} prolog_exec_mode;
|
||||||
|
|
||||||
extern int PrologMode;
|
extern prolog_exec_mode PrologMode;
|
||||||
|
extern int CritLocks;
|
||||||
|
|
||||||
#if SIZEOF_INT_P==4
|
#if SIZEOF_INT_P==4
|
||||||
#if defined(YAPOR) || defined(TABLING)
|
#if defined(YAPOR) || defined(TABLING)
|
||||||
@ -1022,17 +1017,46 @@ extern int yap_argc;
|
|||||||
GLOBAL_LOCKS_who_locked_heap = worker_id; \
|
GLOBAL_LOCKS_who_locked_heap = worker_id; \
|
||||||
} \
|
} \
|
||||||
PrologMode |= CritMode; \
|
PrologMode |= CritMode; \
|
||||||
|
CritLocks++; \
|
||||||
}
|
}
|
||||||
#define YAPLeaveCriticalSection() \
|
#define YAPLeaveCriticalSection() \
|
||||||
{ \
|
{ \
|
||||||
if ((PrologMode ^= CritMode) & AbortMode) Abort((char *)NIL); \
|
CritLocks--; \
|
||||||
|
if (!CritLocks) { \
|
||||||
|
PrologMode &= ~CritMode; \
|
||||||
|
if (PrologMode & InterruptMode) { \
|
||||||
|
PrologMode &= ~InterruptMode; \
|
||||||
|
ProcessSIGINT(); \
|
||||||
|
} \
|
||||||
|
if (PrologMode & AbortMode) { \
|
||||||
|
PrologMode &= ~AbortMode; \
|
||||||
|
Abort(""); \
|
||||||
|
} \
|
||||||
GLOBAL_LOCKS_who_locked_heap = MAX_WORKERS; \
|
GLOBAL_LOCKS_who_locked_heap = MAX_WORKERS; \
|
||||||
UNLOCK(GLOBAL_LOCKS_heap_access); \
|
UNLOCK(GLOBAL_LOCKS_heap_access); \
|
||||||
|
} \
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define YAPEnterCriticalSection() PrologMode |= CritMode;
|
#define YAPEnterCriticalSection() \
|
||||||
|
{ \
|
||||||
|
PrologMode |= CritMode; \
|
||||||
|
CritLocks++; \
|
||||||
|
}
|
||||||
#define YAPLeaveCriticalSection() \
|
#define YAPLeaveCriticalSection() \
|
||||||
if((PrologMode ^= CritMode) & AbortMode) Abort((char *)NIL);
|
{ \
|
||||||
|
CritLocks--; \
|
||||||
|
if (!CritLocks) { \
|
||||||
|
PrologMode &= ~CritMode; \
|
||||||
|
if (PrologMode & InterruptMode) { \
|
||||||
|
PrologMode &= ~InterruptMode; \
|
||||||
|
ProcessSIGINT(); \
|
||||||
|
} \
|
||||||
|
if (PrologMode & AbortMode) { \
|
||||||
|
PrologMode &= ~AbortMode; \
|
||||||
|
Abort(""); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
/* when we are calling the InitStaff procedures */
|
/* when we are calling the InitStaff procedures */
|
||||||
@ -1047,12 +1071,10 @@ extern int compile_arrays;
|
|||||||
|
|
||||||
/* I assume that the size of this structure is a multiple of the size
|
/* I assume that the size of this structure is a multiple of the size
|
||||||
of CELL!!! */
|
of CELL!!! */
|
||||||
typedef struct TIMED_MAVAR
|
typedef struct TIMED_MAVAR{
|
||||||
{
|
|
||||||
CELL value;
|
CELL value;
|
||||||
CELL clock;
|
CELL clock;
|
||||||
}
|
} timed_var;
|
||||||
timed_var;
|
|
||||||
|
|
||||||
/********* while debugging you may need some info ***********************/
|
/********* while debugging you may need some info ***********************/
|
||||||
|
|
||||||
@ -1077,3 +1099,4 @@ extern int snoozing;
|
|||||||
#if SBA
|
#if SBA
|
||||||
#include "sbaunify.h"
|
#include "sbaunify.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -28,8 +28,7 @@
|
|||||||
|
|
||||||
inline EXTERN Atom AbsAtom(AtomEntry * p);
|
inline EXTERN Atom AbsAtom(AtomEntry * p);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom AbsAtom(AtomEntry * p)
|
||||||
AbsAtom (AtomEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Atom) (Addr(p) - AtomBase);
|
return (Atom) (Addr(p) - AtomBase);
|
||||||
}
|
}
|
||||||
@ -38,8 +37,7 @@ AbsAtom (AtomEntry * p)
|
|||||||
|
|
||||||
inline EXTERN AtomEntry * RepAtom(Atom a);
|
inline EXTERN AtomEntry * RepAtom(Atom a);
|
||||||
|
|
||||||
inline EXTERN AtomEntry *
|
inline EXTERN AtomEntry * RepAtom(Atom a)
|
||||||
RepAtom (Atom a)
|
|
||||||
{
|
{
|
||||||
return (AtomEntry *) (AtomBase + Unsigned(a));
|
return (AtomEntry *) (AtomBase + Unsigned(a));
|
||||||
}
|
}
|
||||||
@ -49,8 +47,7 @@ RepAtom (Atom a)
|
|||||||
|
|
||||||
inline EXTERN Atom AbsAtom(AtomEntry * p);
|
inline EXTERN Atom AbsAtom(AtomEntry * p);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom AbsAtom(AtomEntry * p)
|
||||||
AbsAtom (AtomEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Atom) (p);
|
return (Atom) (p);
|
||||||
}
|
}
|
||||||
@ -59,8 +56,7 @@ AbsAtom (AtomEntry * p)
|
|||||||
|
|
||||||
inline EXTERN AtomEntry * RepAtom(Atom a);
|
inline EXTERN AtomEntry * RepAtom(Atom a);
|
||||||
|
|
||||||
inline EXTERN AtomEntry *
|
inline EXTERN AtomEntry * RepAtom(Atom a)
|
||||||
RepAtom (Atom a)
|
|
||||||
{
|
{
|
||||||
return (AtomEntry *) (a);
|
return (AtomEntry *) (a);
|
||||||
}
|
}
|
||||||
@ -72,8 +68,7 @@ RepAtom (Atom a)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsProp(PropEntry * p);
|
inline EXTERN Prop AbsProp(PropEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsProp(PropEntry * p)
|
||||||
AbsProp (PropEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -82,8 +77,7 @@ AbsProp (PropEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropEntry * RepProp(Prop p);
|
inline EXTERN PropEntry * RepProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN PropEntry *
|
inline EXTERN PropEntry * RepProp(Prop p)
|
||||||
RepProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (PropEntry *) (AtomBase+Unsigned(p));
|
return (PropEntry *) (AtomBase+Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -93,8 +87,7 @@ RepProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsProp(PropEntry * p);
|
inline EXTERN Prop AbsProp(PropEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsProp(PropEntry * p)
|
||||||
AbsProp (PropEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -103,8 +96,7 @@ AbsProp (PropEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropEntry * RepProp(Prop p);
|
inline EXTERN PropEntry * RepProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN PropEntry *
|
inline EXTERN PropEntry * RepProp(Prop p)
|
||||||
RepProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (PropEntry *) (p);
|
return (PropEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -116,8 +108,7 @@ RepProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN FunctorEntry * RepFunctorProp(Prop p);
|
inline EXTERN FunctorEntry * RepFunctorProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN FunctorEntry *
|
inline EXTERN FunctorEntry * RepFunctorProp(Prop p)
|
||||||
RepFunctorProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (FunctorEntry *) (AtomBase + Unsigned(p));
|
return (FunctorEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -126,8 +117,7 @@ RepFunctorProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsFunctorProp(FunctorEntry * p);
|
inline EXTERN Prop AbsFunctorProp(FunctorEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsFunctorProp(FunctorEntry * p)
|
||||||
AbsFunctorProp (FunctorEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -137,8 +127,7 @@ AbsFunctorProp (FunctorEntry * p)
|
|||||||
|
|
||||||
inline EXTERN FunctorEntry * RepFunctorProp(Prop p);
|
inline EXTERN FunctorEntry * RepFunctorProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN FunctorEntry *
|
inline EXTERN FunctorEntry * RepFunctorProp(Prop p)
|
||||||
RepFunctorProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (FunctorEntry *) (p);
|
return (FunctorEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -147,8 +136,7 @@ RepFunctorProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsFunctorProp(FunctorEntry * p);
|
inline EXTERN Prop AbsFunctorProp(FunctorEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsFunctorProp(FunctorEntry * p)
|
||||||
AbsFunctorProp (FunctorEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -157,20 +145,18 @@ AbsFunctorProp (FunctorEntry * p)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
inline EXTERN unsigned int ArityOfFunctor (Functor);
|
inline EXTERN Int ArityOfFunctor(Functor);
|
||||||
|
|
||||||
inline EXTERN unsigned int
|
inline EXTERN Int ArityOfFunctor(Functor Fun)
|
||||||
ArityOfFunctor (Functor Fun)
|
|
||||||
{
|
{
|
||||||
return (unsigned int) (((FunctorEntry *) Fun)->ArityOfFE);
|
return (Int) (((FunctorEntry *)Fun)->ArityOfFE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline EXTERN Atom NameOfFunctor(Functor);
|
inline EXTERN Atom NameOfFunctor(Functor);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom NameOfFunctor(Functor Fun)
|
||||||
NameOfFunctor (Functor Fun)
|
|
||||||
{
|
{
|
||||||
return (Atom) (((FunctorEntry *)Fun)->NameOfFE);
|
return (Atom) (((FunctorEntry *)Fun)->NameOfFE);
|
||||||
}
|
}
|
||||||
@ -180,8 +166,7 @@ NameOfFunctor (Functor Fun)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsFunctorProperty(int);
|
inline EXTERN PropFlags IsFunctorProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsFunctorProperty(int flags)
|
||||||
IsFunctorProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == FunctorProperty) );
|
return (PropFlags) ((flags == FunctorProperty) );
|
||||||
}
|
}
|
||||||
@ -203,20 +188,17 @@ IsFunctorProperty (int flags)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Module property */
|
/* Module property */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
SMALLUNSGN IndexOfMod; /* indec in module table */
|
SMALLUNSGN IndexOfMod; /* indec in module table */
|
||||||
}
|
} ModEntry;
|
||||||
ModEntry;
|
|
||||||
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN ModEntry * RepModProp(Prop p);
|
inline EXTERN ModEntry * RepModProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ModEntry *
|
inline EXTERN ModEntry * RepModProp(Prop p)
|
||||||
RepModProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ModEntry *) (AtomBase + Unsigned(p));
|
return (ModEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -225,8 +207,7 @@ RepModProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsModProp(ModEntry * p);
|
inline EXTERN Prop AbsModProp(ModEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsModProp(ModEntry * p)
|
||||||
AbsModProp (ModEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -236,8 +217,7 @@ AbsModProp (ModEntry * p)
|
|||||||
|
|
||||||
inline EXTERN ModEntry * RepModProp(Prop p);
|
inline EXTERN ModEntry * RepModProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ModEntry *
|
inline EXTERN ModEntry * RepModProp(Prop p)
|
||||||
RepModProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ModEntry *) (p);
|
return (ModEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -246,8 +226,7 @@ RepModProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsModProp(ModEntry * p);
|
inline EXTERN Prop AbsModProp(ModEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsModProp(ModEntry * p)
|
||||||
AbsModProp (ModEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -260,8 +239,7 @@ AbsModProp (ModEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsModProperty(int);
|
inline EXTERN PropFlags IsModProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsModProperty(int flags)
|
||||||
IsModProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == ModProperty));
|
return (PropFlags) ((flags == ModProperty));
|
||||||
}
|
}
|
||||||
@ -269,22 +247,19 @@ IsModProperty (int flags)
|
|||||||
|
|
||||||
|
|
||||||
/* operator property entry structure */
|
/* operator property entry structure */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
rwlock_t OpRWLock; /* a read-write lock to protect the entry */
|
rwlock_t OpRWLock; /* a read-write lock to protect the entry */
|
||||||
#endif
|
#endif
|
||||||
BITS16 Prefix, Infix, Posfix; /* precedences */
|
BITS16 Prefix, Infix, Posfix; /* precedences */
|
||||||
}
|
} OpEntry;
|
||||||
OpEntry;
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN OpEntry * RepOpProp(Prop p);
|
inline EXTERN OpEntry * RepOpProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN OpEntry *
|
inline EXTERN OpEntry * RepOpProp(Prop p)
|
||||||
RepOpProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (OpEntry *) (AtomBase + Unsigned(p));
|
return (OpEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -293,8 +268,7 @@ RepOpProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsOpProp(OpEntry * p);
|
inline EXTERN Prop AbsOpProp(OpEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsOpProp(OpEntry * p)
|
||||||
AbsOpProp (OpEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -304,8 +278,7 @@ AbsOpProp (OpEntry * p)
|
|||||||
|
|
||||||
inline EXTERN OpEntry * RepOpProp(Prop p);
|
inline EXTERN OpEntry * RepOpProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN OpEntry *
|
inline EXTERN OpEntry * RepOpProp(Prop p)
|
||||||
RepOpProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (OpEntry *) (p);
|
return (OpEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -314,8 +287,7 @@ RepOpProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsOpProp(OpEntry * p);
|
inline EXTERN Prop AbsOpProp(OpEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsOpProp(OpEntry * p)
|
||||||
AbsOpProp (OpEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -327,8 +299,7 @@ AbsOpProp (OpEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsOpProperty(int);
|
inline EXTERN PropFlags IsOpProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsOpProperty(int flags)
|
||||||
IsOpProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == OpProperty) );
|
return (PropFlags) ((flags == OpProperty) );
|
||||||
}
|
}
|
||||||
@ -343,29 +314,24 @@ IsOpProperty (int flags)
|
|||||||
typedef union arith_ret *eval_ret;
|
typedef union arith_ret *eval_ret;
|
||||||
|
|
||||||
/* expression property entry structure */
|
/* expression property entry structure */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
unsigned int ArityOfEE;
|
unsigned int ArityOfEE;
|
||||||
BITS16 ENoOfEE;
|
BITS16 ENoOfEE;
|
||||||
BITS16 FlagsOfEE;
|
BITS16 FlagsOfEE;
|
||||||
/* operations that implement the expression */
|
/* operations that implement the expression */
|
||||||
union
|
union {
|
||||||
{
|
|
||||||
blob_type (*constant)(eval_ret);
|
blob_type (*constant)(eval_ret);
|
||||||
blob_type (*unary)(Term, eval_ret);
|
blob_type (*unary)(Term, eval_ret);
|
||||||
blob_type (*binary)(Term, Term, eval_ret);
|
blob_type (*binary)(Term, Term, eval_ret);
|
||||||
}
|
} FOfEE;
|
||||||
FOfEE;
|
} ExpEntry;
|
||||||
}
|
|
||||||
ExpEntry;
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN ExpEntry * RepExpProp(Prop p);
|
inline EXTERN ExpEntry * RepExpProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ExpEntry *
|
inline EXTERN ExpEntry * RepExpProp(Prop p)
|
||||||
RepExpProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ExpEntry *) (AtomBase + Unsigned(p));
|
return (ExpEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -374,8 +340,7 @@ RepExpProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsExpProp(ExpEntry * p);
|
inline EXTERN Prop AbsExpProp(ExpEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsExpProp(ExpEntry * p)
|
||||||
AbsExpProp (ExpEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -385,8 +350,7 @@ AbsExpProp (ExpEntry * p)
|
|||||||
|
|
||||||
inline EXTERN ExpEntry * RepExpProp(Prop p);
|
inline EXTERN ExpEntry * RepExpProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ExpEntry *
|
inline EXTERN ExpEntry * RepExpProp(Prop p)
|
||||||
RepExpProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ExpEntry *) (p);
|
return (ExpEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -395,8 +359,7 @@ RepExpProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsExpProp(ExpEntry * p);
|
inline EXTERN Prop AbsExpProp(ExpEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsExpProp(ExpEntry * p)
|
||||||
AbsExpProp (ExpEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -409,8 +372,7 @@ AbsExpProp (ExpEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsExpProperty(int);
|
inline EXTERN PropFlags IsExpProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsExpProperty(int flags)
|
||||||
IsExpProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == ExpProperty) );
|
return (PropFlags) ((flags == ExpProperty) );
|
||||||
}
|
}
|
||||||
@ -419,22 +381,19 @@ IsExpProperty (int flags)
|
|||||||
|
|
||||||
|
|
||||||
/* value property entry structure */
|
/* value property entry structure */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
rwlock_t VRWLock; /* a read-write lock to protect the entry */
|
rwlock_t VRWLock; /* a read-write lock to protect the entry */
|
||||||
#endif
|
#endif
|
||||||
Term ValueOfVE; /* (atomic) value associated with the atom */
|
Term ValueOfVE; /* (atomic) value associated with the atom */
|
||||||
}
|
} ValEntry;
|
||||||
ValEntry;
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN ValEntry * RepValProp(Prop p);
|
inline EXTERN ValEntry * RepValProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ValEntry *
|
inline EXTERN ValEntry * RepValProp(Prop p)
|
||||||
RepValProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ValEntry *) (AtomBase + Unsigned(p));
|
return (ValEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -443,8 +402,7 @@ RepValProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsValProp(ValEntry * p);
|
inline EXTERN Prop AbsValProp(ValEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsValProp(ValEntry * p)
|
||||||
AbsValProp (ValEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -454,8 +412,7 @@ AbsValProp (ValEntry * p)
|
|||||||
|
|
||||||
inline EXTERN ValEntry * RepValProp(Prop p);
|
inline EXTERN ValEntry * RepValProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ValEntry *
|
inline EXTERN ValEntry * RepValProp(Prop p)
|
||||||
RepValProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ValEntry *) (p);
|
return (ValEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -464,8 +421,7 @@ RepValProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsValProp(ValEntry * p);
|
inline EXTERN Prop AbsValProp(ValEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsValProp(ValEntry * p)
|
||||||
AbsValProp (ValEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -477,8 +433,7 @@ AbsValProp (ValEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsValProperty(int);
|
inline EXTERN PropFlags IsValProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsValProperty(int flags)
|
||||||
IsValProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == ValProperty) );
|
return (PropFlags) ((flags == ValProperty) );
|
||||||
}
|
}
|
||||||
@ -493,8 +448,7 @@ IsValProperty (int flags)
|
|||||||
C_Preds are things write, read, ... implemented in C. In this case
|
C_Preds are things write, read, ... implemented in C. In this case
|
||||||
CodeOfPred holds the address of the correspondent C-function.
|
CodeOfPred holds the address of the correspondent C-function.
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
SourcePredFlag = 0x400000L, /* static predicate with source declaration */
|
SourcePredFlag = 0x400000L, /* static predicate with source declaration */
|
||||||
MetaPredFlag = 0x200000L, /* predicate subject to a meta declaration */
|
MetaPredFlag = 0x200000L, /* predicate subject to a meta declaration */
|
||||||
SyncPredFlag = 0x100000L, /* has to synch before it can execute*/
|
SyncPredFlag = 0x100000L, /* has to synch before it can execute*/
|
||||||
@ -519,12 +473,10 @@ typedef enum
|
|||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
ProfiledPredFlag = 0x000010L, /* pred is being profiled */
|
ProfiledPredFlag = 0x000010L, /* pred is being profiled */
|
||||||
LogUpdatePredFlag= 0x000008L /* dynamic predicate with log. upd. sem.*/
|
LogUpdatePredFlag= 0x000008L /* dynamic predicate with log. upd. sem.*/
|
||||||
}
|
} pred_flag;
|
||||||
pred_flag;
|
|
||||||
|
|
||||||
/* profile data */
|
/* profile data */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar lock; /* a simple lock to protect this entry */
|
lockvar lock; /* a simple lock to protect this entry */
|
||||||
#endif
|
#endif
|
||||||
@ -532,11 +484,9 @@ typedef struct
|
|||||||
Int NOfHeadSuccesses; /* nbr of times head unification succeeded*/
|
Int NOfHeadSuccesses; /* nbr of times head unification succeeded*/
|
||||||
Int NOfRetries; /* nbr of times a clause for the pred
|
Int NOfRetries; /* nbr of times a clause for the pred
|
||||||
was retried */
|
was retried */
|
||||||
}
|
} profile_data;
|
||||||
profile_data;
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
unsigned int ArityOfPE; /* arity of property */
|
unsigned int ArityOfPE; /* arity of property */
|
||||||
@ -556,16 +506,14 @@ typedef struct
|
|||||||
OPCODE OpcodeOfPred; /* undefcode, indexcode, spycode, .... */
|
OPCODE OpcodeOfPred; /* undefcode, indexcode, spycode, .... */
|
||||||
profile_data StatisticsForPred; /* enable profiling for predicate */
|
profile_data StatisticsForPred; /* enable profiling for predicate */
|
||||||
SMALLUNSGN ModuleOfPred; /* module for this definition */
|
SMALLUNSGN ModuleOfPred; /* module for this definition */
|
||||||
}
|
} PredEntry;
|
||||||
PredEntry;
|
|
||||||
#define PEProp ((PropFlags)(0x0000))
|
#define PEProp ((PropFlags)(0x0000))
|
||||||
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN PredEntry * RepPredProp(Prop p);
|
inline EXTERN PredEntry * RepPredProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN PredEntry *
|
inline EXTERN PredEntry * RepPredProp(Prop p)
|
||||||
RepPredProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (PredEntry *) (AtomBase + Unsigned(p));
|
return (PredEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -574,8 +522,7 @@ RepPredProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsPredProp(PredEntry * p);
|
inline EXTERN Prop AbsPredProp(PredEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsPredProp(PredEntry * p)
|
||||||
AbsPredProp (PredEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -585,8 +532,7 @@ AbsPredProp (PredEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PredEntry * RepPredProp(Prop p);
|
inline EXTERN PredEntry * RepPredProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN PredEntry *
|
inline EXTERN PredEntry * RepPredProp(Prop p)
|
||||||
RepPredProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (PredEntry *) (p);
|
return (PredEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -595,8 +541,7 @@ RepPredProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsPredProp(PredEntry * p);
|
inline EXTERN Prop AbsPredProp(PredEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsPredProp(PredEntry * p)
|
||||||
AbsPredProp (PredEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -607,8 +552,7 @@ AbsPredProp (PredEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsPredProperty(int);
|
inline EXTERN PropFlags IsPredProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsPredProperty(int flags)
|
||||||
IsPredProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == PEProp) );
|
return (PropFlags) ((flags == PEProp) );
|
||||||
}
|
}
|
||||||
@ -620,12 +564,10 @@ IsPredProperty (int flags)
|
|||||||
#define MAX_C_PREDS 360
|
#define MAX_C_PREDS 360
|
||||||
#define MAX_CMP_FUNCS 20
|
#define MAX_CMP_FUNCS 20
|
||||||
|
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
PredEntry *p;
|
PredEntry *p;
|
||||||
CmpPredicate f;
|
CmpPredicate f;
|
||||||
}
|
} cmp_entry;
|
||||||
cmp_entry;
|
|
||||||
|
|
||||||
extern CPredicate c_predicates[MAX_C_PREDS];
|
extern CPredicate c_predicates[MAX_C_PREDS];
|
||||||
extern cmp_entry cmp_funcs[MAX_CMP_FUNCS];
|
extern cmp_entry cmp_funcs[MAX_CMP_FUNCS];
|
||||||
@ -633,8 +575,7 @@ extern cmp_entry cmp_funcs[MAX_CMP_FUNCS];
|
|||||||
|
|
||||||
/* Flags for code or dbase entry */
|
/* Flags for code or dbase entry */
|
||||||
/* There are several flags for code and data base entries */
|
/* There are several flags for code and data base entries */
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
GcFoundMask = 0x10000, /* informs this is a dynamic predicate */
|
GcFoundMask = 0x10000, /* informs this is a dynamic predicate */
|
||||||
DynamicMask = 0x8000, /* informs this is a dynamic predicate */
|
DynamicMask = 0x8000, /* informs this is a dynamic predicate */
|
||||||
InUseMask = 0x4000, /* informs this block is being used */
|
InUseMask = 0x4000, /* informs this block is being used */
|
||||||
@ -646,15 +587,13 @@ typedef enum
|
|||||||
StaticMask = 0x0100, /* dealing with static predicates */
|
StaticMask = 0x0100, /* dealing with static predicates */
|
||||||
SpiedMask = 0x0080 /* this predicate is being spied */
|
SpiedMask = 0x0080 /* this predicate is being spied */
|
||||||
/* other flags belong to DB */
|
/* other flags belong to DB */
|
||||||
}
|
} dbentry_flags;
|
||||||
dbentry_flags;
|
|
||||||
|
|
||||||
/* *********************** DBrefs **************************************/
|
/* *********************** DBrefs **************************************/
|
||||||
|
|
||||||
#define KEEP_ENTRY_AGE 1
|
#define KEEP_ENTRY_AGE 1
|
||||||
|
|
||||||
typedef struct DB_STRUCT
|
typedef struct DB_STRUCT {
|
||||||
{
|
|
||||||
Functor id; /* allow pointers to this struct to id */
|
Functor id; /* allow pointers to this struct to id */
|
||||||
/* as dbref */
|
/* as dbref */
|
||||||
Term EntryTerm; /* cell bound to itself */
|
Term EntryTerm; /* cell bound to itself */
|
||||||
@ -679,8 +618,7 @@ typedef struct DB_STRUCT
|
|||||||
CELL NOfCells; /* Size of Term */
|
CELL NOfCells; /* Size of Term */
|
||||||
CELL Entry; /* entry point */
|
CELL Entry; /* entry point */
|
||||||
Term Contents[MIN_ARRAY]; /* stored term */
|
Term Contents[MIN_ARRAY]; /* stored term */
|
||||||
}
|
} DBStruct;
|
||||||
DBStruct;
|
|
||||||
|
|
||||||
#define DBStructFlagsToDBStruct(X) ((DBRef)((X) - (CELL) &(((DBRef) NIL)->Flags)))
|
#define DBStructFlagsToDBStruct(X) ((DBRef)((X) - (CELL) &(((DBRef) NIL)->Flags)))
|
||||||
|
|
||||||
@ -702,8 +640,7 @@ typedef DBStruct *DBRef;
|
|||||||
|
|
||||||
inline EXTERN int IsDBRefTerm(Term);
|
inline EXTERN int IsDBRefTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsDBRefTerm(Term t)
|
||||||
IsDBRefTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorDBRef);
|
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorDBRef);
|
||||||
}
|
}
|
||||||
@ -712,8 +649,7 @@ IsDBRefTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term MkDBRefTerm(DBRef);
|
inline EXTERN Term MkDBRefTerm(DBRef);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term MkDBRefTerm(DBRef p)
|
||||||
MkDBRefTerm (DBRef p)
|
|
||||||
{
|
{
|
||||||
return (Term) ((AbsAppl(((CELL *)(p)))));
|
return (Term) ((AbsAppl(((CELL *)(p)))));
|
||||||
}
|
}
|
||||||
@ -722,8 +658,7 @@ MkDBRefTerm (DBRef p)
|
|||||||
|
|
||||||
inline EXTERN DBRef DBRefOfTerm(Term t);
|
inline EXTERN DBRef DBRefOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN DBRef
|
inline EXTERN DBRef DBRefOfTerm(Term t)
|
||||||
DBRefOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (DBRef) (((DBRef)(RepAppl(t))));
|
return (DBRef) (((DBRef)(RepAppl(t))));
|
||||||
}
|
}
|
||||||
@ -733,8 +668,7 @@ DBRefOfTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN int IsRefTerm(Term);
|
inline EXTERN int IsRefTerm(Term);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsRefTerm(Term t)
|
||||||
IsRefTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorDBRef);
|
return (int) (IsApplTerm(t) && FunctorOfTerm(t) == FunctorDBRef);
|
||||||
}
|
}
|
||||||
@ -743,16 +677,14 @@ IsRefTerm (Term t)
|
|||||||
|
|
||||||
inline EXTERN CODEADDR RefOfTerm(Term t);
|
inline EXTERN CODEADDR RefOfTerm(Term t);
|
||||||
|
|
||||||
inline EXTERN CODEADDR
|
inline EXTERN CODEADDR RefOfTerm(Term t)
|
||||||
RefOfTerm (Term t)
|
|
||||||
{
|
{
|
||||||
return (CODEADDR) (DBRefOfTerm(t));
|
return (CODEADDR) (DBRefOfTerm(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct struct_dbentry
|
typedef struct struct_dbentry {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
unsigned int ArityOfDB; /* kind of property */
|
unsigned int ArityOfDB; /* kind of property */
|
||||||
@ -768,13 +700,11 @@ typedef struct struct_dbentry
|
|||||||
#else
|
#else
|
||||||
DBRef FirstNEr; /* first non-erased DBase entry */
|
DBRef FirstNEr; /* first non-erased DBase entry */
|
||||||
#endif /* KEEP_ENTRY_AGE */
|
#endif /* KEEP_ENTRY_AGE */
|
||||||
}
|
} DBEntry;
|
||||||
DBEntry;
|
|
||||||
typedef DBEntry *DBProp;
|
typedef DBEntry *DBProp;
|
||||||
#define DBProperty ((PropFlags)0x8000)
|
#define DBProperty ((PropFlags)0x8000)
|
||||||
|
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
unsigned int ArityOfDB; /* kind of property */
|
unsigned int ArityOfDB; /* kind of property */
|
||||||
@ -787,8 +717,7 @@ typedef struct
|
|||||||
SMALLUNSGN ModuleOfDB; /* module for this definition */
|
SMALLUNSGN ModuleOfDB; /* module for this definition */
|
||||||
Int NOfEntries; /* age counter */
|
Int NOfEntries; /* age counter */
|
||||||
DBRef Index; /* age counter */
|
DBRef Index; /* age counter */
|
||||||
}
|
} LogUpdDBEntry;
|
||||||
LogUpdDBEntry;
|
|
||||||
typedef LogUpdDBEntry *LogUpdDBProp;
|
typedef LogUpdDBEntry *LogUpdDBProp;
|
||||||
#define LogUpdDBBit 0x1
|
#define LogUpdDBBit 0x1
|
||||||
#define CodeDBBit 0x2
|
#define CodeDBBit 0x2
|
||||||
@ -800,8 +729,7 @@ typedef LogUpdDBEntry *LogUpdDBProp;
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsDBProperty(int);
|
inline EXTERN PropFlags IsDBProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsDBProperty(int flags)
|
||||||
IsDBProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) (((flags & ~(LogUpdDBBit|CodeDBBit)) == DBProperty) );
|
return (PropFlags) (((flags & ~(LogUpdDBBit|CodeDBBit)) == DBProperty) );
|
||||||
}
|
}
|
||||||
@ -812,8 +740,7 @@ IsDBProperty (int flags)
|
|||||||
|
|
||||||
inline EXTERN DBProp RepDBProp(Prop p);
|
inline EXTERN DBProp RepDBProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN DBProp
|
inline EXTERN DBProp RepDBProp(Prop p)
|
||||||
RepDBProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (DBProp) (AtomBase + Unsigned(p));
|
return (DBProp) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -822,8 +749,7 @@ RepDBProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsDBProp(DBProp p);
|
inline EXTERN Prop AbsDBProp(DBProp p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsDBProp(DBProp p)
|
||||||
AbsDBProp (DBProp p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -833,8 +759,7 @@ AbsDBProp (DBProp p)
|
|||||||
|
|
||||||
inline EXTERN DBProp RepDBProp(Prop p);
|
inline EXTERN DBProp RepDBProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN DBProp
|
inline EXTERN DBProp RepDBProp(Prop p)
|
||||||
RepDBProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (DBProp) (p);
|
return (DBProp) (p);
|
||||||
}
|
}
|
||||||
@ -843,8 +768,7 @@ RepDBProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsDBProp(DBProp p);
|
inline EXTERN Prop AbsDBProp(DBProp p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsDBProp(DBProp p)
|
||||||
AbsDBProp (DBProp p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -854,8 +778,7 @@ AbsDBProp (DBProp p)
|
|||||||
|
|
||||||
|
|
||||||
/* These are the actual flags for DataBase terms */
|
/* These are the actual flags for DataBase terms */
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
DBAtomic = 0x1,
|
DBAtomic = 0x1,
|
||||||
DBVar = 0x2,
|
DBVar = 0x2,
|
||||||
DBNoVars = 0x4,
|
DBNoVars = 0x4,
|
||||||
@ -863,14 +786,11 @@ typedef enum
|
|||||||
DBCode = 0x10,
|
DBCode = 0x10,
|
||||||
DBNoCode = 0x20,
|
DBNoCode = 0x20,
|
||||||
DBWithRefs = 0x40
|
DBWithRefs = 0x40
|
||||||
}
|
} db_term_flags;
|
||||||
db_term_flags;
|
|
||||||
|
|
||||||
#define MaxModules 255
|
#define MaxModules 255
|
||||||
extern SMALLUNSGN CurrentModule;
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
Atom KeyOfBB; /* functor for this property */
|
Atom KeyOfBB; /* functor for this property */
|
||||||
@ -879,16 +799,14 @@ typedef struct
|
|||||||
rwlock_t BBRWLock; /* a read-write lock to protect the entry */
|
rwlock_t BBRWLock; /* a read-write lock to protect the entry */
|
||||||
#endif
|
#endif
|
||||||
SMALLUNSGN ModuleOfBB; /* module for this definition */
|
SMALLUNSGN ModuleOfBB; /* module for this definition */
|
||||||
}
|
} BlackBoardEntry;
|
||||||
BlackBoardEntry;
|
|
||||||
typedef BlackBoardEntry *BBProp;
|
typedef BlackBoardEntry *BBProp;
|
||||||
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN BlackBoardEntry * RepBBProp(Prop p);
|
inline EXTERN BlackBoardEntry * RepBBProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN BlackBoardEntry *
|
inline EXTERN BlackBoardEntry * RepBBProp(Prop p)
|
||||||
RepBBProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (BlackBoardEntry *) (AtomBase + Unsigned(p));
|
return (BlackBoardEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -897,8 +815,7 @@ RepBBProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsBBProp(BlackBoardEntry * p);
|
inline EXTERN Prop AbsBBProp(BlackBoardEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsBBProp(BlackBoardEntry * p)
|
||||||
AbsBBProp (BlackBoardEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -908,8 +825,7 @@ AbsBBProp (BlackBoardEntry * p)
|
|||||||
|
|
||||||
inline EXTERN BlackBoardEntry * RepBBProp(Prop p);
|
inline EXTERN BlackBoardEntry * RepBBProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN BlackBoardEntry *
|
inline EXTERN BlackBoardEntry * RepBBProp(Prop p)
|
||||||
RepBBProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (BlackBoardEntry *) (p);
|
return (BlackBoardEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -918,8 +834,7 @@ RepBBProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsBBProp(BlackBoardEntry * p);
|
inline EXTERN Prop AbsBBProp(BlackBoardEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsBBProp(BlackBoardEntry * p)
|
||||||
AbsBBProp (BlackBoardEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -932,8 +847,7 @@ AbsBBProp (BlackBoardEntry * p)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsBBProperty(int);
|
inline EXTERN PropFlags IsBBProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsBBProperty(int flags)
|
||||||
IsBBProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == BBProperty));
|
return (PropFlags) ((flags == BBProperty));
|
||||||
}
|
}
|
||||||
@ -943,8 +857,7 @@ IsBBProperty (int flags)
|
|||||||
|
|
||||||
/* array property entry structure */
|
/* array property entry structure */
|
||||||
/* first case is for dynamic arrays */
|
/* first case is for dynamic arrays */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
Int ArrayEArity; /* Arity of Array (positive) */
|
Int ArrayEArity; /* Arity of Array (positive) */
|
||||||
@ -952,14 +865,12 @@ typedef struct
|
|||||||
rwlock_t ArRWLock; /* a read-write lock to protect the entry */
|
rwlock_t ArRWLock; /* a read-write lock to protect the entry */
|
||||||
#endif
|
#endif
|
||||||
Term ValueOfVE; /* Pointer to the actual array */
|
Term ValueOfVE; /* Pointer to the actual array */
|
||||||
}
|
} ArrayEntry;
|
||||||
ArrayEntry;
|
|
||||||
|
|
||||||
/* second case is for static arrays */
|
/* second case is for static arrays */
|
||||||
|
|
||||||
/* first, the valid types */
|
/* first, the valid types */
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
array_of_ints,
|
array_of_ints,
|
||||||
array_of_chars,
|
array_of_chars,
|
||||||
array_of_uchars,
|
array_of_uchars,
|
||||||
@ -968,11 +879,9 @@ typedef enum
|
|||||||
array_of_atoms,
|
array_of_atoms,
|
||||||
array_of_dbrefs,
|
array_of_dbrefs,
|
||||||
array_of_terms
|
array_of_terms
|
||||||
}
|
} static_array_types;
|
||||||
static_array_types;
|
|
||||||
|
|
||||||
typedef union
|
typedef union {
|
||||||
{
|
|
||||||
Int *ints;
|
Int *ints;
|
||||||
char *chars;
|
char *chars;
|
||||||
unsigned char *uchars;
|
unsigned char *uchars;
|
||||||
@ -981,12 +890,10 @@ typedef union
|
|||||||
Term *atoms;
|
Term *atoms;
|
||||||
Term *dbrefs;
|
Term *dbrefs;
|
||||||
DBRef *terms;
|
DBRef *terms;
|
||||||
}
|
} statarray_elements;
|
||||||
statarray_elements;
|
|
||||||
|
|
||||||
/* next, the actual data structure */
|
/* next, the actual data structure */
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
|
||||||
Prop NextOfPE; /* used to chain properties */
|
Prop NextOfPE; /* used to chain properties */
|
||||||
PropFlags KindOfPE; /* kind of property */
|
PropFlags KindOfPE; /* kind of property */
|
||||||
Int ArrayEArity; /* Arity of Array (negative) */
|
Int ArrayEArity; /* Arity of Array (negative) */
|
||||||
@ -995,16 +902,14 @@ typedef struct
|
|||||||
#endif
|
#endif
|
||||||
static_array_types ArrayType; /* Type of Array Elements. */
|
static_array_types ArrayType; /* Type of Array Elements. */
|
||||||
statarray_elements ValueOfVE; /* Pointer to the Array itself */
|
statarray_elements ValueOfVE; /* Pointer to the Array itself */
|
||||||
}
|
} StaticArrayEntry;
|
||||||
StaticArrayEntry;
|
|
||||||
|
|
||||||
|
|
||||||
#if USE_OFFSETS_IN_PROPS
|
#if USE_OFFSETS_IN_PROPS
|
||||||
|
|
||||||
inline EXTERN ArrayEntry * RepArrayProp(Prop p);
|
inline EXTERN ArrayEntry * RepArrayProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ArrayEntry *
|
inline EXTERN ArrayEntry * RepArrayProp(Prop p)
|
||||||
RepArrayProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ArrayEntry *) (AtomBase + Unsigned(p));
|
return (ArrayEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -1013,8 +918,7 @@ RepArrayProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsArrayProp(ArrayEntry * p);
|
inline EXTERN Prop AbsArrayProp(ArrayEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsArrayProp(ArrayEntry * p)
|
||||||
AbsArrayProp (ArrayEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -1023,8 +927,7 @@ AbsArrayProp (ArrayEntry * p)
|
|||||||
|
|
||||||
inline EXTERN StaticArrayEntry * RepStaticArrayProp(Prop p);
|
inline EXTERN StaticArrayEntry * RepStaticArrayProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN StaticArrayEntry *
|
inline EXTERN StaticArrayEntry * RepStaticArrayProp(Prop p)
|
||||||
RepStaticArrayProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (StaticArrayEntry *) (AtomBase + Unsigned(p));
|
return (StaticArrayEntry *) (AtomBase + Unsigned(p));
|
||||||
}
|
}
|
||||||
@ -1033,8 +936,7 @@ RepStaticArrayProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsStaticArrayProp(StaticArrayEntry * p);
|
inline EXTERN Prop AbsStaticArrayProp(StaticArrayEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsStaticArrayProp(StaticArrayEntry * p)
|
||||||
AbsStaticArrayProp (StaticArrayEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (Addr(p)-AtomBase);
|
return (Prop) (Addr(p)-AtomBase);
|
||||||
}
|
}
|
||||||
@ -1044,8 +946,7 @@ AbsStaticArrayProp (StaticArrayEntry * p)
|
|||||||
|
|
||||||
inline EXTERN ArrayEntry * RepArrayProp(Prop p);
|
inline EXTERN ArrayEntry * RepArrayProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN ArrayEntry *
|
inline EXTERN ArrayEntry * RepArrayProp(Prop p)
|
||||||
RepArrayProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (ArrayEntry *) (p);
|
return (ArrayEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -1054,8 +955,7 @@ RepArrayProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsArrayProp(ArrayEntry * p);
|
inline EXTERN Prop AbsArrayProp(ArrayEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsArrayProp(ArrayEntry * p)
|
||||||
AbsArrayProp (ArrayEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -1064,8 +964,7 @@ AbsArrayProp (ArrayEntry * p)
|
|||||||
|
|
||||||
inline EXTERN StaticArrayEntry * RepStaticArrayProp(Prop p);
|
inline EXTERN StaticArrayEntry * RepStaticArrayProp(Prop p);
|
||||||
|
|
||||||
inline EXTERN StaticArrayEntry *
|
inline EXTERN StaticArrayEntry * RepStaticArrayProp(Prop p)
|
||||||
RepStaticArrayProp (Prop p)
|
|
||||||
{
|
{
|
||||||
return (StaticArrayEntry *) (p);
|
return (StaticArrayEntry *) (p);
|
||||||
}
|
}
|
||||||
@ -1074,8 +973,7 @@ RepStaticArrayProp (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Prop AbsStaticArrayProp(StaticArrayEntry * p);
|
inline EXTERN Prop AbsStaticArrayProp(StaticArrayEntry * p);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop AbsStaticArrayProp(StaticArrayEntry * p)
|
||||||
AbsStaticArrayProp (StaticArrayEntry * p)
|
|
||||||
{
|
{
|
||||||
return (Prop) (p);
|
return (Prop) (p);
|
||||||
}
|
}
|
||||||
@ -1087,8 +985,7 @@ AbsStaticArrayProp (StaticArrayEntry * p)
|
|||||||
|
|
||||||
inline EXTERN int ArrayIsDynamic(ArrayEntry *);
|
inline EXTERN int ArrayIsDynamic(ArrayEntry *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int ArrayIsDynamic(ArrayEntry * are)
|
||||||
ArrayIsDynamic (ArrayEntry * are)
|
|
||||||
{
|
{
|
||||||
return (int) (((are)->ArrayEArity > 0 ));
|
return (int) (((are)->ArrayEArity > 0 ));
|
||||||
}
|
}
|
||||||
@ -1098,8 +995,7 @@ ArrayIsDynamic (ArrayEntry * are)
|
|||||||
|
|
||||||
inline EXTERN PropFlags IsArrayProperty(int);
|
inline EXTERN PropFlags IsArrayProperty(int);
|
||||||
|
|
||||||
inline EXTERN PropFlags
|
inline EXTERN PropFlags IsArrayProperty(int flags)
|
||||||
IsArrayProperty (int flags)
|
|
||||||
{
|
{
|
||||||
return (PropFlags) ((flags == ArrayProperty) );
|
return (PropFlags) ((flags == ArrayProperty) );
|
||||||
}
|
}
|
||||||
@ -1127,20 +1023,16 @@ Atom STD_PROTO (GetOp, (OpEntry *, int *, int));
|
|||||||
#ifndef inline
|
#ifndef inline
|
||||||
|
|
||||||
/* look property list of atom a for kind */
|
/* look property list of atom a for kind */
|
||||||
EXTERN inline Prop
|
EXTERN inline Prop GetAProp(a,kind)
|
||||||
GetAProp (a, kind)
|
|
||||||
Atom a;
|
Atom a;
|
||||||
PropFlags kind;
|
PropFlags kind;
|
||||||
{
|
{ register PropEntry *pp = RepProp(RepAtom(a)->PropOfAE);
|
||||||
register PropEntry *pp = RepProp (RepAtom (a)->PropOfAE);
|
while( !EndOfPAEntr(pp) && pp->KindOfPE!=kind) pp=RepProp(pp->NextOfPE);
|
||||||
while (!EndOfPAEntr (pp) && pp->KindOfPE != kind)
|
|
||||||
pp = RepProp (pp->NextOfPE);
|
|
||||||
return(AbsProp(pp));
|
return(AbsProp(pp));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get predicate entry for ap/arity; create it if neccessary. */
|
/* get predicate entry for ap/arity; create it if neccessary. */
|
||||||
EXTERN inline Prop
|
EXTERN inline Prop PredProp(ap,arity)
|
||||||
PredProp (ap, arity)
|
|
||||||
Atom ap;
|
Atom ap;
|
||||||
unsigned int arity;
|
unsigned int arity;
|
||||||
{
|
{
|
||||||
@ -1149,8 +1041,7 @@ PredProp (ap, arity)
|
|||||||
while(p0 && (p->KindOfPE != 00 || p->ArityOfPE != arity ||
|
while(p0 && (p->KindOfPE != 00 || p->ArityOfPE != arity ||
|
||||||
(p->ModuleOfPred && p->ModuleOfPred != CurrentModule)))
|
(p->ModuleOfPred && p->ModuleOfPred != CurrentModule)))
|
||||||
p = RepPredProp(p0=p->NextOfPE);
|
p = RepPredProp(p0=p->NextOfPE);
|
||||||
if (p0)
|
if(p0) return(p0);
|
||||||
return (p0);
|
|
||||||
YAPEnterCriticalSection();
|
YAPEnterCriticalSection();
|
||||||
p = (PredEntry *) AllocAtomSpace(sizeof(*p));
|
p = (PredEntry *) AllocAtomSpace(sizeof(*p));
|
||||||
p->KindOfPE = PEProp;
|
p->KindOfPE = PEProp;
|
||||||
@ -1165,37 +1056,29 @@ PredProp (ap, arity)
|
|||||||
p->StatisticsForPred.NOfHeadSuccesses = 0;
|
p->StatisticsForPred.NOfHeadSuccesses = 0;
|
||||||
p->StatisticsForPred.NOfRetries = 0;
|
p->StatisticsForPred.NOfRetries = 0;
|
||||||
p->TrueCodeOfPred = p->CodeOfPred = (CODEADDR)(&(p->DefaultCodeOfPred));
|
p->TrueCodeOfPred = p->CodeOfPred = (CODEADDR)(&(p->DefaultCodeOfPred));
|
||||||
if (arity == 0)
|
if (arity==0) p->FunctorOfPred = (Functor) ap;
|
||||||
p->FunctorOfPred = (Functor) ap;
|
else p->FunctorOfPred = MkFunctor(ap,arity);
|
||||||
else
|
|
||||||
p->FunctorOfPred = MkFunctor (ap, arity);
|
|
||||||
p->NextOfPE = RepAtom(ap)->PropOfAE;
|
p->NextOfPE = RepAtom(ap)->PropOfAE;
|
||||||
RepAtom(ap)->PropOfAE = p0 = AbsPredProp(p);
|
RepAtom(ap)->PropOfAE = p0 = AbsPredProp(p);
|
||||||
YAPLeaveCriticalSection();
|
YAPLeaveCriticalSection();
|
||||||
return(p0);
|
return(p0);
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERN inline Term
|
EXTERN inline Term GetValue(a)
|
||||||
GetValue (a)
|
|
||||||
Atom a;
|
Atom a;
|
||||||
{
|
{
|
||||||
Prop p0 = GetAProp(a,ValProperty);
|
Prop p0 = GetAProp(a,ValProperty);
|
||||||
if (p0 == 0)
|
if(p0==0) return(MkAtomTerm(AtomNil));
|
||||||
return (MkAtomTerm (AtomNil));
|
|
||||||
return(RepValProp(p0)->ValueOfVE);
|
return(RepValProp(p0)->ValueOfVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EXTERN inline void
|
EXTERN inline void PutValue(a,v)
|
||||||
PutValue (a, v)
|
Atom a; Term v;
|
||||||
Atom a;
|
|
||||||
Term v;
|
|
||||||
{
|
{
|
||||||
Prop p0 = GetAProp(a,ValProperty);
|
Prop p0 = GetAProp(a,ValProperty);
|
||||||
if (p0)
|
if(p0) RepValProp(p0)->ValueOfVE = v;
|
||||||
RepValProp (p0)->ValueOfVE = v;
|
else {
|
||||||
else
|
|
||||||
{
|
|
||||||
ValEntry *p;
|
ValEntry *p;
|
||||||
YAPEnterCriticalSection();
|
YAPEnterCriticalSection();
|
||||||
p = (ValEntry *) AllocAtomSpace(sizeof(ValEntry));
|
p = (ValEntry *) AllocAtomSpace(sizeof(ValEntry));
|
||||||
|
@ -24,7 +24,12 @@
|
|||||||
|
|
||||||
|
|
||||||
/* The difference between the old stack pointers and the new ones */
|
/* The difference between the old stack pointers and the new ones */
|
||||||
extern Int HDiff, GDiff, LDiff, TrDiff, XDiff, DelayDiff;
|
extern Int HDiff,
|
||||||
|
GDiff,
|
||||||
|
LDiff,
|
||||||
|
TrDiff,
|
||||||
|
XDiff,
|
||||||
|
DelayDiff;
|
||||||
|
|
||||||
/* The old stack pointers */
|
/* The old stack pointers */
|
||||||
extern CELL *OldASP, *OldLCL0;
|
extern CELL *OldASP, *OldLCL0;
|
||||||
@ -38,8 +43,7 @@ extern ADDR OldHeapBase, OldHeapTop;
|
|||||||
|
|
||||||
inline EXTERN int IsHeapP(CELL *);
|
inline EXTERN int IsHeapP(CELL *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsHeapP(CELL * ptr)
|
||||||
IsHeapP (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (int) ((ptr >= (CELL *)HeapBase && ptr <= (CELL *)HeapTop) );
|
return (int) ((ptr >= (CELL *)HeapBase && ptr <= (CELL *)HeapTop) );
|
||||||
}
|
}
|
||||||
@ -50,8 +54,7 @@ IsHeapP (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL * PtoGloAdjust(CELL *);
|
inline EXTERN CELL * PtoGloAdjust(CELL *);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * PtoGloAdjust(CELL * ptr)
|
||||||
PtoGloAdjust (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (((CELL *)(CharP(ptr) + GDiff)) );
|
return (CELL *) (((CELL *)(CharP(ptr) + GDiff)) );
|
||||||
}
|
}
|
||||||
@ -60,8 +63,7 @@ PtoGloAdjust (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL * PtoDelayAdjust(CELL *);
|
inline EXTERN CELL * PtoDelayAdjust(CELL *);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * PtoDelayAdjust(CELL * ptr)
|
||||||
PtoDelayAdjust (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (((CELL *)(CharP(ptr) + DelayDiff)) );
|
return (CELL *) (((CELL *)(CharP(ptr) + DelayDiff)) );
|
||||||
}
|
}
|
||||||
@ -70,8 +72,7 @@ PtoDelayAdjust (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN tr_fr_ptr PtoTRAdjust(tr_fr_ptr);
|
inline EXTERN tr_fr_ptr PtoTRAdjust(tr_fr_ptr);
|
||||||
|
|
||||||
inline EXTERN tr_fr_ptr
|
inline EXTERN tr_fr_ptr PtoTRAdjust(tr_fr_ptr ptr)
|
||||||
PtoTRAdjust (tr_fr_ptr ptr)
|
|
||||||
{
|
{
|
||||||
return (tr_fr_ptr) (((tr_fr_ptr)(CharP(ptr) + TrDiff)) );
|
return (tr_fr_ptr) (((tr_fr_ptr)(CharP(ptr) + TrDiff)) );
|
||||||
}
|
}
|
||||||
@ -80,8 +81,7 @@ PtoTRAdjust (tr_fr_ptr ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL * CellPtoTRAdjust(CELL *);
|
inline EXTERN CELL * CellPtoTRAdjust(CELL *);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * CellPtoTRAdjust(CELL * ptr)
|
||||||
CellPtoTRAdjust (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (((CELL *)(CharP(ptr) + TrDiff)) );
|
return (CELL *) (((CELL *)(CharP(ptr) + TrDiff)) );
|
||||||
}
|
}
|
||||||
@ -90,8 +90,7 @@ CellPtoTRAdjust (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL * PtoLocAdjust(CELL *);
|
inline EXTERN CELL * PtoLocAdjust(CELL *);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * PtoLocAdjust(CELL * ptr)
|
||||||
PtoLocAdjust (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (((CELL *)(CharP(ptr) + LDiff)) );
|
return (CELL *) (((CELL *)(CharP(ptr) + LDiff)) );
|
||||||
}
|
}
|
||||||
@ -100,8 +99,7 @@ PtoLocAdjust (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN choiceptr ChoicePtrAdjust(choiceptr);
|
inline EXTERN choiceptr ChoicePtrAdjust(choiceptr);
|
||||||
|
|
||||||
inline EXTERN choiceptr
|
inline EXTERN choiceptr ChoicePtrAdjust(choiceptr ptr)
|
||||||
ChoicePtrAdjust (choiceptr ptr)
|
|
||||||
{
|
{
|
||||||
return (choiceptr) (((choiceptr)(CharP(ptr) + LDiff)) );
|
return (choiceptr) (((choiceptr)(CharP(ptr) + LDiff)) );
|
||||||
}
|
}
|
||||||
@ -111,8 +109,7 @@ ChoicePtrAdjust (choiceptr ptr)
|
|||||||
|
|
||||||
inline EXTERN choiceptr ConsumerChoicePtrAdjust(choiceptr);
|
inline EXTERN choiceptr ConsumerChoicePtrAdjust(choiceptr);
|
||||||
|
|
||||||
inline EXTERN choiceptr
|
inline EXTERN choiceptr ConsumerChoicePtrAdjust(choiceptr ptr)
|
||||||
ConsumerChoicePtrAdjust (choiceptr ptr)
|
|
||||||
{
|
{
|
||||||
return (choiceptr) (((choiceptr)(CharP(ptr) + LDiff)) );
|
return (choiceptr) (((choiceptr)(CharP(ptr) + LDiff)) );
|
||||||
}
|
}
|
||||||
@ -121,8 +118,7 @@ ConsumerChoicePtrAdjust (choiceptr ptr)
|
|||||||
|
|
||||||
inline EXTERN choiceptr GeneratorChoicePtrAdjust(choiceptr);
|
inline EXTERN choiceptr GeneratorChoicePtrAdjust(choiceptr);
|
||||||
|
|
||||||
inline EXTERN choiceptr
|
inline EXTERN choiceptr GeneratorChoicePtrAdjust(choiceptr ptr)
|
||||||
GeneratorChoicePtrAdjust (choiceptr ptr)
|
|
||||||
{
|
{
|
||||||
return (choiceptr) (((choiceptr)(CharP(ptr) + LDiff)) );
|
return (choiceptr) (((choiceptr)(CharP(ptr) + LDiff)) );
|
||||||
}
|
}
|
||||||
@ -133,8 +129,7 @@ GeneratorChoicePtrAdjust (choiceptr ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL GlobalAdjust(CELL);
|
inline EXTERN CELL GlobalAdjust(CELL);
|
||||||
|
|
||||||
inline EXTERN CELL
|
inline EXTERN CELL GlobalAdjust(CELL val)
|
||||||
GlobalAdjust (CELL val)
|
|
||||||
{
|
{
|
||||||
return (CELL) ((val+GDiff) );
|
return (CELL) ((val+GDiff) );
|
||||||
}
|
}
|
||||||
@ -143,8 +138,7 @@ GlobalAdjust (CELL val)
|
|||||||
|
|
||||||
inline EXTERN CELL DelayAdjust(CELL);
|
inline EXTERN CELL DelayAdjust(CELL);
|
||||||
|
|
||||||
inline EXTERN CELL
|
inline EXTERN CELL DelayAdjust(CELL val)
|
||||||
DelayAdjust (CELL val)
|
|
||||||
{
|
{
|
||||||
return (CELL) ((val+DelayDiff) );
|
return (CELL) ((val+DelayDiff) );
|
||||||
}
|
}
|
||||||
@ -153,8 +147,7 @@ DelayAdjust (CELL val)
|
|||||||
|
|
||||||
inline EXTERN ADDR GlobalAddrAdjust(ADDR);
|
inline EXTERN ADDR GlobalAddrAdjust(ADDR);
|
||||||
|
|
||||||
inline EXTERN ADDR
|
inline EXTERN ADDR GlobalAddrAdjust(ADDR ptr)
|
||||||
GlobalAddrAdjust (ADDR ptr)
|
|
||||||
{
|
{
|
||||||
return (ADDR) ((ptr+GDiff) );
|
return (ADDR) ((ptr+GDiff) );
|
||||||
}
|
}
|
||||||
@ -163,8 +156,7 @@ GlobalAddrAdjust (ADDR ptr)
|
|||||||
|
|
||||||
inline EXTERN ADDR DelayAddrAdjust(ADDR);
|
inline EXTERN ADDR DelayAddrAdjust(ADDR);
|
||||||
|
|
||||||
inline EXTERN ADDR
|
inline EXTERN ADDR DelayAddrAdjust(ADDR ptr)
|
||||||
DelayAddrAdjust (ADDR ptr)
|
|
||||||
{
|
{
|
||||||
return (ADDR) ((ptr+DelayDiff) );
|
return (ADDR) ((ptr+DelayDiff) );
|
||||||
}
|
}
|
||||||
@ -173,8 +165,7 @@ DelayAddrAdjust (ADDR ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL LocalAdjust(CELL);
|
inline EXTERN CELL LocalAdjust(CELL);
|
||||||
|
|
||||||
inline EXTERN CELL
|
inline EXTERN CELL LocalAdjust(CELL val)
|
||||||
LocalAdjust (CELL val)
|
|
||||||
{
|
{
|
||||||
return (CELL) ((val+LDiff) );
|
return (CELL) ((val+LDiff) );
|
||||||
}
|
}
|
||||||
@ -183,8 +174,7 @@ LocalAdjust (CELL val)
|
|||||||
|
|
||||||
inline EXTERN ADDR LocalAddrAdjust(ADDR);
|
inline EXTERN ADDR LocalAddrAdjust(ADDR);
|
||||||
|
|
||||||
inline EXTERN ADDR
|
inline EXTERN ADDR LocalAddrAdjust(ADDR ptr)
|
||||||
LocalAddrAdjust (ADDR ptr)
|
|
||||||
{
|
{
|
||||||
return (ADDR) ((ptr+LDiff) );
|
return (ADDR) ((ptr+LDiff) );
|
||||||
}
|
}
|
||||||
@ -193,8 +183,7 @@ LocalAddrAdjust (ADDR ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL TrailAdjust(CELL);
|
inline EXTERN CELL TrailAdjust(CELL);
|
||||||
|
|
||||||
inline EXTERN CELL
|
inline EXTERN CELL TrailAdjust(CELL val)
|
||||||
TrailAdjust (CELL val)
|
|
||||||
{
|
{
|
||||||
return (CELL) ((val+TrDiff) );
|
return (CELL) ((val+TrDiff) );
|
||||||
}
|
}
|
||||||
@ -203,8 +192,7 @@ TrailAdjust (CELL val)
|
|||||||
|
|
||||||
inline EXTERN ADDR TrailAddrAdjust(ADDR);
|
inline EXTERN ADDR TrailAddrAdjust(ADDR);
|
||||||
|
|
||||||
inline EXTERN ADDR
|
inline EXTERN ADDR TrailAddrAdjust(ADDR ptr)
|
||||||
TrailAddrAdjust (ADDR ptr)
|
|
||||||
{
|
{
|
||||||
return (ADDR) ((ptr+TrDiff) );
|
return (ADDR) ((ptr+TrDiff) );
|
||||||
}
|
}
|
||||||
@ -214,8 +202,7 @@ TrailAddrAdjust (ADDR ptr)
|
|||||||
|
|
||||||
inline EXTERN Functor FuncAdjust(Functor);
|
inline EXTERN Functor FuncAdjust(Functor);
|
||||||
|
|
||||||
inline EXTERN Functor
|
inline EXTERN Functor FuncAdjust(Functor f)
|
||||||
FuncAdjust (Functor f)
|
|
||||||
{
|
{
|
||||||
return (Functor) ((Functor)(CharP(f)+HDiff) );
|
return (Functor) ((Functor)(CharP(f)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -224,8 +211,7 @@ FuncAdjust (Functor f)
|
|||||||
|
|
||||||
inline EXTERN CELL * CellPtoHeapAdjust(CELL *);
|
inline EXTERN CELL * CellPtoHeapAdjust(CELL *);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * CellPtoHeapAdjust(CELL * ptr)
|
||||||
CellPtoHeapAdjust (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (((CELL *)(CharP(ptr) + HDiff)) );
|
return (CELL *) (((CELL *)(CharP(ptr) + HDiff)) );
|
||||||
}
|
}
|
||||||
@ -235,8 +221,7 @@ CellPtoHeapAdjust (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN Atom AtomAdjust(Atom);
|
inline EXTERN Atom AtomAdjust(Atom);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom AtomAdjust(Atom at)
|
||||||
AtomAdjust (Atom at)
|
|
||||||
{
|
{
|
||||||
return (Atom) ((at) );
|
return (Atom) ((at) );
|
||||||
}
|
}
|
||||||
@ -245,8 +230,7 @@ AtomAdjust (Atom at)
|
|||||||
|
|
||||||
inline EXTERN Term AtomTermAdjust(Term);
|
inline EXTERN Term AtomTermAdjust(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AtomTermAdjust(Term at)
|
||||||
AtomTermAdjust (Term at)
|
|
||||||
{
|
{
|
||||||
return (Term) ((at) );
|
return (Term) ((at) );
|
||||||
}
|
}
|
||||||
@ -255,8 +239,7 @@ AtomTermAdjust (Term at)
|
|||||||
|
|
||||||
inline EXTERN Prop PropAdjust(Prop);
|
inline EXTERN Prop PropAdjust(Prop);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop PropAdjust(Prop p)
|
||||||
PropAdjust (Prop p)
|
|
||||||
{
|
{
|
||||||
return (Prop) ((p) );
|
return (Prop) ((p) );
|
||||||
}
|
}
|
||||||
@ -266,8 +249,7 @@ PropAdjust (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Atom AtomAdjust(Atom);
|
inline EXTERN Atom AtomAdjust(Atom);
|
||||||
|
|
||||||
inline EXTERN Atom
|
inline EXTERN Atom AtomAdjust(Atom at)
|
||||||
AtomAdjust (Atom at)
|
|
||||||
{
|
{
|
||||||
return (Atom) ((Atom)(CharP(at)+HDiff) );
|
return (Atom) ((Atom)(CharP(at)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -277,8 +259,7 @@ AtomAdjust (Atom at)
|
|||||||
|
|
||||||
inline EXTERN Term AtomTermAdjust(Term);
|
inline EXTERN Term AtomTermAdjust(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AtomTermAdjust(Term at)
|
||||||
AtomTermAdjust (Term at)
|
|
||||||
{
|
{
|
||||||
return (Term) ((at) );
|
return (Term) ((at) );
|
||||||
}
|
}
|
||||||
@ -288,8 +269,7 @@ AtomTermAdjust (Term at)
|
|||||||
|
|
||||||
inline EXTERN Term AtomTermAdjust(Term);
|
inline EXTERN Term AtomTermAdjust(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term AtomTermAdjust(Term at)
|
||||||
AtomTermAdjust (Term at)
|
|
||||||
{
|
{
|
||||||
return (Term) (MkAtomTerm((Atom)(CharP(AtomOfTerm(at)+HDiff))) );
|
return (Term) (MkAtomTerm((Atom)(CharP(AtomOfTerm(at)+HDiff))) );
|
||||||
}
|
}
|
||||||
@ -299,8 +279,7 @@ AtomTermAdjust (Term at)
|
|||||||
|
|
||||||
inline EXTERN Prop PropAdjust(Prop);
|
inline EXTERN Prop PropAdjust(Prop);
|
||||||
|
|
||||||
inline EXTERN Prop
|
inline EXTERN Prop PropAdjust(Prop p)
|
||||||
PropAdjust (Prop p)
|
|
||||||
{
|
{
|
||||||
return (Prop) ((Prop)(CharP(p)+HDiff) );
|
return (Prop) ((Prop)(CharP(p)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -311,8 +290,7 @@ PropAdjust (Prop p)
|
|||||||
|
|
||||||
inline EXTERN Term BlobTermAdjust(Term);
|
inline EXTERN Term BlobTermAdjust(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term BlobTermAdjust(Term t)
|
||||||
BlobTermAdjust (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t-HDiff) );
|
return (Term) ((t-HDiff) );
|
||||||
}
|
}
|
||||||
@ -322,8 +300,7 @@ BlobTermAdjust (Term t)
|
|||||||
|
|
||||||
inline EXTERN Term BlobTermAdjust(Term);
|
inline EXTERN Term BlobTermAdjust(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term BlobTermAdjust(Term t)
|
||||||
BlobTermAdjust (Term t)
|
|
||||||
{
|
{
|
||||||
return (Term) ((t+HDiff) );
|
return (Term) ((t+HDiff) );
|
||||||
}
|
}
|
||||||
@ -333,8 +310,7 @@ BlobTermAdjust (Term t)
|
|||||||
|
|
||||||
inline EXTERN AtomEntry * AtomEntryAdjust(AtomEntry *);
|
inline EXTERN AtomEntry * AtomEntryAdjust(AtomEntry *);
|
||||||
|
|
||||||
inline EXTERN AtomEntry *
|
inline EXTERN AtomEntry * AtomEntryAdjust(AtomEntry * at)
|
||||||
AtomEntryAdjust (AtomEntry * at)
|
|
||||||
{
|
{
|
||||||
return (AtomEntry *) ((AtomEntry *)(CharP(at)+HDiff) );
|
return (AtomEntry *) ((AtomEntry *)(CharP(at)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -343,8 +319,7 @@ AtomEntryAdjust (AtomEntry * at)
|
|||||||
|
|
||||||
inline EXTERN consult_obj * ConsultObjAdjust(consult_obj *);
|
inline EXTERN consult_obj * ConsultObjAdjust(consult_obj *);
|
||||||
|
|
||||||
inline EXTERN consult_obj *
|
inline EXTERN consult_obj * ConsultObjAdjust(consult_obj * co)
|
||||||
ConsultObjAdjust (consult_obj * co)
|
|
||||||
{
|
{
|
||||||
return (consult_obj *) ((consult_obj *)(CharP(co)+HDiff) );
|
return (consult_obj *) ((consult_obj *)(CharP(co)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -353,8 +328,7 @@ ConsultObjAdjust (consult_obj * co)
|
|||||||
|
|
||||||
inline EXTERN DBRef DBRefAdjust(DBRef);
|
inline EXTERN DBRef DBRefAdjust(DBRef);
|
||||||
|
|
||||||
inline EXTERN DBRef
|
inline EXTERN DBRef DBRefAdjust(DBRef dbr)
|
||||||
DBRefAdjust (DBRef dbr)
|
|
||||||
{
|
{
|
||||||
return (DBRef) ((DBRef)(CharP(dbr)+HDiff) );
|
return (DBRef) ((DBRef)(CharP(dbr)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -363,8 +337,7 @@ DBRefAdjust (DBRef dbr)
|
|||||||
|
|
||||||
inline EXTERN Term CodeAdjust(Term);
|
inline EXTERN Term CodeAdjust(Term);
|
||||||
|
|
||||||
inline EXTERN Term
|
inline EXTERN Term CodeAdjust(Term dbr)
|
||||||
CodeAdjust (Term dbr)
|
|
||||||
{
|
{
|
||||||
return (Term) (((Term)(dbr)+HDiff) );
|
return (Term) (((Term)(dbr)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -373,8 +346,7 @@ CodeAdjust (Term dbr)
|
|||||||
|
|
||||||
inline EXTERN ADDR AddrAdjust(ADDR);
|
inline EXTERN ADDR AddrAdjust(ADDR);
|
||||||
|
|
||||||
inline EXTERN ADDR
|
inline EXTERN ADDR AddrAdjust(ADDR addr)
|
||||||
AddrAdjust (ADDR addr)
|
|
||||||
{
|
{
|
||||||
return (ADDR) ((ADDR)(CharP(addr)+HDiff) );
|
return (ADDR) ((ADDR)(CharP(addr)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -383,8 +355,7 @@ AddrAdjust (ADDR addr)
|
|||||||
|
|
||||||
inline EXTERN CODEADDR CodeAddrAdjust(CODEADDR);
|
inline EXTERN CODEADDR CodeAddrAdjust(CODEADDR);
|
||||||
|
|
||||||
inline EXTERN CODEADDR
|
inline EXTERN CODEADDR CodeAddrAdjust(CODEADDR addr)
|
||||||
CodeAddrAdjust (CODEADDR addr)
|
|
||||||
{
|
{
|
||||||
return (CODEADDR) ((CODEADDR)(CharP(addr)+HDiff) );
|
return (CODEADDR) ((CODEADDR)(CharP(addr)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -393,8 +364,7 @@ CodeAddrAdjust (CODEADDR addr)
|
|||||||
|
|
||||||
inline EXTERN BlockHeader * BlockAdjust(BlockHeader *);
|
inline EXTERN BlockHeader * BlockAdjust(BlockHeader *);
|
||||||
|
|
||||||
inline EXTERN BlockHeader *
|
inline EXTERN BlockHeader * BlockAdjust(BlockHeader * addr)
|
||||||
BlockAdjust (BlockHeader * addr)
|
|
||||||
{
|
{
|
||||||
return (BlockHeader *) ((BlockHeader *)(CharP(addr)+HDiff) );
|
return (BlockHeader *) ((BlockHeader *)(CharP(addr)+HDiff) );
|
||||||
}
|
}
|
||||||
@ -403,8 +373,7 @@ BlockAdjust (BlockHeader * addr)
|
|||||||
|
|
||||||
inline EXTERN yamop * PtoOpAdjust(yamop *);
|
inline EXTERN yamop * PtoOpAdjust(yamop *);
|
||||||
|
|
||||||
inline EXTERN yamop *
|
inline EXTERN yamop * PtoOpAdjust(yamop * ptr)
|
||||||
PtoOpAdjust (yamop * ptr)
|
|
||||||
{
|
{
|
||||||
return (yamop *) (((yamop *)(CharP(ptr) + HDiff)) );
|
return (yamop *) (((yamop *)(CharP(ptr) + HDiff)) );
|
||||||
}
|
}
|
||||||
@ -413,8 +382,7 @@ PtoOpAdjust (yamop * ptr)
|
|||||||
|
|
||||||
inline EXTERN CELL * PtoHeapCellAdjust(CELL *);
|
inline EXTERN CELL * PtoHeapCellAdjust(CELL *);
|
||||||
|
|
||||||
inline EXTERN CELL *
|
inline EXTERN CELL * PtoHeapCellAdjust(CELL * ptr)
|
||||||
PtoHeapCellAdjust (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (CELL *) (((CELL *)(CharP(ptr) + HDiff)) );
|
return (CELL *) (((CELL *)(CharP(ptr) + HDiff)) );
|
||||||
}
|
}
|
||||||
@ -423,8 +391,7 @@ PtoHeapCellAdjust (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN PredEntry * PtoPredAdjust(PredEntry *);
|
inline EXTERN PredEntry * PtoPredAdjust(PredEntry *);
|
||||||
|
|
||||||
inline EXTERN PredEntry *
|
inline EXTERN PredEntry * PtoPredAdjust(PredEntry * ptr)
|
||||||
PtoPredAdjust (PredEntry * ptr)
|
|
||||||
{
|
{
|
||||||
return (PredEntry *) (((CELL *)(CharP(ptr) + HDiff)) );
|
return (PredEntry *) (((CELL *)(CharP(ptr) + HDiff)) );
|
||||||
}
|
}
|
||||||
@ -434,8 +401,7 @@ PtoPredAdjust (PredEntry * ptr)
|
|||||||
|
|
||||||
inline EXTERN AREG XAdjust(AREG);
|
inline EXTERN AREG XAdjust(AREG);
|
||||||
|
|
||||||
inline EXTERN AREG
|
inline EXTERN AREG XAdjust(AREG reg)
|
||||||
XAdjust (AREG reg)
|
|
||||||
{
|
{
|
||||||
return (AREG) ((AREG)((reg)+XDiff) );
|
return (AREG) ((AREG)((reg)+XDiff) );
|
||||||
}
|
}
|
||||||
@ -445,8 +411,7 @@ XAdjust (AREG reg)
|
|||||||
|
|
||||||
inline EXTERN AREG XAdjust(AREG);
|
inline EXTERN AREG XAdjust(AREG);
|
||||||
|
|
||||||
inline EXTERN AREG
|
inline EXTERN AREG XAdjust(AREG reg)
|
||||||
XAdjust (AREG reg)
|
|
||||||
{
|
{
|
||||||
return (AREG) ((reg) );
|
return (AREG) ((reg) );
|
||||||
}
|
}
|
||||||
@ -456,8 +421,7 @@ XAdjust (AREG reg)
|
|||||||
|
|
||||||
inline EXTERN YREG YAdjust(YREG);
|
inline EXTERN YREG YAdjust(YREG);
|
||||||
|
|
||||||
inline EXTERN YREG
|
inline EXTERN YREG YAdjust(YREG reg)
|
||||||
YAdjust (YREG reg)
|
|
||||||
{
|
{
|
||||||
return (YREG) ((reg) );
|
return (YREG) ((reg) );
|
||||||
}
|
}
|
||||||
@ -467,8 +431,7 @@ YAdjust (YREG reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldLocal(CELL);
|
inline EXTERN int IsOldLocal(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldLocal(CELL reg)
|
||||||
IsOldLocal (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldASP, reg, OldLCL0));
|
return (int) (IN_BETWEEN(OldASP, reg, OldLCL0));
|
||||||
}
|
}
|
||||||
@ -479,8 +442,7 @@ IsOldLocal (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldLocalInTR(CELL);
|
inline EXTERN int IsOldLocalInTR(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldLocalInTR(CELL reg)
|
||||||
IsOldLocalInTR (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldH, reg, OldLCL0) );
|
return (int) (IN_BETWEEN(OldH, reg, OldLCL0) );
|
||||||
}
|
}
|
||||||
@ -489,8 +451,7 @@ IsOldLocalInTR (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldLocalInTRPtr(CELL *);
|
inline EXTERN int IsOldLocalInTRPtr(CELL *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldLocalInTRPtr(CELL * ptr)
|
||||||
IsOldLocalInTRPtr (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldH, ptr, OldLCL0) );
|
return (int) (IN_BETWEEN(OldH, ptr, OldLCL0) );
|
||||||
}
|
}
|
||||||
@ -500,8 +461,7 @@ IsOldLocalInTRPtr (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN int IsOldH(CELL);
|
inline EXTERN int IsOldH(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldH(CELL reg)
|
||||||
IsOldH (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (( CharP(reg) == CharP(OldH) ) );
|
return (int) (( CharP(reg) == CharP(OldH) ) );
|
||||||
}
|
}
|
||||||
@ -512,8 +472,7 @@ IsOldH (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldGlobal(CELL);
|
inline EXTERN int IsOldGlobal(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldGlobal(CELL reg)
|
||||||
IsOldGlobal (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldH0, reg, OldH) );
|
return (int) (IN_BETWEEN(OldH0, reg, OldH) );
|
||||||
}
|
}
|
||||||
@ -522,8 +481,7 @@ IsOldGlobal (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldGlobalPtr(CELL *);
|
inline EXTERN int IsOldGlobalPtr(CELL *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldGlobalPtr(CELL * ptr)
|
||||||
IsOldGlobalPtr (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN( OldH0, ptr, OldH) );
|
return (int) (IN_BETWEEN( OldH0, ptr, OldH) );
|
||||||
}
|
}
|
||||||
@ -532,8 +490,7 @@ IsOldGlobalPtr (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN int IsOldDelay(CELL);
|
inline EXTERN int IsOldDelay(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldDelay(CELL reg)
|
||||||
IsOldDelay (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldGlobalBase, reg, OldH0) );
|
return (int) (IN_BETWEEN(OldGlobalBase, reg, OldH0) );
|
||||||
}
|
}
|
||||||
@ -542,8 +499,7 @@ IsOldDelay (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldDelayPtr(CELL *);
|
inline EXTERN int IsOldDelayPtr(CELL *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldDelayPtr(CELL * ptr)
|
||||||
IsOldDelayPtr (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN( OldGlobalBase, ptr, OldH0) );
|
return (int) (IN_BETWEEN( OldGlobalBase, ptr, OldH0) );
|
||||||
}
|
}
|
||||||
@ -552,8 +508,7 @@ IsOldDelayPtr (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN int IsOldTrail(CELL);
|
inline EXTERN int IsOldTrail(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldTrail(CELL reg)
|
||||||
IsOldTrail (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldTrailBase, reg, OldTR) );
|
return (int) (IN_BETWEEN(OldTrailBase, reg, OldTR) );
|
||||||
}
|
}
|
||||||
@ -562,8 +517,7 @@ IsOldTrail (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldTrailPtr(CELL *);
|
inline EXTERN int IsOldTrailPtr(CELL *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldTrailPtr(CELL * ptr)
|
||||||
IsOldTrailPtr (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldTrailBase, ptr, OldTR) );
|
return (int) (IN_BETWEEN(OldTrailBase, ptr, OldTR) );
|
||||||
}
|
}
|
||||||
@ -572,8 +526,7 @@ IsOldTrailPtr (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN int IsOldCode(CELL);
|
inline EXTERN int IsOldCode(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldCode(CELL reg)
|
||||||
IsOldCode (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldHeapBase, reg, OldHeapTop) );
|
return (int) (IN_BETWEEN(OldHeapBase, reg, OldHeapTop) );
|
||||||
}
|
}
|
||||||
@ -582,8 +535,7 @@ IsOldCode (CELL reg)
|
|||||||
|
|
||||||
inline EXTERN int IsOldCodeCellPtr(CELL *);
|
inline EXTERN int IsOldCodeCellPtr(CELL *);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsOldCodeCellPtr(CELL * ptr)
|
||||||
IsOldCodeCellPtr (CELL * ptr)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(OldHeapBase, ptr, OldHeapTop) );
|
return (int) (IN_BETWEEN(OldHeapBase, ptr, OldHeapTop) );
|
||||||
}
|
}
|
||||||
@ -592,8 +544,7 @@ IsOldCodeCellPtr (CELL * ptr)
|
|||||||
|
|
||||||
inline EXTERN int IsGlobal(CELL);
|
inline EXTERN int IsGlobal(CELL);
|
||||||
|
|
||||||
inline EXTERN int
|
inline EXTERN int IsGlobal(CELL reg)
|
||||||
IsGlobal (CELL reg)
|
|
||||||
{
|
{
|
||||||
return (int) (IN_BETWEEN(GlobalBase, reg, H) );
|
return (int) (IN_BETWEEN(GlobalBase, reg, H) );
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
<h2>Yap-4.3.19:</h2>
|
<h2>Yap-4.3.19:</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>FIXED: fflush(NULL) broken in some machines (Stasinos).</li>
|
||||||
|
<li>FIXED: don't flush input streams (Stasinos).</li>
|
||||||
<li>FIXED: new statistics/0.</li>
|
<li>FIXED: new statistics/0.</li>
|
||||||
<li>FIXED: use 15 bits of precision for floats, instead of the
|
<li>FIXED: use 15 bits of precision for floats, instead of the
|
||||||
default 6..</li>
|
default 6..</li>
|
||||||
|
@ -15,7 +15,7 @@ splat
|
|||||||
cd include
|
cd include
|
||||||
splat
|
splat
|
||||||
/bin/cp config.h config.h.mine
|
/bin/cp config.h config.h.mine
|
||||||
/bin/cp ../../linux/*.h .
|
/bin/cp ../../../bins/cyg/*.h .
|
||||||
/bin/mv config.h.mine config.h
|
/bin/mv config.h.mine config.h
|
||||||
cd ../../console
|
cd ../../console
|
||||||
splat
|
splat
|
||||||
@ -45,7 +45,7 @@ cd ../CHR
|
|||||||
splat
|
splat
|
||||||
cd ../..
|
cd ../..
|
||||||
if test "$1" = "--small"; then
|
if test "$1" = "--small"; then
|
||||||
tar cvzf "$version".tar.gz "$version"/{INSTALL,README*,changes*,config*,install-sh,Makefile.in,.depend.in,distribute,C,H,VC,console,docs,include,library,m4,misc,pl,LGPL/*.pl,LGPL/pillow/[C-Z]*,LGPL/pillow/*.pl,LGPL/pillow/doc/*info*,build-distr,OPTYap,CLPQR,CHR}
|
tar cvzf "$version".tar.gz "$version"/{INSTALL,README*,changes*,config*,install-sh,Makefile.in,.depend.in,distribute,C,H,VC,console,docs,include,library,m4,misc,pl,LGPL/README,LGPL/CVS,LGPL/pillow/[C-Z]*,LGPL/pillow/*.pl,LGPL/pillow/doc/*info*,build-distr,OPTYap,CLPQR,CHR}
|
||||||
else
|
else
|
||||||
tar cvzf "$version".tar.gz "$version"/{INSTALL,README*,changes*,config*,install-sh,Makefile.in,.depend.in,distribute,C,H,VC,console,docs,include,library,m4,misc,pl,LGPL,build-distr,OPTYap,CLPQR,CHR}
|
tar cvzf "$version".tar.gz "$version"/{INSTALL,README*,changes*,config*,install-sh,Makefile.in,.depend.in,distribute,C,H,VC,console,docs,include,library,m4,misc,pl,LGPL,build-distr,OPTYap,CLPQR,CHR}
|
||||||
fi
|
fi
|
||||||
|
@ -188,9 +188,9 @@ print_message(help,M) :-
|
|||||||
'$output_error_message'(existence_error(source_sink,F), W) :-
|
'$output_error_message'(existence_error(source_sink,F), W) :-
|
||||||
format(user_error,"[ EXISTENCE ERROR- ~w could not find file ~w ]~n",
|
format(user_error,"[ EXISTENCE ERROR- ~w could not find file ~w ]~n",
|
||||||
[W,F]).
|
[W,F]).
|
||||||
'$output_error_message'(existence_error(stream,_), Where) :-
|
'$output_error_message'(existence_error(stream,Stream), Where) :-
|
||||||
format(user_error,"[ EXISTENCE ERROR- ~w: not an open stream ]~n",
|
format(user_error,"[ EXISTENCE ERROR- ~w: ~w not an open stream ]~n",
|
||||||
[Where]).
|
[Where,Stream]).
|
||||||
'$output_error_message'(evaluation_error(int_overflow), Where) :-
|
'$output_error_message'(evaluation_error(int_overflow), Where) :-
|
||||||
format(user_error,"[ INTEGER OVERFLOW ERROR- ~w ]~n",
|
format(user_error,"[ INTEGER OVERFLOW ERROR- ~w ]~n",
|
||||||
[Where]).
|
[Where]).
|
||||||
|
@ -33,7 +33,7 @@ not(G) :- not(G).
|
|||||||
(:- G) :- '$execute'(G), !.
|
(:- G) :- '$execute'(G), !.
|
||||||
'$$!'(CP) :- '$cut_by'(CP).
|
'$$!'(CP) :- '$cut_by'(CP).
|
||||||
|
|
||||||
:- '$set_value'($doindex,true).
|
:- '$set_value'('$doindex',true).
|
||||||
|
|
||||||
:- ['errors.yap',
|
:- ['errors.yap',
|
||||||
'utils.yap',
|
'utils.yap',
|
||||||
|
Reference in New Issue
Block a user