diff --git a/C/c_interface.c b/C/c_interface.c index 3e6a44db3..4d70a7b7a 100755 --- a/C/c_interface.c +++ b/C/c_interface.c @@ -25,6 +25,7 @@ #ifndef C_INTERFACE_C #define C_INTERFACE_C 1 +#define _EXPORT_KERNEL 1 #include #if HAVE_UNISTD_H @@ -1079,7 +1080,7 @@ static uintptr_t complete_exit(choiceptr ptr, int has_cp, return TRUE; } -Int YAP_Execute(PredEntry *pe, CPredicate exec_code) { +X_API Int YAP_Execute(PredEntry *pe, CPredicate exec_code) { CACHE_REGS Int ret; Int OASP = LCL0 - (CELL *)B; @@ -1120,7 +1121,7 @@ Int YAP_Execute(PredEntry *pe, CPredicate exec_code) { #define REDO_INT 0x02 /* Returned an integer */ #define REDO_PTR 0x03 /* returned a pointer */ -Int YAP_ExecuteFirst(PredEntry *pe, CPredicate exec_code) { +X_API Int YAP_ExecuteFirst(PredEntry *pe, CPredicate exec_code) { CACHE_REGS CELL ocp = LCL0 - (CELL *)B; /* for slots to work */ @@ -1168,7 +1169,7 @@ Int YAP_ExecuteFirst(PredEntry *pe, CPredicate exec_code) { } } -Int YAP_ExecuteOnCut(PredEntry *pe, CPredicate exec_code, +X_API Int YAP_ExecuteOnCut(PredEntry *pe, CPredicate exec_code, struct cut_c_str *top) { CACHE_REGS Int oB = LCL0 - (CELL *)B; @@ -1216,7 +1217,7 @@ Int YAP_ExecuteOnCut(PredEntry *pe, CPredicate exec_code, } } -Int YAP_ExecuteNext(PredEntry *pe, CPredicate exec_code) { +X_API Int YAP_ExecuteNext(PredEntry *pe, CPredicate exec_code) { CACHE_REGS /* for slots to work */ Yap_StartSlots(); @@ -1847,7 +1848,7 @@ X_API YAP_opaque_tag_t YAP_NewOpaqueType(struct YAP_opaque_handler_struct *f) { return i + USER_BLOB_START; } -Term YAP_NewOpaqueObject(YAP_opaque_tag_t tag, size_t bytes) { +X_API Term YAP_NewOpaqueObject(YAP_opaque_tag_t tag, size_t bytes) { Term t = Yap_AllocExternalDataInStack((CELL)tag, bytes); if (t == TermNil) return 0L; @@ -2322,7 +2323,7 @@ bool Yap_embedded = true; /* this routine is supposed to be called from an external program that wants to control Yap */ -YAP_file_type_t YAP_Init(YAP_init_args *yap_init) { +X_API YAP_file_type_t YAP_Init(YAP_init_args *yap_init) { YAP_file_type_t restore_result = yap_init->boot_file_type; bool do_bootstrap = (restore_result & YAP_CONSULT_MODE); CELL Trail = 0, Stack = 0, Heap = 0, Atts = 0; @@ -3088,7 +3089,7 @@ X_API void YAP_signal(int sig) { Yap_signal(sig); } X_API int YAP_SetYAPFlag(Term flag, Term val) { return setYapFlag(flag, val); } /* yhandle_t YAP_VarSlotToNumber(yhandle_t) */ -yhandle_t YAP_VarSlotToNumber(yhandle_t s) { +X_API yhandle_t YAP_VarSlotToNumber(yhandle_t s) { CACHE_REGS Term *t = (CELL *)Deref(Yap_GetFromSlot(s)); if (t < HR) @@ -3097,14 +3098,14 @@ yhandle_t YAP_VarSlotToNumber(yhandle_t s) { } /* Term YAP_ModuleUser() */ -Term YAP_ModuleUser(void) { return MkAtomTerm(AtomUser); } +X_API Term YAP_ModuleUser(void) { return MkAtomTerm(AtomUser); } /* int YAP_PredicateHasClauses() */ -yhandle_t YAP_NumberOfClausesForPredicate(PredEntry *pe) { +X_API yhandle_t YAP_NumberOfClausesForPredicate(PredEntry *pe) { return pe->cs.p_code.NOfClauses; } -int YAP_MaxOpPriority(Atom at, Term module) { +X_API int YAP_MaxOpPriority(Atom at, Term module) { AtomEntry *ae = RepAtom(at); OpEntry *info; WRITE_LOCK(ae->ARWLock); @@ -3122,7 +3123,7 @@ int YAP_MaxOpPriority(Atom at, Term module) { return ret; } -int YAP_OpInfo(Atom at, Term module, int opkind, int *yap_type, int *prio) { +X_API int YAP_OpInfo(Atom at, Term module, int opkind, int *yap_type, int *prio) { AtomEntry *ae = RepAtom(at); OpEntry *info; int n; @@ -3184,14 +3185,14 @@ int YAP_OpInfo(Atom at, Term module, int opkind, int *yap_type, int *prio) { return 1; } -int YAP_Argv(char ***argvp) { +X_API int YAP_Argv(char ***argvp) { if (argvp) { *argvp = GLOBAL_argv; } return GLOBAL_argc; } -YAP_tag_t YAP_TagOfTerm(Term t) { +X_API YAP_tag_t YAP_TagOfTerm(Term t) { if (IsVarTerm(t)) { CELL *pt = VarOfTerm(t); if (IsUnboundVar(pt)) { @@ -3246,7 +3247,7 @@ Term YAP_BPROLOG_curr_toam_status; * * @return a positive number with the size, or 0. */ -size_t YAP_UTF8_TextLength(Term t) { +X_API size_t YAP_UTF8_TextLength(Term t) { utf8proc_uint8_t dst[8]; size_t sz = 0; @@ -3280,7 +3281,7 @@ size_t YAP_UTF8_TextLength(Term t) { return sz; } -Int YAP_ListLength(Term t) { +X_API Int YAP_ListLength(Term t) { Term *aux; Int n = Yap_SkipList(&t, &aux); @@ -3291,14 +3292,14 @@ Int YAP_ListLength(Term t) { return -1; } -Int YAP_NumberVars(Term t, Int nbv) { return Yap_NumberVars(t, nbv, FALSE); } +X_API Int YAP_NumberVars(Term t, Int nbv) { return Yap_NumberVars(t, nbv, FALSE); } -Term YAP_UnNumberVars(Term t) { +X_API Term YAP_UnNumberVars(Term t) { /* don't allow sharing of ground terms */ return Yap_UnNumberTerm(t, FALSE); } -int YAP_IsNumberedVariable(Term t) { +X_API int YAP_IsNumberedVariable(Term t) { return IsApplTerm(t) && FunctorOfTerm(t) == FunctorDollarVar && IsIntegerTerm(ArgOfTerm(1, t)); } diff --git a/C/cdmgr.c708 in C-function cleanup_dangling_indices b/C/cdmgr.c708 in C-function cleanup_dangling_indices deleted file mode 100644 index e69de29bb..000000000 diff --git a/C/tracer.c b/C/tracer.c index ebb1e0783..faa196c13 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -159,7 +159,7 @@ void jmp_deb2(void) { fprintf(stderr, "Here\n"); } void jmp_deb(int i) { if (i) - printf("Here we go %ld\n", old_value++); + printf("Here we go " Int_FORMAT "\n", old_value++); if (old_value == 716) jmp_deb2(); } @@ -354,8 +354,8 @@ bool low_level_trace__(yap_low_level_port port, PredEntry *pred, CELL *args) { printf("\n"); } #endif - b += snprintf(b, top - b, "%lld %ld ", vsc_count, LCL0 - (CELL *)B); - b += snprintf(b, top - b, "%ld ", LCL0 - (CELL *)Yap_REGS.CUT_C_TOP); + b += snprintf(b, top - b, Int_FORMAT " "UInt_FORMAT " ", vsc_count, LCL0 - (CELL *)B); + b += snprintf(b, top - b, Int_FORMAT " ", LCL0 - (CELL *)Yap_REGS.CUT_C_TOP); #if defined(THREADS) || defined(YAPOR) b += snprintf(b, top - b, "(%d)", worker_id); #endif @@ -482,7 +482,7 @@ static Int reset_total_choicepoints(USES_REGS1) { } static Int show_low_level_trace(USES_REGS1) { - fprintf(stderr, "Call counter=%llu\n", vsc_count); + fprintf(stderr, "Call counter=" Int_FORMAT "\n", vsc_count); return (TRUE); } diff --git a/CMakeLists.txt b/CMakeLists.txt index ec8c4fb15..6cb63d40c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,6 @@ option(BUILD_SHARED_LIBS "Build shared library" ON) set (CMAKE_POSITION_INDEPENDENT_CODE TRUE) set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) - include(Prelims NO_POLICY_SCOPE) include(Sources NO_POLICY_SCOPE) @@ -109,7 +108,10 @@ else() List (APPEND YLIBS $ ) List (APPEND YLIBS $ ) if (WIN32) - List (APPEND YLIBS $ ) + List (APPEND YLIBS $ ) + if (PYTHON_INCLUDE_DIRS AND PYTHON_LIBRARIES ) + List (APPEND YLIBS $ ) + endif() endif() @@ -128,6 +130,9 @@ add_library( # Sets the name of the library. if (WIN32) target_link_libraries(libYap ${WINDLLS}) + if (PYTHON_INCLUDE_DIRS AND PYTHON_LIBRARIES ) + target_link_libraries(libYap ${PYTHON_LIBRARIES}) + endif() endif (WIN32) include(libYap NO_POLICY_SCOPE) diff --git a/CXX/yapa.hh b/CXX/yapa.hh index 332a9dc2f..18f887320 100644 --- a/CXX/yapa.hh +++ b/CXX/yapa.hh @@ -68,7 +68,7 @@ enum PropTag { * predicates, operators, modules, almost everything. * */ -class YAPAtom { +class X_API YAPAtom { friend class YAPEngine; friend class YAPModuleProp; friend class YAPPredicate; @@ -104,7 +104,7 @@ public: * predicates, operators, modules, almost everything. * */ -class YAPProp { +class X_API YAPProp { friend class YAPModuleProp; friend class YAPFunctor; /// does nothing, p is defined by the subclass diff --git a/CXX/yapdb.hh b/CXX/yapdb.hh index f4816345c..600442d63 100644 --- a/CXX/yapdb.hh +++ b/CXX/yapdb.hh @@ -43,7 +43,7 @@ class YAPModule; * Info about the module is in YAPModuleProp * */ -class YAPModule : protected YAPAtomTerm { +class X_API YAPModule : protected YAPAtomTerm { friend class YAPPredicate; friend class YAPModuleProp; Term t() { return gt(); } @@ -61,7 +61,7 @@ public: * A YAPModuleProp controls access to a module property. * */ -class YAPModuleProp : public YAPProp { +class X_API YAPModuleProp : public YAPProp { friend class YAPPredicate; ModEntry *m; @@ -77,7 +77,7 @@ public: /** * @brief YAPFunctor represents Prolog functors Name/Arity */ -class YAPFunctor : public YAPProp { +class X_API YAPFunctor : public YAPProp { friend class YAPApplTerm; friend class YAPTerm; friend class YAPPredicate; @@ -127,7 +127,7 @@ public: * * This class interfaces with PredEntry in Yatom. */ -class YAPPredicate : public YAPModuleProp { +class X_API YAPPredicate : public YAPModuleProp { friend class YAPQuery; friend class YAPEngine; @@ -297,7 +297,7 @@ Yap_ThrowError(DOMAIN_ERROR_OUT_OF_RANGE, MkIntTerm(0), "YAPFunctor::functor"); * * This class interfaces with Predicates Implemented in Prolog. */ -class YAPPrologPredicate : public YAPPredicate { +class X_API YAPPrologPredicate : public YAPPredicate { public: YAPPrologPredicate(YAPTerm t) : YAPPredicate(t){}; YAPPrologPredicate(const char *s, arity_t arity) : YAPPredicate(s, arity){}; @@ -319,7 +319,7 @@ public: * * This class interfaces with Predicates Implemented in Prolog. */ -class YAPFLIP : public YAPPredicate { +class X_API YAPFLIP : public YAPPredicate { public: YAPFLIP(CPredicate call, YAPAtom name, uintptr_t arity, YAPModule module = YAPModule(), CPredicate retry = 0, diff --git a/CXX/yapi.cpp b/CXX/yapi.cpp index eafe17660..383c23520 100644 --- a/CXX/yapi.cpp +++ b/CXX/yapi.cpp @@ -1,6 +1,6 @@ -#define YAP_CPP_INTERFACE 1 +#define _EXPORT_KERNEL 1 #include "yapi.hh" extern "C" { @@ -1012,7 +1012,7 @@ YAPEngine::YAPEngine(int argc, char *argv[], return ap; } - X_API bool YAPPrologPredicate::assertClause(YAPTerm cl, bool last, + bool YAPPrologPredicate::assertClause(YAPTerm cl, bool last, YAPTerm source) { CACHE_REGS diff --git a/CXX/yapie.hh b/CXX/yapie.hh index c851777e0..7ac29ac1b 100644 --- a/CXX/yapie.hh +++ b/CXX/yapie.hh @@ -1,4 +1,4 @@ -/** + /** * @file yapie.hh * * @defgroup yap-cplus-error-hanadlinge Errir Handling in the YAP interface. @@ -23,11 +23,11 @@ #ifndef YAPIE_HH #define YAPIE_HH -class YAPPPredicate; -class YAPTerm; +class X_API YAPPPredicate; +class X_API YAPTerm; /// take information on a Prolog error: -class YAPError { +class X_API YAPError { yap_error_number ID; std::string goal, info; int swigcode; diff --git a/CXX/yapq.hh b/CXX/yapq.hh index 46d45a7d0..86054a94c 100644 --- a/CXX/yapq.hh +++ b/CXX/yapq.hh @@ -19,7 +19,7 @@ #ifndef YAPQ_HH #define YAPQ_HH 1 -class YAPPredicate; +class X_API YAPPredicate; /** Queries and engines @@ -31,7 +31,7 @@ class YAPPredicate; * interface to a YAP Query; * uses an SWI-like status info internally. */ -class YAPQuery : public YAPPredicate +class X_API YAPQuery : public YAPPredicate { bool q_open; int q_state; @@ -171,7 +171,7 @@ inline bool command() /// This class implements a callback Prolog-side. It will be inherited by the /// Java or Python /// class that actually implements the callback. -class YAPCallback +class X_API YAPCallback { public: virtual ~YAPCallback() {} @@ -181,7 +181,7 @@ public: /// @brief Setup all arguments to a new engine -class YAPEngineArgs { +class X_API YAPEngineArgs { public: diff --git a/CXX/yapt.hh b/CXX/yapt.hh index ce0bbf47d..634b97af6 100644 --- a/CXX/yapt.hh +++ b/CXX/yapt.hh @@ -34,7 +34,7 @@ class YAPError; /** * @brief Generic Prolog Term */ -class YAPTerm { +class X_API YAPTerm { friend class YAPPredicate; friend class YAPPrologPredicate; friend class YAPQuery; @@ -254,39 +254,10 @@ public: inline bool initialized() { return t != 0; }; }; -/** - * @brief Variable Term - */ -class YAPVarTerm : public YAPTerm { - YAPVarTerm(Term t) { - if (IsVarTerm(t)) { - mk(t); - } - } - -public: - /// constructor - YAPVarTerm(); - /// get the internal representation - CELL *getVar() { return VarOfTerm(gt()); } - /// is the variable bound to another one - bool unbound() { return IsUnboundVar(VarOfTerm(gt())); } - virtual bool isVar() { return true; } /// type check for unbound - virtual bool isAtom() { return false; } /// type check for atom - virtual bool isInteger() { return false; } /// type check for integer - virtual bool isFloat() { return false; } /// type check for floating-point - virtual bool isString() { return false; } /// type check for a string " ... " - virtual bool isCompound() { return false; } /// is a primitive term - virtual bool isAppl() { return false; } /// is a structured term - virtual bool isPair() { return false; } /// is a pair term - virtual bool isGround() { return false; } /// term is ground - virtual bool isList() { return false; } /// term is a list -}; - /** * @brief Compound Term */ -class YAPApplTerm : public YAPTerm { +class X_API YAPApplTerm : public YAPTerm { friend class YAPTerm; public: @@ -324,7 +295,7 @@ public: /** * @brief List Constructor Term */ -class YAPPairTerm : public YAPTerm { +class X_API YAPPairTerm : public YAPTerm { friend class YAPTerm; @@ -362,7 +333,7 @@ public: * @brief Number Term */ -class YAPNumberTerm : public YAPTerm { +class X_API YAPNumberTerm : public YAPTerm { public: YAPNumberTerm(){}; bool isTagged() { return IsIntTerm(gt()); } @@ -372,7 +343,7 @@ public: * @brief Integer Term */ -class YAPIntegerTerm : public YAPNumberTerm { +class X_API YAPIntegerTerm : public YAPNumberTerm { public: YAPIntegerTerm(intptr_t i); intptr_t getInteger() { return IntegerOfTerm(gt()); }; @@ -382,14 +353,14 @@ public: * @brief Floating Point Term */ -class YAPFloatTerm : public YAPNumberTerm { +class X_API YAPFloatTerm : public YAPNumberTerm { public: YAPFloatTerm(double dbl) { mk(MkFloatTerm(dbl)); }; double getFl() { return FloatOfTerm(gt()); }; }; -class YAPListTerm : public YAPTerm { +class X_API YAPListTerm : public YAPTerm { public: /// Create a list term out of a standard term. Check if a valid operation. /// @@ -447,7 +418,7 @@ public: /** * @brief String Term */ -class YAPStringTerm : public YAPTerm { +class X_API YAPStringTerm : public YAPTerm { public: /// your standard constructor YAPStringTerm(char *s); @@ -464,7 +435,7 @@ public: * @brief Atom Term * Term Representation of an Atom */ -class YAPAtomTerm : public YAPTerm { +class X_API YAPAtomTerm : public YAPTerm { friend class YAPModule; // Constructor: receives a C-atom; YAPAtomTerm(Term t) : YAPTerm(t) { IsAtomTerm(t); } @@ -498,4 +469,35 @@ public: }; #endif /* YAPT_HH */ + +/** + * @brief Variable Term + */ +class X_API YAPVarTerm : public YAPTerm { + friend class YAPTerm; + +public: + /// constructor + YAPVarTerm(); + /// get the internal representation + CELL *getVar() { return VarOfTerm(gt()); } + /// is the variable bound to another one + YAPVarTerm(Term t) { + if (IsVarTerm(t)) { + mk(t); + } + } + bool unbound() { return IsUnboundVar(VarOfTerm(gt())); } + virtual bool isVar() { return true; } /// type check for unbound + virtual bool isAtom() { return false; } /// type check for atom + virtual bool isInteger() { return false; } /// type check for integer + virtual bool isFloat() { return false; } /// type check for floating-point + virtual bool isString() { return false; } /// type check for a string " ... " + virtual bool isCompound() { return false; } /// is a primitive term + virtual bool isAppl() { return false; } /// is a structured term + virtual bool isPair() { return false; } /// is a pair term + virtual bool isGround() { return false; } /// term is ground + virtual bool isList() { return false; } /// term is a list +}; + /// @} diff --git a/H/HEAPFIELDS b/H/HEAPFIELDS index b0a7d9c1b..0c09dbb33 100644 --- a/H/HEAPFIELDS +++ b/H/HEAPFIELDS @@ -90,7 +90,6 @@ ATOMS #ifdef EUROTRA Term TermDollarU MkAT AtomDollarU #endif -Term TermAnswer MkAT AtomAnswer //modules Term USER_MODULE MkAT AtomUser diff --git a/H/generated/dglobals.h b/H/generated/dglobals.h index 7e4d5f390..0cccbf795 100644 --- a/H/generated/dglobals.h +++ b/H/generated/dglobals.h @@ -1,144 +1,144 @@ - - /* This file, dglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/GLOBALS instead */ - - - - - - - - - - - - - - - - - - - -#define GLOBAL_Initialised Yap_global->Initialised_ -#define GLOBAL_InitialisedFromPL Yap_global->InitialisedFromPL_ -#define GLOBAL_PL_Argc Yap_global->PL_Argc_ -#define GLOBAL_PL_Argv Yap_global->PL_Argv_ -#define GLOBAL_FAST_BOOT_FLAG Yap_global->FAST_BOOT_FLAG_ - -#define GLOBAL_HaltHooks Yap_global->HaltHooks_ -#define GLOBAL_JIT_finalizer Yap_global->JIT_finalizer_ - -#define GLOBAL_AllowLocalExpansion Yap_global->AllowLocalExpansion_ -#define GLOBAL_AllowGlobalExpansion Yap_global->AllowGlobalExpansion_ -#define GLOBAL_AllowTrailExpansion Yap_global->AllowTrailExpansion_ -#define GLOBAL_SizeOfOverflow Yap_global->SizeOfOverflow_ - -#define GLOBAL_AGcThreshold Yap_global->AGcThreshold_ -#define GLOBAL_AGCHook Yap_global->AGCHook_ - -#if THREADS - -#define GLOBAL_NOfThreads Yap_global->NOfThreads_ - -#define GLOBAL_NOfThreadsCreated Yap_global->NOfThreadsCreated_ - -#define GLOBAL_ThreadsTotalTime Yap_global->ThreadsTotalTime_ - -#define GLOBAL_ThreadHandlesLock Yap_global->ThreadHandlesLock_ -#endif -#if defined(YAPOR) || defined(THREADS) - -#define GLOBAL_BGL Yap_global->BGL_ -#endif -#if defined(YAPOR) || defined(TABLING) -#define GLOBAL_optyap_data Yap_global->optyap_data_ -#endif /* YAPOR || TABLING */ - -#define GLOBAL_PrologShouldHandleInterrupts Yap_global->PrologShouldHandleInterrupts_ - -#if defined(THREADS) -#define GLOBAL_master_thread Yap_global->master_thread_ -#define GLOBAL_named_mboxes Yap_global->named_mboxes_ -#define GLOBAL_mboxq_lock Yap_global->mboxq_lock_ -#define GLOBAL_mbox_count Yap_global->mbox_count_ -#define GLOBAL_WithMutex Yap_global->WithMutex_ -#endif /* THREADS */ - -#define GLOBAL_Stream Yap_global->Stream_ -#if defined(THREADS)||defined(YAPOR) -#define GLOBAL_StreamDescLock Yap_global->StreamDescLock_ -#endif - -#define GLOBAL_argv Yap_global->argv_ -#define GLOBAL_argc Yap_global->argc_ - -#ifdef COROUTINING - -#define GLOBAL_attas Yap_global->attas_ -#endif - -#define GLOBAL_agc_calls Yap_global->agc_calls_ -#define GLOBAL_agc_collected Yap_global->agc_collected_ - -#define GLOBAL_tot_agc_time Yap_global->tot_agc_time_ - -#define GLOBAL_tot_agc_recovered Yap_global->tot_agc_recovered_ - -#if HAVE_MMAP -#define GLOBAL_mmap_arrays Yap_global->mmap_arrays_ -#endif -#ifdef DEBUG - -#define GLOBAL_Option Yap_global->Option_ -#define GLOBAL_logfile Yap_global->logfile_ - - -#endif -#if defined(COFF) || defined(A_OUT) - -#define GLOBAL_Executable Yap_global->Executable_ -#endif -#define GLOBAL_OpaqueHandlersCount Yap_global->OpaqueHandlersCount_ -#define GLOBAL_OpaqueHandlers Yap_global->OpaqueHandlers_ -#if __simplescalar__ -#define GLOBAL_pwd Yap_global->pwd_ -#endif - - -#define GLOBAL_RestoreFile Yap_global->RestoreFile_ - -#define GLOBAL_ProfCalls Yap_global->ProfCalls_ -#define GLOBAL_ProfGCs Yap_global->ProfGCs_ -#define GLOBAL_ProfHGrows Yap_global->ProfHGrows_ -#define GLOBAL_ProfSGrows Yap_global->ProfSGrows_ -#define GLOBAL_ProfMallocs Yap_global->ProfMallocs_ -#define GLOBAL_ProfIndexing Yap_global->ProfIndexing_ -#define GLOBAL_ProfOn Yap_global->ProfOn_ -#define GLOBAL_ProfOns Yap_global->ProfOns_ -#define GLOBAL_ProfilerRoot Yap_global->ProfilerRoot_ -#define GLOBAL_ProfilerNil Yap_global->ProfilerNil_ -#define GLOBAL_DIRNAME Yap_global->DIRNAME_ -#if LOW_PROF -#define GLOBAL_ProfilerOn Yap_global->ProfilerOn_ -#define GLOBAL_FProf Yap_global->FProf_ -#define GLOBAL_FPreds Yap_global->FPreds_ -#endif /* LOW_PROF */ - -#if THREADS -#define GLOBAL_FreeMutexes Yap_global->FreeMutexes_ -#define GLOBAL_mutex_backbone Yap_global->mutex_backbone_ -#define GLOBAL_MUT_ACCESS Yap_global->MUT_ACCESS_ -#endif -#define GLOBAL_Home Yap_global->Home_ - -#define GLOBAL_CharConversionTable Yap_global->CharConversionTable_ -#define GLOBAL_CharConversionTable2 Yap_global->CharConversionTable2_ - -#define GLOBAL_MaxPriority Yap_global->MaxPriority_ - -#define GLOBAL_FileAliases Yap_global->FileAliases_ -#define GLOBAL_NOfFileAliases Yap_global->NOfFileAliases_ -#define GLOBAL_SzOfFileAliases Yap_global->SzOfFileAliases_ -#define GLOBAL_VFS Yap_global->VFS_ - + + /* This file, dglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/GLOBALS instead */ + + + + + + + + + + + + + + + + + + + +#define GLOBAL_Initialised Yap_global->Initialised_ +#define GLOBAL_InitialisedFromPL Yap_global->InitialisedFromPL_ +#define GLOBAL_PL_Argc Yap_global->PL_Argc_ +#define GLOBAL_PL_Argv Yap_global->PL_Argv_ +#define GLOBAL_FAST_BOOT_FLAG Yap_global->FAST_BOOT_FLAG_ + +#define GLOBAL_HaltHooks Yap_global->HaltHooks_ +#define GLOBAL_JIT_finalizer Yap_global->JIT_finalizer_ + +#define GLOBAL_AllowLocalExpansion Yap_global->AllowLocalExpansion_ +#define GLOBAL_AllowGlobalExpansion Yap_global->AllowGlobalExpansion_ +#define GLOBAL_AllowTrailExpansion Yap_global->AllowTrailExpansion_ +#define GLOBAL_SizeOfOverflow Yap_global->SizeOfOverflow_ + +#define GLOBAL_AGcThreshold Yap_global->AGcThreshold_ +#define GLOBAL_AGCHook Yap_global->AGCHook_ + +#if THREADS + +#define GLOBAL_NOfThreads Yap_global->NOfThreads_ + +#define GLOBAL_NOfThreadsCreated Yap_global->NOfThreadsCreated_ + +#define GLOBAL_ThreadsTotalTime Yap_global->ThreadsTotalTime_ + +#define GLOBAL_ThreadHandlesLock Yap_global->ThreadHandlesLock_ +#endif +#if defined(YAPOR) || defined(THREADS) + +#define GLOBAL_BGL Yap_global->BGL_ +#endif +#if defined(YAPOR) || defined(TABLING) +#define GLOBAL_optyap_data Yap_global->optyap_data_ +#endif /* YAPOR || TABLING */ + +#define GLOBAL_PrologShouldHandleInterrupts Yap_global->PrologShouldHandleInterrupts_ + +#if defined(THREADS) +#define GLOBAL_master_thread Yap_global->master_thread_ +#define GLOBAL_named_mboxes Yap_global->named_mboxes_ +#define GLOBAL_mboxq_lock Yap_global->mboxq_lock_ +#define GLOBAL_mbox_count Yap_global->mbox_count_ +#define GLOBAL_WithMutex Yap_global->WithMutex_ +#endif /* THREADS */ + +#define GLOBAL_Stream Yap_global->Stream_ +#if defined(THREADS)||defined(YAPOR) +#define GLOBAL_StreamDescLock Yap_global->StreamDescLock_ +#endif + +#define GLOBAL_argv Yap_global->argv_ +#define GLOBAL_argc Yap_global->argc_ + +#ifdef COROUTINING + +#define GLOBAL_attas Yap_global->attas_ +#endif + +#define GLOBAL_agc_calls Yap_global->agc_calls_ +#define GLOBAL_agc_collected Yap_global->agc_collected_ + +#define GLOBAL_tot_agc_time Yap_global->tot_agc_time_ + +#define GLOBAL_tot_agc_recovered Yap_global->tot_agc_recovered_ + +#if HAVE_MMAP +#define GLOBAL_mmap_arrays Yap_global->mmap_arrays_ +#endif +#ifdef DEBUG + +#define GLOBAL_Option Yap_global->Option_ +#define GLOBAL_logfile Yap_global->logfile_ + + +#endif +#if defined(COFF) || defined(A_OUT) + +#define GLOBAL_Executable Yap_global->Executable_ +#endif +#define GLOBAL_OpaqueHandlersCount Yap_global->OpaqueHandlersCount_ +#define GLOBAL_OpaqueHandlers Yap_global->OpaqueHandlers_ +#if __simplescalar__ +#define GLOBAL_pwd Yap_global->pwd_ +#endif + + +#define GLOBAL_RestoreFile Yap_global->RestoreFile_ + +#define GLOBAL_ProfCalls Yap_global->ProfCalls_ +#define GLOBAL_ProfGCs Yap_global->ProfGCs_ +#define GLOBAL_ProfHGrows Yap_global->ProfHGrows_ +#define GLOBAL_ProfSGrows Yap_global->ProfSGrows_ +#define GLOBAL_ProfMallocs Yap_global->ProfMallocs_ +#define GLOBAL_ProfIndexing Yap_global->ProfIndexing_ +#define GLOBAL_ProfOn Yap_global->ProfOn_ +#define GLOBAL_ProfOns Yap_global->ProfOns_ +#define GLOBAL_ProfilerRoot Yap_global->ProfilerRoot_ +#define GLOBAL_ProfilerNil Yap_global->ProfilerNil_ +#define GLOBAL_DIRNAME Yap_global->DIRNAME_ +#if LOW_PROF +#define GLOBAL_ProfilerOn Yap_global->ProfilerOn_ +#define GLOBAL_FProf Yap_global->FProf_ +#define GLOBAL_FPreds Yap_global->FPreds_ +#endif /* LOW_PROF */ + +#if THREADS +#define GLOBAL_FreeMutexes Yap_global->FreeMutexes_ +#define GLOBAL_mutex_backbone Yap_global->mutex_backbone_ +#define GLOBAL_MUT_ACCESS Yap_global->MUT_ACCESS_ +#endif +#define GLOBAL_Home Yap_global->Home_ + +#define GLOBAL_CharConversionTable Yap_global->CharConversionTable_ +#define GLOBAL_CharConversionTable2 Yap_global->CharConversionTable2_ + +#define GLOBAL_MaxPriority Yap_global->MaxPriority_ + +#define GLOBAL_FileAliases Yap_global->FileAliases_ +#define GLOBAL_NOfFileAliases Yap_global->NOfFileAliases_ +#define GLOBAL_SzOfFileAliases Yap_global->SzOfFileAliases_ +#define GLOBAL_VFS Yap_global->VFS_ + diff --git a/H/generated/dhstruct.h b/H/generated/dhstruct.h index 7a6826813..b6f872b4c 100644 --- a/H/generated/dhstruct.h +++ b/H/generated/dhstruct.h @@ -1,292 +1,291 @@ - - /* This file, dhstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/HEAPFIELDS instead */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#if USE_DL_MALLOC -#if defined(YAPOR) || defined(THREADS) -#define DLMallocLock Yap_heap_regs->DLMallocLock_ -#endif -#endif -#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) -#ifndef HeapUsed -#define HeapUsed Yap_givemallinfo() -#endif -#define NotHeapUsed Yap_heap_regs->NotHeapUsed_ -#else -#define HeapUsed Yap_heap_regs->HeapUsed_ -#endif -#define HeapMax Yap_heap_regs->HeapMax_ -#define HeapTop Yap_heap_regs->HeapTop_ -#define HeapLim Yap_heap_regs->HeapLim_ -#define FreeBlocks Yap_heap_regs->FreeBlocks_ -#if defined(YAPOR) || defined(THREADS) -#define FreeBlocksLock Yap_heap_regs->FreeBlocksLock_ -#define HeapUsedLock Yap_heap_regs->HeapUsedLock_ -#define HeapTopLock Yap_heap_regs->HeapTopLock_ -#define HeapTopOwner Yap_heap_regs->HeapTopOwner_ -#endif -#define MaxStack Yap_heap_regs->MaxStack_ -#define MaxTrail Yap_heap_regs->MaxTrail_ - - -#if USE_THREADED_CODE -#define OP_RTABLE Yap_heap_regs->OP_RTABLE_ -#endif - -#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->EXECUTE_CPRED_OP_CODE_ -#define EXPAND_OP_CODE Yap_heap_regs->EXPAND_OP_CODE_ -#define FAIL_OPCODE Yap_heap_regs->FAIL_OPCODE_ -#define INDEX_OPCODE Yap_heap_regs->INDEX_OPCODE_ -#define LOCKPRED_OPCODE Yap_heap_regs->LOCKPRED_OPCODE_ -#define ORLAST_OPCODE Yap_heap_regs->ORLAST_OPCODE_ -#define UNDEF_OPCODE Yap_heap_regs->UNDEF_OPCODE_ -#define RETRY_USERC_OPCODE Yap_heap_regs->RETRY_USERC_OPCODE_ -#define EXECUTE_CPRED_OPCODE Yap_heap_regs->EXECUTE_CPRED_OPCODE_ - -#define NOfAtoms Yap_heap_regs->NOfAtoms_ -#define AtomHashTableSize Yap_heap_regs->AtomHashTableSize_ -#define WideAtomHashTableSize Yap_heap_regs->WideAtomHashTableSize_ -#define NOfWideAtoms Yap_heap_regs->NOfWideAtoms_ -#define INVISIBLECHAIN Yap_heap_regs->INVISIBLECHAIN_ -#define WideHashChain Yap_heap_regs->WideHashChain_ -#define HashChain Yap_heap_regs->HashChain_ - - -#ifdef EUROTRA -#define TermDollarU Yap_heap_regs->TermDollarU_ -#endif -#define TermAnswer Yap_heap_regs->TermAnswer_ - -#define USER_MODULE Yap_heap_regs->USER_MODULE_ -#define IDB_MODULE Yap_heap_regs->IDB_MODULE_ -#define ATTRIBUTES_MODULE Yap_heap_regs->ATTRIBUTES_MODULE_ -#define CHARSIO_MODULE Yap_heap_regs->CHARSIO_MODULE_ -#define CHTYPE_MODULE Yap_heap_regs->CHTYPE_MODULE_ -#define TERMS_MODULE Yap_heap_regs->TERMS_MODULE_ -#define SYSTEM_MODULE Yap_heap_regs->SYSTEM_MODULE_ -#define READUTIL_MODULE Yap_heap_regs->READUTIL_MODULE_ -#define HACKS_MODULE Yap_heap_regs->HACKS_MODULE_ -#define ARG_MODULE Yap_heap_regs->ARG_MODULE_ -#define GLOBALS_MODULE Yap_heap_regs->GLOBALS_MODULE_ -#define SWI_MODULE Yap_heap_regs->SWI_MODULE_ -#define DBLOAD_MODULE Yap_heap_regs->DBLOAD_MODULE_ -#define RANGE_MODULE Yap_heap_regs->RANGE_MODULE_ -#define ERROR_MODULE Yap_heap_regs->ERROR_MODULE_ - - - -#define CurrentModules Yap_heap_regs->CurrentModules_ - - - - -#define HIDDEN_PREDICATES Yap_heap_regs->HIDDEN_PREDICATES_ - - - -#define GLOBAL_Flags Yap_heap_regs->GLOBAL_Flags_ -#define GLOBAL_flagCount Yap_heap_regs->GLOBAL_flagCount_ - -#define Yap_ExecutionMode Yap_heap_regs->Yap_ExecutionMode_ - -#define PredsInHashTable Yap_heap_regs->PredsInHashTable_ -#define PredHashTableSize Yap_heap_regs->PredHashTableSize_ -#define PredHash Yap_heap_regs->PredHash_ -#if defined(YAPOR) || defined(THREADS) -#define PredHashRWLock Yap_heap_regs->PredHashRWLock_ -#endif - -#define CreepCode Yap_heap_regs->CreepCode_ -#define UndefCode Yap_heap_regs->UndefCode_ -#define SpyCode Yap_heap_regs->SpyCode_ -#define PredFail Yap_heap_regs->PredFail_ -#define PredTrue Yap_heap_regs->PredTrue_ -#ifdef COROUTINING -#define WakeUpCode Yap_heap_regs->WakeUpCode_ -#endif -#define PredDollarCatch Yap_heap_regs->PredDollarCatch_ -#ifdef YAPOR -#define PredGetwork Yap_heap_regs->PredGetwork_ -#endif /* YAPOR */ -#define PredGoalExpansion Yap_heap_regs->PredGoalExpansion_ -#define PredHandleThrow Yap_heap_regs->PredHandleThrow_ -#define PredIs Yap_heap_regs->PredIs_ -#define PredLogUpdClause Yap_heap_regs->PredLogUpdClause_ -#define PredLogUpdClauseErase Yap_heap_regs->PredLogUpdClauseErase_ -#define PredLogUpdClause0 Yap_heap_regs->PredLogUpdClause0_ -#define PredMetaCall Yap_heap_regs->PredMetaCall_ -#define PredProtectStack Yap_heap_regs->PredProtectStack_ -#define PredRecordedWithKey Yap_heap_regs->PredRecordedWithKey_ -#define PredRestoreRegs Yap_heap_regs->PredRestoreRegs_ -#define PredSafeCallCleanup Yap_heap_regs->PredSafeCallCleanup_ -#define PredStaticClause Yap_heap_regs->PredStaticClause_ -#define PredThrow Yap_heap_regs->PredThrow_ -#define PredTraceMetaCall Yap_heap_regs->PredTraceMetaCall_ -#define PredCommentHook Yap_heap_regs->PredCommentHook_ -#define PredProcedure Yap_heap_regs->PredProcedure_ -#define PredUndefinedQuery Yap_heap_regs->PredUndefinedQuery_ - -#ifdef LOW_LEVEL_TRACER -#define Yap_do_low_level_trace Yap_heap_regs->Yap_do_low_level_trace_ -#if defined(YAPOR) || defined(THREADS) -#define Yap_low_level_trace_lock Yap_heap_regs->Yap_low_level_trace_lock_ -#endif -#endif - -#define Yap_ClauseSpace Yap_heap_regs->Yap_ClauseSpace_ -#define Yap_IndexSpace_Tree Yap_heap_regs->Yap_IndexSpace_Tree_ -#define Yap_IndexSpace_EXT Yap_heap_regs->Yap_IndexSpace_EXT_ -#define Yap_IndexSpace_SW Yap_heap_regs->Yap_IndexSpace_SW_ -#define Yap_LUClauseSpace Yap_heap_regs->Yap_LUClauseSpace_ -#define Yap_LUIndexSpace_Tree Yap_heap_regs->Yap_LUIndexSpace_Tree_ -#define Yap_LUIndexSpace_CP Yap_heap_regs->Yap_LUIndexSpace_CP_ -#define Yap_LUIndexSpace_EXT Yap_heap_regs->Yap_LUIndexSpace_EXT_ -#define Yap_LUIndexSpace_SW Yap_heap_regs->Yap_LUIndexSpace_SW_ - -#define COMMA_CODE Yap_heap_regs->COMMA_CODE_ -#define DUMMYCODE Yap_heap_regs->DUMMYCODE_ -#define FAILCODE Yap_heap_regs->FAILCODE_ -#define NOCODE Yap_heap_regs->NOCODE_ -#define ENV_FOR_TRUSTFAIL Yap_heap_regs->ENV_FOR_TRUSTFAIL_ -#define TRUSTFAILCODE Yap_heap_regs->TRUSTFAILCODE_ -#define ENV_FOR_YESCODE Yap_heap_regs->ENV_FOR_YESCODE_ -#define YESCODE Yap_heap_regs->YESCODE_ -#define RTRYCODE Yap_heap_regs->RTRYCODE_ -#ifdef BEAM -#define BEAM_RETRY_CODE Yap_heap_regs->BEAM_RETRY_CODE_ -#endif /* BEAM */ -#ifdef YAPOR -#define GETWORK Yap_heap_regs->GETWORK_ -#define GETWORK_SEQ Yap_heap_regs->GETWORK_SEQ_ -#define GETWORK_FIRST_TIME Yap_heap_regs->GETWORK_FIRST_TIME_ -#endif /* YAPOR */ -#ifdef TABLING -#define LOAD_ANSWER Yap_heap_regs->LOAD_ANSWER_ -#define TRY_ANSWER Yap_heap_regs->TRY_ANSWER_ -#define ANSWER_RESOLUTION Yap_heap_regs->ANSWER_RESOLUTION_ -#define COMPLETION Yap_heap_regs->COMPLETION_ -#ifdef THREADS_CONSUMER_SHARING -#define ANSWER_RESOLUTION_COMPLETION Yap_heap_regs->ANSWER_RESOLUTION_COMPLETION_ -#endif /* THREADS_CONSUMER_SHARING */ -#endif /* TABLING */ - - - - -#define P_before_spy Yap_heap_regs->P_before_spy_ - -#define RETRY_C_RECORDEDP_CODE Yap_heap_regs->RETRY_C_RECORDEDP_CODE_ -#define RETRY_C_RECORDED_K_CODE Yap_heap_regs->RETRY_C_RECORDED_K_CODE_ - -#define PROFILING Yap_heap_regs->PROFILING_ -#define CALL_COUNTING Yap_heap_regs->CALL_COUNTING_ -#define optimizer_on Yap_heap_regs->optimizer_on_ -#define compile_mode Yap_heap_regs->compile_mode_ -#define profiling Yap_heap_regs->profiling_ -#define call_counting Yap_heap_regs->call_counting_ - -#define compile_arrays Yap_heap_regs->compile_arrays_ - -#if defined(YAPOR) || defined(THREADS) -#define DBTermsListLock Yap_heap_regs->DBTermsListLock_ -#endif -#define DBTermsList Yap_heap_regs->DBTermsList_ - -#define ExpandClausesFirst Yap_heap_regs->ExpandClausesFirst_ -#define ExpandClausesLast Yap_heap_regs->ExpandClausesLast_ -#define Yap_ExpandClauses Yap_heap_regs->Yap_ExpandClauses_ -#if defined(YAPOR) || defined(THREADS) -#define ExpandClausesListLock Yap_heap_regs->ExpandClausesListLock_ -#define OpListLock Yap_heap_regs->OpListLock_ -#endif - -#ifdef DEBUG -#define Yap_NewCps Yap_heap_regs->Yap_NewCps_ -#define Yap_LiveCps Yap_heap_regs->Yap_LiveCps_ -#define Yap_DirtyCps Yap_heap_regs->Yap_DirtyCps_ -#define Yap_FreedCps Yap_heap_regs->Yap_FreedCps_ -#endif -#define Yap_expand_clauses_sz Yap_heap_regs->Yap_expand_clauses_sz_ - -#define UdiControlBlocks Yap_heap_regs->UdiControlBlocks_ - - -#define STATIC_PREDICATES_MARKED Yap_heap_regs->STATIC_PREDICATES_MARKED_ - -#define INT_KEYS Yap_heap_regs->INT_KEYS_ -#define INT_LU_KEYS Yap_heap_regs->INT_LU_KEYS_ -#define INT_BB_KEYS Yap_heap_regs->INT_BB_KEYS_ - -#define INT_KEYS_SIZE Yap_heap_regs->INT_KEYS_SIZE_ -#define INT_KEYS_TIMESTAMP Yap_heap_regs->INT_KEYS_TIMESTAMP_ -#define INT_BB_KEYS_SIZE Yap_heap_regs->INT_BB_KEYS_SIZE_ - -#define UPDATE_MODE Yap_heap_regs->UPDATE_MODE_ - -#define DBErasedMarker Yap_heap_regs->DBErasedMarker_ -#define LogDBErasedMarker Yap_heap_regs->LogDBErasedMarker_ - -#define DeadStaticClauses Yap_heap_regs->DeadStaticClauses_ -#define DeadMegaClauses Yap_heap_regs->DeadMegaClauses_ -#define DeadStaticIndices Yap_heap_regs->DeadStaticIndices_ -#define DBErasedList Yap_heap_regs->DBErasedList_ -#define DBErasedIList Yap_heap_regs->DBErasedIList_ -#if defined(YAPOR) || defined(THREADS) -#define DeadStaticClausesLock Yap_heap_regs->DeadStaticClausesLock_ -#define DeadMegaClausesLock Yap_heap_regs->DeadMegaClausesLock_ -#define DeadStaticIndicesLock Yap_heap_regs->DeadStaticIndicesLock_ -#endif -#ifdef COROUTINING - -#define NUM_OF_ATTS Yap_heap_regs->NUM_OF_ATTS_ - -#define Yap_AttsSize Yap_heap_regs->Yap_AttsSize_ -#endif - -#define OpList Yap_heap_regs->OpList_ - -#define ForeignCodeLoaded Yap_heap_regs->ForeignCodeLoaded_ -#define ForeignCodeBase Yap_heap_regs->ForeignCodeBase_ -#define ForeignCodeTop Yap_heap_regs->ForeignCodeTop_ -#define ForeignCodeMax Yap_heap_regs->ForeignCodeMax_ - -#define Yap_Records Yap_heap_regs->Yap_Records_ -#define EmptyWakeups Yap_heap_regs->EmptyWakeups_ -#define MaxEmptyWakeups Yap_heap_regs->MaxEmptyWakeups_ - -#define BlobTypes Yap_heap_regs->BlobTypes_ -#define Blobs Yap_heap_regs->Blobs_ -#define NOfBlobs Yap_heap_regs->NOfBlobs_ -#define NOfBlobsMax Yap_heap_regs->NOfBlobsMax_ -#if defined(YAPOR) || defined(THREADS) -#define Blobs_Lock Yap_heap_regs->Blobs_Lock_ -#endif - + + /* This file, dhstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/HEAPFIELDS instead */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if USE_DL_MALLOC +#if defined(YAPOR) || defined(THREADS) +#define DLMallocLock Yap_heap_regs->DLMallocLock_ +#endif +#endif +#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) +#ifndef HeapUsed +#define HeapUsed Yap_givemallinfo() +#endif +#define NotHeapUsed Yap_heap_regs->NotHeapUsed_ +#else +#define HeapUsed Yap_heap_regs->HeapUsed_ +#endif +#define HeapMax Yap_heap_regs->HeapMax_ +#define HeapTop Yap_heap_regs->HeapTop_ +#define HeapLim Yap_heap_regs->HeapLim_ +#define FreeBlocks Yap_heap_regs->FreeBlocks_ +#if defined(YAPOR) || defined(THREADS) +#define FreeBlocksLock Yap_heap_regs->FreeBlocksLock_ +#define HeapUsedLock Yap_heap_regs->HeapUsedLock_ +#define HeapTopLock Yap_heap_regs->HeapTopLock_ +#define HeapTopOwner Yap_heap_regs->HeapTopOwner_ +#endif +#define MaxStack Yap_heap_regs->MaxStack_ +#define MaxTrail Yap_heap_regs->MaxTrail_ + + +#if USE_THREADED_CODE +#define OP_RTABLE Yap_heap_regs->OP_RTABLE_ +#endif + +#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->EXECUTE_CPRED_OP_CODE_ +#define EXPAND_OP_CODE Yap_heap_regs->EXPAND_OP_CODE_ +#define FAIL_OPCODE Yap_heap_regs->FAIL_OPCODE_ +#define INDEX_OPCODE Yap_heap_regs->INDEX_OPCODE_ +#define LOCKPRED_OPCODE Yap_heap_regs->LOCKPRED_OPCODE_ +#define ORLAST_OPCODE Yap_heap_regs->ORLAST_OPCODE_ +#define UNDEF_OPCODE Yap_heap_regs->UNDEF_OPCODE_ +#define RETRY_USERC_OPCODE Yap_heap_regs->RETRY_USERC_OPCODE_ +#define EXECUTE_CPRED_OPCODE Yap_heap_regs->EXECUTE_CPRED_OPCODE_ + +#define NOfAtoms Yap_heap_regs->NOfAtoms_ +#define AtomHashTableSize Yap_heap_regs->AtomHashTableSize_ +#define WideAtomHashTableSize Yap_heap_regs->WideAtomHashTableSize_ +#define NOfWideAtoms Yap_heap_regs->NOfWideAtoms_ +#define INVISIBLECHAIN Yap_heap_regs->INVISIBLECHAIN_ +#define WideHashChain Yap_heap_regs->WideHashChain_ +#define HashChain Yap_heap_regs->HashChain_ + + +#ifdef EUROTRA +#define TermDollarU Yap_heap_regs->TermDollarU_ +#endif + +#define USER_MODULE Yap_heap_regs->USER_MODULE_ +#define IDB_MODULE Yap_heap_regs->IDB_MODULE_ +#define ATTRIBUTES_MODULE Yap_heap_regs->ATTRIBUTES_MODULE_ +#define CHARSIO_MODULE Yap_heap_regs->CHARSIO_MODULE_ +#define CHTYPE_MODULE Yap_heap_regs->CHTYPE_MODULE_ +#define TERMS_MODULE Yap_heap_regs->TERMS_MODULE_ +#define SYSTEM_MODULE Yap_heap_regs->SYSTEM_MODULE_ +#define READUTIL_MODULE Yap_heap_regs->READUTIL_MODULE_ +#define HACKS_MODULE Yap_heap_regs->HACKS_MODULE_ +#define ARG_MODULE Yap_heap_regs->ARG_MODULE_ +#define GLOBALS_MODULE Yap_heap_regs->GLOBALS_MODULE_ +#define SWI_MODULE Yap_heap_regs->SWI_MODULE_ +#define DBLOAD_MODULE Yap_heap_regs->DBLOAD_MODULE_ +#define RANGE_MODULE Yap_heap_regs->RANGE_MODULE_ +#define ERROR_MODULE Yap_heap_regs->ERROR_MODULE_ + + + +#define CurrentModules Yap_heap_regs->CurrentModules_ + + + + +#define HIDDEN_PREDICATES Yap_heap_regs->HIDDEN_PREDICATES_ + + + +#define GLOBAL_Flags Yap_heap_regs->GLOBAL_Flags_ +#define GLOBAL_flagCount Yap_heap_regs->GLOBAL_flagCount_ + +#define Yap_ExecutionMode Yap_heap_regs->Yap_ExecutionMode_ + +#define PredsInHashTable Yap_heap_regs->PredsInHashTable_ +#define PredHashTableSize Yap_heap_regs->PredHashTableSize_ +#define PredHash Yap_heap_regs->PredHash_ +#if defined(YAPOR) || defined(THREADS) +#define PredHashRWLock Yap_heap_regs->PredHashRWLock_ +#endif + +#define CreepCode Yap_heap_regs->CreepCode_ +#define UndefCode Yap_heap_regs->UndefCode_ +#define SpyCode Yap_heap_regs->SpyCode_ +#define PredFail Yap_heap_regs->PredFail_ +#define PredTrue Yap_heap_regs->PredTrue_ +#ifdef COROUTINING +#define WakeUpCode Yap_heap_regs->WakeUpCode_ +#endif +#define PredDollarCatch Yap_heap_regs->PredDollarCatch_ +#ifdef YAPOR +#define PredGetwork Yap_heap_regs->PredGetwork_ +#endif /* YAPOR */ +#define PredGoalExpansion Yap_heap_regs->PredGoalExpansion_ +#define PredHandleThrow Yap_heap_regs->PredHandleThrow_ +#define PredIs Yap_heap_regs->PredIs_ +#define PredLogUpdClause Yap_heap_regs->PredLogUpdClause_ +#define PredLogUpdClauseErase Yap_heap_regs->PredLogUpdClauseErase_ +#define PredLogUpdClause0 Yap_heap_regs->PredLogUpdClause0_ +#define PredMetaCall Yap_heap_regs->PredMetaCall_ +#define PredProtectStack Yap_heap_regs->PredProtectStack_ +#define PredRecordedWithKey Yap_heap_regs->PredRecordedWithKey_ +#define PredRestoreRegs Yap_heap_regs->PredRestoreRegs_ +#define PredSafeCallCleanup Yap_heap_regs->PredSafeCallCleanup_ +#define PredStaticClause Yap_heap_regs->PredStaticClause_ +#define PredThrow Yap_heap_regs->PredThrow_ +#define PredTraceMetaCall Yap_heap_regs->PredTraceMetaCall_ +#define PredCommentHook Yap_heap_regs->PredCommentHook_ +#define PredProcedure Yap_heap_regs->PredProcedure_ +#define PredUndefinedQuery Yap_heap_regs->PredUndefinedQuery_ + +#ifdef LOW_LEVEL_TRACER +#define Yap_do_low_level_trace Yap_heap_regs->Yap_do_low_level_trace_ +#if defined(YAPOR) || defined(THREADS) +#define Yap_low_level_trace_lock Yap_heap_regs->Yap_low_level_trace_lock_ +#endif +#endif + +#define Yap_ClauseSpace Yap_heap_regs->Yap_ClauseSpace_ +#define Yap_IndexSpace_Tree Yap_heap_regs->Yap_IndexSpace_Tree_ +#define Yap_IndexSpace_EXT Yap_heap_regs->Yap_IndexSpace_EXT_ +#define Yap_IndexSpace_SW Yap_heap_regs->Yap_IndexSpace_SW_ +#define Yap_LUClauseSpace Yap_heap_regs->Yap_LUClauseSpace_ +#define Yap_LUIndexSpace_Tree Yap_heap_regs->Yap_LUIndexSpace_Tree_ +#define Yap_LUIndexSpace_CP Yap_heap_regs->Yap_LUIndexSpace_CP_ +#define Yap_LUIndexSpace_EXT Yap_heap_regs->Yap_LUIndexSpace_EXT_ +#define Yap_LUIndexSpace_SW Yap_heap_regs->Yap_LUIndexSpace_SW_ + +#define COMMA_CODE Yap_heap_regs->COMMA_CODE_ +#define DUMMYCODE Yap_heap_regs->DUMMYCODE_ +#define FAILCODE Yap_heap_regs->FAILCODE_ +#define NOCODE Yap_heap_regs->NOCODE_ +#define ENV_FOR_TRUSTFAIL Yap_heap_regs->ENV_FOR_TRUSTFAIL_ +#define TRUSTFAILCODE Yap_heap_regs->TRUSTFAILCODE_ +#define ENV_FOR_YESCODE Yap_heap_regs->ENV_FOR_YESCODE_ +#define YESCODE Yap_heap_regs->YESCODE_ +#define RTRYCODE Yap_heap_regs->RTRYCODE_ +#ifdef BEAM +#define BEAM_RETRY_CODE Yap_heap_regs->BEAM_RETRY_CODE_ +#endif /* BEAM */ +#ifdef YAPOR +#define GETWORK Yap_heap_regs->GETWORK_ +#define GETWORK_SEQ Yap_heap_regs->GETWORK_SEQ_ +#define GETWORK_FIRST_TIME Yap_heap_regs->GETWORK_FIRST_TIME_ +#endif /* YAPOR */ +#ifdef TABLING +#define LOAD_ANSWER Yap_heap_regs->LOAD_ANSWER_ +#define TRY_ANSWER Yap_heap_regs->TRY_ANSWER_ +#define ANSWER_RESOLUTION Yap_heap_regs->ANSWER_RESOLUTION_ +#define COMPLETION Yap_heap_regs->COMPLETION_ +#ifdef THREADS_CONSUMER_SHARING +#define ANSWER_RESOLUTION_COMPLETION Yap_heap_regs->ANSWER_RESOLUTION_COMPLETION_ +#endif /* THREADS_CONSUMER_SHARING */ +#endif /* TABLING */ + + + + +#define P_before_spy Yap_heap_regs->P_before_spy_ + +#define RETRY_C_RECORDEDP_CODE Yap_heap_regs->RETRY_C_RECORDEDP_CODE_ +#define RETRY_C_RECORDED_K_CODE Yap_heap_regs->RETRY_C_RECORDED_K_CODE_ + +#define PROFILING Yap_heap_regs->PROFILING_ +#define CALL_COUNTING Yap_heap_regs->CALL_COUNTING_ +#define optimizer_on Yap_heap_regs->optimizer_on_ +#define compile_mode Yap_heap_regs->compile_mode_ +#define profiling Yap_heap_regs->profiling_ +#define call_counting Yap_heap_regs->call_counting_ + +#define compile_arrays Yap_heap_regs->compile_arrays_ + +#if defined(YAPOR) || defined(THREADS) +#define DBTermsListLock Yap_heap_regs->DBTermsListLock_ +#endif +#define DBTermsList Yap_heap_regs->DBTermsList_ + +#define ExpandClausesFirst Yap_heap_regs->ExpandClausesFirst_ +#define ExpandClausesLast Yap_heap_regs->ExpandClausesLast_ +#define Yap_ExpandClauses Yap_heap_regs->Yap_ExpandClauses_ +#if defined(YAPOR) || defined(THREADS) +#define ExpandClausesListLock Yap_heap_regs->ExpandClausesListLock_ +#define OpListLock Yap_heap_regs->OpListLock_ +#endif + +#ifdef DEBUG +#define Yap_NewCps Yap_heap_regs->Yap_NewCps_ +#define Yap_LiveCps Yap_heap_regs->Yap_LiveCps_ +#define Yap_DirtyCps Yap_heap_regs->Yap_DirtyCps_ +#define Yap_FreedCps Yap_heap_regs->Yap_FreedCps_ +#endif +#define Yap_expand_clauses_sz Yap_heap_regs->Yap_expand_clauses_sz_ + +#define UdiControlBlocks Yap_heap_regs->UdiControlBlocks_ + + +#define STATIC_PREDICATES_MARKED Yap_heap_regs->STATIC_PREDICATES_MARKED_ + +#define INT_KEYS Yap_heap_regs->INT_KEYS_ +#define INT_LU_KEYS Yap_heap_regs->INT_LU_KEYS_ +#define INT_BB_KEYS Yap_heap_regs->INT_BB_KEYS_ + +#define INT_KEYS_SIZE Yap_heap_regs->INT_KEYS_SIZE_ +#define INT_KEYS_TIMESTAMP Yap_heap_regs->INT_KEYS_TIMESTAMP_ +#define INT_BB_KEYS_SIZE Yap_heap_regs->INT_BB_KEYS_SIZE_ + +#define UPDATE_MODE Yap_heap_regs->UPDATE_MODE_ + +#define DBErasedMarker Yap_heap_regs->DBErasedMarker_ +#define LogDBErasedMarker Yap_heap_regs->LogDBErasedMarker_ + +#define DeadStaticClauses Yap_heap_regs->DeadStaticClauses_ +#define DeadMegaClauses Yap_heap_regs->DeadMegaClauses_ +#define DeadStaticIndices Yap_heap_regs->DeadStaticIndices_ +#define DBErasedList Yap_heap_regs->DBErasedList_ +#define DBErasedIList Yap_heap_regs->DBErasedIList_ +#if defined(YAPOR) || defined(THREADS) +#define DeadStaticClausesLock Yap_heap_regs->DeadStaticClausesLock_ +#define DeadMegaClausesLock Yap_heap_regs->DeadMegaClausesLock_ +#define DeadStaticIndicesLock Yap_heap_regs->DeadStaticIndicesLock_ +#endif +#ifdef COROUTINING + +#define NUM_OF_ATTS Yap_heap_regs->NUM_OF_ATTS_ + +#define Yap_AttsSize Yap_heap_regs->Yap_AttsSize_ +#endif + +#define OpList Yap_heap_regs->OpList_ + +#define ForeignCodeLoaded Yap_heap_regs->ForeignCodeLoaded_ +#define ForeignCodeBase Yap_heap_regs->ForeignCodeBase_ +#define ForeignCodeTop Yap_heap_regs->ForeignCodeTop_ +#define ForeignCodeMax Yap_heap_regs->ForeignCodeMax_ + +#define Yap_Records Yap_heap_regs->Yap_Records_ +#define EmptyWakeups Yap_heap_regs->EmptyWakeups_ +#define MaxEmptyWakeups Yap_heap_regs->MaxEmptyWakeups_ + +#define BlobTypes Yap_heap_regs->BlobTypes_ +#define Blobs Yap_heap_regs->Blobs_ +#define NOfBlobs Yap_heap_regs->NOfBlobs_ +#define NOfBlobsMax Yap_heap_regs->NOfBlobsMax_ +#if defined(YAPOR) || defined(THREADS) +#define Blobs_Lock Yap_heap_regs->Blobs_Lock_ +#endif + diff --git a/H/generated/dlocals.h b/H/generated/dlocals.h index 0b3f4c025..af2f5c908 100644 --- a/H/generated/dlocals.h +++ b/H/generated/dlocals.h @@ -1,478 +1,478 @@ - - /* This file, dlocals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/LOCALS instead */ - - - - -#define LOCAL_c_input_stream LOCAL->c_input_stream_ -#define REMOTE_c_input_stream(wid) REMOTE(wid)->c_input_stream_ -#define LOCAL_c_output_stream LOCAL->c_output_stream_ -#define REMOTE_c_output_stream(wid) REMOTE(wid)->c_output_stream_ -#define LOCAL_c_error_stream LOCAL->c_error_stream_ -#define REMOTE_c_error_stream(wid) REMOTE(wid)->c_error_stream_ -#define LOCAL_sockets_io LOCAL->sockets_io_ -#define REMOTE_sockets_io(wid) REMOTE(wid)->sockets_io_ -#define LOCAL_within_print_message LOCAL->within_print_message_ -#define REMOTE_within_print_message(wid) REMOTE(wid)->within_print_message_ - - - - -#define LOCAL_newline LOCAL->newline_ -#define REMOTE_newline(wid) REMOTE(wid)->newline_ -#define LOCAL_AtPrompt LOCAL->AtPrompt_ -#define REMOTE_AtPrompt(wid) REMOTE(wid)->AtPrompt_ -#define LOCAL_Prompt LOCAL->Prompt_ -#define REMOTE_Prompt(wid) REMOTE(wid)->Prompt_ -#define LOCAL_encoding LOCAL->encoding_ -#define REMOTE_encoding(wid) REMOTE(wid)->encoding_ -#define LOCAL_quasi_quotations LOCAL->quasi_quotations_ -#define REMOTE_quasi_quotations(wid) REMOTE(wid)->quasi_quotations_ -#define LOCAL_default_priority LOCAL->default_priority_ -#define REMOTE_default_priority(wid) REMOTE(wid)->default_priority_ -#define LOCAL_eot_before_eof LOCAL->eot_before_eof_ -#define REMOTE_eot_before_eof(wid) REMOTE(wid)->eot_before_eof_ -#define LOCAL_max_depth LOCAL->max_depth_ -#define REMOTE_max_depth(wid) REMOTE(wid)->max_depth_ -#define LOCAL_max_list LOCAL->max_list_ -#define REMOTE_max_list(wid) REMOTE(wid)->max_list_ -#define LOCAL_max_write_args LOCAL->max_write_args_ -#define REMOTE_max_write_args(wid) REMOTE(wid)->max_write_args_ - -#define LOCAL_OldASP LOCAL->OldASP_ -#define REMOTE_OldASP(wid) REMOTE(wid)->OldASP_ -#define LOCAL_OldLCL0 LOCAL->OldLCL0_ -#define REMOTE_OldLCL0(wid) REMOTE(wid)->OldLCL0_ -#define LOCAL_OldTR LOCAL->OldTR_ -#define REMOTE_OldTR(wid) REMOTE(wid)->OldTR_ -#define LOCAL_OldGlobalBase LOCAL->OldGlobalBase_ -#define REMOTE_OldGlobalBase(wid) REMOTE(wid)->OldGlobalBase_ -#define LOCAL_OldH LOCAL->OldH_ -#define REMOTE_OldH(wid) REMOTE(wid)->OldH_ -#define LOCAL_OldH0 LOCAL->OldH0_ -#define REMOTE_OldH0(wid) REMOTE(wid)->OldH0_ -#define LOCAL_OldTrailBase LOCAL->OldTrailBase_ -#define REMOTE_OldTrailBase(wid) REMOTE(wid)->OldTrailBase_ -#define LOCAL_OldTrailTop LOCAL->OldTrailTop_ -#define REMOTE_OldTrailTop(wid) REMOTE(wid)->OldTrailTop_ -#define LOCAL_OldHeapBase LOCAL->OldHeapBase_ -#define REMOTE_OldHeapBase(wid) REMOTE(wid)->OldHeapBase_ -#define LOCAL_OldHeapTop LOCAL->OldHeapTop_ -#define REMOTE_OldHeapTop(wid) REMOTE(wid)->OldHeapTop_ -#define LOCAL_ClDiff LOCAL->ClDiff_ -#define REMOTE_ClDiff(wid) REMOTE(wid)->ClDiff_ -#define LOCAL_GDiff LOCAL->GDiff_ -#define REMOTE_GDiff(wid) REMOTE(wid)->GDiff_ -#define LOCAL_HDiff LOCAL->HDiff_ -#define REMOTE_HDiff(wid) REMOTE(wid)->HDiff_ -#define LOCAL_GDiff0 LOCAL->GDiff0_ -#define REMOTE_GDiff0(wid) REMOTE(wid)->GDiff0_ -#define LOCAL_GSplit LOCAL->GSplit_ -#define REMOTE_GSplit(wid) REMOTE(wid)->GSplit_ -#define LOCAL_LDiff LOCAL->LDiff_ -#define REMOTE_LDiff(wid) REMOTE(wid)->LDiff_ -#define LOCAL_TrDiff LOCAL->TrDiff_ -#define REMOTE_TrDiff(wid) REMOTE(wid)->TrDiff_ -#define LOCAL_XDiff LOCAL->XDiff_ -#define REMOTE_XDiff(wid) REMOTE(wid)->XDiff_ -#define LOCAL_DelayDiff LOCAL->DelayDiff_ -#define REMOTE_DelayDiff(wid) REMOTE(wid)->DelayDiff_ -#define LOCAL_BaseDiff LOCAL->BaseDiff_ -#define REMOTE_BaseDiff(wid) REMOTE(wid)->BaseDiff_ - -#define LOCAL_ReductionsCounter LOCAL->ReductionsCounter_ -#define REMOTE_ReductionsCounter(wid) REMOTE(wid)->ReductionsCounter_ -#define LOCAL_PredEntriesCounter LOCAL->PredEntriesCounter_ -#define REMOTE_PredEntriesCounter(wid) REMOTE(wid)->PredEntriesCounter_ -#define LOCAL_RetriesCounter LOCAL->RetriesCounter_ -#define REMOTE_RetriesCounter(wid) REMOTE(wid)->RetriesCounter_ -#define LOCAL_ReductionsCounterOn LOCAL->ReductionsCounterOn_ -#define REMOTE_ReductionsCounterOn(wid) REMOTE(wid)->ReductionsCounterOn_ -#define LOCAL_PredEntriesCounterOn LOCAL->PredEntriesCounterOn_ -#define REMOTE_PredEntriesCounterOn(wid) REMOTE(wid)->PredEntriesCounterOn_ -#define LOCAL_RetriesCounterOn LOCAL->RetriesCounterOn_ -#define REMOTE_RetriesCounterOn(wid) REMOTE(wid)->RetriesCounterOn_ - - -#define LOCAL_ConsultSp LOCAL->ConsultSp_ -#define REMOTE_ConsultSp(wid) REMOTE(wid)->ConsultSp_ - -#define LOCAL_ConsultCapacity LOCAL->ConsultCapacity_ -#define REMOTE_ConsultCapacity(wid) REMOTE(wid)->ConsultCapacity_ - -#define LOCAL_ConsultBase LOCAL->ConsultBase_ -#define REMOTE_ConsultBase(wid) REMOTE(wid)->ConsultBase_ - -#define LOCAL_ConsultLow LOCAL->ConsultLow_ -#define REMOTE_ConsultLow(wid) REMOTE(wid)->ConsultLow_ -#define LOCAL_VarNames LOCAL->VarNames_ -#define REMOTE_VarNames(wid) REMOTE(wid)->VarNames_ -#define LOCAL_SourceFileName LOCAL->SourceFileName_ -#define REMOTE_SourceFileName(wid) REMOTE(wid)->SourceFileName_ -#define LOCAL_SourceFileLineno LOCAL->SourceFileLineno_ -#define REMOTE_SourceFileLineno(wid) REMOTE(wid)->SourceFileLineno_ - -#define LOCAL_GlobalArena LOCAL->GlobalArena_ -#define REMOTE_GlobalArena(wid) REMOTE(wid)->GlobalArena_ -#define LOCAL_GlobalArenaOverflows LOCAL->GlobalArenaOverflows_ -#define REMOTE_GlobalArenaOverflows(wid) REMOTE(wid)->GlobalArenaOverflows_ -#define LOCAL_ArenaOverflows LOCAL->ArenaOverflows_ -#define REMOTE_ArenaOverflows(wid) REMOTE(wid)->ArenaOverflows_ -#define LOCAL_DepthArenas LOCAL->DepthArenas_ -#define REMOTE_DepthArenas(wid) REMOTE(wid)->DepthArenas_ -#define LOCAL_LastAssertedPred LOCAL->LastAssertedPred_ -#define REMOTE_LastAssertedPred(wid) REMOTE(wid)->LastAssertedPred_ -#define LOCAL_TmpPred LOCAL->TmpPred_ -#define REMOTE_TmpPred(wid) REMOTE(wid)->TmpPred_ -#define LOCAL_ScannerStack LOCAL->ScannerStack_ -#define REMOTE_ScannerStack(wid) REMOTE(wid)->ScannerStack_ -#define LOCAL_ScannerExtraBlocks LOCAL->ScannerExtraBlocks_ -#define REMOTE_ScannerExtraBlocks(wid) REMOTE(wid)->ScannerExtraBlocks_ - - -#define LOCAL_CBorder LOCAL->CBorder_ -#define REMOTE_CBorder(wid) REMOTE(wid)->CBorder_ - -#define LOCAL_MaxActiveSignals LOCAL->MaxActiveSignals_ -#define REMOTE_MaxActiveSignals(wid) REMOTE(wid)->MaxActiveSignals_ - -#define LOCAL_Signals LOCAL->Signals_ -#define REMOTE_Signals(wid) REMOTE(wid)->Signals_ - -#define LOCAL_IPredArity LOCAL->IPredArity_ -#define REMOTE_IPredArity(wid) REMOTE(wid)->IPredArity_ -#define LOCAL_ProfEnd LOCAL->ProfEnd_ -#define REMOTE_ProfEnd(wid) REMOTE(wid)->ProfEnd_ -#define LOCAL_DoingUndefp LOCAL->DoingUndefp_ -#define REMOTE_DoingUndefp(wid) REMOTE(wid)->DoingUndefp_ -#define LOCAL_StartCharCount LOCAL->StartCharCount_ -#define REMOTE_StartCharCount(wid) REMOTE(wid)->StartCharCount_ -#define LOCAL_StartLineCount LOCAL->StartLineCount_ -#define REMOTE_StartLineCount(wid) REMOTE(wid)->StartLineCount_ -#define LOCAL_StartLinePos LOCAL->StartLinePos_ -#define REMOTE_StartLinePos(wid) REMOTE(wid)->StartLinePos_ -#define LOCAL_ScratchPad LOCAL->ScratchPad_ -#define REMOTE_ScratchPad(wid) REMOTE(wid)->ScratchPad_ -#ifdef COROUTINING -#define LOCAL_WokenGoals LOCAL->WokenGoals_ -#define REMOTE_WokenGoals(wid) REMOTE(wid)->WokenGoals_ -#define LOCAL_AttsMutableList LOCAL->AttsMutableList_ -#define REMOTE_AttsMutableList(wid) REMOTE(wid)->AttsMutableList_ -#endif - -#define LOCAL_GcGeneration LOCAL->GcGeneration_ -#define REMOTE_GcGeneration(wid) REMOTE(wid)->GcGeneration_ -#define LOCAL_GcPhase LOCAL->GcPhase_ -#define REMOTE_GcPhase(wid) REMOTE(wid)->GcPhase_ -#define LOCAL_GcCurrentPhase LOCAL->GcCurrentPhase_ -#define REMOTE_GcCurrentPhase(wid) REMOTE(wid)->GcCurrentPhase_ -#define LOCAL_GcCalls LOCAL->GcCalls_ -#define REMOTE_GcCalls(wid) REMOTE(wid)->GcCalls_ -#define LOCAL_TotGcTime LOCAL->TotGcTime_ -#define REMOTE_TotGcTime(wid) REMOTE(wid)->TotGcTime_ -#define LOCAL_TotGcRecovered LOCAL->TotGcRecovered_ -#define REMOTE_TotGcRecovered(wid) REMOTE(wid)->TotGcRecovered_ -#define LOCAL_LastGcTime LOCAL->LastGcTime_ -#define REMOTE_LastGcTime(wid) REMOTE(wid)->LastGcTime_ -#define LOCAL_LastSSTime LOCAL->LastSSTime_ -#define REMOTE_LastSSTime(wid) REMOTE(wid)->LastSSTime_ -#define LOCAL_OpenArray LOCAL->OpenArray_ -#define REMOTE_OpenArray(wid) REMOTE(wid)->OpenArray_ - -#define LOCAL_total_marked LOCAL->total_marked_ -#define REMOTE_total_marked(wid) REMOTE(wid)->total_marked_ -#define LOCAL_total_oldies LOCAL->total_oldies_ -#define REMOTE_total_oldies(wid) REMOTE(wid)->total_oldies_ -#define LOCAL_current_B LOCAL->current_B_ -#define REMOTE_current_B(wid) REMOTE(wid)->current_B_ -#define LOCAL_prev_HB LOCAL->prev_HB_ -#define REMOTE_prev_HB(wid) REMOTE(wid)->prev_HB_ -#define LOCAL_HGEN LOCAL->HGEN_ -#define REMOTE_HGEN(wid) REMOTE(wid)->HGEN_ -#define LOCAL_iptop LOCAL->iptop_ -#define REMOTE_iptop(wid) REMOTE(wid)->iptop_ -#if defined(GC_NO_TAGS) -#define LOCAL_bp LOCAL->bp_ -#define REMOTE_bp(wid) REMOTE(wid)->bp_ -#endif -#define LOCAL_sTR LOCAL->sTR_ -#define REMOTE_sTR(wid) REMOTE(wid)->sTR_ -#define LOCAL_sTR0 LOCAL->sTR0_ -#define REMOTE_sTR0(wid) REMOTE(wid)->sTR0_ -#define LOCAL_new_TR LOCAL->new_TR_ -#define REMOTE_new_TR(wid) REMOTE(wid)->new_TR_ -#define LOCAL_cont_top0 LOCAL->cont_top0_ -#define REMOTE_cont_top0(wid) REMOTE(wid)->cont_top0_ -#define LOCAL_cont_top LOCAL->cont_top_ -#define REMOTE_cont_top(wid) REMOTE(wid)->cont_top_ -#define LOCAL_discard_trail_entries LOCAL->discard_trail_entries_ -#define REMOTE_discard_trail_entries(wid) REMOTE(wid)->discard_trail_entries_ -#define LOCAL_gc_ma_hash_table LOCAL->gc_ma_hash_table_ -#define REMOTE_gc_ma_hash_table(wid) REMOTE(wid)->gc_ma_hash_table_ -#define LOCAL_gc_ma_h_top LOCAL->gc_ma_h_top_ -#define REMOTE_gc_ma_h_top(wid) REMOTE(wid)->gc_ma_h_top_ -#define LOCAL_gc_ma_h_list LOCAL->gc_ma_h_list_ -#define REMOTE_gc_ma_h_list(wid) REMOTE(wid)->gc_ma_h_list_ -#define LOCAL_gc_timestamp LOCAL->gc_timestamp_ -#define REMOTE_gc_timestamp(wid) REMOTE(wid)->gc_timestamp_ -#define LOCAL_db_vec LOCAL->db_vec_ -#define REMOTE_db_vec(wid) REMOTE(wid)->db_vec_ -#define LOCAL_db_vec0 LOCAL->db_vec0_ -#define REMOTE_db_vec0(wid) REMOTE(wid)->db_vec0_ -#define LOCAL_db_root LOCAL->db_root_ -#define REMOTE_db_root(wid) REMOTE(wid)->db_root_ -#define LOCAL_db_nil LOCAL->db_nil_ -#define REMOTE_db_nil(wid) REMOTE(wid)->db_nil_ -#define LOCAL_gc_restore LOCAL->gc_restore_ -#define REMOTE_gc_restore(wid) REMOTE(wid)->gc_restore_ -#define LOCAL_extra_gc_cells LOCAL->extra_gc_cells_ -#define REMOTE_extra_gc_cells(wid) REMOTE(wid)->extra_gc_cells_ -#define LOCAL_extra_gc_cells_base LOCAL->extra_gc_cells_base_ -#define REMOTE_extra_gc_cells_base(wid) REMOTE(wid)->extra_gc_cells_base_ -#define LOCAL_extra_gc_cells_top LOCAL->extra_gc_cells_top_ -#define REMOTE_extra_gc_cells_top(wid) REMOTE(wid)->extra_gc_cells_top_ -#define LOCAL_extra_gc_cells_size LOCAL->extra_gc_cells_size_ -#define REMOTE_extra_gc_cells_size(wid) REMOTE(wid)->extra_gc_cells_size_ -#define LOCAL_DynamicArrays LOCAL->DynamicArrays_ -#define REMOTE_DynamicArrays(wid) REMOTE(wid)->DynamicArrays_ -#define LOCAL_StaticArrays LOCAL->StaticArrays_ -#define REMOTE_StaticArrays(wid) REMOTE(wid)->StaticArrays_ -#define LOCAL_GlobalVariables LOCAL->GlobalVariables_ -#define REMOTE_GlobalVariables(wid) REMOTE(wid)->GlobalVariables_ -#define LOCAL_AllowRestart LOCAL->AllowRestart_ -#define REMOTE_AllowRestart(wid) REMOTE(wid)->AllowRestart_ - -#define LOCAL_CMemFirstBlock LOCAL->CMemFirstBlock_ -#define REMOTE_CMemFirstBlock(wid) REMOTE(wid)->CMemFirstBlock_ -#define LOCAL_CMemFirstBlockSz LOCAL->CMemFirstBlockSz_ -#define REMOTE_CMemFirstBlockSz(wid) REMOTE(wid)->CMemFirstBlockSz_ - -#define LOCAL_nperm LOCAL->nperm_ -#define REMOTE_nperm(wid) REMOTE(wid)->nperm_ -#define LOCAL_jMP LOCAL->jMP_ -#define REMOTE_jMP(wid) REMOTE(wid)->jMP_ - -#define LOCAL_LabelFirstArray LOCAL->LabelFirstArray_ -#define REMOTE_LabelFirstArray(wid) REMOTE(wid)->LabelFirstArray_ -#define LOCAL_LabelFirstArraySz LOCAL->LabelFirstArraySz_ -#define REMOTE_LabelFirstArraySz(wid) REMOTE(wid)->LabelFirstArraySz_ - - -#ifdef THREADS -#define LOCAL_ThreadHandle LOCAL->ThreadHandle_ -#define REMOTE_ThreadHandle(wid) REMOTE(wid)->ThreadHandle_ -#endif /* THREADS */ -#if defined(YAPOR) || defined(TABLING) -#define LOCAL_optyap_data LOCAL->optyap_data_ -#define REMOTE_optyap_data(wid) REMOTE(wid)->optyap_data_ -#define LOCAL_TabMode LOCAL->TabMode_ -#define REMOTE_TabMode(wid) REMOTE(wid)->TabMode_ -#endif /* YAPOR || TABLING */ -#define LOCAL_InterruptsDisabled LOCAL->InterruptsDisabled_ -#define REMOTE_InterruptsDisabled(wid) REMOTE(wid)->InterruptsDisabled_ -#define LOCAL_execution LOCAL->execution_ -#define REMOTE_execution(wid) REMOTE(wid)->execution_ -#if LOW_LEVEL_TRACER -#define LOCAL_total_choicepoints LOCAL->total_choicepoints_ -#define REMOTE_total_choicepoints(wid) REMOTE(wid)->total_choicepoints_ -#endif -#define LOCAL_consult_level LOCAL->consult_level_ -#define REMOTE_consult_level(wid) REMOTE(wid)->consult_level_ - -#define LOCAL_LocalBase LOCAL->LocalBase_ -#define REMOTE_LocalBase(wid) REMOTE(wid)->LocalBase_ -#define LOCAL_GlobalBase LOCAL->GlobalBase_ -#define REMOTE_GlobalBase(wid) REMOTE(wid)->GlobalBase_ -#define LOCAL_TrailBase LOCAL->TrailBase_ -#define REMOTE_TrailBase(wid) REMOTE(wid)->TrailBase_ -#define LOCAL_TrailTop LOCAL->TrailTop_ -#define REMOTE_TrailTop(wid) REMOTE(wid)->TrailTop_ - -#define LOCAL_ActiveError LOCAL->ActiveError_ -#define REMOTE_ActiveError(wid) REMOTE(wid)->ActiveError_ - -#define LOCAL_IOBotch LOCAL->IOBotch_ -#define REMOTE_IOBotch(wid) REMOTE(wid)->IOBotch_ -#define LOCAL_tokptr LOCAL->tokptr_ -#define REMOTE_tokptr(wid) REMOTE(wid)->tokptr_ -#define LOCAL_toktide LOCAL->toktide_ -#define REMOTE_toktide(wid) REMOTE(wid)->toktide_ -#define LOCAL_VarTable LOCAL->VarTable_ -#define REMOTE_VarTable(wid) REMOTE(wid)->VarTable_ -#define LOCAL_AnonVarTable LOCAL->AnonVarTable_ -#define REMOTE_AnonVarTable(wid) REMOTE(wid)->AnonVarTable_ -#define LOCAL_Comments LOCAL->Comments_ -#define REMOTE_Comments(wid) REMOTE(wid)->Comments_ -#define LOCAL_CommentsTail LOCAL->CommentsTail_ -#define REMOTE_CommentsTail(wid) REMOTE(wid)->CommentsTail_ -#define LOCAL_CommentsNextChar LOCAL->CommentsNextChar_ -#define REMOTE_CommentsNextChar(wid) REMOTE(wid)->CommentsNextChar_ -#define LOCAL_CommentsBuff LOCAL->CommentsBuff_ -#define REMOTE_CommentsBuff(wid) REMOTE(wid)->CommentsBuff_ -#define LOCAL_CommentsBuffPos LOCAL->CommentsBuffPos_ -#define REMOTE_CommentsBuffPos(wid) REMOTE(wid)->CommentsBuffPos_ -#define LOCAL_CommentsBuffLim LOCAL->CommentsBuffLim_ -#define REMOTE_CommentsBuffLim(wid) REMOTE(wid)->CommentsBuffLim_ -#define LOCAL_RestartEnv LOCAL->RestartEnv_ -#define REMOTE_RestartEnv(wid) REMOTE(wid)->RestartEnv_ -#define LOCAL_FileNameBuf LOCAL->FileNameBuf_ -#define REMOTE_FileNameBuf(wid) REMOTE(wid)->FileNameBuf_ -#define LOCAL_FileNameBuf2 LOCAL->FileNameBuf2_ -#define REMOTE_FileNameBuf2(wid) REMOTE(wid)->FileNameBuf2_ -#define LOCAL_TextBuffer LOCAL->TextBuffer_ -#define REMOTE_TextBuffer(wid) REMOTE(wid)->TextBuffer_ - -#define LOCAL_BreakLevel LOCAL->BreakLevel_ -#define REMOTE_BreakLevel(wid) REMOTE(wid)->BreakLevel_ -#define LOCAL_PrologMode LOCAL->PrologMode_ -#define REMOTE_PrologMode(wid) REMOTE(wid)->PrologMode_ -#define LOCAL_CritLocks LOCAL->CritLocks_ -#define REMOTE_CritLocks(wid) REMOTE(wid)->CritLocks_ - -#define LOCAL_Flags LOCAL->Flags_ -#define REMOTE_Flags(wid) REMOTE(wid)->Flags_ -#define LOCAL_flagCount LOCAL->flagCount_ -#define REMOTE_flagCount(wid) REMOTE(wid)->flagCount_ - - -#ifdef ANALYST -#define LOCAL_opcount LOCAL->opcount_ -#define REMOTE_opcount(wid) REMOTE(wid)->opcount_ -#define LOCAL_2opcount LOCAL->2opcount_ -#define REMOTE_2opcount(wid) REMOTE(wid)->2opcount_ -#endif /* ANALYST */ - -#define LOCAL_s_dbg LOCAL->s_dbg_ -#define REMOTE_s_dbg(wid) REMOTE(wid)->s_dbg_ - -#define LOCAL_mathtt LOCAL->mathtt_ -#define REMOTE_mathtt(wid) REMOTE(wid)->mathtt_ -#define LOCAL_mathstring LOCAL->mathstring_ -#define REMOTE_mathstring(wid) REMOTE(wid)->mathstring_ - -#define LOCAL_heap_overflows LOCAL->heap_overflows_ -#define REMOTE_heap_overflows(wid) REMOTE(wid)->heap_overflows_ -#define LOCAL_total_heap_overflow_time LOCAL->total_heap_overflow_time_ -#define REMOTE_total_heap_overflow_time(wid) REMOTE(wid)->total_heap_overflow_time_ -#define LOCAL_stack_overflows LOCAL->stack_overflows_ -#define REMOTE_stack_overflows(wid) REMOTE(wid)->stack_overflows_ -#define LOCAL_total_stack_overflow_time LOCAL->total_stack_overflow_time_ -#define REMOTE_total_stack_overflow_time(wid) REMOTE(wid)->total_stack_overflow_time_ -#define LOCAL_delay_overflows LOCAL->delay_overflows_ -#define REMOTE_delay_overflows(wid) REMOTE(wid)->delay_overflows_ -#define LOCAL_total_delay_overflow_time LOCAL->total_delay_overflow_time_ -#define REMOTE_total_delay_overflow_time(wid) REMOTE(wid)->total_delay_overflow_time_ -#define LOCAL_trail_overflows LOCAL->trail_overflows_ -#define REMOTE_trail_overflows(wid) REMOTE(wid)->trail_overflows_ -#define LOCAL_total_trail_overflow_time LOCAL->total_trail_overflow_time_ -#define REMOTE_total_trail_overflow_time(wid) REMOTE(wid)->total_trail_overflow_time_ -#define LOCAL_atom_table_overflows LOCAL->atom_table_overflows_ -#define REMOTE_atom_table_overflows(wid) REMOTE(wid)->atom_table_overflows_ -#define LOCAL_total_atom_table_overflow_time LOCAL->total_atom_table_overflow_time_ -#define REMOTE_total_atom_table_overflow_time(wid) REMOTE(wid)->total_atom_table_overflow_time_ - -#ifdef LOAD_DYLD -#define LOCAL_dl_errno LOCAL->dl_errno_ -#define REMOTE_dl_errno(wid) REMOTE(wid)->dl_errno_ -#endif - -#ifdef LOW_LEVEL_TRACER -#define LOCAL_do_trace_primitives LOCAL->do_trace_primitives_ -#define REMOTE_do_trace_primitives(wid) REMOTE(wid)->do_trace_primitives_ -#endif - -#define LOCAL_ExportAtomHashChain LOCAL->ExportAtomHashChain_ -#define REMOTE_ExportAtomHashChain(wid) REMOTE(wid)->ExportAtomHashChain_ -#define LOCAL_ExportAtomHashTableSize LOCAL->ExportAtomHashTableSize_ -#define REMOTE_ExportAtomHashTableSize(wid) REMOTE(wid)->ExportAtomHashTableSize_ -#define LOCAL_ExportAtomHashTableNum LOCAL->ExportAtomHashTableNum_ -#define REMOTE_ExportAtomHashTableNum(wid) REMOTE(wid)->ExportAtomHashTableNum_ -#define LOCAL_ExportFunctorHashChain LOCAL->ExportFunctorHashChain_ -#define REMOTE_ExportFunctorHashChain(wid) REMOTE(wid)->ExportFunctorHashChain_ -#define LOCAL_ExportFunctorHashTableSize LOCAL->ExportFunctorHashTableSize_ -#define REMOTE_ExportFunctorHashTableSize(wid) REMOTE(wid)->ExportFunctorHashTableSize_ -#define LOCAL_ExportFunctorHashTableNum LOCAL->ExportFunctorHashTableNum_ -#define REMOTE_ExportFunctorHashTableNum(wid) REMOTE(wid)->ExportFunctorHashTableNum_ -#define LOCAL_ExportPredEntryHashChain LOCAL->ExportPredEntryHashChain_ -#define REMOTE_ExportPredEntryHashChain(wid) REMOTE(wid)->ExportPredEntryHashChain_ -#define LOCAL_ExportPredEntryHashTableSize LOCAL->ExportPredEntryHashTableSize_ -#define REMOTE_ExportPredEntryHashTableSize(wid) REMOTE(wid)->ExportPredEntryHashTableSize_ -#define LOCAL_ExportPredEntryHashTableNum LOCAL->ExportPredEntryHashTableNum_ -#define REMOTE_ExportPredEntryHashTableNum(wid) REMOTE(wid)->ExportPredEntryHashTableNum_ -#define LOCAL_ExportDBRefHashChain LOCAL->ExportDBRefHashChain_ -#define REMOTE_ExportDBRefHashChain(wid) REMOTE(wid)->ExportDBRefHashChain_ -#define LOCAL_ExportDBRefHashTableSize LOCAL->ExportDBRefHashTableSize_ -#define REMOTE_ExportDBRefHashTableSize(wid) REMOTE(wid)->ExportDBRefHashTableSize_ -#define LOCAL_ExportDBRefHashTableNum LOCAL->ExportDBRefHashTableNum_ -#define REMOTE_ExportDBRefHashTableNum(wid) REMOTE(wid)->ExportDBRefHashTableNum_ -#define LOCAL_ImportAtomHashChain LOCAL->ImportAtomHashChain_ -#define REMOTE_ImportAtomHashChain(wid) REMOTE(wid)->ImportAtomHashChain_ -#define LOCAL_ImportAtomHashTableSize LOCAL->ImportAtomHashTableSize_ -#define REMOTE_ImportAtomHashTableSize(wid) REMOTE(wid)->ImportAtomHashTableSize_ -#define LOCAL_ImportAtomHashTableNum LOCAL->ImportAtomHashTableNum_ -#define REMOTE_ImportAtomHashTableNum(wid) REMOTE(wid)->ImportAtomHashTableNum_ -#define LOCAL_ImportFunctorHashChain LOCAL->ImportFunctorHashChain_ -#define REMOTE_ImportFunctorHashChain(wid) REMOTE(wid)->ImportFunctorHashChain_ -#define LOCAL_ImportFunctorHashTableSize LOCAL->ImportFunctorHashTableSize_ -#define REMOTE_ImportFunctorHashTableSize(wid) REMOTE(wid)->ImportFunctorHashTableSize_ -#define LOCAL_ImportFunctorHashTableNum LOCAL->ImportFunctorHashTableNum_ -#define REMOTE_ImportFunctorHashTableNum(wid) REMOTE(wid)->ImportFunctorHashTableNum_ -#define LOCAL_ImportOPCODEHashChain LOCAL->ImportOPCODEHashChain_ -#define REMOTE_ImportOPCODEHashChain(wid) REMOTE(wid)->ImportOPCODEHashChain_ -#define LOCAL_ImportOPCODEHashTableSize LOCAL->ImportOPCODEHashTableSize_ -#define REMOTE_ImportOPCODEHashTableSize(wid) REMOTE(wid)->ImportOPCODEHashTableSize_ -#define LOCAL_ImportPredEntryHashChain LOCAL->ImportPredEntryHashChain_ -#define REMOTE_ImportPredEntryHashChain(wid) REMOTE(wid)->ImportPredEntryHashChain_ -#define LOCAL_ImportPredEntryHashTableSize LOCAL->ImportPredEntryHashTableSize_ -#define REMOTE_ImportPredEntryHashTableSize(wid) REMOTE(wid)->ImportPredEntryHashTableSize_ -#define LOCAL_ImportPredEntryHashTableNum LOCAL->ImportPredEntryHashTableNum_ -#define REMOTE_ImportPredEntryHashTableNum(wid) REMOTE(wid)->ImportPredEntryHashTableNum_ -#define LOCAL_ImportDBRefHashChain LOCAL->ImportDBRefHashChain_ -#define REMOTE_ImportDBRefHashChain(wid) REMOTE(wid)->ImportDBRefHashChain_ -#define LOCAL_ImportDBRefHashTableSize LOCAL->ImportDBRefHashTableSize_ -#define REMOTE_ImportDBRefHashTableSize(wid) REMOTE(wid)->ImportDBRefHashTableSize_ -#define LOCAL_ImportDBRefHashTableNum LOCAL->ImportDBRefHashTableNum_ -#define REMOTE_ImportDBRefHashTableNum(wid) REMOTE(wid)->ImportDBRefHashTableNum_ -#define LOCAL_ImportFAILCODE LOCAL->ImportFAILCODE_ -#define REMOTE_ImportFAILCODE(wid) REMOTE(wid)->ImportFAILCODE_ - -#define LOCAL_ibnds LOCAL->ibnds_ -#define REMOTE_ibnds(wid) REMOTE(wid)->ibnds_ -#define LOCAL_exo_it LOCAL->exo_it_ -#define REMOTE_exo_it(wid) REMOTE(wid)->exo_it_ -#define LOCAL_exo_base LOCAL->exo_base_ -#define REMOTE_exo_base(wid) REMOTE(wid)->exo_base_ -#define LOCAL_exo_arity LOCAL->exo_arity_ -#define REMOTE_exo_arity(wid) REMOTE(wid)->exo_arity_ -#define LOCAL_exo_arg LOCAL->exo_arg_ -#define REMOTE_exo_arg(wid) REMOTE(wid)->exo_arg_ - -#define LOCAL_search_atoms LOCAL->search_atoms_ -#define REMOTE_search_atoms(wid) REMOTE(wid)->search_atoms_ -#define LOCAL_SearchPreds LOCAL->SearchPreds_ -#define REMOTE_SearchPreds(wid) REMOTE(wid)->SearchPreds_ - -#define LOCAL_CurSlot LOCAL->CurSlot_ -#define REMOTE_CurSlot(wid) REMOTE(wid)->CurSlot_ -#define LOCAL_FrozenHandles LOCAL->FrozenHandles_ -#define REMOTE_FrozenHandles(wid) REMOTE(wid)->FrozenHandles_ -#define LOCAL_NSlots LOCAL->NSlots_ -#define REMOTE_NSlots(wid) REMOTE(wid)->NSlots_ -#define LOCAL_SlotBase LOCAL->SlotBase_ -#define REMOTE_SlotBase(wid) REMOTE(wid)->SlotBase_ - -#define LOCAL_Mutexes LOCAL->Mutexes_ -#define REMOTE_Mutexes(wid) REMOTE(wid)->Mutexes_ -#define LOCAL_SourceModule LOCAL->SourceModule_ -#define REMOTE_SourceModule(wid) REMOTE(wid)->SourceModule_ -#define LOCAL_Including LOCAL->Including_ -#define REMOTE_Including(wid) REMOTE(wid)->Including_ -#define LOCAL_MAX_SIZE LOCAL->MAX_SIZE_ -#define REMOTE_MAX_SIZE(wid) REMOTE(wid)->MAX_SIZE_ - -#define LOCAL_LastWTime LOCAL->LastWTime_ -#define REMOTE_LastWTime(wid) REMOTE(wid)->LastWTime_ -#define LOCAL_shared LOCAL->shared_ -#define REMOTE_shared(wid) REMOTE(wid)->shared_ - + + /* This file, dlocals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/LOCALS instead */ + + + + +#define LOCAL_c_input_stream LOCAL->c_input_stream_ +#define REMOTE_c_input_stream(wid) REMOTE(wid)->c_input_stream_ +#define LOCAL_c_output_stream LOCAL->c_output_stream_ +#define REMOTE_c_output_stream(wid) REMOTE(wid)->c_output_stream_ +#define LOCAL_c_error_stream LOCAL->c_error_stream_ +#define REMOTE_c_error_stream(wid) REMOTE(wid)->c_error_stream_ +#define LOCAL_sockets_io LOCAL->sockets_io_ +#define REMOTE_sockets_io(wid) REMOTE(wid)->sockets_io_ +#define LOCAL_within_print_message LOCAL->within_print_message_ +#define REMOTE_within_print_message(wid) REMOTE(wid)->within_print_message_ + + + + +#define LOCAL_newline LOCAL->newline_ +#define REMOTE_newline(wid) REMOTE(wid)->newline_ +#define LOCAL_AtPrompt LOCAL->AtPrompt_ +#define REMOTE_AtPrompt(wid) REMOTE(wid)->AtPrompt_ +#define LOCAL_Prompt LOCAL->Prompt_ +#define REMOTE_Prompt(wid) REMOTE(wid)->Prompt_ +#define LOCAL_encoding LOCAL->encoding_ +#define REMOTE_encoding(wid) REMOTE(wid)->encoding_ +#define LOCAL_quasi_quotations LOCAL->quasi_quotations_ +#define REMOTE_quasi_quotations(wid) REMOTE(wid)->quasi_quotations_ +#define LOCAL_default_priority LOCAL->default_priority_ +#define REMOTE_default_priority(wid) REMOTE(wid)->default_priority_ +#define LOCAL_eot_before_eof LOCAL->eot_before_eof_ +#define REMOTE_eot_before_eof(wid) REMOTE(wid)->eot_before_eof_ +#define LOCAL_max_depth LOCAL->max_depth_ +#define REMOTE_max_depth(wid) REMOTE(wid)->max_depth_ +#define LOCAL_max_list LOCAL->max_list_ +#define REMOTE_max_list(wid) REMOTE(wid)->max_list_ +#define LOCAL_max_write_args LOCAL->max_write_args_ +#define REMOTE_max_write_args(wid) REMOTE(wid)->max_write_args_ + +#define LOCAL_OldASP LOCAL->OldASP_ +#define REMOTE_OldASP(wid) REMOTE(wid)->OldASP_ +#define LOCAL_OldLCL0 LOCAL->OldLCL0_ +#define REMOTE_OldLCL0(wid) REMOTE(wid)->OldLCL0_ +#define LOCAL_OldTR LOCAL->OldTR_ +#define REMOTE_OldTR(wid) REMOTE(wid)->OldTR_ +#define LOCAL_OldGlobalBase LOCAL->OldGlobalBase_ +#define REMOTE_OldGlobalBase(wid) REMOTE(wid)->OldGlobalBase_ +#define LOCAL_OldH LOCAL->OldH_ +#define REMOTE_OldH(wid) REMOTE(wid)->OldH_ +#define LOCAL_OldH0 LOCAL->OldH0_ +#define REMOTE_OldH0(wid) REMOTE(wid)->OldH0_ +#define LOCAL_OldTrailBase LOCAL->OldTrailBase_ +#define REMOTE_OldTrailBase(wid) REMOTE(wid)->OldTrailBase_ +#define LOCAL_OldTrailTop LOCAL->OldTrailTop_ +#define REMOTE_OldTrailTop(wid) REMOTE(wid)->OldTrailTop_ +#define LOCAL_OldHeapBase LOCAL->OldHeapBase_ +#define REMOTE_OldHeapBase(wid) REMOTE(wid)->OldHeapBase_ +#define LOCAL_OldHeapTop LOCAL->OldHeapTop_ +#define REMOTE_OldHeapTop(wid) REMOTE(wid)->OldHeapTop_ +#define LOCAL_ClDiff LOCAL->ClDiff_ +#define REMOTE_ClDiff(wid) REMOTE(wid)->ClDiff_ +#define LOCAL_GDiff LOCAL->GDiff_ +#define REMOTE_GDiff(wid) REMOTE(wid)->GDiff_ +#define LOCAL_HDiff LOCAL->HDiff_ +#define REMOTE_HDiff(wid) REMOTE(wid)->HDiff_ +#define LOCAL_GDiff0 LOCAL->GDiff0_ +#define REMOTE_GDiff0(wid) REMOTE(wid)->GDiff0_ +#define LOCAL_GSplit LOCAL->GSplit_ +#define REMOTE_GSplit(wid) REMOTE(wid)->GSplit_ +#define LOCAL_LDiff LOCAL->LDiff_ +#define REMOTE_LDiff(wid) REMOTE(wid)->LDiff_ +#define LOCAL_TrDiff LOCAL->TrDiff_ +#define REMOTE_TrDiff(wid) REMOTE(wid)->TrDiff_ +#define LOCAL_XDiff LOCAL->XDiff_ +#define REMOTE_XDiff(wid) REMOTE(wid)->XDiff_ +#define LOCAL_DelayDiff LOCAL->DelayDiff_ +#define REMOTE_DelayDiff(wid) REMOTE(wid)->DelayDiff_ +#define LOCAL_BaseDiff LOCAL->BaseDiff_ +#define REMOTE_BaseDiff(wid) REMOTE(wid)->BaseDiff_ + +#define LOCAL_ReductionsCounter LOCAL->ReductionsCounter_ +#define REMOTE_ReductionsCounter(wid) REMOTE(wid)->ReductionsCounter_ +#define LOCAL_PredEntriesCounter LOCAL->PredEntriesCounter_ +#define REMOTE_PredEntriesCounter(wid) REMOTE(wid)->PredEntriesCounter_ +#define LOCAL_RetriesCounter LOCAL->RetriesCounter_ +#define REMOTE_RetriesCounter(wid) REMOTE(wid)->RetriesCounter_ +#define LOCAL_ReductionsCounterOn LOCAL->ReductionsCounterOn_ +#define REMOTE_ReductionsCounterOn(wid) REMOTE(wid)->ReductionsCounterOn_ +#define LOCAL_PredEntriesCounterOn LOCAL->PredEntriesCounterOn_ +#define REMOTE_PredEntriesCounterOn(wid) REMOTE(wid)->PredEntriesCounterOn_ +#define LOCAL_RetriesCounterOn LOCAL->RetriesCounterOn_ +#define REMOTE_RetriesCounterOn(wid) REMOTE(wid)->RetriesCounterOn_ + + +#define LOCAL_ConsultSp LOCAL->ConsultSp_ +#define REMOTE_ConsultSp(wid) REMOTE(wid)->ConsultSp_ + +#define LOCAL_ConsultCapacity LOCAL->ConsultCapacity_ +#define REMOTE_ConsultCapacity(wid) REMOTE(wid)->ConsultCapacity_ + +#define LOCAL_ConsultBase LOCAL->ConsultBase_ +#define REMOTE_ConsultBase(wid) REMOTE(wid)->ConsultBase_ + +#define LOCAL_ConsultLow LOCAL->ConsultLow_ +#define REMOTE_ConsultLow(wid) REMOTE(wid)->ConsultLow_ +#define LOCAL_VarNames LOCAL->VarNames_ +#define REMOTE_VarNames(wid) REMOTE(wid)->VarNames_ +#define LOCAL_SourceFileName LOCAL->SourceFileName_ +#define REMOTE_SourceFileName(wid) REMOTE(wid)->SourceFileName_ +#define LOCAL_SourceFileLineno LOCAL->SourceFileLineno_ +#define REMOTE_SourceFileLineno(wid) REMOTE(wid)->SourceFileLineno_ + +#define LOCAL_GlobalArena LOCAL->GlobalArena_ +#define REMOTE_GlobalArena(wid) REMOTE(wid)->GlobalArena_ +#define LOCAL_GlobalArenaOverflows LOCAL->GlobalArenaOverflows_ +#define REMOTE_GlobalArenaOverflows(wid) REMOTE(wid)->GlobalArenaOverflows_ +#define LOCAL_ArenaOverflows LOCAL->ArenaOverflows_ +#define REMOTE_ArenaOverflows(wid) REMOTE(wid)->ArenaOverflows_ +#define LOCAL_DepthArenas LOCAL->DepthArenas_ +#define REMOTE_DepthArenas(wid) REMOTE(wid)->DepthArenas_ +#define LOCAL_LastAssertedPred LOCAL->LastAssertedPred_ +#define REMOTE_LastAssertedPred(wid) REMOTE(wid)->LastAssertedPred_ +#define LOCAL_TmpPred LOCAL->TmpPred_ +#define REMOTE_TmpPred(wid) REMOTE(wid)->TmpPred_ +#define LOCAL_ScannerStack LOCAL->ScannerStack_ +#define REMOTE_ScannerStack(wid) REMOTE(wid)->ScannerStack_ +#define LOCAL_ScannerExtraBlocks LOCAL->ScannerExtraBlocks_ +#define REMOTE_ScannerExtraBlocks(wid) REMOTE(wid)->ScannerExtraBlocks_ + + +#define LOCAL_CBorder LOCAL->CBorder_ +#define REMOTE_CBorder(wid) REMOTE(wid)->CBorder_ + +#define LOCAL_MaxActiveSignals LOCAL->MaxActiveSignals_ +#define REMOTE_MaxActiveSignals(wid) REMOTE(wid)->MaxActiveSignals_ + +#define LOCAL_Signals LOCAL->Signals_ +#define REMOTE_Signals(wid) REMOTE(wid)->Signals_ + +#define LOCAL_IPredArity LOCAL->IPredArity_ +#define REMOTE_IPredArity(wid) REMOTE(wid)->IPredArity_ +#define LOCAL_ProfEnd LOCAL->ProfEnd_ +#define REMOTE_ProfEnd(wid) REMOTE(wid)->ProfEnd_ +#define LOCAL_DoingUndefp LOCAL->DoingUndefp_ +#define REMOTE_DoingUndefp(wid) REMOTE(wid)->DoingUndefp_ +#define LOCAL_StartCharCount LOCAL->StartCharCount_ +#define REMOTE_StartCharCount(wid) REMOTE(wid)->StartCharCount_ +#define LOCAL_StartLineCount LOCAL->StartLineCount_ +#define REMOTE_StartLineCount(wid) REMOTE(wid)->StartLineCount_ +#define LOCAL_StartLinePos LOCAL->StartLinePos_ +#define REMOTE_StartLinePos(wid) REMOTE(wid)->StartLinePos_ +#define LOCAL_ScratchPad LOCAL->ScratchPad_ +#define REMOTE_ScratchPad(wid) REMOTE(wid)->ScratchPad_ +#ifdef COROUTINING +#define LOCAL_WokenGoals LOCAL->WokenGoals_ +#define REMOTE_WokenGoals(wid) REMOTE(wid)->WokenGoals_ +#define LOCAL_AttsMutableList LOCAL->AttsMutableList_ +#define REMOTE_AttsMutableList(wid) REMOTE(wid)->AttsMutableList_ +#endif + +#define LOCAL_GcGeneration LOCAL->GcGeneration_ +#define REMOTE_GcGeneration(wid) REMOTE(wid)->GcGeneration_ +#define LOCAL_GcPhase LOCAL->GcPhase_ +#define REMOTE_GcPhase(wid) REMOTE(wid)->GcPhase_ +#define LOCAL_GcCurrentPhase LOCAL->GcCurrentPhase_ +#define REMOTE_GcCurrentPhase(wid) REMOTE(wid)->GcCurrentPhase_ +#define LOCAL_GcCalls LOCAL->GcCalls_ +#define REMOTE_GcCalls(wid) REMOTE(wid)->GcCalls_ +#define LOCAL_TotGcTime LOCAL->TotGcTime_ +#define REMOTE_TotGcTime(wid) REMOTE(wid)->TotGcTime_ +#define LOCAL_TotGcRecovered LOCAL->TotGcRecovered_ +#define REMOTE_TotGcRecovered(wid) REMOTE(wid)->TotGcRecovered_ +#define LOCAL_LastGcTime LOCAL->LastGcTime_ +#define REMOTE_LastGcTime(wid) REMOTE(wid)->LastGcTime_ +#define LOCAL_LastSSTime LOCAL->LastSSTime_ +#define REMOTE_LastSSTime(wid) REMOTE(wid)->LastSSTime_ +#define LOCAL_OpenArray LOCAL->OpenArray_ +#define REMOTE_OpenArray(wid) REMOTE(wid)->OpenArray_ + +#define LOCAL_total_marked LOCAL->total_marked_ +#define REMOTE_total_marked(wid) REMOTE(wid)->total_marked_ +#define LOCAL_total_oldies LOCAL->total_oldies_ +#define REMOTE_total_oldies(wid) REMOTE(wid)->total_oldies_ +#define LOCAL_current_B LOCAL->current_B_ +#define REMOTE_current_B(wid) REMOTE(wid)->current_B_ +#define LOCAL_prev_HB LOCAL->prev_HB_ +#define REMOTE_prev_HB(wid) REMOTE(wid)->prev_HB_ +#define LOCAL_HGEN LOCAL->HGEN_ +#define REMOTE_HGEN(wid) REMOTE(wid)->HGEN_ +#define LOCAL_iptop LOCAL->iptop_ +#define REMOTE_iptop(wid) REMOTE(wid)->iptop_ +#if defined(GC_NO_TAGS) +#define LOCAL_bp LOCAL->bp_ +#define REMOTE_bp(wid) REMOTE(wid)->bp_ +#endif +#define LOCAL_sTR LOCAL->sTR_ +#define REMOTE_sTR(wid) REMOTE(wid)->sTR_ +#define LOCAL_sTR0 LOCAL->sTR0_ +#define REMOTE_sTR0(wid) REMOTE(wid)->sTR0_ +#define LOCAL_new_TR LOCAL->new_TR_ +#define REMOTE_new_TR(wid) REMOTE(wid)->new_TR_ +#define LOCAL_cont_top0 LOCAL->cont_top0_ +#define REMOTE_cont_top0(wid) REMOTE(wid)->cont_top0_ +#define LOCAL_cont_top LOCAL->cont_top_ +#define REMOTE_cont_top(wid) REMOTE(wid)->cont_top_ +#define LOCAL_discard_trail_entries LOCAL->discard_trail_entries_ +#define REMOTE_discard_trail_entries(wid) REMOTE(wid)->discard_trail_entries_ +#define LOCAL_gc_ma_hash_table LOCAL->gc_ma_hash_table_ +#define REMOTE_gc_ma_hash_table(wid) REMOTE(wid)->gc_ma_hash_table_ +#define LOCAL_gc_ma_h_top LOCAL->gc_ma_h_top_ +#define REMOTE_gc_ma_h_top(wid) REMOTE(wid)->gc_ma_h_top_ +#define LOCAL_gc_ma_h_list LOCAL->gc_ma_h_list_ +#define REMOTE_gc_ma_h_list(wid) REMOTE(wid)->gc_ma_h_list_ +#define LOCAL_gc_timestamp LOCAL->gc_timestamp_ +#define REMOTE_gc_timestamp(wid) REMOTE(wid)->gc_timestamp_ +#define LOCAL_db_vec LOCAL->db_vec_ +#define REMOTE_db_vec(wid) REMOTE(wid)->db_vec_ +#define LOCAL_db_vec0 LOCAL->db_vec0_ +#define REMOTE_db_vec0(wid) REMOTE(wid)->db_vec0_ +#define LOCAL_db_root LOCAL->db_root_ +#define REMOTE_db_root(wid) REMOTE(wid)->db_root_ +#define LOCAL_db_nil LOCAL->db_nil_ +#define REMOTE_db_nil(wid) REMOTE(wid)->db_nil_ +#define LOCAL_gc_restore LOCAL->gc_restore_ +#define REMOTE_gc_restore(wid) REMOTE(wid)->gc_restore_ +#define LOCAL_extra_gc_cells LOCAL->extra_gc_cells_ +#define REMOTE_extra_gc_cells(wid) REMOTE(wid)->extra_gc_cells_ +#define LOCAL_extra_gc_cells_base LOCAL->extra_gc_cells_base_ +#define REMOTE_extra_gc_cells_base(wid) REMOTE(wid)->extra_gc_cells_base_ +#define LOCAL_extra_gc_cells_top LOCAL->extra_gc_cells_top_ +#define REMOTE_extra_gc_cells_top(wid) REMOTE(wid)->extra_gc_cells_top_ +#define LOCAL_extra_gc_cells_size LOCAL->extra_gc_cells_size_ +#define REMOTE_extra_gc_cells_size(wid) REMOTE(wid)->extra_gc_cells_size_ +#define LOCAL_DynamicArrays LOCAL->DynamicArrays_ +#define REMOTE_DynamicArrays(wid) REMOTE(wid)->DynamicArrays_ +#define LOCAL_StaticArrays LOCAL->StaticArrays_ +#define REMOTE_StaticArrays(wid) REMOTE(wid)->StaticArrays_ +#define LOCAL_GlobalVariables LOCAL->GlobalVariables_ +#define REMOTE_GlobalVariables(wid) REMOTE(wid)->GlobalVariables_ +#define LOCAL_AllowRestart LOCAL->AllowRestart_ +#define REMOTE_AllowRestart(wid) REMOTE(wid)->AllowRestart_ + +#define LOCAL_CMemFirstBlock LOCAL->CMemFirstBlock_ +#define REMOTE_CMemFirstBlock(wid) REMOTE(wid)->CMemFirstBlock_ +#define LOCAL_CMemFirstBlockSz LOCAL->CMemFirstBlockSz_ +#define REMOTE_CMemFirstBlockSz(wid) REMOTE(wid)->CMemFirstBlockSz_ + +#define LOCAL_nperm LOCAL->nperm_ +#define REMOTE_nperm(wid) REMOTE(wid)->nperm_ +#define LOCAL_jMP LOCAL->jMP_ +#define REMOTE_jMP(wid) REMOTE(wid)->jMP_ + +#define LOCAL_LabelFirstArray LOCAL->LabelFirstArray_ +#define REMOTE_LabelFirstArray(wid) REMOTE(wid)->LabelFirstArray_ +#define LOCAL_LabelFirstArraySz LOCAL->LabelFirstArraySz_ +#define REMOTE_LabelFirstArraySz(wid) REMOTE(wid)->LabelFirstArraySz_ + + +#ifdef THREADS +#define LOCAL_ThreadHandle LOCAL->ThreadHandle_ +#define REMOTE_ThreadHandle(wid) REMOTE(wid)->ThreadHandle_ +#endif /* THREADS */ +#if defined(YAPOR) || defined(TABLING) +#define LOCAL_optyap_data LOCAL->optyap_data_ +#define REMOTE_optyap_data(wid) REMOTE(wid)->optyap_data_ +#define LOCAL_TabMode LOCAL->TabMode_ +#define REMOTE_TabMode(wid) REMOTE(wid)->TabMode_ +#endif /* YAPOR || TABLING */ +#define LOCAL_InterruptsDisabled LOCAL->InterruptsDisabled_ +#define REMOTE_InterruptsDisabled(wid) REMOTE(wid)->InterruptsDisabled_ +#define LOCAL_execution LOCAL->execution_ +#define REMOTE_execution(wid) REMOTE(wid)->execution_ +#if LOW_LEVEL_TRACER +#define LOCAL_total_choicepoints LOCAL->total_choicepoints_ +#define REMOTE_total_choicepoints(wid) REMOTE(wid)->total_choicepoints_ +#endif +#define LOCAL_consult_level LOCAL->consult_level_ +#define REMOTE_consult_level(wid) REMOTE(wid)->consult_level_ + +#define LOCAL_LocalBase LOCAL->LocalBase_ +#define REMOTE_LocalBase(wid) REMOTE(wid)->LocalBase_ +#define LOCAL_GlobalBase LOCAL->GlobalBase_ +#define REMOTE_GlobalBase(wid) REMOTE(wid)->GlobalBase_ +#define LOCAL_TrailBase LOCAL->TrailBase_ +#define REMOTE_TrailBase(wid) REMOTE(wid)->TrailBase_ +#define LOCAL_TrailTop LOCAL->TrailTop_ +#define REMOTE_TrailTop(wid) REMOTE(wid)->TrailTop_ + +#define LOCAL_ActiveError LOCAL->ActiveError_ +#define REMOTE_ActiveError(wid) REMOTE(wid)->ActiveError_ + +#define LOCAL_IOBotch LOCAL->IOBotch_ +#define REMOTE_IOBotch(wid) REMOTE(wid)->IOBotch_ +#define LOCAL_tokptr LOCAL->tokptr_ +#define REMOTE_tokptr(wid) REMOTE(wid)->tokptr_ +#define LOCAL_toktide LOCAL->toktide_ +#define REMOTE_toktide(wid) REMOTE(wid)->toktide_ +#define LOCAL_VarTable LOCAL->VarTable_ +#define REMOTE_VarTable(wid) REMOTE(wid)->VarTable_ +#define LOCAL_AnonVarTable LOCAL->AnonVarTable_ +#define REMOTE_AnonVarTable(wid) REMOTE(wid)->AnonVarTable_ +#define LOCAL_Comments LOCAL->Comments_ +#define REMOTE_Comments(wid) REMOTE(wid)->Comments_ +#define LOCAL_CommentsTail LOCAL->CommentsTail_ +#define REMOTE_CommentsTail(wid) REMOTE(wid)->CommentsTail_ +#define LOCAL_CommentsNextChar LOCAL->CommentsNextChar_ +#define REMOTE_CommentsNextChar(wid) REMOTE(wid)->CommentsNextChar_ +#define LOCAL_CommentsBuff LOCAL->CommentsBuff_ +#define REMOTE_CommentsBuff(wid) REMOTE(wid)->CommentsBuff_ +#define LOCAL_CommentsBuffPos LOCAL->CommentsBuffPos_ +#define REMOTE_CommentsBuffPos(wid) REMOTE(wid)->CommentsBuffPos_ +#define LOCAL_CommentsBuffLim LOCAL->CommentsBuffLim_ +#define REMOTE_CommentsBuffLim(wid) REMOTE(wid)->CommentsBuffLim_ +#define LOCAL_RestartEnv LOCAL->RestartEnv_ +#define REMOTE_RestartEnv(wid) REMOTE(wid)->RestartEnv_ +#define LOCAL_FileNameBuf LOCAL->FileNameBuf_ +#define REMOTE_FileNameBuf(wid) REMOTE(wid)->FileNameBuf_ +#define LOCAL_FileNameBuf2 LOCAL->FileNameBuf2_ +#define REMOTE_FileNameBuf2(wid) REMOTE(wid)->FileNameBuf2_ +#define LOCAL_TextBuffer LOCAL->TextBuffer_ +#define REMOTE_TextBuffer(wid) REMOTE(wid)->TextBuffer_ + +#define LOCAL_BreakLevel LOCAL->BreakLevel_ +#define REMOTE_BreakLevel(wid) REMOTE(wid)->BreakLevel_ +#define LOCAL_PrologMode LOCAL->PrologMode_ +#define REMOTE_PrologMode(wid) REMOTE(wid)->PrologMode_ +#define LOCAL_CritLocks LOCAL->CritLocks_ +#define REMOTE_CritLocks(wid) REMOTE(wid)->CritLocks_ + +#define LOCAL_Flags LOCAL->Flags_ +#define REMOTE_Flags(wid) REMOTE(wid)->Flags_ +#define LOCAL_flagCount LOCAL->flagCount_ +#define REMOTE_flagCount(wid) REMOTE(wid)->flagCount_ + + +#ifdef ANALYST +#define LOCAL_opcount LOCAL->opcount_ +#define REMOTE_opcount(wid) REMOTE(wid)->opcount_ +#define LOCAL_2opcount LOCAL->2opcount_ +#define REMOTE_2opcount(wid) REMOTE(wid)->2opcount_ +#endif /* ANALYST */ + +#define LOCAL_s_dbg LOCAL->s_dbg_ +#define REMOTE_s_dbg(wid) REMOTE(wid)->s_dbg_ + +#define LOCAL_mathtt LOCAL->mathtt_ +#define REMOTE_mathtt(wid) REMOTE(wid)->mathtt_ +#define LOCAL_mathstring LOCAL->mathstring_ +#define REMOTE_mathstring(wid) REMOTE(wid)->mathstring_ + +#define LOCAL_heap_overflows LOCAL->heap_overflows_ +#define REMOTE_heap_overflows(wid) REMOTE(wid)->heap_overflows_ +#define LOCAL_total_heap_overflow_time LOCAL->total_heap_overflow_time_ +#define REMOTE_total_heap_overflow_time(wid) REMOTE(wid)->total_heap_overflow_time_ +#define LOCAL_stack_overflows LOCAL->stack_overflows_ +#define REMOTE_stack_overflows(wid) REMOTE(wid)->stack_overflows_ +#define LOCAL_total_stack_overflow_time LOCAL->total_stack_overflow_time_ +#define REMOTE_total_stack_overflow_time(wid) REMOTE(wid)->total_stack_overflow_time_ +#define LOCAL_delay_overflows LOCAL->delay_overflows_ +#define REMOTE_delay_overflows(wid) REMOTE(wid)->delay_overflows_ +#define LOCAL_total_delay_overflow_time LOCAL->total_delay_overflow_time_ +#define REMOTE_total_delay_overflow_time(wid) REMOTE(wid)->total_delay_overflow_time_ +#define LOCAL_trail_overflows LOCAL->trail_overflows_ +#define REMOTE_trail_overflows(wid) REMOTE(wid)->trail_overflows_ +#define LOCAL_total_trail_overflow_time LOCAL->total_trail_overflow_time_ +#define REMOTE_total_trail_overflow_time(wid) REMOTE(wid)->total_trail_overflow_time_ +#define LOCAL_atom_table_overflows LOCAL->atom_table_overflows_ +#define REMOTE_atom_table_overflows(wid) REMOTE(wid)->atom_table_overflows_ +#define LOCAL_total_atom_table_overflow_time LOCAL->total_atom_table_overflow_time_ +#define REMOTE_total_atom_table_overflow_time(wid) REMOTE(wid)->total_atom_table_overflow_time_ + +#ifdef LOAD_DYLD +#define LOCAL_dl_errno LOCAL->dl_errno_ +#define REMOTE_dl_errno(wid) REMOTE(wid)->dl_errno_ +#endif + +#ifdef LOW_LEVEL_TRACER +#define LOCAL_do_trace_primitives LOCAL->do_trace_primitives_ +#define REMOTE_do_trace_primitives(wid) REMOTE(wid)->do_trace_primitives_ +#endif + +#define LOCAL_ExportAtomHashChain LOCAL->ExportAtomHashChain_ +#define REMOTE_ExportAtomHashChain(wid) REMOTE(wid)->ExportAtomHashChain_ +#define LOCAL_ExportAtomHashTableSize LOCAL->ExportAtomHashTableSize_ +#define REMOTE_ExportAtomHashTableSize(wid) REMOTE(wid)->ExportAtomHashTableSize_ +#define LOCAL_ExportAtomHashTableNum LOCAL->ExportAtomHashTableNum_ +#define REMOTE_ExportAtomHashTableNum(wid) REMOTE(wid)->ExportAtomHashTableNum_ +#define LOCAL_ExportFunctorHashChain LOCAL->ExportFunctorHashChain_ +#define REMOTE_ExportFunctorHashChain(wid) REMOTE(wid)->ExportFunctorHashChain_ +#define LOCAL_ExportFunctorHashTableSize LOCAL->ExportFunctorHashTableSize_ +#define REMOTE_ExportFunctorHashTableSize(wid) REMOTE(wid)->ExportFunctorHashTableSize_ +#define LOCAL_ExportFunctorHashTableNum LOCAL->ExportFunctorHashTableNum_ +#define REMOTE_ExportFunctorHashTableNum(wid) REMOTE(wid)->ExportFunctorHashTableNum_ +#define LOCAL_ExportPredEntryHashChain LOCAL->ExportPredEntryHashChain_ +#define REMOTE_ExportPredEntryHashChain(wid) REMOTE(wid)->ExportPredEntryHashChain_ +#define LOCAL_ExportPredEntryHashTableSize LOCAL->ExportPredEntryHashTableSize_ +#define REMOTE_ExportPredEntryHashTableSize(wid) REMOTE(wid)->ExportPredEntryHashTableSize_ +#define LOCAL_ExportPredEntryHashTableNum LOCAL->ExportPredEntryHashTableNum_ +#define REMOTE_ExportPredEntryHashTableNum(wid) REMOTE(wid)->ExportPredEntryHashTableNum_ +#define LOCAL_ExportDBRefHashChain LOCAL->ExportDBRefHashChain_ +#define REMOTE_ExportDBRefHashChain(wid) REMOTE(wid)->ExportDBRefHashChain_ +#define LOCAL_ExportDBRefHashTableSize LOCAL->ExportDBRefHashTableSize_ +#define REMOTE_ExportDBRefHashTableSize(wid) REMOTE(wid)->ExportDBRefHashTableSize_ +#define LOCAL_ExportDBRefHashTableNum LOCAL->ExportDBRefHashTableNum_ +#define REMOTE_ExportDBRefHashTableNum(wid) REMOTE(wid)->ExportDBRefHashTableNum_ +#define LOCAL_ImportAtomHashChain LOCAL->ImportAtomHashChain_ +#define REMOTE_ImportAtomHashChain(wid) REMOTE(wid)->ImportAtomHashChain_ +#define LOCAL_ImportAtomHashTableSize LOCAL->ImportAtomHashTableSize_ +#define REMOTE_ImportAtomHashTableSize(wid) REMOTE(wid)->ImportAtomHashTableSize_ +#define LOCAL_ImportAtomHashTableNum LOCAL->ImportAtomHashTableNum_ +#define REMOTE_ImportAtomHashTableNum(wid) REMOTE(wid)->ImportAtomHashTableNum_ +#define LOCAL_ImportFunctorHashChain LOCAL->ImportFunctorHashChain_ +#define REMOTE_ImportFunctorHashChain(wid) REMOTE(wid)->ImportFunctorHashChain_ +#define LOCAL_ImportFunctorHashTableSize LOCAL->ImportFunctorHashTableSize_ +#define REMOTE_ImportFunctorHashTableSize(wid) REMOTE(wid)->ImportFunctorHashTableSize_ +#define LOCAL_ImportFunctorHashTableNum LOCAL->ImportFunctorHashTableNum_ +#define REMOTE_ImportFunctorHashTableNum(wid) REMOTE(wid)->ImportFunctorHashTableNum_ +#define LOCAL_ImportOPCODEHashChain LOCAL->ImportOPCODEHashChain_ +#define REMOTE_ImportOPCODEHashChain(wid) REMOTE(wid)->ImportOPCODEHashChain_ +#define LOCAL_ImportOPCODEHashTableSize LOCAL->ImportOPCODEHashTableSize_ +#define REMOTE_ImportOPCODEHashTableSize(wid) REMOTE(wid)->ImportOPCODEHashTableSize_ +#define LOCAL_ImportPredEntryHashChain LOCAL->ImportPredEntryHashChain_ +#define REMOTE_ImportPredEntryHashChain(wid) REMOTE(wid)->ImportPredEntryHashChain_ +#define LOCAL_ImportPredEntryHashTableSize LOCAL->ImportPredEntryHashTableSize_ +#define REMOTE_ImportPredEntryHashTableSize(wid) REMOTE(wid)->ImportPredEntryHashTableSize_ +#define LOCAL_ImportPredEntryHashTableNum LOCAL->ImportPredEntryHashTableNum_ +#define REMOTE_ImportPredEntryHashTableNum(wid) REMOTE(wid)->ImportPredEntryHashTableNum_ +#define LOCAL_ImportDBRefHashChain LOCAL->ImportDBRefHashChain_ +#define REMOTE_ImportDBRefHashChain(wid) REMOTE(wid)->ImportDBRefHashChain_ +#define LOCAL_ImportDBRefHashTableSize LOCAL->ImportDBRefHashTableSize_ +#define REMOTE_ImportDBRefHashTableSize(wid) REMOTE(wid)->ImportDBRefHashTableSize_ +#define LOCAL_ImportDBRefHashTableNum LOCAL->ImportDBRefHashTableNum_ +#define REMOTE_ImportDBRefHashTableNum(wid) REMOTE(wid)->ImportDBRefHashTableNum_ +#define LOCAL_ImportFAILCODE LOCAL->ImportFAILCODE_ +#define REMOTE_ImportFAILCODE(wid) REMOTE(wid)->ImportFAILCODE_ + +#define LOCAL_ibnds LOCAL->ibnds_ +#define REMOTE_ibnds(wid) REMOTE(wid)->ibnds_ +#define LOCAL_exo_it LOCAL->exo_it_ +#define REMOTE_exo_it(wid) REMOTE(wid)->exo_it_ +#define LOCAL_exo_base LOCAL->exo_base_ +#define REMOTE_exo_base(wid) REMOTE(wid)->exo_base_ +#define LOCAL_exo_arity LOCAL->exo_arity_ +#define REMOTE_exo_arity(wid) REMOTE(wid)->exo_arity_ +#define LOCAL_exo_arg LOCAL->exo_arg_ +#define REMOTE_exo_arg(wid) REMOTE(wid)->exo_arg_ + +#define LOCAL_search_atoms LOCAL->search_atoms_ +#define REMOTE_search_atoms(wid) REMOTE(wid)->search_atoms_ +#define LOCAL_SearchPreds LOCAL->SearchPreds_ +#define REMOTE_SearchPreds(wid) REMOTE(wid)->SearchPreds_ + +#define LOCAL_CurSlot LOCAL->CurSlot_ +#define REMOTE_CurSlot(wid) REMOTE(wid)->CurSlot_ +#define LOCAL_FrozenHandles LOCAL->FrozenHandles_ +#define REMOTE_FrozenHandles(wid) REMOTE(wid)->FrozenHandles_ +#define LOCAL_NSlots LOCAL->NSlots_ +#define REMOTE_NSlots(wid) REMOTE(wid)->NSlots_ +#define LOCAL_SlotBase LOCAL->SlotBase_ +#define REMOTE_SlotBase(wid) REMOTE(wid)->SlotBase_ + +#define LOCAL_Mutexes LOCAL->Mutexes_ +#define REMOTE_Mutexes(wid) REMOTE(wid)->Mutexes_ +#define LOCAL_SourceModule LOCAL->SourceModule_ +#define REMOTE_SourceModule(wid) REMOTE(wid)->SourceModule_ +#define LOCAL_Including LOCAL->Including_ +#define REMOTE_Including(wid) REMOTE(wid)->Including_ +#define LOCAL_MAX_SIZE LOCAL->MAX_SIZE_ +#define REMOTE_MAX_SIZE(wid) REMOTE(wid)->MAX_SIZE_ + +#define LOCAL_LastWTime LOCAL->LastWTime_ +#define REMOTE_LastWTime(wid) REMOTE(wid)->LastWTime_ +#define LOCAL_shared LOCAL->shared_ +#define REMOTE_shared(wid) REMOTE(wid)->shared_ + diff --git a/H/generated/h0globals.h b/H/generated/h0globals.h index bf70ea08b..e7b1f6bdf 100644 --- a/H/generated/h0globals.h +++ b/H/generated/h0globals.h @@ -1,144 +1,144 @@ - - /* This file, hglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/GLOBALS instead */ - -// -// File defining fields in the Yap_GLOBAL global structure -// -// these fields used to spread all over the place, because they must be used in 3 ways: -// - they must be defined somewhere -// - they have an #ifdef to get a shorter name -// - they must be initialised somewhere -// - they may be of interest to restore -// -// The defs include 3+ components: -// Type -// name in structured / global name -// init code (optional) -// restore code (optional) -// -// Stuff that must be shared by all threads or workers - -// initialization: tell whether the system has been initialised and by whom. -EXTERNAL int GLOBAL_Initialised; -EXTERNAL int GLOBAL_InitialisedFromPL; -EXTERNAL int GLOBAL_PL_Argc; -EXTERNAL char** GLOBAL_PL_Argv; -EXTERNAL bool GLOBAL_FAST_BOOT_FLAG; -// halt hooks -EXTERNAL struct halt_hook* GLOBAL_HaltHooks; -EXTERNAL fptr_t GLOBAL_JIT_finalizer; -// stack overflow expansion/gc control -EXTERNAL int GLOBAL_AllowLocalExpansion; -EXTERNAL int GLOBAL_AllowGlobalExpansion; -EXTERNAL int GLOBAL_AllowTrailExpansion; -EXTERNAL UInt GLOBAL_SizeOfOverflow; -// amount of space recovered in all garbage collections -EXTERNAL UInt GLOBAL_AGcThreshold; -EXTERNAL Agc_hook GLOBAL_AGCHook; -/* multi-thread support */ -#if THREADS -/* number of threads and processes in system */ -EXTERNAL UInt GLOBAL_NOfThreads; -/* number of threads created since start */ -EXTERNAL UInt GLOBAL_NOfThreadsCreated; -/* total run time for dead threads */ -EXTERNAL UInt GLOBAL_ThreadsTotalTime; -// Threads Array -EXTERNAL lockvar GLOBAL_ThreadHandlesLock; -#endif -#if defined(YAPOR) || defined(THREADS) -// protect long critical regions -EXTERNAL lockvar GLOBAL_BGL; -#endif -#if defined(YAPOR) || defined(TABLING) -EXTERNAL struct global_optyap_data GLOBAL_optyap_data; -#endif /* YAPOR || TABLING */ -// whether Yap is responsible for signal handling -EXTERNAL int GLOBAL_PrologShouldHandleInterrupts; -/* This is the guy who actually started the system, and who has the correct registers */ -#if defined(THREADS) -EXTERNAL pthread_t GLOBAL_master_thread; -EXTERNAL struct thread_mbox* GLOBAL_named_mboxes; -EXTERNAL lockvar GLOBAL_mboxq_lock; -EXTERNAL UInt GLOBAL_mbox_count; -EXTERNAL struct swi_mutex* GLOBAL_WithMutex; -#endif /* THREADS */ -// streams -EXTERNAL struct stream_desc* GLOBAL_Stream; -#if defined(THREADS)||defined(YAPOR) -EXTERNAL lockvar GLOBAL_StreamDescLock; -#endif -// access to yap initial arguments -EXTERNAL char** GLOBAL_argv; -EXTERNAL int GLOBAL_argc; -// extensions to Terms -#ifdef COROUTINING -/* array with the ops for your favourite extensions */ -EXTERNAL ext_op GLOBAL_attas[attvars_ext+1]; -#endif -// agc.c -EXTERNAL int GLOBAL_agc_calls; -EXTERNAL YAP_ULONG_LONG GLOBAL_agc_collected; -/* total time spent in GC */ -EXTERNAL Int GLOBAL_tot_agc_time; -/* number of heap objects in all garbage collections */ -EXTERNAL Int GLOBAL_tot_agc_recovered; -//arrays.c -#if HAVE_MMAP -EXTERNAL struct MMAP_ARRAY_BLOCK* GLOBAL_mmap_arrays; -#endif -#ifdef DEBUG -//computils.c -EXTERNAL char GLOBAL_Option[20]; -EXTERNAL YP_FILE* GLOBAL_logfile; -//init.c -//int output_msg =FALSE -#endif -#if defined(COFF) || defined(A_OUT) -// loada_coff.c && load_aout.c -EXTERNAL char GLOBAL_Executable[YAP_FILENAME_MAX]; -#endif -EXTERNAL int GLOBAL_OpaqueHandlersCount; -EXTERNAL struct opaque_handler_struct* GLOBAL_OpaqueHandlers; -#if __simplescalar__ -EXTERNAL char GLOBAL_pwd[YAP_FILENAME_MAX]; -#endif -//udi.c -//struct udi_control_block RtreeCmd void -EXTERNAL const char* GLOBAL_RestoreFile; -//gprof.c -EXTERNAL Int GLOBAL_ProfCalls; -EXTERNAL Int GLOBAL_ProfGCs; -EXTERNAL Int GLOBAL_ProfHGrows; -EXTERNAL Int GLOBAL_ProfSGrows; -EXTERNAL Int GLOBAL_ProfMallocs; -EXTERNAL Int GLOBAL_ProfIndexing; -EXTERNAL Int GLOBAL_ProfOn; -EXTERNAL Int GLOBAL_ProfOns; -EXTERNAL struct RB_red_blk_node* GLOBAL_ProfilerRoot; -EXTERNAL struct RB_red_blk_node* GLOBAL_ProfilerNil; -EXTERNAL char* GLOBAL_DIRNAME; -#if LOW_PROF -EXTERNAL int GLOBAL_ProfilerOn; -EXTERNAL FILE* GLOBAL_FProf; -EXTERNAL FILE* GLOBAL_FPreds; -#endif /* LOW_PROF */ -// Mutexes -#if THREADS -EXTERNAL struct swi_mutex* GLOBAL_FreeMutexes; -EXTERNAL struct swi_mutex* GLOBAL_mutex_backbone; -EXTERNAL lockvar GLOBAL_MUT_ACCESS; -#endif -EXTERNAL char* GLOBAL_Home; -/* ISO char conversion: I will make no comments */ -EXTERNAL char* GLOBAL_CharConversionTable; -EXTERNAL char* GLOBAL_CharConversionTable2; -/* max priority */ -EXTERNAL int GLOBAL_MaxPriority; -/// alias table access -EXTERNAL struct AliasDescS* GLOBAL_FileAliases; -EXTERNAL int GLOBAL_NOfFileAliases; -EXTERNAL int GLOBAL_SzOfFileAliases; -EXTERNAL struct vfs* GLOBAL_VFS; - + + /* This file, hglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/GLOBALS instead */ + +// +// File defining fields in the Yap_GLOBAL global structure +// +// these fields used to spread all over the place, because they must be used in 3 ways: +// - they must be defined somewhere +// - they have an #ifdef to get a shorter name +// - they must be initialised somewhere +// - they may be of interest to restore +// +// The defs include 3+ components: +// Type +// name in structured / global name +// init code (optional) +// restore code (optional) +// +// Stuff that must be shared by all threads or workers + +// initialization: tell whether the system has been initialised and by whom. +EXTERNAL int GLOBAL_Initialised; +EXTERNAL int GLOBAL_InitialisedFromPL; +EXTERNAL int GLOBAL_PL_Argc; +EXTERNAL char** GLOBAL_PL_Argv; +EXTERNAL bool GLOBAL_FAST_BOOT_FLAG; +// halt hooks +EXTERNAL struct halt_hook* GLOBAL_HaltHooks; +EXTERNAL fptr_t GLOBAL_JIT_finalizer; +// stack overflow expansion/gc control +EXTERNAL int GLOBAL_AllowLocalExpansion; +EXTERNAL int GLOBAL_AllowGlobalExpansion; +EXTERNAL int GLOBAL_AllowTrailExpansion; +EXTERNAL UInt GLOBAL_SizeOfOverflow; +// amount of space recovered in all garbage collections +EXTERNAL UInt GLOBAL_AGcThreshold; +EXTERNAL Agc_hook GLOBAL_AGCHook; +/* multi-thread support */ +#if THREADS +/* number of threads and processes in system */ +EXTERNAL UInt GLOBAL_NOfThreads; +/* number of threads created since start */ +EXTERNAL UInt GLOBAL_NOfThreadsCreated; +/* total run time for dead threads */ +EXTERNAL UInt GLOBAL_ThreadsTotalTime; +// Threads Array +EXTERNAL lockvar GLOBAL_ThreadHandlesLock; +#endif +#if defined(YAPOR) || defined(THREADS) +// protect long critical regions +EXTERNAL lockvar GLOBAL_BGL; +#endif +#if defined(YAPOR) || defined(TABLING) +EXTERNAL struct global_optyap_data GLOBAL_optyap_data; +#endif /* YAPOR || TABLING */ +// whether Yap is responsible for signal handling +EXTERNAL int GLOBAL_PrologShouldHandleInterrupts; +/* This is the guy who actually started the system, and who has the correct registers */ +#if defined(THREADS) +EXTERNAL pthread_t GLOBAL_master_thread; +EXTERNAL struct thread_mbox* GLOBAL_named_mboxes; +EXTERNAL lockvar GLOBAL_mboxq_lock; +EXTERNAL UInt GLOBAL_mbox_count; +EXTERNAL struct swi_mutex* GLOBAL_WithMutex; +#endif /* THREADS */ +// streams +EXTERNAL struct stream_desc* GLOBAL_Stream; +#if defined(THREADS)||defined(YAPOR) +EXTERNAL lockvar GLOBAL_StreamDescLock; +#endif +// access to yap initial arguments +EXTERNAL char** GLOBAL_argv; +EXTERNAL int GLOBAL_argc; +// extensions to Terms +#ifdef COROUTINING +/* array with the ops for your favourite extensions */ +EXTERNAL ext_op GLOBAL_attas[attvars_ext+1]; +#endif +// agc.c +EXTERNAL int GLOBAL_agc_calls; +EXTERNAL YAP_ULONG_LONG GLOBAL_agc_collected; +/* total time spent in GC */ +EXTERNAL Int GLOBAL_tot_agc_time; +/* number of heap objects in all garbage collections */ +EXTERNAL Int GLOBAL_tot_agc_recovered; +//arrays.c +#if HAVE_MMAP +EXTERNAL struct MMAP_ARRAY_BLOCK* GLOBAL_mmap_arrays; +#endif +#ifdef DEBUG +//computils.c +EXTERNAL char GLOBAL_Option[20]; +EXTERNAL YP_FILE* GLOBAL_logfile; +//init.c +//int output_msg =FALSE +#endif +#if defined(COFF) || defined(A_OUT) +// loada_coff.c && load_aout.c +EXTERNAL char GLOBAL_Executable[YAP_FILENAME_MAX]; +#endif +EXTERNAL int GLOBAL_OpaqueHandlersCount; +EXTERNAL struct opaque_handler_struct* GLOBAL_OpaqueHandlers; +#if __simplescalar__ +EXTERNAL char GLOBAL_pwd[YAP_FILENAME_MAX]; +#endif +//udi.c +//struct udi_control_block RtreeCmd void +EXTERNAL const char* GLOBAL_RestoreFile; +//gprof.c +EXTERNAL Int GLOBAL_ProfCalls; +EXTERNAL Int GLOBAL_ProfGCs; +EXTERNAL Int GLOBAL_ProfHGrows; +EXTERNAL Int GLOBAL_ProfSGrows; +EXTERNAL Int GLOBAL_ProfMallocs; +EXTERNAL Int GLOBAL_ProfIndexing; +EXTERNAL Int GLOBAL_ProfOn; +EXTERNAL Int GLOBAL_ProfOns; +EXTERNAL struct RB_red_blk_node* GLOBAL_ProfilerRoot; +EXTERNAL struct RB_red_blk_node* GLOBAL_ProfilerNil; +EXTERNAL char* GLOBAL_DIRNAME; +#if LOW_PROF +EXTERNAL int GLOBAL_ProfilerOn; +EXTERNAL FILE* GLOBAL_FProf; +EXTERNAL FILE* GLOBAL_FPreds; +#endif /* LOW_PROF */ +// Mutexes +#if THREADS +EXTERNAL struct swi_mutex* GLOBAL_FreeMutexes; +EXTERNAL struct swi_mutex* GLOBAL_mutex_backbone; +EXTERNAL lockvar GLOBAL_MUT_ACCESS; +#endif +EXTERNAL char* GLOBAL_Home; +/* ISO char conversion: I will make no comments */ +EXTERNAL char* GLOBAL_CharConversionTable; +EXTERNAL char* GLOBAL_CharConversionTable2; +/* max priority */ +EXTERNAL int GLOBAL_MaxPriority; +/// alias table access +EXTERNAL struct AliasDescS* GLOBAL_FileAliases; +EXTERNAL int GLOBAL_NOfFileAliases; +EXTERNAL int GLOBAL_SzOfFileAliases; +EXTERNAL struct vfs* GLOBAL_VFS; + diff --git a/H/generated/h0struct.h b/H/generated/h0struct.h index 5fad53212..acd1708bd 100644 --- a/H/generated/h0struct.h +++ b/H/generated/h0struct.h @@ -1,296 +1,295 @@ - - /* This file, d0hstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/HEAPFIELDS instead */ - -// -// File defining fields in the Yap_heap_codes global structure -// -// these fields used to spread all over the place, because they must be used in 4 ways: -// - they must be defined somewhere -// - they have an #ifdef to get a shorter name -// - they must be initialised somewhere -// - they must be restorable and collectable (from the atom gc). -// -// -// The defs include 4+ components: -// Type -// name in structured -// global name -// init code and restore code (optional) -// -// -// -// MkAT (MkAtomTerm) cvts from a predefined atom to a term -// MkPred constructs a pred_entry -// MkOp gets an opcode -// void does nothing -// =VALUE inits as VALUE -// Init... sets up call to InitFunc -// Restore... sets up call to RestoreFunc -// - -/* memory management */ -EXTERNAL UInt Yap_HoleSize; -#if USE_DL_MALLOC -EXTERNAL struct malloc_state *Yap_av; -EXTERNAL struct memory_hole Yap_MemoryHoles[MAX_DLMALLOC_HOLES]; -EXTERNAL UInt Yap_NOfMemoryHoles; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar DLMallocLock; -#endif -#endif -#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) -#ifndef HeapUsed -#define HeapUsed Yap_givemallinfo() -#endif -EXTERNAL Int NotHeapUsed; -#else -EXTERNAL Int HeapUsed; -#endif -EXTERNAL Int HeapMax; -EXTERNAL ADDR HeapTop; -EXTERNAL ADDR HeapLim; -EXTERNAL struct FREEB *FreeBlocks; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar FreeBlocksLock; -EXTERNAL lockvar HeapUsedLock; -EXTERNAL lockvar HeapTopLock; -EXTERNAL int HeapTopOwner; -#endif -EXTERNAL UInt MaxStack; -EXTERNAL UInt MaxTrail; -/* execution info */ -/* OPCODE REVERSE TABLE, needed to recover op tables */ -#if USE_THREADED_CODE -EXTERNAL op_entry *OP_RTABLE; -#endif -/* popular opcodes */ -EXTERNAL OPCODE EXECUTE_CPRED_OP_CODE; -EXTERNAL OPCODE EXPAND_OP_CODE; -EXTERNAL OPCODE FAIL_OPCODE; -EXTERNAL OPCODE INDEX_OPCODE; -EXTERNAL OPCODE LOCKPRED_OPCODE; -EXTERNAL OPCODE ORLAST_OPCODE; -EXTERNAL OPCODE UNDEF_OPCODE; -EXTERNAL OPCODE RETRY_USERC_OPCODE; -EXTERNAL OPCODE EXECUTE_CPRED_OPCODE; -/* atom tables */ -EXTERNAL UInt NOfAtoms; -EXTERNAL UInt AtomHashTableSize; -EXTERNAL UInt WideAtomHashTableSize; -EXTERNAL UInt NOfWideAtoms; -EXTERNAL AtomHashEntry INVISIBLECHAIN; -EXTERNAL AtomHashEntry *WideHashChain; -EXTERNAL AtomHashEntry *HashChain; -/* use atom defs here */ -#include "tatoms.h" -#ifdef EUROTRA -EXTERNAL Term TermDollarU; -#endif -EXTERNAL Term TermAnswer; -//modules -EXTERNAL Term USER_MODULE; -EXTERNAL Term IDB_MODULE; -EXTERNAL Term ATTRIBUTES_MODULE; -EXTERNAL Term CHARSIO_MODULE; -EXTERNAL Term CHTYPE_MODULE; -EXTERNAL Term TERMS_MODULE; -EXTERNAL Term SYSTEM_MODULE; -EXTERNAL Term READUTIL_MODULE; -EXTERNAL Term HACKS_MODULE; -EXTERNAL Term ARG_MODULE; -EXTERNAL Term GLOBALS_MODULE; -EXTERNAL Term SWI_MODULE; -EXTERNAL Term DBLOAD_MODULE; -EXTERNAL Term RANGE_MODULE; -EXTERNAL Term ERROR_MODULE; -// -// Module list -// -EXTERNAL struct mod_entry *CurrentModules; -// make sure we have the modules set at this point. -// don't actually want to define a field - -// hidden predicates -EXTERNAL Prop HIDDEN_PREDICATES; -// make sure we have the streams set at this point. -// don't actually want to define a field - -EXTERNAL union flagTerm* GLOBAL_Flags; -EXTERNAL UInt GLOBAL_flagCount; -/* Anderson's JIT */ -EXTERNAL yap_exec_mode Yap_ExecutionMode; -/* The Predicate Hash Table: fast access to predicates. */ -EXTERNAL UInt PredsInHashTable; -EXTERNAL uint64_t PredHashTableSize; -EXTERNAL struct pred_entry **PredHash; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL rwlock_t PredHashRWLock; -#endif -/* Well-Known Predicates */ -EXTERNAL struct pred_entry *CreepCode; -EXTERNAL struct pred_entry *UndefCode; -EXTERNAL struct pred_entry *SpyCode; -EXTERNAL struct pred_entry *PredFail; -EXTERNAL struct pred_entry *PredTrue; -#ifdef COROUTINING -EXTERNAL struct pred_entry *WakeUpCode; -#endif -EXTERNAL struct pred_entry *PredDollarCatch; -#ifdef YAPOR -EXTERNAL struct pred_entry *PredGetwork; -#endif /* YAPOR */ -EXTERNAL struct pred_entry *PredGoalExpansion; -EXTERNAL struct pred_entry *PredHandleThrow; -EXTERNAL struct pred_entry *PredIs; -EXTERNAL struct pred_entry *PredLogUpdClause; -EXTERNAL struct pred_entry *PredLogUpdClauseErase; -EXTERNAL struct pred_entry *PredLogUpdClause0; -EXTERNAL struct pred_entry *PredMetaCall; -EXTERNAL struct pred_entry *PredProtectStack; -EXTERNAL struct pred_entry *PredRecordedWithKey; -EXTERNAL struct pred_entry *PredRestoreRegs; -EXTERNAL struct pred_entry *PredSafeCallCleanup; -EXTERNAL struct pred_entry *PredStaticClause; -EXTERNAL struct pred_entry *PredThrow; -EXTERNAL struct pred_entry *PredTraceMetaCall; -EXTERNAL struct pred_entry *PredCommentHook; -EXTERNAL struct pred_entry *PredProcedure; -EXTERNAL struct pred_entry *PredUndefinedQuery; -/* low-level tracer */ -#ifdef LOW_LEVEL_TRACER -EXTERNAL int Yap_do_low_level_trace; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar Yap_low_level_trace_lock; -#endif -#endif -/* code management info */ -EXTERNAL UInt Yap_ClauseSpace; -EXTERNAL UInt Yap_IndexSpace_Tree; -EXTERNAL UInt Yap_IndexSpace_EXT; -EXTERNAL UInt Yap_IndexSpace_SW; -EXTERNAL UInt Yap_LUClauseSpace; -EXTERNAL UInt Yap_LUIndexSpace_Tree; -EXTERNAL UInt Yap_LUIndexSpace_CP; -EXTERNAL UInt Yap_LUIndexSpace_EXT; -EXTERNAL UInt Yap_LUIndexSpace_SW; -/* static code: may be shared by many predicate or may be used for meta-execution */ -EXTERNAL yamop COMMA_CODE[5]; -EXTERNAL yamop DUMMYCODE[1]; -EXTERNAL yamop FAILCODE[1]; -EXTERNAL yamop NOCODE[1]; -EXTERNAL yamop ENV_FOR_TRUSTFAIL[2]; -EXTERNAL yamop *TRUSTFAILCODE; -EXTERNAL yamop ENV_FOR_YESCODE[2]; -EXTERNAL yamop *YESCODE; -EXTERNAL yamop RTRYCODE[1]; -#ifdef BEAM -EXTERNAL yamop BEAM_RETRY_CODE[1]; -#endif /* BEAM */ -#ifdef YAPOR -EXTERNAL yamop GETWORK[1]; -EXTERNAL yamop GETWORK_SEQ[1]; -EXTERNAL yamop GETWORK_FIRST_TIME[1]; -#endif /* YAPOR */ -#ifdef TABLING -EXTERNAL yamop LOAD_ANSWER[1]; -EXTERNAL yamop TRY_ANSWER[1]; -EXTERNAL yamop ANSWER_RESOLUTION[1]; -EXTERNAL yamop COMPLETION[1]; -#ifdef THREADS_CONSUMER_SHARING -EXTERNAL yamop ANSWER_RESOLUTION_COMPLETION[1]; -#endif /* THREADS_CONSUMER_SHARING */ -#endif /* TABLING */ -/* */ -/* PREG just before we enter $spy. We use that to find out the clause which */ -/* was calling the debugged goal. */ -/* */ -EXTERNAL yamop *P_before_spy; -/* support recorded_k */ -EXTERNAL yamop *RETRY_C_RECORDEDP_CODE; -EXTERNAL yamop *RETRY_C_RECORDED_K_CODE; -/* compiler flags */ -EXTERNAL int PROFILING; -EXTERNAL int CALL_COUNTING; -EXTERNAL int optimizer_on; -EXTERNAL int compile_mode; -EXTERNAL int profiling; -EXTERNAL int call_counting; -/********* whether we should try to compile array references ******************/ -EXTERNAL int compile_arrays; -/* DBTerms: pre-compiled ground terms */ -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar DBTermsListLock; -#endif -EXTERNAL struct dbterm_list *DBTermsList; -/* JITI support */ -EXTERNAL yamop *ExpandClausesFirst; -EXTERNAL yamop *ExpandClausesLast; -EXTERNAL UInt Yap_ExpandClauses; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar ExpandClausesListLock; -EXTERNAL lockvar OpListLock; -#endif -/* instrumentation */ -#ifdef DEBUG -EXTERNAL UInt Yap_NewCps; -EXTERNAL UInt Yap_LiveCps; -EXTERNAL UInt Yap_DirtyCps; -EXTERNAL UInt Yap_FreedCps; -#endif -EXTERNAL UInt Yap_expand_clauses_sz; -/* UDI support */ -EXTERNAL struct udi_info *UdiControlBlocks; -/* data-base statistics */ -/* system boots in compile mode */ -EXTERNAL Int STATIC_PREDICATES_MARKED; -/* Internal Database */ -EXTERNAL Prop *INT_KEYS; -EXTERNAL Prop *INT_LU_KEYS; -EXTERNAL Prop *INT_BB_KEYS; -/* Internal Database Statistics */ -EXTERNAL UInt INT_KEYS_SIZE; -EXTERNAL UInt INT_KEYS_TIMESTAMP; -EXTERNAL UInt INT_BB_KEYS_SIZE; -/* Internal Data-Base Control */ -EXTERNAL int UPDATE_MODE; -/* nasty IDB stuff */ -EXTERNAL struct DB_STRUCT *DBErasedMarker; -EXTERNAL struct logic_upd_clause *LogDBErasedMarker; -/* Dead clauses and IDB entries */ -EXTERNAL struct static_clause *DeadStaticClauses; -EXTERNAL struct static_mega_clause *DeadMegaClauses; -EXTERNAL struct static_index *DeadStaticIndices; -EXTERNAL struct logic_upd_clause *DBErasedList; -EXTERNAL struct logic_upd_index *DBErasedIList; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar DeadStaticClausesLock; -EXTERNAL lockvar DeadMegaClausesLock; -EXTERNAL lockvar DeadStaticIndicesLock; -#endif -#ifdef COROUTINING -/* number of attribute modules */ -EXTERNAL int NUM_OF_ATTS; -/* initialised by memory allocator */ -EXTERNAL UInt Yap_AttsSize; -#endif -/* Operators */ -EXTERNAL struct operator_entry *OpList; -/* foreign code loaded */ -EXTERNAL struct ForeignLoadItem *ForeignCodeLoaded; -EXTERNAL ADDR ForeignCodeBase; -EXTERNAL ADDR ForeignCodeTop; -EXTERNAL ADDR ForeignCodeMax; -/* recorded terms */ -EXTERNAL struct record_list *Yap_Records; -EXTERNAL Atom EmptyWakeups[MAX_EMPTY_WAKEUPS]; -EXTERNAL int MaxEmptyWakeups; -/* SWI blobs */ -EXTERNAL struct YAP_blob_t *BlobTypes; -EXTERNAL struct AtomEntryStruct *Blobs; -EXTERNAL UInt NOfBlobs; -EXTERNAL UInt NOfBlobsMax; -#if defined(YAPOR) || defined(THREADS) -EXTERNAL lockvar Blobs_Lock; -#endif - + + /* This file, d0hstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/HEAPFIELDS instead */ + +// +// File defining fields in the Yap_heap_codes global structure +// +// these fields used to spread all over the place, because they must be used in 4 ways: +// - they must be defined somewhere +// - they have an #ifdef to get a shorter name +// - they must be initialised somewhere +// - they must be restorable and collectable (from the atom gc). +// +// +// The defs include 4+ components: +// Type +// name in structured +// global name +// init code and restore code (optional) +// +// +// +// MkAT (MkAtomTerm) cvts from a predefined atom to a term +// MkPred constructs a pred_entry +// MkOp gets an opcode +// void does nothing +// =VALUE inits as VALUE +// Init... sets up call to InitFunc +// Restore... sets up call to RestoreFunc +// + +/* memory management */ +EXTERNAL UInt Yap_HoleSize; +#if USE_DL_MALLOC +EXTERNAL struct malloc_state *Yap_av; +EXTERNAL struct memory_hole Yap_MemoryHoles[MAX_DLMALLOC_HOLES]; +EXTERNAL UInt Yap_NOfMemoryHoles; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar DLMallocLock; +#endif +#endif +#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) +#ifndef HeapUsed +#define HeapUsed Yap_givemallinfo() +#endif +EXTERNAL Int NotHeapUsed; +#else +EXTERNAL Int HeapUsed; +#endif +EXTERNAL Int HeapMax; +EXTERNAL ADDR HeapTop; +EXTERNAL ADDR HeapLim; +EXTERNAL struct FREEB *FreeBlocks; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar FreeBlocksLock; +EXTERNAL lockvar HeapUsedLock; +EXTERNAL lockvar HeapTopLock; +EXTERNAL int HeapTopOwner; +#endif +EXTERNAL UInt MaxStack; +EXTERNAL UInt MaxTrail; +/* execution info */ +/* OPCODE REVERSE TABLE, needed to recover op tables */ +#if USE_THREADED_CODE +EXTERNAL op_entry *OP_RTABLE; +#endif +/* popular opcodes */ +EXTERNAL OPCODE EXECUTE_CPRED_OP_CODE; +EXTERNAL OPCODE EXPAND_OP_CODE; +EXTERNAL OPCODE FAIL_OPCODE; +EXTERNAL OPCODE INDEX_OPCODE; +EXTERNAL OPCODE LOCKPRED_OPCODE; +EXTERNAL OPCODE ORLAST_OPCODE; +EXTERNAL OPCODE UNDEF_OPCODE; +EXTERNAL OPCODE RETRY_USERC_OPCODE; +EXTERNAL OPCODE EXECUTE_CPRED_OPCODE; +/* atom tables */ +EXTERNAL UInt NOfAtoms; +EXTERNAL UInt AtomHashTableSize; +EXTERNAL UInt WideAtomHashTableSize; +EXTERNAL UInt NOfWideAtoms; +EXTERNAL AtomHashEntry INVISIBLECHAIN; +EXTERNAL AtomHashEntry *WideHashChain; +EXTERNAL AtomHashEntry *HashChain; +/* use atom defs here */ +#include "tatoms.h" +#ifdef EUROTRA +EXTERNAL Term TermDollarU; +#endif +//modules +EXTERNAL Term USER_MODULE; +EXTERNAL Term IDB_MODULE; +EXTERNAL Term ATTRIBUTES_MODULE; +EXTERNAL Term CHARSIO_MODULE; +EXTERNAL Term CHTYPE_MODULE; +EXTERNAL Term TERMS_MODULE; +EXTERNAL Term SYSTEM_MODULE; +EXTERNAL Term READUTIL_MODULE; +EXTERNAL Term HACKS_MODULE; +EXTERNAL Term ARG_MODULE; +EXTERNAL Term GLOBALS_MODULE; +EXTERNAL Term SWI_MODULE; +EXTERNAL Term DBLOAD_MODULE; +EXTERNAL Term RANGE_MODULE; +EXTERNAL Term ERROR_MODULE; +// +// Module list +// +EXTERNAL struct mod_entry *CurrentModules; +// make sure we have the modules set at this point. +// don't actually want to define a field + +// hidden predicates +EXTERNAL Prop HIDDEN_PREDICATES; +// make sure we have the streams set at this point. +// don't actually want to define a field + +EXTERNAL union flagTerm* GLOBAL_Flags; +EXTERNAL UInt GLOBAL_flagCount; +/* Anderson's JIT */ +EXTERNAL yap_exec_mode Yap_ExecutionMode; +/* The Predicate Hash Table: fast access to predicates. */ +EXTERNAL UInt PredsInHashTable; +EXTERNAL uint64_t PredHashTableSize; +EXTERNAL struct pred_entry **PredHash; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL rwlock_t PredHashRWLock; +#endif +/* Well-Known Predicates */ +EXTERNAL struct pred_entry *CreepCode; +EXTERNAL struct pred_entry *UndefCode; +EXTERNAL struct pred_entry *SpyCode; +EXTERNAL struct pred_entry *PredFail; +EXTERNAL struct pred_entry *PredTrue; +#ifdef COROUTINING +EXTERNAL struct pred_entry *WakeUpCode; +#endif +EXTERNAL struct pred_entry *PredDollarCatch; +#ifdef YAPOR +EXTERNAL struct pred_entry *PredGetwork; +#endif /* YAPOR */ +EXTERNAL struct pred_entry *PredGoalExpansion; +EXTERNAL struct pred_entry *PredHandleThrow; +EXTERNAL struct pred_entry *PredIs; +EXTERNAL struct pred_entry *PredLogUpdClause; +EXTERNAL struct pred_entry *PredLogUpdClauseErase; +EXTERNAL struct pred_entry *PredLogUpdClause0; +EXTERNAL struct pred_entry *PredMetaCall; +EXTERNAL struct pred_entry *PredProtectStack; +EXTERNAL struct pred_entry *PredRecordedWithKey; +EXTERNAL struct pred_entry *PredRestoreRegs; +EXTERNAL struct pred_entry *PredSafeCallCleanup; +EXTERNAL struct pred_entry *PredStaticClause; +EXTERNAL struct pred_entry *PredThrow; +EXTERNAL struct pred_entry *PredTraceMetaCall; +EXTERNAL struct pred_entry *PredCommentHook; +EXTERNAL struct pred_entry *PredProcedure; +EXTERNAL struct pred_entry *PredUndefinedQuery; +/* low-level tracer */ +#ifdef LOW_LEVEL_TRACER +EXTERNAL int Yap_do_low_level_trace; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar Yap_low_level_trace_lock; +#endif +#endif +/* code management info */ +EXTERNAL UInt Yap_ClauseSpace; +EXTERNAL UInt Yap_IndexSpace_Tree; +EXTERNAL UInt Yap_IndexSpace_EXT; +EXTERNAL UInt Yap_IndexSpace_SW; +EXTERNAL UInt Yap_LUClauseSpace; +EXTERNAL UInt Yap_LUIndexSpace_Tree; +EXTERNAL UInt Yap_LUIndexSpace_CP; +EXTERNAL UInt Yap_LUIndexSpace_EXT; +EXTERNAL UInt Yap_LUIndexSpace_SW; +/* static code: may be shared by many predicate or may be used for meta-execution */ +EXTERNAL yamop COMMA_CODE[5]; +EXTERNAL yamop DUMMYCODE[1]; +EXTERNAL yamop FAILCODE[1]; +EXTERNAL yamop NOCODE[1]; +EXTERNAL yamop ENV_FOR_TRUSTFAIL[2]; +EXTERNAL yamop *TRUSTFAILCODE; +EXTERNAL yamop ENV_FOR_YESCODE[2]; +EXTERNAL yamop *YESCODE; +EXTERNAL yamop RTRYCODE[1]; +#ifdef BEAM +EXTERNAL yamop BEAM_RETRY_CODE[1]; +#endif /* BEAM */ +#ifdef YAPOR +EXTERNAL yamop GETWORK[1]; +EXTERNAL yamop GETWORK_SEQ[1]; +EXTERNAL yamop GETWORK_FIRST_TIME[1]; +#endif /* YAPOR */ +#ifdef TABLING +EXTERNAL yamop LOAD_ANSWER[1]; +EXTERNAL yamop TRY_ANSWER[1]; +EXTERNAL yamop ANSWER_RESOLUTION[1]; +EXTERNAL yamop COMPLETION[1]; +#ifdef THREADS_CONSUMER_SHARING +EXTERNAL yamop ANSWER_RESOLUTION_COMPLETION[1]; +#endif /* THREADS_CONSUMER_SHARING */ +#endif /* TABLING */ +/* */ +/* PREG just before we enter $spy. We use that to find out the clause which */ +/* was calling the debugged goal. */ +/* */ +EXTERNAL yamop *P_before_spy; +/* support recorded_k */ +EXTERNAL yamop *RETRY_C_RECORDEDP_CODE; +EXTERNAL yamop *RETRY_C_RECORDED_K_CODE; +/* compiler flags */ +EXTERNAL int PROFILING; +EXTERNAL int CALL_COUNTING; +EXTERNAL int optimizer_on; +EXTERNAL int compile_mode; +EXTERNAL int profiling; +EXTERNAL int call_counting; +/********* whether we should try to compile array references ******************/ +EXTERNAL int compile_arrays; +/* DBTerms: pre-compiled ground terms */ +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar DBTermsListLock; +#endif +EXTERNAL struct dbterm_list *DBTermsList; +/* JITI support */ +EXTERNAL yamop *ExpandClausesFirst; +EXTERNAL yamop *ExpandClausesLast; +EXTERNAL UInt Yap_ExpandClauses; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar ExpandClausesListLock; +EXTERNAL lockvar OpListLock; +#endif +/* instrumentation */ +#ifdef DEBUG +EXTERNAL UInt Yap_NewCps; +EXTERNAL UInt Yap_LiveCps; +EXTERNAL UInt Yap_DirtyCps; +EXTERNAL UInt Yap_FreedCps; +#endif +EXTERNAL UInt Yap_expand_clauses_sz; +/* UDI support */ +EXTERNAL struct udi_info *UdiControlBlocks; +/* data-base statistics */ +/* system boots in compile mode */ +EXTERNAL Int STATIC_PREDICATES_MARKED; +/* Internal Database */ +EXTERNAL Prop *INT_KEYS; +EXTERNAL Prop *INT_LU_KEYS; +EXTERNAL Prop *INT_BB_KEYS; +/* Internal Database Statistics */ +EXTERNAL UInt INT_KEYS_SIZE; +EXTERNAL UInt INT_KEYS_TIMESTAMP; +EXTERNAL UInt INT_BB_KEYS_SIZE; +/* Internal Data-Base Control */ +EXTERNAL int UPDATE_MODE; +/* nasty IDB stuff */ +EXTERNAL struct DB_STRUCT *DBErasedMarker; +EXTERNAL struct logic_upd_clause *LogDBErasedMarker; +/* Dead clauses and IDB entries */ +EXTERNAL struct static_clause *DeadStaticClauses; +EXTERNAL struct static_mega_clause *DeadMegaClauses; +EXTERNAL struct static_index *DeadStaticIndices; +EXTERNAL struct logic_upd_clause *DBErasedList; +EXTERNAL struct logic_upd_index *DBErasedIList; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar DeadStaticClausesLock; +EXTERNAL lockvar DeadMegaClausesLock; +EXTERNAL lockvar DeadStaticIndicesLock; +#endif +#ifdef COROUTINING +/* number of attribute modules */ +EXTERNAL int NUM_OF_ATTS; +/* initialised by memory allocator */ +EXTERNAL UInt Yap_AttsSize; +#endif +/* Operators */ +EXTERNAL struct operator_entry *OpList; +/* foreign code loaded */ +EXTERNAL struct ForeignLoadItem *ForeignCodeLoaded; +EXTERNAL ADDR ForeignCodeBase; +EXTERNAL ADDR ForeignCodeTop; +EXTERNAL ADDR ForeignCodeMax; +/* recorded terms */ +EXTERNAL struct record_list *Yap_Records; +EXTERNAL Atom EmptyWakeups[MAX_EMPTY_WAKEUPS]; +EXTERNAL int MaxEmptyWakeups; +/* SWI blobs */ +EXTERNAL struct YAP_blob_t *BlobTypes; +EXTERNAL struct AtomEntryStruct *Blobs; +EXTERNAL UInt NOfBlobs; +EXTERNAL UInt NOfBlobsMax; +#if defined(YAPOR) || defined(THREADS) +EXTERNAL lockvar Blobs_Lock; +#endif + diff --git a/H/generated/hglobals.h b/H/generated/hglobals.h index cf351dc14..e475e4f7e 100644 --- a/H/generated/hglobals.h +++ b/H/generated/hglobals.h @@ -1,144 +1,144 @@ - - /* This file, hglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/GLOBALS instead */ - -// -// File defining fields in the Yap_GLOBAL global structure -// -// these fields used to spread all over the place, because they must be used in 3 ways: -// - they must be defined somewhere -// - they have an #ifdef to get a shorter name -// - they must be initialised somewhere -// - they may be of interest to restore -// -// The defs include 3+ components: -// Type -// name in structured / global name -// init code (optional) -// restore code (optional) -// -// Stuff that must be shared by all threads or workers -typedef struct global_data { -// initialization: tell whether the system has been initialised and by whom. - int Initialised_; - int InitialisedFromPL_; - int PL_Argc_; - char** PL_Argv_; - bool FAST_BOOT_FLAG_; -// halt hooks - struct halt_hook* HaltHooks_; - fptr_t JIT_finalizer_; -// stack overflow expansion/gc control - int AllowLocalExpansion_; - int AllowGlobalExpansion_; - int AllowTrailExpansion_; - UInt SizeOfOverflow_; -// amount of space recovered in all garbage collections - UInt AGcThreshold_; - Agc_hook AGCHook_; -/* multi-thread support */ -#if THREADS -/* number of threads and processes in system */ - UInt NOfThreads_; -/* number of threads created since start */ - UInt NOfThreadsCreated_; -/* total run time for dead threads */ - UInt ThreadsTotalTime_; -// Threads Array - lockvar ThreadHandlesLock_; -#endif -#if defined(YAPOR) || defined(THREADS) -// protect long critical regions - lockvar BGL_; -#endif -#if defined(YAPOR) || defined(TABLING) - struct global_optyap_data optyap_data_; -#endif /* YAPOR || TABLING */ -// whether Yap is responsible for signal handling - int PrologShouldHandleInterrupts_; -/* This is the guy who actually started the system, and who has the correct registers */ -#if defined(THREADS) - pthread_t master_thread_; - struct thread_mbox* named_mboxes_; - lockvar mboxq_lock_; - UInt mbox_count_; - struct swi_mutex* WithMutex_; -#endif /* THREADS */ -// streams - struct stream_desc* Stream_; -#if defined(THREADS)||defined(YAPOR) - lockvar StreamDescLock_; -#endif -// access to yap initial arguments - char** argv_; - int argc_; -// extensions to Terms -#ifdef COROUTINING -/* array with the ops for your favourite extensions */ - ext_op attas_[attvars_ext+1]; -#endif -// agc.c - int agc_calls_; - YAP_ULONG_LONG agc_collected_; -/* total time spent in GC */ - Int tot_agc_time_; -/* number of heap objects in all garbage collections */ - Int tot_agc_recovered_; -//arrays.c -#if HAVE_MMAP - struct MMAP_ARRAY_BLOCK* mmap_arrays_; -#endif -#ifdef DEBUG -//computils.c - char Option_[20]; - YP_FILE* logfile_; -//init.c -//int output_msg =FALSE -#endif -#if defined(COFF) || defined(A_OUT) -// loada_coff.c && load_aout.c - char Executable_[YAP_FILENAME_MAX]; -#endif - int OpaqueHandlersCount_; - struct opaque_handler_struct* OpaqueHandlers_; -#if __simplescalar__ - char pwd_[YAP_FILENAME_MAX]; -#endif -//udi.c -//struct udi_control_block RtreeCmd void -const char* RestoreFile_; -//gprof.c - Int ProfCalls_; - Int ProfGCs_; - Int ProfHGrows_; - Int ProfSGrows_; - Int ProfMallocs_; - Int ProfIndexing_; - Int ProfOn_; - Int ProfOns_; - struct RB_red_blk_node* ProfilerRoot_; - struct RB_red_blk_node* ProfilerNil_; - char* DIRNAME_; -#if LOW_PROF - int ProfilerOn_; - FILE* FProf_; - FILE* FPreds_; -#endif /* LOW_PROF */ -// Mutexes -#if THREADS - struct swi_mutex* FreeMutexes_; - struct swi_mutex* mutex_backbone_; - lockvar MUT_ACCESS_; -#endif - char* Home_; -/* ISO char conversion: I will make no comments */ - char* CharConversionTable_; - char* CharConversionTable2_; -/* max priority */ - int MaxPriority_; -/// alias table access - struct AliasDescS* FileAliases_; - int NOfFileAliases_; - int SzOfFileAliases_; - struct vfs* VFS_; -} w_shared; + + /* This file, hglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/GLOBALS instead */ + +// +// File defining fields in the Yap_GLOBAL global structure +// +// these fields used to spread all over the place, because they must be used in 3 ways: +// - they must be defined somewhere +// - they have an #ifdef to get a shorter name +// - they must be initialised somewhere +// - they may be of interest to restore +// +// The defs include 3+ components: +// Type +// name in structured / global name +// init code (optional) +// restore code (optional) +// +// Stuff that must be shared by all threads or workers +typedef struct global_data { +// initialization: tell whether the system has been initialised and by whom. + int Initialised_; + int InitialisedFromPL_; + int PL_Argc_; + char** PL_Argv_; + bool FAST_BOOT_FLAG_; +// halt hooks + struct halt_hook* HaltHooks_; + fptr_t JIT_finalizer_; +// stack overflow expansion/gc control + int AllowLocalExpansion_; + int AllowGlobalExpansion_; + int AllowTrailExpansion_; + UInt SizeOfOverflow_; +// amount of space recovered in all garbage collections + UInt AGcThreshold_; + Agc_hook AGCHook_; +/* multi-thread support */ +#if THREADS +/* number of threads and processes in system */ + UInt NOfThreads_; +/* number of threads created since start */ + UInt NOfThreadsCreated_; +/* total run time for dead threads */ + UInt ThreadsTotalTime_; +// Threads Array + lockvar ThreadHandlesLock_; +#endif +#if defined(YAPOR) || defined(THREADS) +// protect long critical regions + lockvar BGL_; +#endif +#if defined(YAPOR) || defined(TABLING) + struct global_optyap_data optyap_data_; +#endif /* YAPOR || TABLING */ +// whether Yap is responsible for signal handling + int PrologShouldHandleInterrupts_; +/* This is the guy who actually started the system, and who has the correct registers */ +#if defined(THREADS) + pthread_t master_thread_; + struct thread_mbox* named_mboxes_; + lockvar mboxq_lock_; + UInt mbox_count_; + struct swi_mutex* WithMutex_; +#endif /* THREADS */ +// streams + struct stream_desc* Stream_; +#if defined(THREADS)||defined(YAPOR) + lockvar StreamDescLock_; +#endif +// access to yap initial arguments + char** argv_; + int argc_; +// extensions to Terms +#ifdef COROUTINING +/* array with the ops for your favourite extensions */ + ext_op attas_[attvars_ext+1]; +#endif +// agc.c + int agc_calls_; + YAP_ULONG_LONG agc_collected_; +/* total time spent in GC */ + Int tot_agc_time_; +/* number of heap objects in all garbage collections */ + Int tot_agc_recovered_; +//arrays.c +#if HAVE_MMAP + struct MMAP_ARRAY_BLOCK* mmap_arrays_; +#endif +#ifdef DEBUG +//computils.c + char Option_[20]; + YP_FILE* logfile_; +//init.c +//int output_msg =FALSE +#endif +#if defined(COFF) || defined(A_OUT) +// loada_coff.c && load_aout.c + char Executable_[YAP_FILENAME_MAX]; +#endif + int OpaqueHandlersCount_; + struct opaque_handler_struct* OpaqueHandlers_; +#if __simplescalar__ + char pwd_[YAP_FILENAME_MAX]; +#endif +//udi.c +//struct udi_control_block RtreeCmd void +const char* RestoreFile_; +//gprof.c + Int ProfCalls_; + Int ProfGCs_; + Int ProfHGrows_; + Int ProfSGrows_; + Int ProfMallocs_; + Int ProfIndexing_; + Int ProfOn_; + Int ProfOns_; + struct RB_red_blk_node* ProfilerRoot_; + struct RB_red_blk_node* ProfilerNil_; + char* DIRNAME_; +#if LOW_PROF + int ProfilerOn_; + FILE* FProf_; + FILE* FPreds_; +#endif /* LOW_PROF */ +// Mutexes +#if THREADS + struct swi_mutex* FreeMutexes_; + struct swi_mutex* mutex_backbone_; + lockvar MUT_ACCESS_; +#endif + char* Home_; +/* ISO char conversion: I will make no comments */ + char* CharConversionTable_; + char* CharConversionTable2_; +/* max priority */ + int MaxPriority_; +/// alias table access + struct AliasDescS* FileAliases_; + int NOfFileAliases_; + int SzOfFileAliases_; + struct vfs* VFS_; +} w_shared; diff --git a/H/generated/hlocals.h b/H/generated/hlocals.h index 470a84605..c72392453 100644 --- a/H/generated/hlocals.h +++ b/H/generated/hlocals.h @@ -1,272 +1,272 @@ - - /* This file, hlocals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/LOCALS instead */ - -// Stuff that must be considered local to a thread or worker -typedef struct worker_local { -// Streams - int c_input_stream_; - int c_output_stream_; - int c_error_stream_; - bool sockets_io_; - bool within_print_message_; -// -// Used by the prompts to check if they are after a newline, and then a -// prompt should be output, or if we are in the middle of a line. -// - bool newline_; - Atom AtPrompt_; - char Prompt_[MAX_PROMPT+1]; - encoding_t encoding_; - bool quasi_quotations_; - UInt default_priority_; - bool eot_before_eof_; - UInt max_depth_; - UInt max_list_; - UInt max_write_args_; -// Restore info - CELL* OldASP_; - CELL* OldLCL0_; - tr_fr_ptr OldTR_; - CELL* OldGlobalBase_; - CELL* OldH_; - CELL* OldH0_; - ADDR OldTrailBase_; - ADDR OldTrailTop_; - ADDR OldHeapBase_; - ADDR OldHeapTop_; - Int ClDiff_; - Int GDiff_; - Int HDiff_; - Int GDiff0_; - CELL* GSplit_; - Int LDiff_; - Int TrDiff_; - Int XDiff_; - Int DelayDiff_; - Int BaseDiff_; -// Reduction counters - YAP_ULONG_LONG ReductionsCounter_; - YAP_ULONG_LONG PredEntriesCounter_; - YAP_ULONG_LONG RetriesCounter_; - int ReductionsCounterOn_; - int PredEntriesCounterOn_; - int RetriesCounterOn_; -// support for consulting files -/* current consult stack */ - union CONSULT_OBJ* ConsultSp_; -/* current maximum number of cells in consult stack */ - UInt ConsultCapacity_; -/* top of consult stack */ - union CONSULT_OBJ* ConsultBase_; -/* low-water mark for consult */ - union CONSULT_OBJ* ConsultLow_; - Term VarNames_; - Atom SourceFileName_; - UInt SourceFileLineno_; -//global variables - Term GlobalArena_; - UInt GlobalArenaOverflows_; - Int ArenaOverflows_; - Int DepthArenas_; - struct pred_entry* LastAssertedPred_; - struct pred_entry* TmpPred_; - char* ScannerStack_; - struct scanner_extra_alloc* ScannerExtraBlocks_; -/// worker control information -/// stack limit after which the stack is managed by C-code. - Int CBorder_; -/// max number of signals (uint64_t) - UInt MaxActiveSignals_; -/// actual life signals - uint64_t Signals_; -/// indexing help data? - UInt IPredArity_; - yamop* ProfEnd_; - int DoingUndefp_; - Int StartCharCount_; - Int StartLineCount_; - Int StartLinePos_; - scratch_block ScratchPad_; -#ifdef COROUTINING - Term WokenGoals_; - Term AttsMutableList_; -#endif -// gc_stuff - Term GcGeneration_; - Term GcPhase_; - UInt GcCurrentPhase_; - UInt GcCalls_; - Int TotGcTime_; - YAP_ULONG_LONG TotGcRecovered_; - Int LastGcTime_; - Int LastSSTime_; - CELL* OpenArray_; -/* in a single gc */ - Int total_marked_; - Int total_oldies_; - struct choicept* current_B_; - CELL* prev_HB_; - CELL* HGEN_; - CELL** iptop_; -#if defined(GC_NO_TAGS) - char* bp_; -#endif - tr_fr_ptr sTR_; - tr_fr_ptr sTR0_; - tr_fr_ptr new_TR_; - struct gc_mark_continuation* cont_top0_; - struct gc_mark_continuation* cont_top_; - int discard_trail_entries_; - gc_ma_hash_entry gc_ma_hash_table_[GC_MAVARS_HASH_SIZE]; - gc_ma_hash_entry* gc_ma_h_top_; - gc_ma_hash_entry* gc_ma_h_list_; - UInt gc_timestamp_; - ADDR db_vec_; - ADDR db_vec0_; - struct RB_red_blk_node* db_root_; - struct RB_red_blk_node* db_nil_; - sigjmp_buf* gc_restore_; - CELL* extra_gc_cells_; - CELL* extra_gc_cells_base_; - CELL* extra_gc_cells_top_; - UInt extra_gc_cells_size_; - struct array_entry* DynamicArrays_; - struct static_array_entry* StaticArrays_; - struct global_entry* GlobalVariables_; - int AllowRestart_; -// Thread Local Area for Fast Storage of Intermediate Compiled Code - struct mem_blk* CMemFirstBlock_; - UInt CMemFirstBlockSz_; -// Variable used by the compiler to store number of permanent vars in a clause - int nperm_; - int jMP_; -// Thread Local Area for Labels - Int* LabelFirstArray_; - UInt LabelFirstArraySz_; -// Thread Local Area for SWI-Prolog emulation routines. -// struct PL_local_data* PL_local_data_p =Yap_InitThreadIO(wid) -#ifdef THREADS - struct thandle ThreadHandle_; -#endif /* THREADS */ -#if defined(YAPOR) || defined(TABLING) - struct local_optyap_data optyap_data_; - UInt TabMode_; -#endif /* YAPOR || TABLING */ - int InterruptsDisabled_; - struct open_query_struct* execution_; -#if LOW_LEVEL_TRACER - Int total_choicepoints_; -#endif - int consult_level_; -// Variables related to memory allocation - ADDR LocalBase_; - ADDR GlobalBase_; - ADDR TrailBase_; - ADDR TrailTop_; -/* error handling info, designed to be easy to pass to the foreign world */ - yap_error_descriptor_t* ActiveError_; -/// pointer to an exception term, from throw - jmp_buf* IOBotch_; - TokEntry* tokptr_; - TokEntry* toktide_; - VarEntry* VarTable_; - VarEntry* AnonVarTable_; - Term Comments_; - CELL* CommentsTail_; - CELL* CommentsNextChar_; - wchar_t* CommentsBuff_; - size_t CommentsBuffPos_; - size_t CommentsBuffLim_; - sigjmp_buf* RestartEnv_; - char FileNameBuf_[YAP_FILENAME_MAX+1]; - char FileNameBuf2_[YAP_FILENAME_MAX+1]; - struct TextBuffer_manager* TextBuffer_; -// Prolog State - UInt BreakLevel_; - Int PrologMode_; - int CritLocks_; -// Prolog execution and state flags - union flagTerm* Flags_; - UInt flagCount_; -//analyst.c -/* used to find out how many instructions of each kind are executed */ -#ifdef ANALYST - YAP_ULONG_LONG opcount_[_std_top+1]; - YAP_ULONG_LONG 2opcount[_std_top+1][_std_top+1]_; -#endif /* ANALYST */ -//dbase.c - struct db_globs* s_dbg_; -//eval.c - Term mathtt_; - char* mathstring_; -//grow.c - int heap_overflows_; - Int total_heap_overflow_time_; - int stack_overflows_; - Int total_stack_overflow_time_; - int delay_overflows_; - Int total_delay_overflow_time_; - int trail_overflows_; - Int total_trail_overflow_time_; - int atom_table_overflows_; - Int total_atom_table_overflow_time_; -//load_dyld -#ifdef LOAD_DYLD - int dl_errno_; -#endif -//tracer.c -#ifdef LOW_LEVEL_TRACER - int do_trace_primitives_; -#endif -//quick loader - struct export_atom_hash_entry_struct *ExportAtomHashChain_; - UInt ExportAtomHashTableSize_; - UInt ExportAtomHashTableNum_; - struct export_functor_hash_entry_struct *ExportFunctorHashChain_; - UInt ExportFunctorHashTableSize_; - UInt ExportFunctorHashTableNum_; - struct export_pred_entry_hash_entry_struct *ExportPredEntryHashChain_; - UInt ExportPredEntryHashTableSize_; - UInt ExportPredEntryHashTableNum_; - struct export_dbref_hash_entry_struct *ExportDBRefHashChain_; - UInt ExportDBRefHashTableSize_; - UInt ExportDBRefHashTableNum_; - struct import_atom_hash_entry_struct **ImportAtomHashChain_; - UInt ImportAtomHashTableSize_; - UInt ImportAtomHashTableNum_; - struct import_functor_hash_entry_struct **ImportFunctorHashChain_; - UInt ImportFunctorHashTableSize_; - UInt ImportFunctorHashTableNum_; - struct import_opcode_hash_entry_struct **ImportOPCODEHashChain_; - UInt ImportOPCODEHashTableSize_; - struct import_pred_entry_hash_entry_struct **ImportPredEntryHashChain_; - UInt ImportPredEntryHashTableSize_; - UInt ImportPredEntryHashTableNum_; - struct import_dbref_hash_entry_struct **ImportDBRefHashChain_; - UInt ImportDBRefHashTableSize_; - UInt ImportDBRefHashTableNum_; - yamop *ImportFAILCODE_; -// exo indexing - UInt ibnds_[256]; - struct index_t* exo_it_; - CELL* exo_base_; - UInt exo_arity_; - UInt exo_arg_; -// atom completion - struct scan_atoms* search_atoms_; - struct pred_entry* SearchPreds_; -/// Slots Status - yhandle_t CurSlot_; - yhandle_t FrozenHandles_; - yhandle_t NSlots_; - CELL* SlotBase_; -// Mutexes - struct swi_mutex* Mutexes_; - Term SourceModule_; - Term Including_; - size_t MAX_SIZE_; -/* last call to walltime. */ - uint64_t LastWTime_; - void* shared_; -} w_local; + + /* This file, hlocals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/LOCALS instead */ + +// Stuff that must be considered local to a thread or worker +typedef struct worker_local { +// Streams + int c_input_stream_; + int c_output_stream_; + int c_error_stream_; + bool sockets_io_; + bool within_print_message_; +// +// Used by the prompts to check if they are after a newline, and then a +// prompt should be output, or if we are in the middle of a line. +// + bool newline_; + Atom AtPrompt_; + char Prompt_[MAX_PROMPT+1]; + encoding_t encoding_; + bool quasi_quotations_; + UInt default_priority_; + bool eot_before_eof_; + UInt max_depth_; + UInt max_list_; + UInt max_write_args_; +// Restore info + CELL* OldASP_; + CELL* OldLCL0_; + tr_fr_ptr OldTR_; + CELL* OldGlobalBase_; + CELL* OldH_; + CELL* OldH0_; + ADDR OldTrailBase_; + ADDR OldTrailTop_; + ADDR OldHeapBase_; + ADDR OldHeapTop_; + Int ClDiff_; + Int GDiff_; + Int HDiff_; + Int GDiff0_; + CELL* GSplit_; + Int LDiff_; + Int TrDiff_; + Int XDiff_; + Int DelayDiff_; + Int BaseDiff_; +// Reduction counters + YAP_ULONG_LONG ReductionsCounter_; + YAP_ULONG_LONG PredEntriesCounter_; + YAP_ULONG_LONG RetriesCounter_; + int ReductionsCounterOn_; + int PredEntriesCounterOn_; + int RetriesCounterOn_; +// support for consulting files +/* current consult stack */ + union CONSULT_OBJ* ConsultSp_; +/* current maximum number of cells in consult stack */ + UInt ConsultCapacity_; +/* top of consult stack */ + union CONSULT_OBJ* ConsultBase_; +/* low-water mark for consult */ + union CONSULT_OBJ* ConsultLow_; + Term VarNames_; + Atom SourceFileName_; + UInt SourceFileLineno_; +//global variables + Term GlobalArena_; + UInt GlobalArenaOverflows_; + Int ArenaOverflows_; + Int DepthArenas_; + struct pred_entry* LastAssertedPred_; + struct pred_entry* TmpPred_; + char* ScannerStack_; + struct scanner_extra_alloc* ScannerExtraBlocks_; +/// worker control information +/// stack limit after which the stack is managed by C-code. + Int CBorder_; +/// max number of signals (uint64_t) + UInt MaxActiveSignals_; +/// actual life signals + uint64_t Signals_; +/// indexing help data? + UInt IPredArity_; + yamop* ProfEnd_; + int DoingUndefp_; + Int StartCharCount_; + Int StartLineCount_; + Int StartLinePos_; + scratch_block ScratchPad_; +#ifdef COROUTINING + Term WokenGoals_; + Term AttsMutableList_; +#endif +// gc_stuff + Term GcGeneration_; + Term GcPhase_; + UInt GcCurrentPhase_; + UInt GcCalls_; + Int TotGcTime_; + YAP_ULONG_LONG TotGcRecovered_; + Int LastGcTime_; + Int LastSSTime_; + CELL* OpenArray_; +/* in a single gc */ + Int total_marked_; + Int total_oldies_; + struct choicept* current_B_; + CELL* prev_HB_; + CELL* HGEN_; + CELL** iptop_; +#if defined(GC_NO_TAGS) + char* bp_; +#endif + tr_fr_ptr sTR_; + tr_fr_ptr sTR0_; + tr_fr_ptr new_TR_; + struct gc_mark_continuation* cont_top0_; + struct gc_mark_continuation* cont_top_; + int discard_trail_entries_; + gc_ma_hash_entry gc_ma_hash_table_[GC_MAVARS_HASH_SIZE]; + gc_ma_hash_entry* gc_ma_h_top_; + gc_ma_hash_entry* gc_ma_h_list_; + UInt gc_timestamp_; + ADDR db_vec_; + ADDR db_vec0_; + struct RB_red_blk_node* db_root_; + struct RB_red_blk_node* db_nil_; + sigjmp_buf* gc_restore_; + CELL* extra_gc_cells_; + CELL* extra_gc_cells_base_; + CELL* extra_gc_cells_top_; + UInt extra_gc_cells_size_; + struct array_entry* DynamicArrays_; + struct static_array_entry* StaticArrays_; + struct global_entry* GlobalVariables_; + int AllowRestart_; +// Thread Local Area for Fast Storage of Intermediate Compiled Code + struct mem_blk* CMemFirstBlock_; + UInt CMemFirstBlockSz_; +// Variable used by the compiler to store number of permanent vars in a clause + int nperm_; + int jMP_; +// Thread Local Area for Labels + Int* LabelFirstArray_; + UInt LabelFirstArraySz_; +// Thread Local Area for SWI-Prolog emulation routines. +// struct PL_local_data* PL_local_data_p =Yap_InitThreadIO(wid) +#ifdef THREADS + struct thandle ThreadHandle_; +#endif /* THREADS */ +#if defined(YAPOR) || defined(TABLING) + struct local_optyap_data optyap_data_; + UInt TabMode_; +#endif /* YAPOR || TABLING */ + int InterruptsDisabled_; + struct open_query_struct* execution_; +#if LOW_LEVEL_TRACER + Int total_choicepoints_; +#endif + int consult_level_; +// Variables related to memory allocation + ADDR LocalBase_; + ADDR GlobalBase_; + ADDR TrailBase_; + ADDR TrailTop_; +/* error handling info, designed to be easy to pass to the foreign world */ + yap_error_descriptor_t* ActiveError_; +/// pointer to an exception term, from throw + jmp_buf* IOBotch_; + TokEntry* tokptr_; + TokEntry* toktide_; + VarEntry* VarTable_; + VarEntry* AnonVarTable_; + Term Comments_; + CELL* CommentsTail_; + CELL* CommentsNextChar_; + wchar_t* CommentsBuff_; + size_t CommentsBuffPos_; + size_t CommentsBuffLim_; + sigjmp_buf* RestartEnv_; + char FileNameBuf_[YAP_FILENAME_MAX+1]; + char FileNameBuf2_[YAP_FILENAME_MAX+1]; + struct TextBuffer_manager* TextBuffer_; +// Prolog State + UInt BreakLevel_; + Int PrologMode_; + int CritLocks_; +// Prolog execution and state flags + union flagTerm* Flags_; + UInt flagCount_; +//analyst.c +/* used to find out how many instructions of each kind are executed */ +#ifdef ANALYST + YAP_ULONG_LONG opcount_[_std_top+1]; + YAP_ULONG_LONG 2opcount[_std_top+1][_std_top+1]_; +#endif /* ANALYST */ +//dbase.c + struct db_globs* s_dbg_; +//eval.c + Term mathtt_; + char* mathstring_; +//grow.c + int heap_overflows_; + Int total_heap_overflow_time_; + int stack_overflows_; + Int total_stack_overflow_time_; + int delay_overflows_; + Int total_delay_overflow_time_; + int trail_overflows_; + Int total_trail_overflow_time_; + int atom_table_overflows_; + Int total_atom_table_overflow_time_; +//load_dyld +#ifdef LOAD_DYLD + int dl_errno_; +#endif +//tracer.c +#ifdef LOW_LEVEL_TRACER + int do_trace_primitives_; +#endif +//quick loader + struct export_atom_hash_entry_struct *ExportAtomHashChain_; + UInt ExportAtomHashTableSize_; + UInt ExportAtomHashTableNum_; + struct export_functor_hash_entry_struct *ExportFunctorHashChain_; + UInt ExportFunctorHashTableSize_; + UInt ExportFunctorHashTableNum_; + struct export_pred_entry_hash_entry_struct *ExportPredEntryHashChain_; + UInt ExportPredEntryHashTableSize_; + UInt ExportPredEntryHashTableNum_; + struct export_dbref_hash_entry_struct *ExportDBRefHashChain_; + UInt ExportDBRefHashTableSize_; + UInt ExportDBRefHashTableNum_; + struct import_atom_hash_entry_struct **ImportAtomHashChain_; + UInt ImportAtomHashTableSize_; + UInt ImportAtomHashTableNum_; + struct import_functor_hash_entry_struct **ImportFunctorHashChain_; + UInt ImportFunctorHashTableSize_; + UInt ImportFunctorHashTableNum_; + struct import_opcode_hash_entry_struct **ImportOPCODEHashChain_; + UInt ImportOPCODEHashTableSize_; + struct import_pred_entry_hash_entry_struct **ImportPredEntryHashChain_; + UInt ImportPredEntryHashTableSize_; + UInt ImportPredEntryHashTableNum_; + struct import_dbref_hash_entry_struct **ImportDBRefHashChain_; + UInt ImportDBRefHashTableSize_; + UInt ImportDBRefHashTableNum_; + yamop *ImportFAILCODE_; +// exo indexing + UInt ibnds_[256]; + struct index_t* exo_it_; + CELL* exo_base_; + UInt exo_arity_; + UInt exo_arg_; +// atom completion + struct scan_atoms* search_atoms_; + struct pred_entry* SearchPreds_; +/// Slots Status + yhandle_t CurSlot_; + yhandle_t FrozenHandles_; + yhandle_t NSlots_; + CELL* SlotBase_; +// Mutexes + struct swi_mutex* Mutexes_; + Term SourceModule_; + Term Including_; + size_t MAX_SIZE_; +/* last call to walltime. */ + uint64_t LastWTime_; + void* shared_; +} w_local; diff --git a/H/generated/hstruct.h b/H/generated/hstruct.h index 4acedf892..6d9e93403 100755 --- a/H/generated/hstruct.h +++ b/H/generated/hstruct.h @@ -1,296 +1,295 @@ - - /* This file, hstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/HEAPFIELDS instead */ - -// -// File defining fields in the Yap_heap_codes global structure -// -// these fields used to spread all over the place, because they must be used in 4 ways: -// - they must be defined somewhere -// - they have an #ifdef to get a shorter name -// - they must be initialised somewhere -// - they must be restorable and collectable (from the atom gc). -// -// -// The defs include 4+ components: -// Type -// name in structured -// global name -// init code and restore code (optional) -// -// -// -// MkAT (MkAtomTerm) cvts from a predefined atom to a term -// MkPred constructs a pred_entry -// MkOp gets an opcode -// void does nothing -// =VALUE inits as VALUE -// Init... sets up call to InitFunc -// Restore... sets up call to RestoreFunc -// - -/* memory management */ - UInt Yap_HoleSize_; -#if USE_DL_MALLOC - struct malloc_state *Yap_av_; - struct memory_hole Yap_MemoryHoles[MAX_DLMALLOC_HOLES]_; - UInt Yap_NOfMemoryHoles_; -#if defined(YAPOR) || defined(THREADS) - lockvar DLMallocLock_; -#endif -#endif -#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) -#ifndef HeapUsed -#define HeapUsed Yap_givemallinfo() -#endif - Int NotHeapUsed_; -#else - Int HeapUsed_; -#endif - Int HeapMax_; - ADDR HeapTop_; - ADDR HeapLim_; - struct FREEB *FreeBlocks_; -#if defined(YAPOR) || defined(THREADS) - lockvar FreeBlocksLock_; - lockvar HeapUsedLock_; - lockvar HeapTopLock_; - int HeapTopOwner_; -#endif - UInt MaxStack_; - UInt MaxTrail_; -/* execution info */ -/* OPCODE REVERSE TABLE, needed to recover op tables */ -#if USE_THREADED_CODE - op_entry *OP_RTABLE_; -#endif -/* popular opcodes */ - OPCODE EXECUTE_CPRED_OP_CODE_; - OPCODE EXPAND_OP_CODE_; - OPCODE FAIL_OPCODE_; - OPCODE INDEX_OPCODE_; - OPCODE LOCKPRED_OPCODE_; - OPCODE ORLAST_OPCODE_; - OPCODE UNDEF_OPCODE_; - OPCODE RETRY_USERC_OPCODE_; - OPCODE EXECUTE_CPRED_OPCODE_; -/* atom tables */ - UInt NOfAtoms_; - UInt AtomHashTableSize_; - UInt WideAtomHashTableSize_; - UInt NOfWideAtoms_; - AtomHashEntry INVISIBLECHAIN_; - AtomHashEntry *WideHashChain_; - AtomHashEntry *HashChain_; -/* use atom defs here */ -#include "tatoms.h" -#ifdef EUROTRA - Term TermDollarU_; -#endif - Term TermAnswer_; -//modules - Term USER_MODULE_; - Term IDB_MODULE_; - Term ATTRIBUTES_MODULE_; - Term CHARSIO_MODULE_; - Term CHTYPE_MODULE_; - Term TERMS_MODULE_; - Term SYSTEM_MODULE_; - Term READUTIL_MODULE_; - Term HACKS_MODULE_; - Term ARG_MODULE_; - Term GLOBALS_MODULE_; - Term SWI_MODULE_; - Term DBLOAD_MODULE_; - Term RANGE_MODULE_; - Term ERROR_MODULE_; -// -// Module list -// - struct mod_entry *CurrentModules_; -// make sure we have the modules set at this point. -// don't actually want to define a field - -// hidden predicates - Prop HIDDEN_PREDICATES_; -// make sure we have the streams set at this point. -// don't actually want to define a field - - union flagTerm* GLOBAL_Flags_; - UInt GLOBAL_flagCount_; -/* Anderson's JIT */ - yap_exec_mode Yap_ExecutionMode_; -/* The Predicate Hash Table: fast access to predicates. */ - UInt PredsInHashTable_; - uint64_t PredHashTableSize_; - struct pred_entry **PredHash_; -#if defined(YAPOR) || defined(THREADS) - rwlock_t PredHashRWLock_; -#endif -/* Well-Known Predicates */ - struct pred_entry *CreepCode_; - struct pred_entry *UndefCode_; - struct pred_entry *SpyCode_; - struct pred_entry *PredFail_; - struct pred_entry *PredTrue_; -#ifdef COROUTINING - struct pred_entry *WakeUpCode_; -#endif - struct pred_entry *PredDollarCatch_; -#ifdef YAPOR - struct pred_entry *PredGetwork_; -#endif /* YAPOR */ - struct pred_entry *PredGoalExpansion_; - struct pred_entry *PredHandleThrow_; - struct pred_entry *PredIs_; - struct pred_entry *PredLogUpdClause_; - struct pred_entry *PredLogUpdClauseErase_; - struct pred_entry *PredLogUpdClause0_; - struct pred_entry *PredMetaCall_; - struct pred_entry *PredProtectStack_; - struct pred_entry *PredRecordedWithKey_; - struct pred_entry *PredRestoreRegs_; - struct pred_entry *PredSafeCallCleanup_; - struct pred_entry *PredStaticClause_; - struct pred_entry *PredThrow_; - struct pred_entry *PredTraceMetaCall_; - struct pred_entry *PredCommentHook_; - struct pred_entry *PredProcedure_; - struct pred_entry *PredUndefinedQuery_; -/* low-level tracer */ -#ifdef LOW_LEVEL_TRACER - int Yap_do_low_level_trace_; -#if defined(YAPOR) || defined(THREADS) - lockvar Yap_low_level_trace_lock_; -#endif -#endif -/* code management info */ - UInt Yap_ClauseSpace_; - UInt Yap_IndexSpace_Tree_; - UInt Yap_IndexSpace_EXT_; - UInt Yap_IndexSpace_SW_; - UInt Yap_LUClauseSpace_; - UInt Yap_LUIndexSpace_Tree_; - UInt Yap_LUIndexSpace_CP_; - UInt Yap_LUIndexSpace_EXT_; - UInt Yap_LUIndexSpace_SW_; -/* static code: may be shared by many predicate or may be used for meta-execution */ - yamop COMMA_CODE_[5]; - yamop DUMMYCODE_[1]; - yamop FAILCODE_[1]; - yamop NOCODE_[1]; - yamop ENV_FOR_TRUSTFAIL_[2]; - yamop *TRUSTFAILCODE_; - yamop ENV_FOR_YESCODE_[2]; - yamop *YESCODE_; - yamop RTRYCODE_[1]; -#ifdef BEAM - yamop BEAM_RETRY_CODE_[1]; -#endif /* BEAM */ -#ifdef YAPOR - yamop GETWORK_[1]; - yamop GETWORK_SEQ_[1]; - yamop GETWORK_FIRST_TIME_[1]; -#endif /* YAPOR */ -#ifdef TABLING - yamop LOAD_ANSWER_[1]; - yamop TRY_ANSWER_[1]; - yamop ANSWER_RESOLUTION_[1]; - yamop COMPLETION_[1]; -#ifdef THREADS_CONSUMER_SHARING - yamop ANSWER_RESOLUTION_COMPLETION_[1]; -#endif /* THREADS_CONSUMER_SHARING */ -#endif /* TABLING */ -/* */ -/* PREG just before we enter $spy. We use that to find out the clause which */ -/* was calling the debugged goal. */ -/* */ - yamop *P_before_spy_; -/* support recorded_k */ - yamop *RETRY_C_RECORDEDP_CODE_; - yamop *RETRY_C_RECORDED_K_CODE_; -/* compiler flags */ - int PROFILING_; - int CALL_COUNTING_; - int optimizer_on_; - int compile_mode_; - int profiling_; - int call_counting_; -/********* whether we should try to compile array references ******************/ - int compile_arrays_; -/* DBTerms: pre-compiled ground terms */ -#if defined(YAPOR) || defined(THREADS) - lockvar DBTermsListLock_; -#endif - struct dbterm_list *DBTermsList_; -/* JITI support */ - yamop *ExpandClausesFirst_; - yamop *ExpandClausesLast_; - UInt Yap_ExpandClauses_; -#if defined(YAPOR) || defined(THREADS) - lockvar ExpandClausesListLock_; - lockvar OpListLock_; -#endif -/* instrumentation */ -#ifdef DEBUG - UInt Yap_NewCps_; - UInt Yap_LiveCps_; - UInt Yap_DirtyCps_; - UInt Yap_FreedCps_; -#endif - UInt Yap_expand_clauses_sz_; -/* UDI support */ - struct udi_info *UdiControlBlocks_; -/* data-base statistics */ -/* system boots in compile mode */ - Int STATIC_PREDICATES_MARKED_; -/* Internal Database */ - Prop *INT_KEYS_; - Prop *INT_LU_KEYS_; - Prop *INT_BB_KEYS_; -/* Internal Database Statistics */ - UInt INT_KEYS_SIZE_; - UInt INT_KEYS_TIMESTAMP_; - UInt INT_BB_KEYS_SIZE_; -/* Internal Data-Base Control */ - int UPDATE_MODE_; -/* nasty IDB stuff */ - struct DB_STRUCT *DBErasedMarker_; - struct logic_upd_clause *LogDBErasedMarker_; -/* Dead clauses and IDB entries */ - struct static_clause *DeadStaticClauses_; - struct static_mega_clause *DeadMegaClauses_; - struct static_index *DeadStaticIndices_; - struct logic_upd_clause *DBErasedList_; - struct logic_upd_index *DBErasedIList_; -#if defined(YAPOR) || defined(THREADS) - lockvar DeadStaticClausesLock_; - lockvar DeadMegaClausesLock_; - lockvar DeadStaticIndicesLock_; -#endif -#ifdef COROUTINING -/* number of attribute modules */ - int NUM_OF_ATTS_; -/* initialised by memory allocator */ - UInt Yap_AttsSize_; -#endif -/* Operators */ - struct operator_entry *OpList_; -/* foreign code loaded */ - struct ForeignLoadItem *ForeignCodeLoaded_; - ADDR ForeignCodeBase_; - ADDR ForeignCodeTop_; - ADDR ForeignCodeMax_; -/* recorded terms */ - struct record_list *Yap_Records_; - Atom EmptyWakeups_[MAX_EMPTY_WAKEUPS]; - int MaxEmptyWakeups_; -/* SWI blobs */ - struct YAP_blob_t *BlobTypes_; - struct AtomEntryStruct *Blobs_; - UInt NOfBlobs_; - UInt NOfBlobsMax_; -#if defined(YAPOR) || defined(THREADS) - lockvar Blobs_Lock_; -#endif - + + /* This file, hstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/HEAPFIELDS instead */ + +// +// File defining fields in the Yap_heap_codes global structure +// +// these fields used to spread all over the place, because they must be used in 4 ways: +// - they must be defined somewhere +// - they have an #ifdef to get a shorter name +// - they must be initialised somewhere +// - they must be restorable and collectable (from the atom gc). +// +// +// The defs include 4+ components: +// Type +// name in structured +// global name +// init code and restore code (optional) +// +// +// +// MkAT (MkAtomTerm) cvts from a predefined atom to a term +// MkPred constructs a pred_entry +// MkOp gets an opcode +// void does nothing +// =VALUE inits as VALUE +// Init... sets up call to InitFunc +// Restore... sets up call to RestoreFunc +// + +/* memory management */ + UInt Yap_HoleSize_; +#if USE_DL_MALLOC + struct malloc_state *Yap_av_; + struct memory_hole Yap_MemoryHoles[MAX_DLMALLOC_HOLES]_; + UInt Yap_NOfMemoryHoles_; +#if defined(YAPOR) || defined(THREADS) + lockvar DLMallocLock_; +#endif +#endif +#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) +#ifndef HeapUsed +#define HeapUsed Yap_givemallinfo() +#endif + Int NotHeapUsed_; +#else + Int HeapUsed_; +#endif + Int HeapMax_; + ADDR HeapTop_; + ADDR HeapLim_; + struct FREEB *FreeBlocks_; +#if defined(YAPOR) || defined(THREADS) + lockvar FreeBlocksLock_; + lockvar HeapUsedLock_; + lockvar HeapTopLock_; + int HeapTopOwner_; +#endif + UInt MaxStack_; + UInt MaxTrail_; +/* execution info */ +/* OPCODE REVERSE TABLE, needed to recover op tables */ +#if USE_THREADED_CODE + op_entry *OP_RTABLE_; +#endif +/* popular opcodes */ + OPCODE EXECUTE_CPRED_OP_CODE_; + OPCODE EXPAND_OP_CODE_; + OPCODE FAIL_OPCODE_; + OPCODE INDEX_OPCODE_; + OPCODE LOCKPRED_OPCODE_; + OPCODE ORLAST_OPCODE_; + OPCODE UNDEF_OPCODE_; + OPCODE RETRY_USERC_OPCODE_; + OPCODE EXECUTE_CPRED_OPCODE_; +/* atom tables */ + UInt NOfAtoms_; + UInt AtomHashTableSize_; + UInt WideAtomHashTableSize_; + UInt NOfWideAtoms_; + AtomHashEntry INVISIBLECHAIN_; + AtomHashEntry *WideHashChain_; + AtomHashEntry *HashChain_; +/* use atom defs here */ +#include "tatoms.h" +#ifdef EUROTRA + Term TermDollarU_; +#endif +//modules + Term USER_MODULE_; + Term IDB_MODULE_; + Term ATTRIBUTES_MODULE_; + Term CHARSIO_MODULE_; + Term CHTYPE_MODULE_; + Term TERMS_MODULE_; + Term SYSTEM_MODULE_; + Term READUTIL_MODULE_; + Term HACKS_MODULE_; + Term ARG_MODULE_; + Term GLOBALS_MODULE_; + Term SWI_MODULE_; + Term DBLOAD_MODULE_; + Term RANGE_MODULE_; + Term ERROR_MODULE_; +// +// Module list +// + struct mod_entry *CurrentModules_; +// make sure we have the modules set at this point. +// don't actually want to define a field + +// hidden predicates + Prop HIDDEN_PREDICATES_; +// make sure we have the streams set at this point. +// don't actually want to define a field + + union flagTerm* GLOBAL_Flags_; + UInt GLOBAL_flagCount_; +/* Anderson's JIT */ + yap_exec_mode Yap_ExecutionMode_; +/* The Predicate Hash Table: fast access to predicates. */ + UInt PredsInHashTable_; + uint64_t PredHashTableSize_; + struct pred_entry **PredHash_; +#if defined(YAPOR) || defined(THREADS) + rwlock_t PredHashRWLock_; +#endif +/* Well-Known Predicates */ + struct pred_entry *CreepCode_; + struct pred_entry *UndefCode_; + struct pred_entry *SpyCode_; + struct pred_entry *PredFail_; + struct pred_entry *PredTrue_; +#ifdef COROUTINING + struct pred_entry *WakeUpCode_; +#endif + struct pred_entry *PredDollarCatch_; +#ifdef YAPOR + struct pred_entry *PredGetwork_; +#endif /* YAPOR */ + struct pred_entry *PredGoalExpansion_; + struct pred_entry *PredHandleThrow_; + struct pred_entry *PredIs_; + struct pred_entry *PredLogUpdClause_; + struct pred_entry *PredLogUpdClauseErase_; + struct pred_entry *PredLogUpdClause0_; + struct pred_entry *PredMetaCall_; + struct pred_entry *PredProtectStack_; + struct pred_entry *PredRecordedWithKey_; + struct pred_entry *PredRestoreRegs_; + struct pred_entry *PredSafeCallCleanup_; + struct pred_entry *PredStaticClause_; + struct pred_entry *PredThrow_; + struct pred_entry *PredTraceMetaCall_; + struct pred_entry *PredCommentHook_; + struct pred_entry *PredProcedure_; + struct pred_entry *PredUndefinedQuery_; +/* low-level tracer */ +#ifdef LOW_LEVEL_TRACER + int Yap_do_low_level_trace_; +#if defined(YAPOR) || defined(THREADS) + lockvar Yap_low_level_trace_lock_; +#endif +#endif +/* code management info */ + UInt Yap_ClauseSpace_; + UInt Yap_IndexSpace_Tree_; + UInt Yap_IndexSpace_EXT_; + UInt Yap_IndexSpace_SW_; + UInt Yap_LUClauseSpace_; + UInt Yap_LUIndexSpace_Tree_; + UInt Yap_LUIndexSpace_CP_; + UInt Yap_LUIndexSpace_EXT_; + UInt Yap_LUIndexSpace_SW_; +/* static code: may be shared by many predicate or may be used for meta-execution */ + yamop COMMA_CODE_[5]; + yamop DUMMYCODE_[1]; + yamop FAILCODE_[1]; + yamop NOCODE_[1]; + yamop ENV_FOR_TRUSTFAIL_[2]; + yamop *TRUSTFAILCODE_; + yamop ENV_FOR_YESCODE_[2]; + yamop *YESCODE_; + yamop RTRYCODE_[1]; +#ifdef BEAM + yamop BEAM_RETRY_CODE_[1]; +#endif /* BEAM */ +#ifdef YAPOR + yamop GETWORK_[1]; + yamop GETWORK_SEQ_[1]; + yamop GETWORK_FIRST_TIME_[1]; +#endif /* YAPOR */ +#ifdef TABLING + yamop LOAD_ANSWER_[1]; + yamop TRY_ANSWER_[1]; + yamop ANSWER_RESOLUTION_[1]; + yamop COMPLETION_[1]; +#ifdef THREADS_CONSUMER_SHARING + yamop ANSWER_RESOLUTION_COMPLETION_[1]; +#endif /* THREADS_CONSUMER_SHARING */ +#endif /* TABLING */ +/* */ +/* PREG just before we enter $spy. We use that to find out the clause which */ +/* was calling the debugged goal. */ +/* */ + yamop *P_before_spy_; +/* support recorded_k */ + yamop *RETRY_C_RECORDEDP_CODE_; + yamop *RETRY_C_RECORDED_K_CODE_; +/* compiler flags */ + int PROFILING_; + int CALL_COUNTING_; + int optimizer_on_; + int compile_mode_; + int profiling_; + int call_counting_; +/********* whether we should try to compile array references ******************/ + int compile_arrays_; +/* DBTerms: pre-compiled ground terms */ +#if defined(YAPOR) || defined(THREADS) + lockvar DBTermsListLock_; +#endif + struct dbterm_list *DBTermsList_; +/* JITI support */ + yamop *ExpandClausesFirst_; + yamop *ExpandClausesLast_; + UInt Yap_ExpandClauses_; +#if defined(YAPOR) || defined(THREADS) + lockvar ExpandClausesListLock_; + lockvar OpListLock_; +#endif +/* instrumentation */ +#ifdef DEBUG + UInt Yap_NewCps_; + UInt Yap_LiveCps_; + UInt Yap_DirtyCps_; + UInt Yap_FreedCps_; +#endif + UInt Yap_expand_clauses_sz_; +/* UDI support */ + struct udi_info *UdiControlBlocks_; +/* data-base statistics */ +/* system boots in compile mode */ + Int STATIC_PREDICATES_MARKED_; +/* Internal Database */ + Prop *INT_KEYS_; + Prop *INT_LU_KEYS_; + Prop *INT_BB_KEYS_; +/* Internal Database Statistics */ + UInt INT_KEYS_SIZE_; + UInt INT_KEYS_TIMESTAMP_; + UInt INT_BB_KEYS_SIZE_; +/* Internal Data-Base Control */ + int UPDATE_MODE_; +/* nasty IDB stuff */ + struct DB_STRUCT *DBErasedMarker_; + struct logic_upd_clause *LogDBErasedMarker_; +/* Dead clauses and IDB entries */ + struct static_clause *DeadStaticClauses_; + struct static_mega_clause *DeadMegaClauses_; + struct static_index *DeadStaticIndices_; + struct logic_upd_clause *DBErasedList_; + struct logic_upd_index *DBErasedIList_; +#if defined(YAPOR) || defined(THREADS) + lockvar DeadStaticClausesLock_; + lockvar DeadMegaClausesLock_; + lockvar DeadStaticIndicesLock_; +#endif +#ifdef COROUTINING +/* number of attribute modules */ + int NUM_OF_ATTS_; +/* initialised by memory allocator */ + UInt Yap_AttsSize_; +#endif +/* Operators */ + struct operator_entry *OpList_; +/* foreign code loaded */ + struct ForeignLoadItem *ForeignCodeLoaded_; + ADDR ForeignCodeBase_; + ADDR ForeignCodeTop_; + ADDR ForeignCodeMax_; +/* recorded terms */ + struct record_list *Yap_Records_; + Atom EmptyWakeups_[MAX_EMPTY_WAKEUPS]; + int MaxEmptyWakeups_; +/* SWI blobs */ + struct YAP_blob_t *BlobTypes_; + struct AtomEntryStruct *Blobs_; + UInt NOfBlobs_; + UInt NOfBlobsMax_; +#if defined(YAPOR) || defined(THREADS) + lockvar Blobs_Lock_; +#endif + diff --git a/H/generated/iglobals.h b/H/generated/iglobals.h index 49481f73f..d47184a44 100644 --- a/H/generated/iglobals.h +++ b/H/generated/iglobals.h @@ -1,144 +1,144 @@ - - /* This file, iglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/GLOBALS instead */ - - - - - - - - - - - - - - - - - -static void InitGlobal(void) { - - GLOBAL_Initialised = FALSE; - GLOBAL_InitialisedFromPL = FALSE; - GLOBAL_PL_Argc = 0; - GLOBAL_PL_Argv = NULL; - GLOBAL_FAST_BOOT_FLAG = false; - - GLOBAL_HaltHooks = NULL; - GLOBAL_JIT_finalizer = NULL; - - GLOBAL_AllowLocalExpansion = TRUE; - GLOBAL_AllowGlobalExpansion = TRUE; - GLOBAL_AllowTrailExpansion = TRUE; - GLOBAL_SizeOfOverflow = 0; - - GLOBAL_AGcThreshold = 10000; - GLOBAL_AGCHook = NULL; - -#if THREADS - - GLOBAL_NOfThreads = 1; - - GLOBAL_NOfThreadsCreated = 1; - - GLOBAL_ThreadsTotalTime = 0L; - - INIT_LOCK(GLOBAL_ThreadHandlesLock); -#endif -#if defined(YAPOR) || defined(THREADS) - - INIT_LOCK(GLOBAL_BGL); -#endif -#if defined(YAPOR) || defined(TABLING) - -#endif /* YAPOR || TABLING */ - - - -#if defined(THREADS) - - GLOBAL_named_mboxes = NULL; - INIT_LOCK(GLOBAL_mboxq_lock); - GLOBAL_mbox_count = 0; - -#endif /* THREADS */ - - -#if defined(THREADS)||defined(YAPOR) - INIT_LOCK(GLOBAL_StreamDescLock); -#endif - - - - -#ifdef COROUTINING - - -#endif - - - - - GLOBAL_tot_agc_time = 0; - - GLOBAL_tot_agc_recovered = 0; - -#if HAVE_MMAP - GLOBAL_mmap_arrays = NULL; -#endif -#ifdef DEBUG - - - - - -#endif -#if defined(COFF) || defined(A_OUT) - - -#endif - GLOBAL_OpaqueHandlersCount = 0; - GLOBAL_OpaqueHandlers = NULL; -#if __simplescalar__ - -#endif - - - - - - - - - - - - - - - GLOBAL_DIRNAME = NULL; -#if LOW_PROF - GLOBAL_ProfilerOn = FALSE; - GLOBAL_FProf = NULL; - GLOBAL_FPreds = NULL; -#endif /* LOW_PROF */ - -#if THREADS - GLOBAL_FreeMutexes = NULL; - GLOBAL_mutex_backbone = NULL; - INIT_LOCK(GLOBAL_MUT_ACCESS); -#endif - GLOBAL_Home = NULL; - - GLOBAL_CharConversionTable = NULL; - GLOBAL_CharConversionTable2 = NULL; - - GLOBAL_MaxPriority = 1200; - - GLOBAL_FileAliases = Yap_InitStandardAliases(); - - - GLOBAL_VFS = Yap_InitAssetManager(); -} + + /* This file, iglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/GLOBALS instead */ + + + + + + + + + + + + + + + + + +static void InitGlobal(void) { + + GLOBAL_Initialised = FALSE; + GLOBAL_InitialisedFromPL = FALSE; + GLOBAL_PL_Argc = 0; + GLOBAL_PL_Argv = NULL; + GLOBAL_FAST_BOOT_FLAG = false; + + GLOBAL_HaltHooks = NULL; + GLOBAL_JIT_finalizer = NULL; + + GLOBAL_AllowLocalExpansion = TRUE; + GLOBAL_AllowGlobalExpansion = TRUE; + GLOBAL_AllowTrailExpansion = TRUE; + GLOBAL_SizeOfOverflow = 0; + + GLOBAL_AGcThreshold = 10000; + GLOBAL_AGCHook = NULL; + +#if THREADS + + GLOBAL_NOfThreads = 1; + + GLOBAL_NOfThreadsCreated = 1; + + GLOBAL_ThreadsTotalTime = 0L; + + INIT_LOCK(GLOBAL_ThreadHandlesLock); +#endif +#if defined(YAPOR) || defined(THREADS) + + INIT_LOCK(GLOBAL_BGL); +#endif +#if defined(YAPOR) || defined(TABLING) + +#endif /* YAPOR || TABLING */ + + + +#if defined(THREADS) + + GLOBAL_named_mboxes = NULL; + INIT_LOCK(GLOBAL_mboxq_lock); + GLOBAL_mbox_count = 0; + +#endif /* THREADS */ + + +#if defined(THREADS)||defined(YAPOR) + INIT_LOCK(GLOBAL_StreamDescLock); +#endif + + + + +#ifdef COROUTINING + + +#endif + + + + + GLOBAL_tot_agc_time = 0; + + GLOBAL_tot_agc_recovered = 0; + +#if HAVE_MMAP + GLOBAL_mmap_arrays = NULL; +#endif +#ifdef DEBUG + + + + + +#endif +#if defined(COFF) || defined(A_OUT) + + +#endif + GLOBAL_OpaqueHandlersCount = 0; + GLOBAL_OpaqueHandlers = NULL; +#if __simplescalar__ + +#endif + + + + + + + + + + + + + + + GLOBAL_DIRNAME = NULL; +#if LOW_PROF + GLOBAL_ProfilerOn = FALSE; + GLOBAL_FProf = NULL; + GLOBAL_FPreds = NULL; +#endif /* LOW_PROF */ + +#if THREADS + GLOBAL_FreeMutexes = NULL; + GLOBAL_mutex_backbone = NULL; + INIT_LOCK(GLOBAL_MUT_ACCESS); +#endif + GLOBAL_Home = NULL; + + GLOBAL_CharConversionTable = NULL; + GLOBAL_CharConversionTable2 = NULL; + + GLOBAL_MaxPriority = 1200; + + GLOBAL_FileAliases = Yap_InitStandardAliases(); + + + GLOBAL_VFS = Yap_InitAssetManager(); +} diff --git a/H/generated/ihstruct.h b/H/generated/ihstruct.h index c3043b726..673b830a4 100644 --- a/H/generated/ihstruct.h +++ b/H/generated/ihstruct.h @@ -1,292 +1,291 @@ - - /* This file, ihstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/HEAPFIELDS instead */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#if USE_DL_MALLOC -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(DLMallocLock); -#endif -#endif -#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) -#ifndef HeapUsed -#define HeapUsed Yap_givemallinfo() -#endif - -#else - -#endif - - - - -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(FreeBlocksLock); - INIT_LOCK(HeapUsedLock); - INIT_LOCK(HeapTopLock); - HeapTopOwner = -1; -#endif - MaxStack = 0; - MaxTrail = 0; - - -#if USE_THREADED_CODE - -#endif - - EXECUTE_CPRED_OP_CODE = Yap_opcode(_execute_cpred); - EXPAND_OP_CODE = Yap_opcode(_expand_index); - FAIL_OPCODE = Yap_opcode(_op_fail); - INDEX_OPCODE = Yap_opcode(_index_pred); - LOCKPRED_OPCODE = Yap_opcode(_lock_pred); - ORLAST_OPCODE = Yap_opcode(_or_last); - UNDEF_OPCODE = Yap_opcode(_undef_p); - RETRY_USERC_OPCODE = Yap_opcode(_retry_userc); - EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred); - - - - - - InitInvisibleAtoms(); - InitWideAtoms(); - InitAtoms(); - -#include "iatoms.h" -#ifdef EUROTRA - TermDollarU = MkAtomTerm(AtomDollarU); -#endif - TermAnswer = MkAtomTerm(AtomAnswer); - - USER_MODULE = MkAtomTerm(AtomUser); - IDB_MODULE = MkAtomTerm(AtomIDB); - ATTRIBUTES_MODULE = MkAtomTerm(AtomAttributes); - CHARSIO_MODULE = MkAtomTerm(AtomCharsio); - CHTYPE_MODULE = MkAtomTerm(AtomChType); - TERMS_MODULE = MkAtomTerm(AtomTerms); - SYSTEM_MODULE = MkAtomTerm(AtomSystem); - READUTIL_MODULE = MkAtomTerm(AtomReadutil); - HACKS_MODULE = MkAtomTerm(AtomYapHacks); - ARG_MODULE = MkAtomTerm(AtomArg); - GLOBALS_MODULE = MkAtomTerm(AtomNb); - SWI_MODULE = MkAtomTerm(AtomSwi); - DBLOAD_MODULE = MkAtomTerm(AtomDBLoad); - RANGE_MODULE = MkAtomTerm(AtomRange); - ERROR_MODULE = MkAtomTerm(AtomError); - - - - CurrentModules = NULL; - - - Yap_InitModules(); - - HIDDEN_PREDICATES = NULL; - - - Yap_InitPlIO(yapi); - GLOBAL_Flags = 0; - Yap_InitFlags(true); - - Yap_ExecutionMode = INTERPRETED; - - PredsInHashTable = 0; - PredHashTableSize = 0; - InitPredHash(); -#if defined(YAPOR) || defined(THREADS) - -#endif - - CreepCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomCreep,1),PROLOG_MODULE)); - UndefCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomUndefp0,2),PROLOG_MODULE)); - SpyCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomSpy,1),PROLOG_MODULE)); - PredFail = RepPredProp(PredPropByAtom(AtomFail,PROLOG_MODULE)); - PredTrue = RepPredProp(PredPropByAtom(AtomTrue,PROLOG_MODULE)); -#ifdef COROUTINING - WakeUpCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomWakeUpGoal,2),PROLOG_MODULE)); -#endif - PredDollarCatch = RepPredProp(PredPropByFunc(FunctorCatch,PROLOG_MODULE)); -#ifdef YAPOR - PredGetwork = RepPredProp(PredPropByAtom(AtomGetwork,PROLOG_MODULE)); -#endif /* YAPOR */ - PredGoalExpansion = RepPredProp(PredPropByFunc(FunctorGoalExpansion,USER_MODULE)); - PredHandleThrow = RepPredProp(PredPropByFunc(FunctorHandleThrow,PROLOG_MODULE)); - PredIs = RepPredProp(PredPropByFunc(FunctorIs,PROLOG_MODULE)); - PredLogUpdClause = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE)); - PredLogUpdClauseErase = RepPredProp(PredPropByFunc(FunctorDoLogUpdClauseErase,PROLOG_MODULE)); - PredLogUpdClause0 = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE)); - PredMetaCall = RepPredProp(PredPropByFunc(FunctorMetaCall,PROLOG_MODULE)); - PredProtectStack = RepPredProp(PredPropByFunc(FunctorProtectStack,PROLOG_MODULE)); - PredRecordedWithKey = RepPredProp(PredPropByFunc(FunctorRecordedWithKey,PROLOG_MODULE)); - PredRestoreRegs = RepPredProp(PredPropByFunc(FunctorRestoreRegs,PROLOG_MODULE)); - PredSafeCallCleanup = RepPredProp(PredPropByFunc(FunctorSafeCallCleanup,PROLOG_MODULE)); - PredStaticClause = RepPredProp(PredPropByFunc(FunctorDoStaticClause,PROLOG_MODULE)); - PredThrow = RepPredProp(PredPropByFunc(FunctorThrow,PROLOG_MODULE)); - PredTraceMetaCall = RepPredProp(PredPropByFunc(FunctorTraceMetaCall,PROLOG_MODULE)); - PredCommentHook = RepPredProp(PredPropByFunc(FunctorCommentHook,PROLOG_MODULE)); - PredProcedure = Yap_MkLogPred(RepPredProp(PredPropByFunc(FunctorProcedure,PROLOG_MODULE))); - PredUndefinedQuery = RepPredProp(PredPropByFunc(FunctorUndefinedQuery,PROLOG_MODULE)); - -#ifdef LOW_LEVEL_TRACER - Yap_do_low_level_trace = FALSE; -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(Yap_low_level_trace_lock); -#endif -#endif - - Yap_ClauseSpace = 0; - Yap_IndexSpace_Tree = 0; - Yap_IndexSpace_EXT = 0; - Yap_IndexSpace_SW = 0; - Yap_LUClauseSpace = 0; - Yap_LUIndexSpace_Tree = 0; - Yap_LUIndexSpace_CP = 0; - Yap_LUIndexSpace_EXT = 0; - Yap_LUIndexSpace_SW = 0; - - - DUMMYCODE->opc = Yap_opcode(_op_fail); - FAILCODE->opc = Yap_opcode(_op_fail); - NOCODE->opc = Yap_opcode(_Nstop); - InitEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail); - - InitEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail); - - InitOtaplInst(RTRYCODE,_retry_and_mark,PredFail); -#ifdef BEAM - BEAM_RETRY_CODE->opc = Yap_opcode(_beam_retry_code); -#endif /* BEAM */ -#ifdef YAPOR - InitOtaplInst(GETWORK,_getwork,PredGetwork); - InitOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq); - GETWORK_FIRST_TIME->opc = Yap_opcode(_getwork_first_time); -#endif /* YAPOR */ -#ifdef TABLING - InitOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail); - InitOtaplInst(TRY_ANSWER,_table_try_answer,PredFail); - InitOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail); - InitOtaplInst(COMPLETION,_table_completion,PredFail); -#ifdef THREADS_CONSUMER_SHARING - InitOtaplInst(ANSWER_RESOLUTION_COMPLETION,_table_answer_resolution_completion,PredFail); -#endif /* THREADS_CONSUMER_SHARING */ -#endif /* TABLING */ - - - - - P_before_spy = NULL; - - RETRY_C_RECORDEDP_CODE = NULL; - RETRY_C_RECORDED_K_CODE = NULL; - - PROFILING = FALSE; - CALL_COUNTING = FALSE; - optimizer_on = TRUE; - compile_mode = 0; - profiling = FALSE; - call_counting = FALSE; - - compile_arrays = FALSE; - -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(DBTermsListLock); -#endif - DBTermsList = NULL; - - ExpandClausesFirst = NULL; - ExpandClausesLast = NULL; - Yap_ExpandClauses = 0; -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(ExpandClausesListLock); - INIT_LOCK(OpListLock); -#endif - -#ifdef DEBUG - Yap_NewCps = 0L; - Yap_LiveCps = 0L; - Yap_DirtyCps = 0L; - Yap_FreedCps = 0L; -#endif - Yap_expand_clauses_sz = 0L; - - UdiControlBlocks = NULL; - - - STATIC_PREDICATES_MARKED = FALSE; - - INT_KEYS = NULL; - INT_LU_KEYS = NULL; - INT_BB_KEYS = NULL; - - INT_KEYS_SIZE = INT_KEYS_DEFAULT_SIZE; - INT_KEYS_TIMESTAMP = 0L; - INT_BB_KEYS_SIZE = INT_KEYS_DEFAULT_SIZE; - - UPDATE_MODE = UPDATE_MODE_LOGICAL; - - InitDBErasedMarker(); - InitLogDBErasedMarker(); - - DeadStaticClauses = NULL; - DeadMegaClauses = NULL; - DeadStaticIndices = NULL; - DBErasedList = NULL; - DBErasedIList = NULL; -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(DeadStaticClausesLock); - INIT_LOCK(DeadMegaClausesLock); - INIT_LOCK(DeadStaticIndicesLock); -#endif -#ifdef COROUTINING - - NUM_OF_ATTS = 1; - - -#endif - - OpList = NULL; - - ForeignCodeLoaded = NULL; - ForeignCodeBase = NULL; - ForeignCodeTop = NULL; - ForeignCodeMax = NULL; - - Yap_Records = NULL; - InitEmptyWakeups(); - MaxEmptyWakeups = 0; - - BlobTypes = NULL; - Blobs = NULL; - NOfBlobs = 0; - NOfBlobsMax = 256; -#if defined(YAPOR) || defined(THREADS) - INIT_LOCK(Blobs_Lock); -#endif - + + /* This file, ihstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/HEAPFIELDS instead */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if USE_DL_MALLOC +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(DLMallocLock); +#endif +#endif +#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) +#ifndef HeapUsed +#define HeapUsed Yap_givemallinfo() +#endif + +#else + +#endif + + + + +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(FreeBlocksLock); + INIT_LOCK(HeapUsedLock); + INIT_LOCK(HeapTopLock); + HeapTopOwner = -1; +#endif + MaxStack = 0; + MaxTrail = 0; + + +#if USE_THREADED_CODE + +#endif + + EXECUTE_CPRED_OP_CODE = Yap_opcode(_execute_cpred); + EXPAND_OP_CODE = Yap_opcode(_expand_index); + FAIL_OPCODE = Yap_opcode(_op_fail); + INDEX_OPCODE = Yap_opcode(_index_pred); + LOCKPRED_OPCODE = Yap_opcode(_lock_pred); + ORLAST_OPCODE = Yap_opcode(_or_last); + UNDEF_OPCODE = Yap_opcode(_undef_p); + RETRY_USERC_OPCODE = Yap_opcode(_retry_userc); + EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred); + + + + + + InitInvisibleAtoms(); + InitWideAtoms(); + InitAtoms(); + +#include "iatoms.h" +#ifdef EUROTRA + TermDollarU = MkAtomTerm(AtomDollarU); +#endif + + USER_MODULE = MkAtomTerm(AtomUser); + IDB_MODULE = MkAtomTerm(AtomIDB); + ATTRIBUTES_MODULE = MkAtomTerm(AtomAttributes); + CHARSIO_MODULE = MkAtomTerm(AtomCharsio); + CHTYPE_MODULE = MkAtomTerm(AtomChType); + TERMS_MODULE = MkAtomTerm(AtomTerms); + SYSTEM_MODULE = MkAtomTerm(AtomSystem); + READUTIL_MODULE = MkAtomTerm(AtomReadutil); + HACKS_MODULE = MkAtomTerm(AtomYapHacks); + ARG_MODULE = MkAtomTerm(AtomArg); + GLOBALS_MODULE = MkAtomTerm(AtomNb); + SWI_MODULE = MkAtomTerm(AtomSwi); + DBLOAD_MODULE = MkAtomTerm(AtomDBLoad); + RANGE_MODULE = MkAtomTerm(AtomRange); + ERROR_MODULE = MkAtomTerm(AtomError); + + + + CurrentModules = NULL; + + + Yap_InitModules(); + + HIDDEN_PREDICATES = NULL; + + + Yap_InitPlIO(yapi); + GLOBAL_Flags = 0; + Yap_InitFlags(true); + + Yap_ExecutionMode = INTERPRETED; + + PredsInHashTable = 0; + PredHashTableSize = 0; + InitPredHash(); +#if defined(YAPOR) || defined(THREADS) + +#endif + + CreepCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomCreep,1),PROLOG_MODULE)); + UndefCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomUndefp0,2),PROLOG_MODULE)); + SpyCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomSpy,1),PROLOG_MODULE)); + PredFail = RepPredProp(PredPropByAtom(AtomFail,PROLOG_MODULE)); + PredTrue = RepPredProp(PredPropByAtom(AtomTrue,PROLOG_MODULE)); +#ifdef COROUTINING + WakeUpCode = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomWakeUpGoal,2),PROLOG_MODULE)); +#endif + PredDollarCatch = RepPredProp(PredPropByFunc(FunctorCatch,PROLOG_MODULE)); +#ifdef YAPOR + PredGetwork = RepPredProp(PredPropByAtom(AtomGetwork,PROLOG_MODULE)); +#endif /* YAPOR */ + PredGoalExpansion = RepPredProp(PredPropByFunc(FunctorGoalExpansion,USER_MODULE)); + PredHandleThrow = RepPredProp(PredPropByFunc(FunctorHandleThrow,PROLOG_MODULE)); + PredIs = RepPredProp(PredPropByFunc(FunctorIs,PROLOG_MODULE)); + PredLogUpdClause = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE)); + PredLogUpdClauseErase = RepPredProp(PredPropByFunc(FunctorDoLogUpdClauseErase,PROLOG_MODULE)); + PredLogUpdClause0 = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE)); + PredMetaCall = RepPredProp(PredPropByFunc(FunctorMetaCall,PROLOG_MODULE)); + PredProtectStack = RepPredProp(PredPropByFunc(FunctorProtectStack,PROLOG_MODULE)); + PredRecordedWithKey = RepPredProp(PredPropByFunc(FunctorRecordedWithKey,PROLOG_MODULE)); + PredRestoreRegs = RepPredProp(PredPropByFunc(FunctorRestoreRegs,PROLOG_MODULE)); + PredSafeCallCleanup = RepPredProp(PredPropByFunc(FunctorSafeCallCleanup,PROLOG_MODULE)); + PredStaticClause = RepPredProp(PredPropByFunc(FunctorDoStaticClause,PROLOG_MODULE)); + PredThrow = RepPredProp(PredPropByFunc(FunctorThrow,PROLOG_MODULE)); + PredTraceMetaCall = RepPredProp(PredPropByFunc(FunctorTraceMetaCall,PROLOG_MODULE)); + PredCommentHook = RepPredProp(PredPropByFunc(FunctorCommentHook,PROLOG_MODULE)); + PredProcedure = Yap_MkLogPred(RepPredProp(PredPropByFunc(FunctorProcedure,PROLOG_MODULE))); + PredUndefinedQuery = RepPredProp(PredPropByFunc(FunctorUndefinedQuery,PROLOG_MODULE)); + +#ifdef LOW_LEVEL_TRACER + Yap_do_low_level_trace = FALSE; +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(Yap_low_level_trace_lock); +#endif +#endif + + Yap_ClauseSpace = 0; + Yap_IndexSpace_Tree = 0; + Yap_IndexSpace_EXT = 0; + Yap_IndexSpace_SW = 0; + Yap_LUClauseSpace = 0; + Yap_LUIndexSpace_Tree = 0; + Yap_LUIndexSpace_CP = 0; + Yap_LUIndexSpace_EXT = 0; + Yap_LUIndexSpace_SW = 0; + + + DUMMYCODE->opc = Yap_opcode(_op_fail); + FAILCODE->opc = Yap_opcode(_op_fail); + NOCODE->opc = Yap_opcode(_Nstop); + InitEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail); + + InitEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail); + + InitOtaplInst(RTRYCODE,_retry_and_mark,PredFail); +#ifdef BEAM + BEAM_RETRY_CODE->opc = Yap_opcode(_beam_retry_code); +#endif /* BEAM */ +#ifdef YAPOR + InitOtaplInst(GETWORK,_getwork,PredGetwork); + InitOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq); + GETWORK_FIRST_TIME->opc = Yap_opcode(_getwork_first_time); +#endif /* YAPOR */ +#ifdef TABLING + InitOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail); + InitOtaplInst(TRY_ANSWER,_table_try_answer,PredFail); + InitOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail); + InitOtaplInst(COMPLETION,_table_completion,PredFail); +#ifdef THREADS_CONSUMER_SHARING + InitOtaplInst(ANSWER_RESOLUTION_COMPLETION,_table_answer_resolution_completion,PredFail); +#endif /* THREADS_CONSUMER_SHARING */ +#endif /* TABLING */ + + + + + P_before_spy = NULL; + + RETRY_C_RECORDEDP_CODE = NULL; + RETRY_C_RECORDED_K_CODE = NULL; + + PROFILING = FALSE; + CALL_COUNTING = FALSE; + optimizer_on = TRUE; + compile_mode = 0; + profiling = FALSE; + call_counting = FALSE; + + compile_arrays = FALSE; + +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(DBTermsListLock); +#endif + DBTermsList = NULL; + + ExpandClausesFirst = NULL; + ExpandClausesLast = NULL; + Yap_ExpandClauses = 0; +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(ExpandClausesListLock); + INIT_LOCK(OpListLock); +#endif + +#ifdef DEBUG + Yap_NewCps = 0L; + Yap_LiveCps = 0L; + Yap_DirtyCps = 0L; + Yap_FreedCps = 0L; +#endif + Yap_expand_clauses_sz = 0L; + + UdiControlBlocks = NULL; + + + STATIC_PREDICATES_MARKED = FALSE; + + INT_KEYS = NULL; + INT_LU_KEYS = NULL; + INT_BB_KEYS = NULL; + + INT_KEYS_SIZE = INT_KEYS_DEFAULT_SIZE; + INT_KEYS_TIMESTAMP = 0L; + INT_BB_KEYS_SIZE = INT_KEYS_DEFAULT_SIZE; + + UPDATE_MODE = UPDATE_MODE_LOGICAL; + + InitDBErasedMarker(); + InitLogDBErasedMarker(); + + DeadStaticClauses = NULL; + DeadMegaClauses = NULL; + DeadStaticIndices = NULL; + DBErasedList = NULL; + DBErasedIList = NULL; +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(DeadStaticClausesLock); + INIT_LOCK(DeadMegaClausesLock); + INIT_LOCK(DeadStaticIndicesLock); +#endif +#ifdef COROUTINING + + NUM_OF_ATTS = 1; + + +#endif + + OpList = NULL; + + ForeignCodeLoaded = NULL; + ForeignCodeBase = NULL; + ForeignCodeTop = NULL; + ForeignCodeMax = NULL; + + Yap_Records = NULL; + InitEmptyWakeups(); + MaxEmptyWakeups = 0; + + BlobTypes = NULL; + Blobs = NULL; + NOfBlobs = 0; + NOfBlobsMax = 256; +#if defined(YAPOR) || defined(THREADS) + INIT_LOCK(Blobs_Lock); +#endif + diff --git a/H/generated/ilocals.h b/H/generated/ilocals.h index 7da9a5e1c..2a74c22b6 100755 --- a/H/generated/ilocals.h +++ b/H/generated/ilocals.h @@ -1,272 +1,272 @@ - - /* This file, ilocals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/LOCALS instead */ - - -static void InitWorker(int wid) { - - REMOTE_c_input_stream(wid) = 0; - REMOTE_c_output_stream(wid) = 1; - REMOTE_c_error_stream(wid) = 2; - REMOTE_sockets_io(wid) = false; - REMOTE_within_print_message(wid) = false; - - - - - REMOTE_newline(wid) = true; - REMOTE_AtPrompt(wid) = AtomNil; - - REMOTE_encoding(wid) = Yap_DefaultEncoding(); - REMOTE_quasi_quotations(wid) = false; - REMOTE_default_priority(wid) = 1200; - REMOTE_eot_before_eof(wid) = false; - REMOTE_max_depth(wid) = 0; - REMOTE_max_list(wid) = 0; - REMOTE_max_write_args(wid) = 0; - - REMOTE_OldASP(wid) = NULL; - REMOTE_OldLCL0(wid) = NULL; - REMOTE_OldTR(wid) = NULL; - REMOTE_OldGlobalBase(wid) = NULL; - REMOTE_OldH(wid) = NULL; - REMOTE_OldH0(wid) = NULL; - REMOTE_OldTrailBase(wid) = NULL; - REMOTE_OldTrailTop(wid) = NULL; - REMOTE_OldHeapBase(wid) = NULL; - REMOTE_OldHeapTop(wid) = NULL; - REMOTE_ClDiff(wid) = 0L; - REMOTE_GDiff(wid) = 0L; - REMOTE_HDiff(wid) = 0L; - REMOTE_GDiff0(wid) = 0L; - REMOTE_GSplit(wid) = NULL; - REMOTE_LDiff(wid) = 0L; - REMOTE_TrDiff(wid) = 0L; - REMOTE_XDiff(wid) = 0L; - REMOTE_DelayDiff(wid) = 0L; - REMOTE_BaseDiff(wid) = 0L; - - REMOTE_ReductionsCounter(wid) = 0L; - REMOTE_PredEntriesCounter(wid) = 0L; - REMOTE_RetriesCounter(wid) = 0L; - REMOTE_ReductionsCounterOn(wid) = 0L; - REMOTE_PredEntriesCounterOn(wid) = 0L; - REMOTE_RetriesCounterOn(wid) = 0L; - - - REMOTE_ConsultSp(wid) = NULL; - - - - REMOTE_ConsultBase(wid) = NULL; - - REMOTE_ConsultLow(wid) = NULL; - REMOTE_VarNames(wid) = ((Term)0); - REMOTE_SourceFileName(wid) = NULL; - REMOTE_SourceFileLineno(wid) = 0; - - REMOTE_GlobalArena(wid) = 0L; - REMOTE_GlobalArenaOverflows(wid) = 0L; - REMOTE_ArenaOverflows(wid) = 0L; - REMOTE_DepthArenas(wid) = 0; - REMOTE_LastAssertedPred(wid) = NULL; - REMOTE_TmpPred(wid) = NULL; - REMOTE_ScannerStack(wid) = NULL; - REMOTE_ScannerExtraBlocks(wid) = NULL; - - - REMOTE_CBorder(wid) = 0; - - REMOTE_MaxActiveSignals(wid) = 64L; - - REMOTE_Signals(wid) = 0L; - - REMOTE_IPredArity(wid) = 0L; - REMOTE_ProfEnd(wid) = NULL; - REMOTE_DoingUndefp(wid) = FALSE; - REMOTE_StartCharCount(wid) = 0L; - REMOTE_StartLineCount(wid) = 0L; - REMOTE_StartLinePos(wid) = 0L; - InitScratchPad(wid); -#ifdef COROUTINING - REMOTE_WokenGoals(wid) = 0L; - REMOTE_AttsMutableList(wid) = 0L; -#endif - - REMOTE_GcGeneration(wid) = 0L; - REMOTE_GcPhase(wid) = 0L; - REMOTE_GcCurrentPhase(wid) = 0L; - REMOTE_GcCalls(wid) = 0L; - REMOTE_TotGcTime(wid) = 0L; - REMOTE_TotGcRecovered(wid) = 0L; - REMOTE_LastGcTime(wid) = 0L; - REMOTE_LastSSTime(wid) = 0L; - REMOTE_OpenArray(wid) = NULL; - - REMOTE_total_marked(wid) = 0L; - REMOTE_total_oldies(wid) = 0L; - REMOTE_current_B(wid) = NULL; - REMOTE_prev_HB(wid) = NULL; - REMOTE_HGEN(wid) = NULL; - REMOTE_iptop(wid) = NULL; -#if defined(GC_NO_TAGS) - REMOTE_bp(wid) = NULL; -#endif - REMOTE_sTR(wid) = NULL; - REMOTE_sTR0(wid) = NULL; - REMOTE_new_TR(wid) = NULL; - REMOTE_cont_top0(wid) = NULL; - REMOTE_cont_top(wid) = NULL; - REMOTE_discard_trail_entries(wid) = 0; - - REMOTE_gc_ma_h_top(wid) = NULL; - REMOTE_gc_ma_h_list(wid) = NULL; - REMOTE_gc_timestamp(wid) = 0L; - REMOTE_db_vec(wid) = NULL; - REMOTE_db_vec0(wid) = NULL; - REMOTE_db_root(wid) = NULL; - REMOTE_db_nil(wid) = NULL; - - - - - REMOTE_extra_gc_cells_size(wid) = 256; - REMOTE_DynamicArrays(wid) = NULL; - REMOTE_StaticArrays(wid) = NULL; - REMOTE_GlobalVariables(wid) = NULL; - REMOTE_AllowRestart(wid) = FALSE; - - REMOTE_CMemFirstBlock(wid) = NULL; - REMOTE_CMemFirstBlockSz(wid) = 0L; - - REMOTE_nperm(wid) = 0; - REMOTE_jMP(wid) = 0; - - REMOTE_LabelFirstArray(wid) = NULL; - REMOTE_LabelFirstArraySz(wid) = 0L; - - -#ifdef THREADS - InitThreadHandle(wid); -#endif /* THREADS */ -#if defined(YAPOR) || defined(TABLING) - Yap_init_local_optyap_data(wid); - REMOTE_TabMode(wid) = 0L; -#endif /* YAPOR || TABLING */ - REMOTE_InterruptsDisabled(wid) = FALSE; - REMOTE_execution(wid) = NULL; -#if LOW_LEVEL_TRACER - REMOTE_total_choicepoints(wid) = 0; -#endif - REMOTE_consult_level(wid) = 0; - - - - - - - REMOTE_ActiveError(wid) = calloc(sizeof(yap_error_descriptor_t),1); - - - - - - - - - - - - - - - - REMOTE_TextBuffer(wid) = Yap_InitTextAllocator(); - - REMOTE_BreakLevel(wid) = 0; - REMOTE_PrologMode(wid) = BootMode; - REMOTE_CritLocks(wid) = 0; - - - - - -#ifdef ANALYST - - -#endif /* ANALYST */ - - - - - REMOTE_mathstring(wid) = NULL; - - REMOTE_heap_overflows(wid) = 0; - REMOTE_total_heap_overflow_time(wid) = 0; - REMOTE_stack_overflows(wid) = 0; - REMOTE_total_stack_overflow_time(wid) = 0; - REMOTE_delay_overflows(wid) = 0; - REMOTE_total_delay_overflow_time(wid) = 0; - REMOTE_trail_overflows(wid) = 0; - REMOTE_total_trail_overflow_time(wid) = 0; - REMOTE_atom_table_overflows(wid) = 0; - REMOTE_total_atom_table_overflow_time(wid) = 0; - -#ifdef LOAD_DYLD - REMOTE_dl_errno(wid) = 0; -#endif - -#ifdef LOW_LEVEL_TRACER - REMOTE_do_trace_primitives(wid) = TRUE; -#endif - - REMOTE_ExportAtomHashChain(wid) = NULL; - REMOTE_ExportAtomHashTableSize(wid) = 0; - REMOTE_ExportAtomHashTableNum(wid) = 0; - REMOTE_ExportFunctorHashChain(wid) = NULL; - REMOTE_ExportFunctorHashTableSize(wid) = 0; - REMOTE_ExportFunctorHashTableNum(wid) = 0; - REMOTE_ExportPredEntryHashChain(wid) = NULL; - REMOTE_ExportPredEntryHashTableSize(wid) = 0; - REMOTE_ExportPredEntryHashTableNum(wid) = 0; - REMOTE_ExportDBRefHashChain(wid) = NULL; - REMOTE_ExportDBRefHashTableSize(wid) = 0; - REMOTE_ExportDBRefHashTableNum(wid) = 0; - REMOTE_ImportAtomHashChain(wid) = NULL; - REMOTE_ImportAtomHashTableSize(wid) = 0; - REMOTE_ImportAtomHashTableNum(wid) = 0; - REMOTE_ImportFunctorHashChain(wid) = NULL; - REMOTE_ImportFunctorHashTableSize(wid) = 0; - REMOTE_ImportFunctorHashTableNum(wid) = 0; - REMOTE_ImportOPCODEHashChain(wid) = NULL; - REMOTE_ImportOPCODEHashTableSize(wid) = 0; - REMOTE_ImportPredEntryHashChain(wid) = NULL; - REMOTE_ImportPredEntryHashTableSize(wid) = 0; - REMOTE_ImportPredEntryHashTableNum(wid) = 0; - REMOTE_ImportDBRefHashChain(wid) = NULL; - REMOTE_ImportDBRefHashTableSize(wid) = 0; - REMOTE_ImportDBRefHashTableNum(wid) = 0; - REMOTE_ImportFAILCODE(wid) = NULL; - - - REMOTE_exo_it(wid) = NULL; - REMOTE_exo_base(wid) = NULL; - REMOTE_exo_arity(wid) = 0; - REMOTE_exo_arg(wid) = 0; - - - - - REMOTE_CurSlot(wid) = 0; - REMOTE_FrozenHandles(wid) = 0; - REMOTE_NSlots(wid) = 0; - REMOTE_SlotBase(wid) = InitHandles(wid); - - REMOTE_Mutexes(wid) = NULL; - REMOTE_SourceModule(wid) = 0; - REMOTE_Including(wid) = TermNil; - REMOTE_MAX_SIZE(wid) = 1024L; - - REMOTE_LastWTime(wid) = 0; - REMOTE_shared(wid) = NULL; -} + + /* This file, ilocals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/LOCALS instead */ + + +static void InitWorker(int wid) { + + REMOTE_c_input_stream(wid) = 0; + REMOTE_c_output_stream(wid) = 1; + REMOTE_c_error_stream(wid) = 2; + REMOTE_sockets_io(wid) = false; + REMOTE_within_print_message(wid) = false; + + + + + REMOTE_newline(wid) = true; + REMOTE_AtPrompt(wid) = AtomNil; + + REMOTE_encoding(wid) = Yap_DefaultEncoding(); + REMOTE_quasi_quotations(wid) = false; + REMOTE_default_priority(wid) = 1200; + REMOTE_eot_before_eof(wid) = false; + REMOTE_max_depth(wid) = 0; + REMOTE_max_list(wid) = 0; + REMOTE_max_write_args(wid) = 0; + + REMOTE_OldASP(wid) = NULL; + REMOTE_OldLCL0(wid) = NULL; + REMOTE_OldTR(wid) = NULL; + REMOTE_OldGlobalBase(wid) = NULL; + REMOTE_OldH(wid) = NULL; + REMOTE_OldH0(wid) = NULL; + REMOTE_OldTrailBase(wid) = NULL; + REMOTE_OldTrailTop(wid) = NULL; + REMOTE_OldHeapBase(wid) = NULL; + REMOTE_OldHeapTop(wid) = NULL; + REMOTE_ClDiff(wid) = 0L; + REMOTE_GDiff(wid) = 0L; + REMOTE_HDiff(wid) = 0L; + REMOTE_GDiff0(wid) = 0L; + REMOTE_GSplit(wid) = NULL; + REMOTE_LDiff(wid) = 0L; + REMOTE_TrDiff(wid) = 0L; + REMOTE_XDiff(wid) = 0L; + REMOTE_DelayDiff(wid) = 0L; + REMOTE_BaseDiff(wid) = 0L; + + REMOTE_ReductionsCounter(wid) = 0L; + REMOTE_PredEntriesCounter(wid) = 0L; + REMOTE_RetriesCounter(wid) = 0L; + REMOTE_ReductionsCounterOn(wid) = 0L; + REMOTE_PredEntriesCounterOn(wid) = 0L; + REMOTE_RetriesCounterOn(wid) = 0L; + + + REMOTE_ConsultSp(wid) = NULL; + + + + REMOTE_ConsultBase(wid) = NULL; + + REMOTE_ConsultLow(wid) = NULL; + REMOTE_VarNames(wid) = ((Term)0); + REMOTE_SourceFileName(wid) = NULL; + REMOTE_SourceFileLineno(wid) = 0; + + REMOTE_GlobalArena(wid) = 0L; + REMOTE_GlobalArenaOverflows(wid) = 0L; + REMOTE_ArenaOverflows(wid) = 0L; + REMOTE_DepthArenas(wid) = 0; + REMOTE_LastAssertedPred(wid) = NULL; + REMOTE_TmpPred(wid) = NULL; + REMOTE_ScannerStack(wid) = NULL; + REMOTE_ScannerExtraBlocks(wid) = NULL; + + + REMOTE_CBorder(wid) = 0; + + REMOTE_MaxActiveSignals(wid) = 64L; + + REMOTE_Signals(wid) = 0L; + + REMOTE_IPredArity(wid) = 0L; + REMOTE_ProfEnd(wid) = NULL; + REMOTE_DoingUndefp(wid) = FALSE; + REMOTE_StartCharCount(wid) = 0L; + REMOTE_StartLineCount(wid) = 0L; + REMOTE_StartLinePos(wid) = 0L; + InitScratchPad(wid); +#ifdef COROUTINING + REMOTE_WokenGoals(wid) = 0L; + REMOTE_AttsMutableList(wid) = 0L; +#endif + + REMOTE_GcGeneration(wid) = 0L; + REMOTE_GcPhase(wid) = 0L; + REMOTE_GcCurrentPhase(wid) = 0L; + REMOTE_GcCalls(wid) = 0L; + REMOTE_TotGcTime(wid) = 0L; + REMOTE_TotGcRecovered(wid) = 0L; + REMOTE_LastGcTime(wid) = 0L; + REMOTE_LastSSTime(wid) = 0L; + REMOTE_OpenArray(wid) = NULL; + + REMOTE_total_marked(wid) = 0L; + REMOTE_total_oldies(wid) = 0L; + REMOTE_current_B(wid) = NULL; + REMOTE_prev_HB(wid) = NULL; + REMOTE_HGEN(wid) = NULL; + REMOTE_iptop(wid) = NULL; +#if defined(GC_NO_TAGS) + REMOTE_bp(wid) = NULL; +#endif + REMOTE_sTR(wid) = NULL; + REMOTE_sTR0(wid) = NULL; + REMOTE_new_TR(wid) = NULL; + REMOTE_cont_top0(wid) = NULL; + REMOTE_cont_top(wid) = NULL; + REMOTE_discard_trail_entries(wid) = 0; + + REMOTE_gc_ma_h_top(wid) = NULL; + REMOTE_gc_ma_h_list(wid) = NULL; + REMOTE_gc_timestamp(wid) = 0L; + REMOTE_db_vec(wid) = NULL; + REMOTE_db_vec0(wid) = NULL; + REMOTE_db_root(wid) = NULL; + REMOTE_db_nil(wid) = NULL; + + + + + REMOTE_extra_gc_cells_size(wid) = 256; + REMOTE_DynamicArrays(wid) = NULL; + REMOTE_StaticArrays(wid) = NULL; + REMOTE_GlobalVariables(wid) = NULL; + REMOTE_AllowRestart(wid) = FALSE; + + REMOTE_CMemFirstBlock(wid) = NULL; + REMOTE_CMemFirstBlockSz(wid) = 0L; + + REMOTE_nperm(wid) = 0; + REMOTE_jMP(wid) = 0; + + REMOTE_LabelFirstArray(wid) = NULL; + REMOTE_LabelFirstArraySz(wid) = 0L; + + +#ifdef THREADS + InitThreadHandle(wid); +#endif /* THREADS */ +#if defined(YAPOR) || defined(TABLING) + Yap_init_local_optyap_data(wid); + REMOTE_TabMode(wid) = 0L; +#endif /* YAPOR || TABLING */ + REMOTE_InterruptsDisabled(wid) = FALSE; + REMOTE_execution(wid) = NULL; +#if LOW_LEVEL_TRACER + REMOTE_total_choicepoints(wid) = 0; +#endif + REMOTE_consult_level(wid) = 0; + + + + + + + REMOTE_ActiveError(wid) = calloc(sizeof(yap_error_descriptor_t),1); + + + + + + + + + + + + + + + + REMOTE_TextBuffer(wid) = Yap_InitTextAllocator(); + + REMOTE_BreakLevel(wid) = 0; + REMOTE_PrologMode(wid) = BootMode; + REMOTE_CritLocks(wid) = 0; + + + + + +#ifdef ANALYST + + +#endif /* ANALYST */ + + + + + REMOTE_mathstring(wid) = NULL; + + REMOTE_heap_overflows(wid) = 0; + REMOTE_total_heap_overflow_time(wid) = 0; + REMOTE_stack_overflows(wid) = 0; + REMOTE_total_stack_overflow_time(wid) = 0; + REMOTE_delay_overflows(wid) = 0; + REMOTE_total_delay_overflow_time(wid) = 0; + REMOTE_trail_overflows(wid) = 0; + REMOTE_total_trail_overflow_time(wid) = 0; + REMOTE_atom_table_overflows(wid) = 0; + REMOTE_total_atom_table_overflow_time(wid) = 0; + +#ifdef LOAD_DYLD + REMOTE_dl_errno(wid) = 0; +#endif + +#ifdef LOW_LEVEL_TRACER + REMOTE_do_trace_primitives(wid) = TRUE; +#endif + + REMOTE_ExportAtomHashChain(wid) = NULL; + REMOTE_ExportAtomHashTableSize(wid) = 0; + REMOTE_ExportAtomHashTableNum(wid) = 0; + REMOTE_ExportFunctorHashChain(wid) = NULL; + REMOTE_ExportFunctorHashTableSize(wid) = 0; + REMOTE_ExportFunctorHashTableNum(wid) = 0; + REMOTE_ExportPredEntryHashChain(wid) = NULL; + REMOTE_ExportPredEntryHashTableSize(wid) = 0; + REMOTE_ExportPredEntryHashTableNum(wid) = 0; + REMOTE_ExportDBRefHashChain(wid) = NULL; + REMOTE_ExportDBRefHashTableSize(wid) = 0; + REMOTE_ExportDBRefHashTableNum(wid) = 0; + REMOTE_ImportAtomHashChain(wid) = NULL; + REMOTE_ImportAtomHashTableSize(wid) = 0; + REMOTE_ImportAtomHashTableNum(wid) = 0; + REMOTE_ImportFunctorHashChain(wid) = NULL; + REMOTE_ImportFunctorHashTableSize(wid) = 0; + REMOTE_ImportFunctorHashTableNum(wid) = 0; + REMOTE_ImportOPCODEHashChain(wid) = NULL; + REMOTE_ImportOPCODEHashTableSize(wid) = 0; + REMOTE_ImportPredEntryHashChain(wid) = NULL; + REMOTE_ImportPredEntryHashTableSize(wid) = 0; + REMOTE_ImportPredEntryHashTableNum(wid) = 0; + REMOTE_ImportDBRefHashChain(wid) = NULL; + REMOTE_ImportDBRefHashTableSize(wid) = 0; + REMOTE_ImportDBRefHashTableNum(wid) = 0; + REMOTE_ImportFAILCODE(wid) = NULL; + + + REMOTE_exo_it(wid) = NULL; + REMOTE_exo_base(wid) = NULL; + REMOTE_exo_arity(wid) = 0; + REMOTE_exo_arg(wid) = 0; + + + + + REMOTE_CurSlot(wid) = 0; + REMOTE_FrozenHandles(wid) = 0; + REMOTE_NSlots(wid) = 0; + REMOTE_SlotBase(wid) = InitHandles(wid); + + REMOTE_Mutexes(wid) = NULL; + REMOTE_SourceModule(wid) = 0; + REMOTE_Including(wid) = TermNil; + REMOTE_MAX_SIZE(wid) = 1024L; + + REMOTE_LastWTime(wid) = 0; + REMOTE_shared(wid) = NULL; +} diff --git a/H/generated/rhstruct.h b/H/generated/rhstruct.h index 2ed86a7b7..cdf40764f 100644 --- a/H/generated/rhstruct.h +++ b/H/generated/rhstruct.h @@ -1,292 +1,291 @@ - - /* This file, rhstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/HEAPFIELDS instead */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#if USE_DL_MALLOC -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(DLMallocLock); -#endif -#endif -#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) -#ifndef HeapUsed -#define HeapUsed Yap_givemallinfo() -#endif - -#else - -#endif - - - - -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(FreeBlocksLock); - REINIT_LOCK(HeapUsedLock); - REINIT_LOCK(HeapTopLock); - -#endif - - - - -#if USE_THREADED_CODE - OP_RTABLE = OpRTableAdjust(OP_RTABLE); -#endif - - EXECUTE_CPRED_OP_CODE = Yap_opcode(_execute_cpred); - EXPAND_OP_CODE = Yap_opcode(_expand_index); - FAIL_OPCODE = Yap_opcode(_op_fail); - INDEX_OPCODE = Yap_opcode(_index_pred); - LOCKPRED_OPCODE = Yap_opcode(_lock_pred); - ORLAST_OPCODE = Yap_opcode(_or_last); - UNDEF_OPCODE = Yap_opcode(_undef_p); - RETRY_USERC_OPCODE = Yap_opcode(_retry_userc); - EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred); - - - - - - RestoreInvisibleAtoms(); - RestoreWideAtoms(); - RestoreAtoms(); - -#include "ratoms.h" -#ifdef EUROTRA - TermDollarU = AtomTermAdjust(TermDollarU); -#endif - TermAnswer = AtomTermAdjust(TermAnswer); - - USER_MODULE = AtomTermAdjust(USER_MODULE); - IDB_MODULE = AtomTermAdjust(IDB_MODULE); - ATTRIBUTES_MODULE = AtomTermAdjust(ATTRIBUTES_MODULE); - CHARSIO_MODULE = AtomTermAdjust(CHARSIO_MODULE); - CHTYPE_MODULE = AtomTermAdjust(CHTYPE_MODULE); - TERMS_MODULE = AtomTermAdjust(TERMS_MODULE); - SYSTEM_MODULE = AtomTermAdjust(SYSTEM_MODULE); - READUTIL_MODULE = AtomTermAdjust(READUTIL_MODULE); - HACKS_MODULE = AtomTermAdjust(HACKS_MODULE); - ARG_MODULE = AtomTermAdjust(ARG_MODULE); - GLOBALS_MODULE = AtomTermAdjust(GLOBALS_MODULE); - SWI_MODULE = AtomTermAdjust(SWI_MODULE); - DBLOAD_MODULE = AtomTermAdjust(DBLOAD_MODULE); - RANGE_MODULE = AtomTermAdjust(RANGE_MODULE); - ERROR_MODULE = AtomTermAdjust(ERROR_MODULE); - - - - CurrentModules = ModEntryPtrAdjust(CurrentModules); - - - - - RestoreHiddenPredicates(); - - - - - RestoreFlags(GLOBAL_flagCount); - - - - - - RestorePredHash(); -#if defined(YAPOR) || defined(THREADS) - -#endif - - CreepCode = PtoPredAdjust(CreepCode); - UndefCode = PtoPredAdjust(UndefCode); - SpyCode = PtoPredAdjust(SpyCode); - PredFail = PtoPredAdjust(PredFail); - PredTrue = PtoPredAdjust(PredTrue); -#ifdef COROUTINING - WakeUpCode = PtoPredAdjust(WakeUpCode); -#endif - PredDollarCatch = PtoPredAdjust(PredDollarCatch); -#ifdef YAPOR - PredGetwork = PtoPredAdjust(PredGetwork); -#endif /* YAPOR */ - PredGoalExpansion = PtoPredAdjust(PredGoalExpansion); - PredHandleThrow = PtoPredAdjust(PredHandleThrow); - PredIs = PtoPredAdjust(PredIs); - PredLogUpdClause = PtoPredAdjust(PredLogUpdClause); - PredLogUpdClauseErase = PtoPredAdjust(PredLogUpdClauseErase); - PredLogUpdClause0 = PtoPredAdjust(PredLogUpdClause0); - PredMetaCall = PtoPredAdjust(PredMetaCall); - PredProtectStack = PtoPredAdjust(PredProtectStack); - PredRecordedWithKey = PtoPredAdjust(PredRecordedWithKey); - PredRestoreRegs = PtoPredAdjust(PredRestoreRegs); - PredSafeCallCleanup = PtoPredAdjust(PredSafeCallCleanup); - PredStaticClause = PtoPredAdjust(PredStaticClause); - PredThrow = PtoPredAdjust(PredThrow); - PredTraceMetaCall = PtoPredAdjust(PredTraceMetaCall); - PredCommentHook = PtoPredAdjust(PredCommentHook); - PredProcedure = PtoPredAdjust(PredProcedure); - PredUndefinedQuery = PtoPredAdjust(PredUndefinedQuery); - -#ifdef LOW_LEVEL_TRACER - -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(Yap_low_level_trace_lock); -#endif -#endif - - - - - - - - - - - - - DUMMYCODE->opc = Yap_opcode(_op_fail); - FAILCODE->opc = Yap_opcode(_op_fail); - NOCODE->opc = Yap_opcode(_Nstop); - RestoreEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail); - - RestoreEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail); - - RestoreOtaplInst(RTRYCODE,_retry_and_mark,PredFail); -#ifdef BEAM - BEAM_RETRY_CODE->opc = Yap_opcode(_beam_retry_code); -#endif /* BEAM */ -#ifdef YAPOR - RestoreOtaplInst(GETWORK,_getwork,PredGetwork); - RestoreOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq); - GETWORK_FIRST_TIME->opc = Yap_opcode(_getwork_first_time); -#endif /* YAPOR */ -#ifdef TABLING - RestoreOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail); - RestoreOtaplInst(TRY_ANSWER,_table_try_answer,PredFail); - RestoreOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail); - RestoreOtaplInst(COMPLETION,_table_completion,PredFail); -#ifdef THREADS_CONSUMER_SHARING - RestoreOtaplInst(ANSWER_RESOLUTION_COMPLETION,_table_answer_resolution_completion,PredFail); -#endif /* THREADS_CONSUMER_SHARING */ -#endif /* TABLING */ - - - - - P_before_spy = PtoOpAdjust(P_before_spy); - - RETRY_C_RECORDEDP_CODE = PtoOpAdjust(RETRY_C_RECORDEDP_CODE); - RETRY_C_RECORDED_K_CODE = PtoOpAdjust(RETRY_C_RECORDED_K_CODE); - - - - - - - - - - -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(DBTermsListLock); -#endif - RestoreDBTermsList(); - - - RestoreExpandList(); - -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(ExpandClausesListLock); - REINIT_LOCK(OpListLock); -#endif - -#ifdef DEBUG - - - - -#endif - - - RestoreUdiControlBlocks(); - - - - - RestoreIntKeys(); - RestoreIntLUKeys(); - RestoreIntBBKeys(); - - - - - - - - RestoreDBErasedMarker(); - RestoreLogDBErasedMarker(); - - RestoreDeadStaticClauses(); - RestoreDeadMegaClauses(); - RestoreDeadStaticIndices(); - RestoreDBErasedList(); - RestoreDBErasedIList(); -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(DeadStaticClausesLock); - REINIT_LOCK(DeadMegaClausesLock); - REINIT_LOCK(DeadStaticIndicesLock); -#endif -#ifdef COROUTINING - - - - -#endif - - OpList = OpListAdjust(OpList); - - RestoreForeignCode(); - - - - - RestoreYapRecords(); - RestoreEmptyWakeups(); - - - RestoreBlobTypes(); - RestoreBlobs(); - - -#if defined(YAPOR) || defined(THREADS) - REINIT_LOCK(Blobs_Lock); -#endif - + + /* This file, rhstruct.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/HEAPFIELDS instead */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if USE_DL_MALLOC +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(DLMallocLock); +#endif +#endif +#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) +#ifndef HeapUsed +#define HeapUsed Yap_givemallinfo() +#endif + +#else + +#endif + + + + +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(FreeBlocksLock); + REINIT_LOCK(HeapUsedLock); + REINIT_LOCK(HeapTopLock); + +#endif + + + + +#if USE_THREADED_CODE + OP_RTABLE = OpRTableAdjust(OP_RTABLE); +#endif + + EXECUTE_CPRED_OP_CODE = Yap_opcode(_execute_cpred); + EXPAND_OP_CODE = Yap_opcode(_expand_index); + FAIL_OPCODE = Yap_opcode(_op_fail); + INDEX_OPCODE = Yap_opcode(_index_pred); + LOCKPRED_OPCODE = Yap_opcode(_lock_pred); + ORLAST_OPCODE = Yap_opcode(_or_last); + UNDEF_OPCODE = Yap_opcode(_undef_p); + RETRY_USERC_OPCODE = Yap_opcode(_retry_userc); + EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred); + + + + + + RestoreInvisibleAtoms(); + RestoreWideAtoms(); + RestoreAtoms(); + +#include "ratoms.h" +#ifdef EUROTRA + TermDollarU = AtomTermAdjust(TermDollarU); +#endif + + USER_MODULE = AtomTermAdjust(USER_MODULE); + IDB_MODULE = AtomTermAdjust(IDB_MODULE); + ATTRIBUTES_MODULE = AtomTermAdjust(ATTRIBUTES_MODULE); + CHARSIO_MODULE = AtomTermAdjust(CHARSIO_MODULE); + CHTYPE_MODULE = AtomTermAdjust(CHTYPE_MODULE); + TERMS_MODULE = AtomTermAdjust(TERMS_MODULE); + SYSTEM_MODULE = AtomTermAdjust(SYSTEM_MODULE); + READUTIL_MODULE = AtomTermAdjust(READUTIL_MODULE); + HACKS_MODULE = AtomTermAdjust(HACKS_MODULE); + ARG_MODULE = AtomTermAdjust(ARG_MODULE); + GLOBALS_MODULE = AtomTermAdjust(GLOBALS_MODULE); + SWI_MODULE = AtomTermAdjust(SWI_MODULE); + DBLOAD_MODULE = AtomTermAdjust(DBLOAD_MODULE); + RANGE_MODULE = AtomTermAdjust(RANGE_MODULE); + ERROR_MODULE = AtomTermAdjust(ERROR_MODULE); + + + + CurrentModules = ModEntryPtrAdjust(CurrentModules); + + + + + RestoreHiddenPredicates(); + + + + + RestoreFlags(GLOBAL_flagCount); + + + + + + RestorePredHash(); +#if defined(YAPOR) || defined(THREADS) + +#endif + + CreepCode = PtoPredAdjust(CreepCode); + UndefCode = PtoPredAdjust(UndefCode); + SpyCode = PtoPredAdjust(SpyCode); + PredFail = PtoPredAdjust(PredFail); + PredTrue = PtoPredAdjust(PredTrue); +#ifdef COROUTINING + WakeUpCode = PtoPredAdjust(WakeUpCode); +#endif + PredDollarCatch = PtoPredAdjust(PredDollarCatch); +#ifdef YAPOR + PredGetwork = PtoPredAdjust(PredGetwork); +#endif /* YAPOR */ + PredGoalExpansion = PtoPredAdjust(PredGoalExpansion); + PredHandleThrow = PtoPredAdjust(PredHandleThrow); + PredIs = PtoPredAdjust(PredIs); + PredLogUpdClause = PtoPredAdjust(PredLogUpdClause); + PredLogUpdClauseErase = PtoPredAdjust(PredLogUpdClauseErase); + PredLogUpdClause0 = PtoPredAdjust(PredLogUpdClause0); + PredMetaCall = PtoPredAdjust(PredMetaCall); + PredProtectStack = PtoPredAdjust(PredProtectStack); + PredRecordedWithKey = PtoPredAdjust(PredRecordedWithKey); + PredRestoreRegs = PtoPredAdjust(PredRestoreRegs); + PredSafeCallCleanup = PtoPredAdjust(PredSafeCallCleanup); + PredStaticClause = PtoPredAdjust(PredStaticClause); + PredThrow = PtoPredAdjust(PredThrow); + PredTraceMetaCall = PtoPredAdjust(PredTraceMetaCall); + PredCommentHook = PtoPredAdjust(PredCommentHook); + PredProcedure = PtoPredAdjust(PredProcedure); + PredUndefinedQuery = PtoPredAdjust(PredUndefinedQuery); + +#ifdef LOW_LEVEL_TRACER + +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(Yap_low_level_trace_lock); +#endif +#endif + + + + + + + + + + + + + DUMMYCODE->opc = Yap_opcode(_op_fail); + FAILCODE->opc = Yap_opcode(_op_fail); + NOCODE->opc = Yap_opcode(_Nstop); + RestoreEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail); + + RestoreEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail); + + RestoreOtaplInst(RTRYCODE,_retry_and_mark,PredFail); +#ifdef BEAM + BEAM_RETRY_CODE->opc = Yap_opcode(_beam_retry_code); +#endif /* BEAM */ +#ifdef YAPOR + RestoreOtaplInst(GETWORK,_getwork,PredGetwork); + RestoreOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq); + GETWORK_FIRST_TIME->opc = Yap_opcode(_getwork_first_time); +#endif /* YAPOR */ +#ifdef TABLING + RestoreOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail); + RestoreOtaplInst(TRY_ANSWER,_table_try_answer,PredFail); + RestoreOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail); + RestoreOtaplInst(COMPLETION,_table_completion,PredFail); +#ifdef THREADS_CONSUMER_SHARING + RestoreOtaplInst(ANSWER_RESOLUTION_COMPLETION,_table_answer_resolution_completion,PredFail); +#endif /* THREADS_CONSUMER_SHARING */ +#endif /* TABLING */ + + + + + P_before_spy = PtoOpAdjust(P_before_spy); + + RETRY_C_RECORDEDP_CODE = PtoOpAdjust(RETRY_C_RECORDEDP_CODE); + RETRY_C_RECORDED_K_CODE = PtoOpAdjust(RETRY_C_RECORDED_K_CODE); + + + + + + + + + + +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(DBTermsListLock); +#endif + RestoreDBTermsList(); + + + RestoreExpandList(); + +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(ExpandClausesListLock); + REINIT_LOCK(OpListLock); +#endif + +#ifdef DEBUG + + + + +#endif + + + RestoreUdiControlBlocks(); + + + + + RestoreIntKeys(); + RestoreIntLUKeys(); + RestoreIntBBKeys(); + + + + + + + + RestoreDBErasedMarker(); + RestoreLogDBErasedMarker(); + + RestoreDeadStaticClauses(); + RestoreDeadMegaClauses(); + RestoreDeadStaticIndices(); + RestoreDBErasedList(); + RestoreDBErasedIList(); +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(DeadStaticClausesLock); + REINIT_LOCK(DeadMegaClausesLock); + REINIT_LOCK(DeadStaticIndicesLock); +#endif +#ifdef COROUTINING + + + + +#endif + + OpList = OpListAdjust(OpList); + + RestoreForeignCode(); + + + + + RestoreYapRecords(); + RestoreEmptyWakeups(); + + + RestoreBlobTypes(); + RestoreBlobs(); + + +#if defined(YAPOR) || defined(THREADS) + REINIT_LOCK(Blobs_Lock); +#endif + diff --git a/H/generated/rlocals.h b/H/generated/rlocals.h index cddc0d9f2..a4aaf2a4c 100644 --- a/H/generated/rlocals.h +++ b/H/generated/rlocals.h @@ -1,272 +1,272 @@ - - /* This file, rlocals.h, was generated automatically by "yap -L misc/buildlocalglobal" - please do not update, update H/LOCALS instead */ - - -static void RestoreWorker(int wid USES_REGS) { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REMOTE_GlobalArena(wid) = TermToGlobalOrAtomAdjust(REMOTE_GlobalArena(wid)); - - - - - - - - - - - - - - - - - - - - - - -#ifdef COROUTINING - REMOTE_WokenGoals(wid) = TermToGlobalAdjust(REMOTE_WokenGoals(wid)); - REMOTE_AttsMutableList(wid) = TermToGlobalAdjust(REMOTE_AttsMutableList(wid)); -#endif - - REMOTE_GcGeneration(wid) = TermToGlobalAdjust(REMOTE_GcGeneration(wid)); - REMOTE_GcPhase(wid) = TermToGlobalAdjust(REMOTE_GcPhase(wid)); - - - - - - - - - - - - - - -#if defined(GC_NO_TAGS) - -#endif - - - - - - - - - - - - - - - - - - - - REMOTE_DynamicArrays(wid) = PtoArrayEAdjust(REMOTE_DynamicArrays(wid)); - REMOTE_StaticArrays(wid) = PtoArraySAdjust(REMOTE_StaticArrays(wid)); - REMOTE_GlobalVariables(wid) = PtoGlobalEAdjust(REMOTE_GlobalVariables(wid)); - - - - - - - - - - - - -#ifdef THREADS - -#endif /* THREADS */ -#if defined(YAPOR) || defined(TABLING) - - -#endif /* YAPOR || TABLING */ - - -#if LOW_LEVEL_TRACER - -#endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#ifdef ANALYST - - -#endif /* ANALYST */ - - - - - - - - - - - - - - - - - -#ifdef LOAD_DYLD - -#endif - -#ifdef LOW_LEVEL_TRACER - -#endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} + + /* This file, rlocals.h, was generated automatically by "yap -L misc/buildlocalglobal" + please do not update, update H/LOCALS instead */ + + +static void RestoreWorker(int wid USES_REGS) { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REMOTE_GlobalArena(wid) = TermToGlobalOrAtomAdjust(REMOTE_GlobalArena(wid)); + + + + + + + + + + + + + + + + + + + + + + +#ifdef COROUTINING + REMOTE_WokenGoals(wid) = TermToGlobalAdjust(REMOTE_WokenGoals(wid)); + REMOTE_AttsMutableList(wid) = TermToGlobalAdjust(REMOTE_AttsMutableList(wid)); +#endif + + REMOTE_GcGeneration(wid) = TermToGlobalAdjust(REMOTE_GcGeneration(wid)); + REMOTE_GcPhase(wid) = TermToGlobalAdjust(REMOTE_GcPhase(wid)); + + + + + + + + + + + + + + +#if defined(GC_NO_TAGS) + +#endif + + + + + + + + + + + + + + + + + + + + REMOTE_DynamicArrays(wid) = PtoArrayEAdjust(REMOTE_DynamicArrays(wid)); + REMOTE_StaticArrays(wid) = PtoArraySAdjust(REMOTE_StaticArrays(wid)); + REMOTE_GlobalVariables(wid) = PtoGlobalEAdjust(REMOTE_GlobalVariables(wid)); + + + + + + + + + + + + +#ifdef THREADS + +#endif /* THREADS */ +#if defined(YAPOR) || defined(TABLING) + + +#endif /* YAPOR || TABLING */ + + +#if LOW_LEVEL_TRACER + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#ifdef ANALYST + + +#endif /* ANALYST */ + + + + + + + + + + + + + + + + + +#ifdef LOAD_DYLD + +#endif + +#ifdef LOW_LEVEL_TRACER + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/cmake/python.cmake b/cmake/python.cmake index c30185de9..e92e209e5 100644 --- a/cmake/python.cmake +++ b/cmake/python.cmake @@ -1,6 +1,16 @@ set (Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.6 3.4 ) - +set (PythonInterp_FIND_VERSION 3) find_package(PythonInterp) + +get_filename_component( d ${PYTHON_EXECUTABLE} DIRECTORY ) +get_filename_component( s ${PYTHON_EXECUTABLE} EXT ) +get_filename_component( n ${PYTHON_EXECUTABLE} NAME_WE ) + +set( o ${d}/${n}3${s} ) +if (EXISTS o) + set (PYTHON_EXECUTABLE ${o}) + endif() + find_package(PythonLibs) @@ -29,6 +39,7 @@ ENDIF() if (PYTHONLIBS_FOUND AND SWIG_FOUND) add_subdirectory(packages/python/swig) + include(FindPythonModule) find_python_module( jupyter ) diff --git a/config.h.cmake b/config.h.cmake index 1f70296c0..a415ceb02 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -2052,24 +2052,5 @@ calls it, or to nothing if 'inline' is not supported under any name. */ #endif #endif - -/** - * X_API macro - * - * @brief Linux exports all symbols by default, but WIN32 does - * not. cmake can enable exports, using CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS - * - * @param _WIN32 - * - * @return - */ -#if _WIN32 && !defined(YAP_KERNEL) -#define X_API __declspec(dllimport) -#else -#define X_API -#endif -#define O_API - - #endif diff --git a/include/VFS.h b/include/VFS.h index 14b329a39..e7b6f71bd 100644 --- a/include/VFS.h +++ b/include/VFS.h @@ -81,7 +81,7 @@ typedef struct vfs { /// in this space, usual w,r,a,b flags plus B (store in a buffer) bool (*close)(int sno); /// close the object int (*get_char)(int sno); /// get an octet to the stream - int (*put_char)(int sno, wchar_t ch); /// output an octet to the stream + int (*put_char)(int sno, int ch); /// output an octet to the stream void (*flush)(int sno); /// flush a stream int64_t (*seek)(int sno, int64_t offset, int whence); /// jump around the stream diff --git a/include/YapDefs.h b/include/YapDefs.h index 8f16ec8e8..79440b3dd 100755 --- a/include/YapDefs.h +++ b/include/YapDefs.h @@ -18,6 +18,36 @@ #define _YAPDEFS_H 1 + +/** + * X_API macro + * + * @brief Linux exports all symbols by default, but WIN32 does + * not. cmake can enable exports, using CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS + * + * @param _WIN32 + * + * @return + */ +#if _WIN32 +#if defined(_EXPORT_KERNEL) +// __declspec(dllexport) +#define X_API +#else +// __declspec(dllimport) +#define X_API +#endif +// __declspec(dllexport) +#define O_API +// __declspec(dllimport) +#define I_API +#else +#define O_API +#define I_API +#define X_API +#endif + + #include #include #include diff --git a/library/dialect/swi/fli/blobs.c b/library/dialect/swi/fli/blobs.c index 63a802a20..363868bc2 100644 --- a/library/dialect/swi/fli/blobs.c +++ b/library/dialect/swi/fli/blobs.c @@ -22,6 +22,7 @@ * @addtogroup swi-c-interface * */ +#define _EXPORT_KERNEL 1 #include #include @@ -44,7 +45,7 @@ static PL_blob_t unregistered_blob_atom = { PL_BLOB_MAGIC, PL_BLOB_NOCOPY | PL_BLOB_TEXT, "unregistered"}; -int PL_is_blob(term_t t, PL_blob_t **type) { +X_API int PL_is_blob(term_t t, PL_blob_t **type) { CACHE_REGS Term yt = Yap_GetFromSlot(t); Atom a; diff --git a/library/dialect/swi/fli/swi.c b/library/dialect/swi/fli/swi.c index e3ee3712d..3ba43176c 100755 --- a/library/dialect/swi/fli/swi.c +++ b/library/dialect/swi/fli/swi.c @@ -20,6 +20,7 @@ Moyle. All rights reserved. */ #define PL_KERNEL 1 +#define _EXPORT_KERNEL 1 //=== includes =============================================================== #include diff --git a/os/iopreds.c b/os/iopreds.c index f4a551948..7cad41b5c 100644 --- a/os/iopreds.c +++ b/os/iopreds.c @@ -1858,8 +1858,8 @@ void Yap_InitPlIO(struct yap_boot_params *argi) { Yap_stdout = fdopen(argi->out-1, "a"); else if (argi->out) Yap_stdout = NULL; - else - Yap_stdout = stdout; + else + Yap_stdout = stdout; if (argi->err >0 ) Yap_stderr = fdopen(argi->err-1, "a"); else if (argi->out) diff --git a/os/mem.c b/os/mem.c index 22678ee43..66994073a 100644 --- a/os/mem.c +++ b/os/mem.c @@ -188,7 +188,7 @@ bool Yap_set_stream_to_buf(StreamDesc *st, const char *buf, size_t nchars) { flags = Input_Stream_f | InMemory_Stream_f; st->vfs = NULL; Yap_initStream(st - GLOBAL_Stream, f, NULL, TermNil, LOCAL_encoding, flags, - AtomRead); + AtomRead, NULL); // like any file stream. /* currently these streams are not seekable */ st->status = Input_Stream_f | InMemory_Stream_f; @@ -222,7 +222,7 @@ int Yap_open_buf_read_stream(const char *buf, size_t nchars, encoding_t *encp, st->file = f = NULL; flags = Input_Stream_f | InMemory_Stream_f; st->vfs = NULL; - Yap_initStream(sno, f, NULL, TermNil, encoding, flags, AtomRead); + Yap_initStream(sno, f, NULL, TermNil, encoding, flags, AtomRead, NULL); // like any file stream. /* currently these streams are not seekable */ st->status = Input_Stream_f | InMemory_Stream_f; diff --git a/packages/python/CMakeLists.txt b/packages/python/CMakeLists.txt index f75afb6da..75669ce76 100644 --- a/packages/python/CMakeLists.txt +++ b/packages/python/CMakeLists.txt @@ -7,11 +7,18 @@ set (PYTHON_HEADERS python.h) set (CMAKE_POSITION_INDEPENDENT_CODE TRUE) -add_library (YAPPython SHARED ${PYTHON_SOURCES}) +add_library (YAPPython0 OBJECT ${PYTHON_SOURCES}) +if (WIN32) +add_library (YAPPython SHARED pyload.c ) +endif() + +# arithmetic hassle. +set_property(TARGET YAPPython PROPERTY CXX_STANDARD 11) +set_property(TARGET YAPPython PROPERTY CXX_STANDARD_REQUIRED ON) target_link_libraries(YAPPython libYap ${PYTHON_LIBRARY}) -set_property( SOURCE ${PYTHON_SOURCES} APPEND PROPERTY COMPILE_DEFINITIONS YAP_KERNEL=1) +set_property( SOURCE ${PYTHON_SOURCES} APPEND PROPERTY COMPILE_DEFINITIONS YAP_KERNEL=1 _GNU-SOURCE=1) set (PYTHON_PL python.pl) diff --git a/packages/python/pl2pl.c b/packages/python/pl2pl.c index 311260cc4..5c2c334a0 100644 --- a/packages/python/pl2pl.c +++ b/packages/python/pl2pl.c @@ -1,5 +1,5 @@ -#include "python.h" +#include "py4yap.h" static foreign_t array_to_python_list(term_t addr, term_t type, term_t szt, term_t py) { diff --git a/packages/python/pl2py.c b/packages/python/pl2py.c index 95653d101..0ae560781 100644 --- a/packages/python/pl2py.c +++ b/packages/python/pl2py.c @@ -1,6 +1,6 @@ -#include "python.h" +#include "py4yap.h" extern PyObject *py_Local, *py_Global; diff --git a/packages/python/py2pl.c b/packages/python/py2pl.c index c27c03eb6..39a97e3e9 100644 --- a/packages/python/py2pl.c +++ b/packages/python/py2pl.c @@ -1,5 +1,5 @@ -#include "python.h" +#include "py4yap.h" static foreign_t repr_term(PyObject *pVal, term_t t) { term_t to = PL_new_term_ref(), t1 = PL_new_term_ref(); diff --git a/packages/python/python.h b/packages/python/py4yap.h similarity index 99% rename from packages/python/python.h rename to packages/python/py4yap.h index 8eaaddfa8..5e2df8a7e 100644 --- a/packages/python/python.h +++ b/packages/python/py4yap.h @@ -13,6 +13,7 @@ #endif #include + #include #ifdef HAVE_STAT #undef HAVE_STATa @@ -22,6 +23,12 @@ #define EXTRA_MESSSAGES 1 #ifndef PYTHON_H + +#define X_API +#define I_API +#define O_API + + #define PYTHON_H 1 PyObject *find_obj(PyObject *ob, term_t lhs, bool eval); diff --git a/packages/python/pybips.c b/packages/python/pybips.c index e8a78b5da..425fdd198 100644 --- a/packages/python/pybips.c +++ b/packages/python/pybips.c @@ -1,4 +1,4 @@ -#include "python.h" +#include "py4yap.h" /** * @@ -700,6 +700,7 @@ static PyObject *structseq_repr(PyObject *iobj) { } #endif + PyObject *term_to_nametuple(const char *s, arity_t arity, PyObject *tuple) { PyObject *o; #if PY_MAJOR_VERSION >= 3 @@ -722,7 +723,7 @@ PyObject *term_to_nametuple(const char *s, arity_t arity, PyObject *tuple) { return NULL; typp->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; // typp->tp_str = structseq_str; - // typp->tp_repr = structseq_repr; + typp->tp_repr = structseq_repr; // typp = PyStructSequence_NewType(desc); // don't do this: we cannot add a type as an atribute. //PyModule_AddObject(py_Main, s, (PyObject *)typp); diff --git a/packages/python/pyload.c b/packages/python/pyload.c new file mode 100644 index 000000000..0de77461e --- /dev/null +++ b/packages/python/pyload.c @@ -0,0 +1,27 @@ + +#include "py4yap.h" + + X_API bool init_python(void) { + return true; + } + +#ifdef _WIN32 + +#include + +int WINAPI win_python(HANDLE, DWORD, LPVOID); + +int WINAPI win_python(HANDLE hinst, DWORD reason, LPVOID reserved) { + switch (reason) { + case DLL_PROCESS_ATTACH: + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return 1; +} +#endif diff --git a/packages/python/pypreds.c b/packages/python/pypreds.c index 9b383fdcf..757044a7d 100644 --- a/packages/python/pypreds.c +++ b/packages/python/pypreds.c @@ -1,5 +1,5 @@ -#include "python.h" +#include "py4yap.h" PyObject *py_Main; diff --git a/packages/python/python.c b/packages/python/python.c index 31054ee05..e47c4adbb 100644 --- a/packages/python/python.c +++ b/packages/python/python.c @@ -1,6 +1,5 @@ -#include "python.h" -#include +#include "py4yap.h" #include atom_t ATOM_true, ATOM_false, ATOM_colon, ATOM_dot, ATOM_none, ATOM_t, @@ -25,8 +24,13 @@ VFS_t pystream; static void * py_open( const char *name, const char *io_mode) { +#if HAVE_STRCASESTR if (strcasestr(name,"//python/")== name) name += strlen("//python/"); + #else + if (strstr(name,"//python/")== name) + name += strlen("//python/"); +#endif // we assume object is already open, so there is no need to open it. PyObject *stream = string_to_python( name, true, NULL); if (stream == Py_None) @@ -202,29 +206,3 @@ X_API bool do_init_python(void) { return true; } -X_API bool init_python(void) { - if (python_in_python) - return true; - return do_init_python(); -} - -#ifdef _WIN32 - -#include - -int WINAPI win_python(HANDLE, DWORD, LPVOID); - -int WINAPI win_python(HANDLE hinst, DWORD reason, LPVOID reserved) { - switch (reason) { - case DLL_PROCESS_ATTACH: - break; - case DLL_PROCESS_DETACH: - break; - case DLL_THREAD_ATTACH: - break; - case DLL_THREAD_DETACH: - break; - } - return 1; -} -#endif diff --git a/packages/python/swig/CMakeLists.txt b/packages/python/swig/CMakeLists.txt index b76a25be8..5f5889ab2 100644 --- a/packages/python/swig/CMakeLists.txt +++ b/packages/python/swig/CMakeLists.txt @@ -1,7 +1,7 @@ # This is a CMake example for Python -INCLUDE(NewUseSWIG) +#INCLUDE(NewUseSWIG) include(FindPythonModule) @@ -23,19 +23,7 @@ SET_SOURCE_FILES_PROPERTIES(../../swig/yap.i PROPERTIES SWIG_FLAGS "-O;-py3") SET_SOURCE_FILES_PROPERTIES(../../swiyap.i PROPERTIES SWIG_MODULE_NAME yap) #SET_SOURCE_FILES_PROPERTIES(../../swi/yap.i PROPERTIES OUTPUT_NAME yap) -SWIG_ADD_LIBRARY(Py2YAP LANGUAGE python SHARED SOURCES ../../swig/yap.i ) -if (WIN32) - SWIG_LINK_LIBRARIES(Py2YAP YAPPython libYap ${PYTHON_LIBRARIES} ) -else() - SWIG_LINK_LIBRARIES( Py2YAP libYap YAP++ YAPPython ${PYTHON_LIBRARIES} ) - endif() - set_target_properties ( ${SWIG_MODULE_Py2YAP_REAL_NAME} - PROPERTIES - NO_SONAME ON - OUTPUT_NAME _yap - LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - DEPENDS YAPPython YAPPython YAP++ - ) + # inform we are compiling YAP # s used in MSYS # @@ -44,7 +32,7 @@ else() # RUNTIME DESTINATION ${PYTHON_MODULE_PATH} # ARCHIVE DESTINATION ${PYTHON_MODULE_PATH} # LIBRARY DESTINATION ${PYTHON_MODULE_PATH} - # ) + # )x set (dlls $ @@ -61,9 +49,12 @@ endif() set (PL ${pl_library} ${PROLOG_SOURCES} ) -add_custom_target( YAP4PY_SETUP - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py - COMMAND ${CMAKE_COMMAND} -E copy ${dlls} ${CMAKE_BINARY_DIR}/libYap${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_BINARY_DIR}/${YAP_STARTUP} ${PYTHON_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/yap4py +add_custom_target( YAP4PY_SETUP + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/yap.py + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/packages/swig/yap.i ${CMAKE_CURRENT_BINARY_DIR}/yap.i + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py + COMMAND ${CMAKE_COMMAND} -E copy ${dlls} ${CMAKE_BINARY_DIR}/libYap${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_BINARY_DIR}/${YAP_STARTUP} ${PYTHON_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/yap4py COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog COMMAND ${CMAKE_COMMAND} -E copy ${PL} ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog/pl diff --git a/packages/python/swig/_yap.c b/packages/python/swig/_yap.c deleted file mode 100644 index f7cd7426e..000000000 --- a/packages/python/swig/_yap.c +++ /dev/null @@ -1,3 +0,0 @@ - -// make Python happy... - diff --git a/packages/python/swig/setup.py.in b/packages/python/swig/setup.py.in index 1a585c489..edd748f0f 100644 --- a/packages/python/swig/setup.py.in +++ b/packages/python/swig/setup.py.in @@ -6,7 +6,7 @@ from __future__ import print_function from setuptools import setup -from setuptools.extension import Extension +from setuptools.extension import Extension from codecs import open from os import path, makedirs, walk from shutil import copytree, rmtree, copy2, move @@ -18,23 +18,23 @@ import os.path # the name of the package name = 'YAP4PY' -#----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- # Minimal Python version sanity check -#----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- import sys v = sys.version_info -if v[:2] < (2,7) or (v[0] >= 3 and v[:2] < (3,3)): +if v[:2] < (2, 7) or (v[0] >= 3 and v[:2] < (3, 3)): error = "ERROR: %s requires Python version 2.7 or 3.3 or above." % name print(error, file=sys.stderr) sys.exit(1) PY3 = (sys.version_info[0] >= 3) -#----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- # get on with it -#----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- from codecs import open from os import path, makedirs, walk from shutil import copytree, rmtree, copy2, move @@ -53,84 +53,86 @@ pkg_root = pjoin(here, name) my_extra_link_args = [] if platform.system() == 'Darwin': - my_extra_link_args = ['-Wl,-rpath','-Wl,${_ABS_PYTHON_MODULE_PATH}'] - so = 'dylib' -#or dll in glob('yap/dlls/*'): + my_extra_link_args = ['-Wl,-rpath', '-Wl,${_ABS_PYTHON_MODULE_PATH}'] +# or dll in glob('yap/dlls/*'): # move( dll ,'lib' ) +elif platform.system() == 'Windows': + my_extra_link_args = ['-Wl,-export-all-symbols','-Wl,-enable-auto-import','-Wl,-enable-runtime-pseudo-relocs'] +cplus = [''] +bpy2yap = ['${CMAKE_SOURCE_DIR}/packages/python/python.c', + '${CMAKE_SOURCE_DIR}/packages/python/pl2py.c', + '${CMAKE_SOURCE_DIR}/packages/python/pybips.c', + '${CMAKE_SOURCE_DIR}/packages/python/py2pl.c', + '${CMAKE_SOURCE_DIR}/packages/python/pl2pl.c', + '${CMAKE_SOURCE_DIR}/packages/python/pypreds.c' + ] -cplus=['${RELATIVE_SOURCE}CXX/yapi.cpp'] - -py2yap=['${RELATIVE_SOURCE}packages/python/python.c', - '${RELATIVE_SOURCE}packages/python/pl2py.c', - '${RELATIVE_SOURCE}packages/python/pybips.c', - '${RELATIVE_SOURCE}packages/python/py2pl.c', - '${RELATIVE_SOURCE}packages/python/pl2pl.c', - '${RELATIVE_SOURCE}packages/python/pypreds.c' -] - -native_sources = ['yapPYTHON_wrap.cxx']+py2yap+cplus +native_sources = ['yap.i'] here = path.abspath(path.dirname(__file__)) # Get the long description from the README file -extensions=[Extension('_yap', native_sources, - define_macros = [('MAJOR_VERSION', '1'), +extensions = [Extension('_yap', native_sources, + define_macros=[('MAJOR_VERSION', '1'), ('MINOR_VERSION', '0'), ('_YAP_NOT_INSTALLED_', '1'), + ('_GNU_SOURCE', '1'), ('YAP_PYTHON', '1')], - runtime_library_dirs=['yap4py','${libdir}','${bindir}'], - swig_opts=['-modern', '-c++', '-py3','-I${RELATIVE_SOURCE}/CXX'], - library_dirs=['../../..','../../../CXX','../../packages/python',"${dlls}","${bindir}", '.'], - extra_link_args=my_extra_link_args, - extra_compile_args=['-g3','-O0'], - libraries=['Yap','${GMP_LIBRARIES}'], - include_dirs=['../../..', - '${GMP_INCLUDE_DIRS}', - '${RELATIVE_SOURCE}H', - '${RELATIVE_SOURCE}H/generated', - '${RELATIVE_SOURCE}OPTYap', - '${RELATIVE_SOURCE}os', - '${RELATIVE_SOURCE}include', - '${RELATIVE_SOURCE}CXX', '.'] -)] + runtime_library_dirs=['yap4py', '${libdir}', '${bindir}'], + swig_opts=['-modern', '-c++', '-py3', '-I${CMAKE_SOURCE_DIR}/CXX', '-I${CMAKE_SOURCE_DIR}/include', + '-I${CMAKE_SOURCE_DIR}/H', '-I${CMAKE_SOURCE_DIR}/H/generated', + '-I${CMAKE_SOURCE_DIR}/os', '-I${CMAKE_SOURCE_DIR}/OPTYap', '-I../../..'], + library_dirs=['../../..', '../../../CXX', '../../packages/python', "${dlls}", "${bindir}", '.'], + extra_link_args=my_extra_link_args, + libraries=['Yap', '${GMP_LIBRARIES}'], + include_dirs=['../../..', + '${GMP_INCLUDE_DIRS}', + '${CMAKE_SOURCE_DIR}/H', + '${CMAKE_SOURCE_DIR}/H/generated', + '${CMAKE_SOURCE_DIR}/OPTYap', + '${CMAKE_SOURCE_DIR}/os', + '${CMAKE_SOURCE_DIR}/include', + '${CMAKE_SOURCE_DIR}/CXX', '.'] + )] packages = ['yap4py'] + def visit(d0, pls): - for (r,ds,fs) in walk('.'): + for (r, ds, fs) in walk('.'): for f in fs: - f0,ext = os.path.splitext(f) + f0, ext = os.path.splitext(f) if (ext == 'yap' or ext == 'pl' or ext == 'so' or ext == 'dll' or ext == 'yss'): pls += [os.path.join(r, f)] for i in ds: pls = visit(os.path.join(d0, i), pls) return pls + package_data = { - '': visit('.',[]) + '': visit('.', []) } -version_ns = {'__version__':'6.3.5','minor-version':'6','minor-version':'3','patch':'5'} - +version_ns = {'__version__': '6.3.5', 'minor-version': '6', 'minor-version': '3', 'patch': '5'} setup_args = dict( - name = name, - version = version_ns['__version__'], - scripts = glob(pjoin('scripts', '*')), - packages = packages, - py_modules = ['yap'], - package_data = package_data, - include_package_data = True, - description = "YAP in Python", - author = 'YAP Development Team', - author_email = 'ipython-dev@scipy.org', - url = 'http://ipython.org', - license = 'BSD', - ext_modules = extensions, - platforms = "Linux, Mac OS X, Windows", - keywords = ['Interactive', 'Interpreter', 'Shell', 'Web'], - classifiers = [ + name=name, + version=version_ns['__version__'], + scripts=glob(pjoin('scripts', '*')), + packages=packages, + py_modules=['yap'], + package_data=package_data, + include_package_data=True, + description="YAP in Python", + author='YAP Development Team', + author_email='ipython-dev@scipy.org', + url='http://ipython.org', + license='BSD', + ext_modules=extensions, + platforms="Linux, Mac OS X, Windows", + keywords=['Interactive', 'Interpreter', 'Shell', 'Web'], + classifiers=[ 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'Intended Audience :: Science/Research', diff --git a/packages/python/yapex.egg-info/PKG-INFO b/packages/python/yapex.egg-info/PKG-INFO deleted file mode 100644 index e8a58d30e..000000000 --- a/packages/python/yapex.egg-info/PKG-INFO +++ /dev/null @@ -1,10 +0,0 @@ -Metadata-Version: 1.0 -Name: yapex -Version: 0.1 -Summary: UNKNOWN -Home-page: UNKNOWN -Author: UNKNOWN -Author-email: UNKNOWN -License: UNKNOWN -Description: UNKNOWN -Platform: UNKNOWN diff --git a/packages/python/yapex.egg-info/SOURCES.txt b/packages/python/yapex.egg-info/SOURCES.txt deleted file mode 100644 index 4c295ff4a..000000000 --- a/packages/python/yapex.egg-info/SOURCES.txt +++ /dev/null @@ -1,11 +0,0 @@ -setup.py -/Users/vsc/Yap/yap-6.3/packages/python/yapex.py -/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/PKG-INFO -/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/SOURCES.txt -/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/dependency_links.txt -/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/top_level.txt -/Users/vsc/github/yap-6.3/packages/python/yapex.py -/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/PKG-INFO -/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/SOURCES.txt -/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/dependency_links.txt -/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/top_level.txt \ No newline at end of file diff --git a/packages/python/yapex.egg-info/dependency_links.txt b/packages/python/yapex.egg-info/dependency_links.txt deleted file mode 100644 index 8b1378917..000000000 --- a/packages/python/yapex.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/python/yapex.egg-info/top_level.txt b/packages/python/yapex.egg-info/top_level.txt deleted file mode 100644 index dc60347b4..000000000 --- a/packages/python/yapex.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -yapex diff --git a/packages/real/real.c b/packages/real/real.c index f0521cbb2..fd38bfce0 100644 --- a/packages/real/real.c +++ b/packages/real/real.c @@ -3,6 +3,7 @@ #include "rconfig.h" #if HAVE_R_H || !defined(_YAP_NOT_INSTALLED_) #include +#undef ERROR #if HAVE_R_EMBEDDED_H #include #endif @@ -1873,7 +1874,9 @@ static foreign_t init_R(void) { R_SignalHandlers = 0; #endif Rf_initEmbeddedR(argc, argv); +#ifndef WIN32 R_CStackLimit = -1; +#endif return TRUE; } diff --git a/packages/swig/yap.i b/packages/swig/yap.i index 6804944fe..9956bfe79 100644 --- a/packages/swig/yap.i +++ b/packages/swig/yap.i @@ -1,13 +1,13 @@ -#ifdef SWIGPYTHON -%{ -#include - %} -#endif + %{ +#include #include extern "C"{ - #include "Yap.h" +#ifdef SWIGPYTHON +#include +#endif +#include "Yap.h" } %}