2001-04-09 20:54:03 +01:00
|
|
|
/*************************************************************************
|
|
|
|
* *
|
|
|
|
* YAP Prolog %W% %G% *
|
|
|
|
* Yap Prolog was developed at NCCUP - Universidade do Porto *
|
|
|
|
* *
|
|
|
|
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
|
|
|
|
* *
|
|
|
|
**************************************************************************
|
|
|
|
* *
|
|
|
|
* File: Yap.proto *
|
|
|
|
* mods: *
|
|
|
|
* comments: Function declarations for YAP *
|
2008-08-07 21:51:23 +01:00
|
|
|
* version: $Id: Yapproto.h,v 1.90 2008-08-07 20:51:23 vsc Exp $ *
|
2001-04-09 20:54:03 +01:00
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
/* prototype file for Yap */
|
|
|
|
|
|
|
|
/* absmi.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Int Yap_absmi(int);
|
|
|
|
int Yap_absmiEND(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* adtdefs.c */
|
2014-09-23 22:35:01 +01:00
|
|
|
Term Yap_ArrayToList(Term *,size_t);
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_GetName(char *,UInt,Term);
|
|
|
|
Term Yap_GetValue(Atom);
|
|
|
|
int Yap_HasOp(Atom);
|
2015-02-09 01:53:28 +00:00
|
|
|
struct operator_entry *Yap_GetOpPropForAModuleHavingALock(struct AtomEntryStruct *, Term);
|
2014-05-25 20:46:04 +01:00
|
|
|
Atom Yap_LookupAtom(const char *);
|
|
|
|
Atom Yap_LookupAtomWithLength(const char *, size_t);
|
|
|
|
Atom Yap_LookupUTF8Atom(const char *);
|
|
|
|
Atom Yap_LookupMaybeWideAtom(const wchar_t *);
|
|
|
|
Atom Yap_LookupMaybeWideAtomWithLength(const wchar_t *, size_t);
|
|
|
|
Atom Yap_FullLookupAtom(const char *);
|
2015-02-09 01:53:28 +00:00
|
|
|
void Yap_LookupAtomWithAddress(const char *,struct AtomEntryStruct *);
|
2013-04-25 23:15:04 +01:00
|
|
|
Prop Yap_NewPredPropByFunctor(struct FunctorEntryStruct *, Term);
|
|
|
|
Prop Yap_NewPredPropByAtom(struct AtomEntryStruct *, Term);
|
|
|
|
Prop Yap_PredPropByFunctorNonThreadLocal(struct FunctorEntryStruct *, Term);
|
|
|
|
Prop Yap_PredPropByAtomNonThreadLocal(struct AtomEntryStruct *, Term);
|
2015-02-09 01:53:28 +00:00
|
|
|
Functor Yap_UnlockedMkFunctor(struct AtomEntryStruct *,unsigned int);
|
2013-04-25 23:15:04 +01:00
|
|
|
Functor Yap_MkFunctor(Atom,unsigned int);
|
|
|
|
void Yap_MkFunctorWithAddress(Atom,unsigned int,FunctorEntry *);
|
|
|
|
void Yap_PutValue(Atom,Term);
|
|
|
|
void Yap_ReleaseAtom(Atom);
|
|
|
|
int Yap_AtomIncreaseHold(Atom);
|
|
|
|
int Yap_AtomDecreaseHold(Atom);
|
|
|
|
struct operator_entry *Yap_OpPropForModule(Atom, Term);
|
2002-10-17 01:05:29 +01:00
|
|
|
|
|
|
|
|
2008-03-25 22:03:14 +00:00
|
|
|
#ifdef SFUNC
|
2013-04-25 23:15:04 +01:00
|
|
|
Term MkSFTerm(Functor,int,Term *,Term);
|
|
|
|
CELL *ArgsOfSFTerm(Term);
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif
|
|
|
|
|
2013-04-25 23:15:04 +01:00
|
|
|
Prop Yap_GetPredPropByAtom(Atom, Term);
|
|
|
|
Prop Yap_GetPredPropByFunc(Functor, Term);
|
|
|
|
Prop Yap_GetPredPropByAtomInThisModule(Atom, Term);
|
|
|
|
Prop Yap_GetPredPropByFuncInThisModule(Functor, Term);
|
|
|
|
Prop Yap_GetPredPropHavingLock(Atom,unsigned int, Term);
|
|
|
|
Prop Yap_GetExpProp(Atom,unsigned int);
|
2015-02-09 01:53:28 +00:00
|
|
|
Prop Yap_GetExpPropHavingLock(struct AtomEntryStruct *,unsigned int);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2002-06-04 19:21:55 +01:00
|
|
|
/* agc.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_atom_gc( CACHE_TYPE1 );
|
|
|
|
void Yap_init_agc( void );
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* alloc.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_FreeCodeSpace(char *);
|
|
|
|
char *Yap_AllocAtomSpace(size_t);
|
|
|
|
char *Yap_AllocCodeSpace(size_t);
|
|
|
|
char *Yap_ReallocCodeSpace(char *,size_t);
|
|
|
|
ADDR Yap_AllocFromForeignArea(Int);
|
|
|
|
int Yap_ExtendWorkSpace(Int);
|
|
|
|
void Yap_FreeAtomSpace(char *);
|
|
|
|
int Yap_FreeWorkSpace(void);
|
|
|
|
void Yap_InitMemory(UInt,UInt,UInt);
|
|
|
|
void Yap_InitExStacks(int,int,int);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* amasm.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
OPCODE Yap_opcode(op_numbers);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* analyst.c */
|
|
|
|
#ifdef ANALYST
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitAnalystPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif /* ANALYST */
|
|
|
|
|
|
|
|
/* arrays.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitArrayPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2013-05-15 23:12:01 +01:00
|
|
|
/* atoms.c */
|
|
|
|
void Yap_InitBackAtoms(void);
|
|
|
|
void Yap_InitAtomPreds(void);
|
|
|
|
|
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* attvar.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitAttVarPreds(void);
|
2013-04-30 21:23:01 +01:00
|
|
|
void Yap_MkEmptyWakeUp(Atom mod);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* bb.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitBBPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* bignum.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_MkULLIntTerm(YAP_ULONG_LONG);
|
|
|
|
int Yap_IsStringTerm(Term);
|
|
|
|
int Yap_IsWideStringTerm(Term);
|
|
|
|
Term Yap_RatTermToApplTerm(Term);
|
|
|
|
void Yap_InitBigNums(void);
|
|
|
|
Term Yap_AllocExternalDataInStack(CELL, size_t);
|
|
|
|
int Yap_CleanOpaqueVariable(CELL *);
|
2014-01-17 09:39:29 +00:00
|
|
|
CELL *Yap_HeapStoreOpaqueTerm(Term t);
|
|
|
|
size_t Yap_OpaqueTermToString(Term t, char *str, size_t max);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* c_interface.c */
|
2014-04-28 11:48:24 +01:00
|
|
|
#ifndef YAP_CPP_INTERFACE
|
2013-04-25 23:15:04 +01:00
|
|
|
Int YAP_Execute(struct pred_entry *, CPredicate);
|
|
|
|
Int YAP_ExecuteFirst(struct pred_entry *, CPredicate);
|
|
|
|
Int YAP_ExecuteNext(struct pred_entry *, CPredicate);
|
|
|
|
Int YAP_ExecuteOnCut(struct pred_entry *, CPredicate, struct cut_c_str *);
|
2015-01-18 01:32:13 +00:00
|
|
|
Int YAP_RunGoalOnce(Term);
|
2014-04-28 11:48:24 +01:00
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* cdmgr.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_all_calls(void);
|
2014-02-09 11:00:11 +00:00
|
|
|
Atom Yap_ConsultingFile( USES_REGS1 );
|
2013-04-25 23:15:04 +01:00
|
|
|
struct pred_entry *Yap_PredForChoicePt(choiceptr);
|
|
|
|
void Yap_InitCdMgr(void);
|
2014-04-24 08:26:31 +01:00
|
|
|
struct pred_entry * Yap_PredFromClause( Term t USES_REGS );
|
|
|
|
int Yap_discontiguous(struct pred_entry *ap USES_REGS );
|
|
|
|
int Yap_multiple(struct pred_entry *ap USES_REGS );
|
2014-05-25 20:46:04 +01:00
|
|
|
void Yap_init_consult(int, const char *);
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_end_consult(void);
|
|
|
|
void Yap_Abolish(struct pred_entry *);
|
|
|
|
void Yap_BuildMegaClause(struct pred_entry *);
|
|
|
|
void Yap_EraseMegaClause(yamop *,struct pred_entry *);
|
|
|
|
void Yap_ResetConsultStack(void);
|
|
|
|
void Yap_AssertzClause(struct pred_entry *, yamop *);
|
2015-01-18 01:32:13 +00:00
|
|
|
void Yap_HidePred(struct pred_entry *pe);
|
2013-12-11 01:05:51 +00:00
|
|
|
int Yap_SetNoTrace(char *name, UInt arity, Term tmod);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* cmppreds.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Int Yap_compare_terms(Term,Term);
|
2013-04-30 00:22:53 +01:00
|
|
|
Int Yap_acmp(Term, Term USES_REGS);
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitCmpPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* compiler.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
yamop *Yap_cclause(Term, Int, Term, Term);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* computils.c */
|
|
|
|
|
|
|
|
/* corout.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitCoroutPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
#ifdef COROUTINING
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_ListOfWokenGoals(void);
|
|
|
|
void Yap_WakeUp(CELL *);
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* dbase.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
struct pred_entry *Yap_FindLUIntKey(Int);
|
|
|
|
int Yap_DBTrailOverflow(void);
|
|
|
|
CELL Yap_EvalMasks(Term,CELL *);
|
|
|
|
void Yap_InitBackDB(void);
|
|
|
|
void Yap_InitDBPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* errors.c */
|
2014-09-16 10:00:31 +01:00
|
|
|
#if DEBUG
|
|
|
|
void
|
|
|
|
Yap_PrintPredName( struct pred_entry *ap );
|
|
|
|
#endif
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_RestartYap(int);
|
|
|
|
void Yap_exit(int);
|
2015-01-26 04:02:46 +00:00
|
|
|
yamop *Yap_Error(yap_error_number,Term,const char *msg, ...);
|
|
|
|
yamop *Yap_NilError(yap_error_number,const char *msg, ...);
|
2013-12-02 14:49:41 +00:00
|
|
|
int Yap_HandleError( const char *msg, ... );
|
|
|
|
int Yap_SWIHandleError( const char *, ... );
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* eval.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitEval(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* exec.c */
|
2014-10-23 02:10:55 +01:00
|
|
|
void Yap_fail_all( choiceptr bb USES_REGS);
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_ExecuteCallMetaCall(Term);
|
|
|
|
void Yap_InitExecFs(void);
|
|
|
|
Int Yap_JumpToEnv(Term);
|
|
|
|
Term Yap_RunTopGoal(Term);
|
|
|
|
void Yap_ResetExceptionTerm(int);
|
|
|
|
Int Yap_execute_goal(Term, int, Term);
|
2014-09-22 18:13:35 +01:00
|
|
|
Int Yap_exec_absmi( bool, yap_reset_t );
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_trust_last(void);
|
|
|
|
Term Yap_GetException(void);
|
|
|
|
void Yap_PrepGoal(UInt, CELL *, choiceptr USES_REGS);
|
2014-05-25 20:46:04 +01:00
|
|
|
int Yap_execute_pred(struct pred_entry *ppe, CELL *pt USES_REGS);
|
2013-11-16 00:27:02 +00:00
|
|
|
int Yap_dogc( int extra_args, Term *tp USES_REGS );
|
2014-10-19 12:48:14 +01:00
|
|
|
Term Yap_PredicateIndicator(Term t, Term mod);
|
2013-01-07 09:47:14 +00:00
|
|
|
/* exo.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitExoPreds(void);
|
2013-04-25 20:21:41 +01:00
|
|
|
void Yap_udi_Interval_init(void);
|
2013-01-07 09:47:14 +00:00
|
|
|
|
2013-01-29 10:50:04 +00:00
|
|
|
/* foreign.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
char *Yap_FindExecutable(void);
|
2013-01-29 10:50:04 +00:00
|
|
|
|
2005-12-17 03:25:39 +00:00
|
|
|
/* gprof.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitLowProf(void);
|
2005-12-17 03:25:39 +00:00
|
|
|
#if LOW_PROF
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_inform_profiler_of_clause__(void *,void *,struct pred_entry *, gprof_info);
|
2013-02-08 20:38:04 +00:00
|
|
|
#define Yap_inform_profiler_of_clause(CODE0,CODEF,AP,MODE) {if (GLOBAL_FPreds) Yap_inform_profiler_of_clause__(CODE0,CODEF,AP,MODE);}
|
2005-12-17 03:25:39 +00:00
|
|
|
#else
|
2012-03-09 11:46:34 +00:00
|
|
|
#define Yap_inform_profiler_of_clause(CODE0,CODEF,AP,MODE)
|
2005-12-17 03:25:39 +00:00
|
|
|
#endif
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_tell_gprof(yamop *);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2006-08-22 17:12:46 +01:00
|
|
|
/* globals.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_NewArena(UInt,CELL *);
|
|
|
|
CELL *Yap_GetFromArena(Term *,UInt,UInt);
|
|
|
|
void Yap_InitGlobals(void);
|
|
|
|
Term Yap_SaveTerm(Term);
|
|
|
|
Term Yap_SetGlobalVal(Atom, Term);
|
|
|
|
Int Yap_DeleteGlobal(Atom);
|
|
|
|
void Yap_AllocateDefaultArena(Int, Int, int);
|
2006-08-22 17:12:46 +01:00
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* grow.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Int Yap_total_stack_shift_time(void);
|
|
|
|
void Yap_InitGrowPreds(void);
|
|
|
|
UInt Yap_InsertInGlobal(CELL *, UInt);
|
2014-09-10 05:51:44 +01:00
|
|
|
int Yap_growheap(bool, size_t, void *);
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_growstack( size_t );
|
2014-09-10 05:51:44 +01:00
|
|
|
int Yap_growtrail(size_t, bool);
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_growglobal(CELL **);
|
2014-09-10 05:51:44 +01:00
|
|
|
int Yap_locked_growheap(bool, size_t, void *);
|
2014-04-23 22:41:12 +01:00
|
|
|
int Yap_locked_growstack( size_t );
|
2014-09-10 05:51:44 +01:00
|
|
|
int Yap_locked_growtrail(size_t, bool);
|
2014-04-23 22:41:12 +01:00
|
|
|
int Yap_locked_growglobal(CELL **);
|
2013-04-25 23:15:04 +01:00
|
|
|
CELL **Yap_shift_visit(CELL **, CELL ***, CELL ***);
|
2010-01-14 15:58:19 +00:00
|
|
|
#ifdef THREADS
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_CopyThreadStacks(int, int, int);
|
2010-01-14 15:58:19 +00:00
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* heapgc.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Int Yap_total_gc_time(void);
|
|
|
|
void Yap_init_gc(void);
|
|
|
|
int Yap_is_gc_verbose(void);
|
|
|
|
int Yap_gc(Int, CELL *, yamop *);
|
2014-04-23 22:41:12 +01:00
|
|
|
int Yap_locked_gc(Int, CELL *, yamop *);
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_gcl(UInt, Int, CELL *, yamop *);
|
2014-04-23 22:41:12 +01:00
|
|
|
int Yap_locked_gcl(UInt, Int, CELL *, yamop *);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* init.c */
|
|
|
|
#ifdef DEBUG
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_DebugPutc(int,wchar_t);
|
|
|
|
void Yap_DebugSetIFile(char *);
|
|
|
|
void Yap_DebugEndline(void);
|
|
|
|
int Yap_DebugGetc(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_IsOpType(char *);
|
|
|
|
void Yap_InitWorkspace(UInt,UInt,UInt,UInt,UInt,int,int,int);
|
2015-02-09 01:53:28 +00:00
|
|
|
bool Yap_AddCallToFli( struct pred_entry *pe, CPredicate call );
|
|
|
|
bool Yap_AddRetryToFli( struct pred_entry *pe, CPredicate re );
|
|
|
|
bool Yap_AddCutToFli( struct pred_entry *pe, CPredicate cut );
|
2004-02-19 19:24:46 +00:00
|
|
|
|
2011-05-23 16:19:47 +01:00
|
|
|
#ifdef YAPOR
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_init_yapor_workers(void);
|
2011-05-23 16:19:47 +01:00
|
|
|
#endif /* YAPOR */
|
2004-02-19 19:24:46 +00:00
|
|
|
#if defined(YAPOR) || defined(THREADS)
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_KillStacks(int);
|
2004-02-19 19:24:46 +00:00
|
|
|
#else
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_KillStacks(int);
|
2004-02-19 19:24:46 +00:00
|
|
|
#endif
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitYaamRegs(int);
|
|
|
|
void Yap_ReInitWallTime(void);
|
|
|
|
int Yap_OpDec(int,char *,Atom,Term);
|
|
|
|
void Yap_CloseScratchPad(void);
|
2002-11-11 17:38:10 +00:00
|
|
|
|
|
|
|
/* inlines.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitInlines(void);
|
|
|
|
int Yap_eq(Term, Term);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* iopreds.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitBackIO(void);
|
|
|
|
void Yap_InitIOPreds(void);
|
2012-02-18 11:01:06 +00:00
|
|
|
void *Yap_GetStreamHandle(Atom at);
|
|
|
|
void *Yap_GetInputStream(Atom at);
|
|
|
|
void *Yap_GetOutputStream(Atom at);
|
2005-12-05 17:16:12 +00:00
|
|
|
#ifdef DEBUG
|
|
|
|
extern void Yap_DebugPlWrite (Term t);
|
|
|
|
extern void Yap_DebugErrorPutc (int n);
|
2014-10-02 14:17:26 +01:00
|
|
|
extern void Yap_DebugErrorPuts (const char *s);
|
2005-12-05 17:16:12 +00:00
|
|
|
#endif
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_PlWriteToStream(Term, int, int);
|
2001-04-09 20:54:03 +01:00
|
|
|
/* depth_lim.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitItDeepenPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* load_foreign.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitLoadForeign(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* mavar.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitMaVarCPreds(void);
|
|
|
|
Term Yap_NewTimedVar(Term);
|
|
|
|
Term Yap_NewEmptyTimedVar(void);
|
|
|
|
Term Yap_ReadTimedVar(Term);
|
|
|
|
Term Yap_UpdateTimedVar(Term, Term);
|
2002-11-11 17:38:10 +00:00
|
|
|
|
|
|
|
/* modules.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_Module(Term);
|
|
|
|
Term Yap_Module_Name(struct pred_entry *);
|
|
|
|
struct pred_entry *Yap_ModulePred(Term);
|
|
|
|
void Yap_NewModulePred(Term, struct pred_entry *);
|
|
|
|
Term Yap_StripModule(Term, Term *);
|
2015-04-21 23:09:43 +01:00
|
|
|
Term Yap_YapStripModule(Term, Term *);
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitModules(void);
|
|
|
|
void Yap_InitModulesC(void);
|
2013-11-13 10:38:20 +00:00
|
|
|
struct mod_entry *Yap_GetModuleEntry(Term tmod);
|
|
|
|
Term Yap_GetModuleFromEntry(struct mod_entry *me);
|
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2002-02-11 20:46:41 +00:00
|
|
|
#if HAVE_MPI
|
|
|
|
/* mpi.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitMPI(void);
|
2002-02-11 20:46:41 +00:00
|
|
|
#endif
|
|
|
|
|
2002-10-03 18:29:46 +01:00
|
|
|
#if HAVE_MPE
|
|
|
|
/* mpe.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitMPE(void);
|
2002-10-03 18:29:46 +01:00
|
|
|
#endif
|
|
|
|
|
2002-11-11 17:38:10 +00:00
|
|
|
|
|
|
|
/* other.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_MkApplTerm(Functor,unsigned int,Term *);
|
|
|
|
Term Yap_MkNewApplTerm(Functor,unsigned int);
|
|
|
|
Term Yap_MkNewPairTerm(void);
|
|
|
|
Term Yap_Globalise(Term);
|
2002-11-11 17:38:10 +00:00
|
|
|
|
|
|
|
|
2006-08-02 19:18:31 +01:00
|
|
|
/* readutil.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitReadUtil(void);
|
2006-08-02 19:18:31 +01:00
|
|
|
|
2011-08-03 08:23:00 +01:00
|
|
|
/* qly.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitQLY(void);
|
|
|
|
int Yap_Restore(char *, char *);
|
|
|
|
void Yap_InitQLYR(void);
|
2011-08-03 08:23:00 +01:00
|
|
|
|
2012-10-23 14:55:17 +01:00
|
|
|
/* range.c */
|
|
|
|
void Yap_InitRange(void);
|
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* save.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_SavedInfo(char *,char *,CELL *,CELL *,CELL *);
|
|
|
|
int Yap_SavedStateRestore(char *, char *);
|
|
|
|
struct io_stream *Yap_OpenRestore(char *, char *);
|
|
|
|
void Yap_InitSavePreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* scanner.c */
|
|
|
|
|
2013-02-08 16:36:45 +00:00
|
|
|
/* signals.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitSignalCPreds(void);
|
2014-03-08 00:03:58 +00:00
|
|
|
void *Yap_InitSignals(int wid);
|
2013-02-08 16:36:45 +00:00
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* sort.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitSortPreds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2013-12-02 14:49:41 +00:00
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* stdpreds.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitBackCPreds(void);
|
|
|
|
void Yap_InitCPreds(void);
|
|
|
|
void Yap_show_statistics(void);
|
|
|
|
int Yap_IsOpMaxPrio(Atom);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* sysbits.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitPageSize(void);
|
2014-10-14 01:13:31 +01:00
|
|
|
bool Yap_set_fpu_exceptions(bool);
|
2013-04-25 23:15:04 +01:00
|
|
|
UInt Yap_cputime(void);
|
|
|
|
Int Yap_walltime(void);
|
|
|
|
int Yap_dir_separator(int);
|
|
|
|
int Yap_volume_header(char *);
|
|
|
|
int Yap_signal_index(const char *);
|
2008-03-25 22:03:14 +00:00
|
|
|
#ifdef MAC
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_SetTextFile(char *);
|
2002-11-11 17:38:10 +00:00
|
|
|
#endif
|
2015-04-13 13:28:17 +01:00
|
|
|
#if __ANDROIDD__
|
|
|
|
extern AAssetManager * Yap_assetManager;
|
|
|
|
|
|
|
|
extern void *Yap_openAssetFile( const char *path ) ;
|
|
|
|
extern bool Yap_isAsset( const char *path );
|
|
|
|
#endif
|
|
|
|
const char *Yap_getcwd(const char *, size_t);
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_cputime_interval(Int *,Int *);
|
|
|
|
void Yap_systime_interval(Int *,Int *);
|
|
|
|
void Yap_walltime_interval(Int *,Int *);
|
|
|
|
void Yap_InitSysbits(void);
|
|
|
|
void Yap_InitSysPreds(void);
|
|
|
|
void Yap_InitTime(int);
|
2015-04-15 11:21:15 +01:00
|
|
|
int Yap_TrueFileName(const char *, char *, int);
|
|
|
|
int Yap_TruePrefixedFileName(const char *,const char *, char *, int);
|
2013-04-25 23:15:04 +01:00
|
|
|
double Yap_random(void);
|
2008-03-27 00:41:33 +00:00
|
|
|
#ifdef _WIN32
|
2013-04-25 23:15:04 +01:00
|
|
|
char *Yap_RegistryGetString(char *);
|
|
|
|
void Yap_WinError(char *);
|
2008-03-27 00:41:33 +00:00
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2015-04-15 11:21:15 +01:00
|
|
|
typedef enum {
|
|
|
|
YAP_STD,
|
|
|
|
YAP_SAVED_STATE,
|
|
|
|
YAP_OBJ,
|
|
|
|
YAP_PL,
|
|
|
|
YAP_QLY
|
|
|
|
} file_type_t;
|
|
|
|
|
|
|
|
bool
|
|
|
|
Yap_trueFileName (const char *isource, const char * idef, const char *root, char *result, bool access, file_type_t ftype, bool expand_root, bool in_lib);
|
|
|
|
|
2004-01-23 02:23:51 +00:00
|
|
|
/* threads.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitThreadPreds(void);
|
2013-11-13 10:38:20 +00:00
|
|
|
void Yap_InitFirstWorkerThreadHandle(void);
|
2014-05-25 20:46:04 +01:00
|
|
|
int Yap_ThreadID( void );
|
2014-06-04 22:08:37 +01:00
|
|
|
int Yap_NOfThreads( void );
|
2011-03-11 19:49:32 +00:00
|
|
|
#if THREADS
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_InitThread(int);
|
2011-03-11 19:49:32 +00:00
|
|
|
#endif
|
2004-01-23 02:23:51 +00:00
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* tracer.c */
|
|
|
|
#ifdef LOW_LEVEL_TRACER
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitLowLevelTrace(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif
|
|
|
|
|
2009-03-27 15:28:50 +00:00
|
|
|
/* udi.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_udi_init(void);
|
|
|
|
void Yap_udi_abolish(struct pred_entry *);
|
2009-03-27 15:28:50 +00:00
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* unify.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
int Yap_rational_tree_loop(CELL *, CELL *, CELL **, CELL **);
|
|
|
|
void Yap_InitAbsmi(void);
|
|
|
|
void Yap_InitUnify(void);
|
|
|
|
void Yap_TrimTrail(void);
|
|
|
|
int Yap_Unifiable(Term d0, Term d1);
|
|
|
|
int Yap_IUnify(register CELL d0,register CELL d1);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* userpreds.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_InitUserCPreds(void);
|
|
|
|
void Yap_InitUserBacks(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
|
|
|
/* utilpreds.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_CopyTerm(Term);
|
|
|
|
int Yap_Variant(Term, Term);
|
|
|
|
size_t Yap_ExportTerm(Term, char *, size_t, UInt);
|
|
|
|
size_t Yap_SizeOfExportedTerm(char *);
|
|
|
|
Term Yap_ImportTerm(char *);
|
|
|
|
int Yap_IsListTerm(Term);
|
2015-01-18 01:32:13 +00:00
|
|
|
bool Yap_IsListOrPartialListTerm(Term);
|
2015-01-06 17:47:58 +00:00
|
|
|
Term Yap_CopyTermNoShare(Term);
|
|
|
|
int Yap_SizeGroundTerm(Term, int);
|
|
|
|
int Yap_IsGroundTerm(Term);
|
|
|
|
int Yap_IsAcyclicTerm(Term);
|
|
|
|
void Yap_InitUtilCPreds(void);
|
2013-04-25 23:15:04 +01:00
|
|
|
Int Yap_TermHash(Term, Int, Int, int);
|
|
|
|
Int Yap_NumberVars(Term, Int, int);
|
2014-06-04 22:08:37 +01:00
|
|
|
Term Yap_TermVariables( Term t, UInt arity USES_REGS );
|
2013-04-25 23:15:04 +01:00
|
|
|
Term Yap_UnNumberTerm(Term, int);
|
|
|
|
Int Yap_SkipList(Term *, Term **);
|
2001-04-09 20:54:03 +01:00
|
|
|
/* yap.c */
|
|
|
|
|
2011-06-01 17:34:04 +01:00
|
|
|
|
|
|
|
/* write.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_plwrite(Term, void *, int, int, int);
|
2013-12-02 14:49:41 +00:00
|
|
|
int Yap_FormatFloat( Float f, const char *s, size_t sz );
|
2014-03-20 16:23:07 +00:00
|
|
|
void Yap_WriteAtom(struct io_stream *s, Atom atom);
|
2011-06-01 17:34:04 +01:00
|
|
|
|
2007-10-18 09:24:16 +01:00
|
|
|
/* yap2swi.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_swi_install(void);
|
|
|
|
void Yap_InitSWIHash(void);
|
|
|
|
int Yap_get_stream_handle(Term, int, int, void *);
|
|
|
|
Term Yap_get_stream_position(void *);
|
2015-02-09 01:53:28 +00:00
|
|
|
struct AtomEntryStruct *Yap_lookupBlob(void *blob, size_t len, void *type, int *newp);
|
2007-10-18 09:24:16 +01:00
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
/* opt.preds.c */
|
2013-04-25 23:15:04 +01:00
|
|
|
void Yap_init_optyap_preds(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2011-03-03 11:41:21 +00:00
|
|
|
/* pl-file.c */
|
2015-04-13 13:28:17 +01:00
|
|
|
struct PL_local_data *Yap_InitThreadIO(int wid);
|
2012-04-12 23:52:25 +01:00
|
|
|
void Yap_flush(void);
|
2001-04-09 20:54:03 +01:00
|
|
|
|
2013-11-05 17:59:19 +00:00
|
|
|
/* pl-yap.c */
|
|
|
|
Int Yap_source_line_no( void );
|
|
|
|
Atom Yap_source_file_name( void );
|
|
|
|
|
2008-08-28 04:43:00 +01:00
|
|
|
static inline
|
|
|
|
yamop *
|
|
|
|
gc_P(yamop *p, yamop *cp)
|
|
|
|
{
|
|
|
|
return (p->opc == Yap_opcode(_execute_cpred) ? cp : p);
|
|
|
|
}
|