break GLOBALS into GLOBALS+LOCALS
This commit is contained in:
parent
92af2e8740
commit
0ffe3fa6a5
1
C/init.c
1
C/init.c
@ -1233,6 +1233,7 @@ Yap_CloseScratchPad(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#include "iglobals.h"
|
#include "iglobals.h"
|
||||||
|
#include "ilocals.h"
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define MAX_INITS MAX_AGENTS
|
#define MAX_INITS MAX_AGENTS
|
||||||
|
@ -178,6 +178,7 @@ typedef struct various_codes {
|
|||||||
} all_heap_codes;
|
} all_heap_codes;
|
||||||
|
|
||||||
#include "hglobals.h"
|
#include "hglobals.h"
|
||||||
|
#include "hlocals.h"
|
||||||
|
|
||||||
#if defined(YAPOR) && !defined(THREADS)
|
#if defined(YAPOR) && !defined(THREADS)
|
||||||
extern struct worker_shared *Yap_global;
|
extern struct worker_shared *Yap_global;
|
||||||
@ -211,6 +212,7 @@ extern struct various_codes *Yap_heap_regs;
|
|||||||
|
|
||||||
#include "dhstruct.h"
|
#include "dhstruct.h"
|
||||||
#include "dglobals.h"
|
#include "dglobals.h"
|
||||||
|
#include "dlocals.h"
|
||||||
|
|
||||||
/*******************
|
/*******************
|
||||||
these are the global variables: they need not be restored...
|
these are the global variables: they need not be restored...
|
||||||
|
280
H/dglobals.h
280
H/dglobals.h
@ -1,211 +1,69 @@
|
|||||||
|
|
||||||
/* This file, dglobals.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, dglobals.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/GLOBALS instead */
|
please do not update, update misc/GLOBALS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define Yap_c_input_stream WL->c_input_stream
|
#if THREADS
|
||||||
#define Yap_c_output_stream WL->c_output_stream
|
|
||||||
#define Yap_c_error_stream WL->c_error_stream
|
#define NOfThreads Yap_global->n_of_threads
|
||||||
|
|
||||||
#define OldASP WL->rinfo.old_ASP
|
#define NOfThreadsCreated Yap_global->n_of_threads_created
|
||||||
#define OldLCL0 WL->rinfo.old_LCL0
|
|
||||||
#define OldTR WL->rinfo.old_TR
|
#define ThreadsTotalTime Yap_global->threads_total_time
|
||||||
#define OldGlobalBase WL->rinfo.old_GlobalBase
|
#endif
|
||||||
#define OldH WL->rinfo.old_H
|
|
||||||
#define OldH0 WL->rinfo.old_H0
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define OldTrailBase WL->rinfo.old_TrailBase
|
|
||||||
#define OldTrailTop WL->rinfo.old_TrailTop
|
#define BGL Yap_global->bgl
|
||||||
#define OldHeapBase WL->rinfo.old_HeapBase
|
#endif
|
||||||
#define OldHeapTop WL->rinfo.old_HeapTop
|
|
||||||
#define ClDiff WL->rinfo.cl_diff
|
#define Yap_AllowLocalExpansion Yap_global->allow_local_expansion
|
||||||
#define GDiff WL->rinfo.g_diff
|
#define Yap_AllowGlobalExpansion Yap_global->allow_global_expansion
|
||||||
#define HDiff WL->rinfo.h_diff
|
#define Yap_AllowTrailExpansion Yap_global->allow_trail_expansion
|
||||||
#define GDiff0 WL->rinfo.g_diff0
|
#define SizeOfOverflow Yap_global->size_of_overflow
|
||||||
#define GSplit WL->rinfo.g_split
|
|
||||||
#define LDiff WL->rinfo.l_diff
|
#define AGcLastCall Yap_global->agc_last_call
|
||||||
#define TrDiff WL->rinfo.tr_diff
|
|
||||||
#define XDiff WL->rinfo.x_diff
|
#define AGcThreshold Yap_global->agc_threshold
|
||||||
#define DelayDiff WL->rinfo.delay_diff
|
#define AGCHook Yap_global->agc_hook
|
||||||
#define BaseDiff WL->rinfo.base_diff
|
|
||||||
#define ReductionsCounter WL->call_counters.reductions
|
#if HAVE_LIBREADLINE
|
||||||
#define PredEntriesCounter WL->call_counters.reductions_retries
|
#define ReadlineBuf Yap_global->readline_buf
|
||||||
#define RetriesCounter WL->call_counters.retries
|
#define ReadlinePos Yap_global->readline_pos
|
||||||
#define ReductionsCounterOn WL->call_counters.reductions_on
|
#endif
|
||||||
#define PredEntriesCounterOn WL->call_counters.reductions_retries_on
|
|
||||||
#define RetriesCounterOn WL->call_counters.retries_on
|
#ifdef THREADS
|
||||||
#define Yap_InterruptsDisabled WL->interrupts_disabled
|
#define ThreadHandlesLock Yap_global->thread_handles_lock
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ConsultSp WL->consultsp
|
#if defined(YAPOR) || defined(TABLING)
|
||||||
|
#define GLOBAL Yap_global->global
|
||||||
#define ConsultCapacity WL->consultcapacity
|
#define REMOTE Yap_global->remote
|
||||||
|
#endif
|
||||||
#define ConsultBase WL->consultbase
|
|
||||||
|
#define Yap_Initialised Yap_global->initialised
|
||||||
#define ConsultLow WL->consultlow
|
#define Yap_InitialisedFromPL Yap_global->initialised_from_pl
|
||||||
|
#define Yap_PL_Argc Yap_global->pl_argc
|
||||||
#define GlobalArena WL->global_arena
|
#define Yap_PL_Argv Yap_global->pl_argv
|
||||||
#define GlobalArenaOverflows WL->global_arena_overflows
|
|
||||||
#define DelayArenaOverflows WL->delay_arena_overflows
|
#define Yap_HaltHooks Yap_global->yap_halt_hook
|
||||||
#define ArenaOverflows WL->arena_overflows
|
|
||||||
#define DepthArenas WL->depth_arenas
|
|
||||||
#define ArithError WL->arith_error
|
|
||||||
#define LastAssertedPred WL->last_asserted_pred
|
|
||||||
#define DebugOn WL->debug_on
|
|
||||||
#define FormatInfo WL->f_info
|
|
||||||
#define ScannerStack WL->scanner_stack
|
|
||||||
#define ScannerExtraBlocks WL->scanner_extra_blocks
|
|
||||||
#define BallTerm WL->ball_term
|
|
||||||
#define ActiveSignals WL->active_signals
|
|
||||||
#define IPredArity WL->i_pred_arity
|
|
||||||
#define ProfEnd WL->prof_end
|
|
||||||
#define UncaughtThrow WL->uncaught_throw
|
|
||||||
#define DoingUndefp WL->doing_undefp
|
|
||||||
#define StartLine WL->start_line
|
|
||||||
#define ScratchPad WL->scratchpad
|
|
||||||
#ifdef COROUTINING
|
|
||||||
#define WokenGoals WL->woken_goals
|
|
||||||
#define AttsMutableList WL->atts_mutable_list
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define GcGeneration WL->gc_generation
|
|
||||||
#define GcPhase WL->gc_phase
|
|
||||||
#define GcCurrentPhase WL->gc_current_phase
|
|
||||||
#define GcCalls WL->gc_calls
|
|
||||||
#define TotGcTime WL->tot_gc_time
|
|
||||||
#define TotGcRecovered WL->tot_gc_recovered
|
|
||||||
#define LastGcTime WL->last_gc_time
|
|
||||||
#define LastSSTime WL->last_ss_time
|
|
||||||
#if LOW_LEVEL_TRACER
|
|
||||||
#define Yap_total_choicepoints WL->total_cps
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
#define SignalLock WL->signal_lock
|
|
||||||
#define WPP WL->wpp
|
|
||||||
|
|
||||||
#define total_marked WL->tot_marked
|
|
||||||
#define total_oldies WL->tot_oldies
|
|
||||||
#if DEBUG && COROUTINING
|
|
||||||
#define total_smarked WL->tot_smarked
|
|
||||||
#endif
|
|
||||||
#define current_B WL->wl_current_B
|
|
||||||
#define prev_HB WL->wl_prev_HB
|
|
||||||
#define HGEN WL->hgen
|
|
||||||
#define iptop WL->ip_top
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
#define Yap_bp WL->b_p
|
|
||||||
#endif
|
|
||||||
#if defined(TABLING) || defined(SBA)
|
|
||||||
#define sTR WL->wl_sTR
|
|
||||||
#define sTR0 WL->wl_sTR0
|
|
||||||
#define new_TR WL->new_tr
|
|
||||||
#else
|
|
||||||
#define sTR WL->wl_sTR
|
|
||||||
#define sTR0 WL->wl_sTR0
|
|
||||||
#define new_TR WL->new_tr
|
|
||||||
#endif
|
|
||||||
#define cont_top0 WL->conttop0
|
|
||||||
#define cont_top WL->conttop
|
|
||||||
#define discard_trail_entries WL->disc_trail_entries
|
|
||||||
#define gc_ma_hash_table WL->Gc_ma_hash_table
|
|
||||||
#define gc_ma_h_top WL->Gc_ma_h_top
|
|
||||||
#define gc_ma_h_list WL->Gc_ma_h_list
|
|
||||||
#define gc_timestamp WL->Gc_timestamp
|
|
||||||
#define db_vec WL->DB_vec
|
|
||||||
#define db_vec0 WL->DB_vec0
|
|
||||||
#define db_root WL->DB_root
|
|
||||||
#define db_nil WL->DB_nil
|
|
||||||
#endif /* defined(YAPOR) || defined(THREADS) */
|
|
||||||
#define Yap_gc_restore WL->gc_restore
|
|
||||||
#define DynamicArrays WL->dynamic_arrays
|
|
||||||
#define StaticArrays WL->static_arrays
|
|
||||||
#define GlobalVariables WL->global_variables
|
|
||||||
#define Yap_AllowRestart WL->allow_restart
|
|
||||||
|
|
||||||
#define Yap_CMemFirstBlock WL->cmem_first_block
|
|
||||||
#define Yap_CMemFirstBlockSz WL->cmem_first_block_sz
|
|
||||||
|
|
||||||
#define Yap_LabelFirstArray WL->label_first_array
|
|
||||||
#define Yap_LabelFirstArraySz WL->label_first_array_sz
|
|
||||||
|
|
||||||
#define PL_local_data_p WL->Yap_ld_
|
|
||||||
#define execution WL->_execution
|
|
||||||
|
|
||||||
#if (defined(YAPOR) || defined(TABLING)) && defined(THREADS)
|
|
||||||
#define WORKER WL->worker
|
|
||||||
#endif
|
|
||||||
#ifdef THREADS
|
|
||||||
#define ThreadHandle WL->thread_handle
|
|
||||||
#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle)
|
|
||||||
#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if THREADS
|
|
||||||
|
|
||||||
#define NOfThreads Yap_global->n_of_threads
|
|
||||||
|
|
||||||
#define NOfThreadsCreated Yap_global->n_of_threads_created
|
|
||||||
|
|
||||||
#define ThreadsTotalTime Yap_global->threads_total_time
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
|
|
||||||
#define BGL Yap_global->bgl
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define Yap_AllowLocalExpansion Yap_global->allow_local_expansion
|
|
||||||
#define Yap_AllowGlobalExpansion Yap_global->allow_global_expansion
|
|
||||||
#define Yap_AllowTrailExpansion Yap_global->allow_trail_expansion
|
|
||||||
#define SizeOfOverflow Yap_global->size_of_overflow
|
|
||||||
|
|
||||||
#define AGcLastCall Yap_global->agc_last_call
|
|
||||||
|
|
||||||
#define AGcThreshold Yap_global->agc_threshold
|
|
||||||
#define AGCHook Yap_global->agc_hook
|
|
||||||
|
|
||||||
#if HAVE_LIBREADLINE
|
|
||||||
#define ReadlineBuf Yap_global->readline_buf
|
|
||||||
#define ReadlinePos Yap_global->readline_pos
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef THREADS
|
|
||||||
#define ThreadHandlesLock Yap_global->thread_handles_lock
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(TABLING)
|
|
||||||
#define GLOBAL Yap_global->global
|
|
||||||
#define REMOTE Yap_global->remote
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define Yap_Initialised Yap_global->initialised
|
|
||||||
#define Yap_InitialisedFromPL Yap_global->initialised_from_pl
|
|
||||||
#define Yap_PL_Argc Yap_global->pl_argc
|
|
||||||
#define Yap_PL_Argv Yap_global->pl_argv
|
|
||||||
|
|
||||||
#define Yap_HaltHooks Yap_global->yap_halt_hook
|
|
||||||
|
|
||||||
|
608
H/dhstruct.h
608
H/dhstruct.h
@ -1,304 +1,304 @@
|
|||||||
|
|
||||||
/* This file, dhstruct.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, dhstruct.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/HEAPFIELDS instead */
|
please do not update, update misc/HEAPFIELDS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define Yap_HoleSize Yap_heap_regs->hole_size
|
#define Yap_HoleSize Yap_heap_regs->hole_size
|
||||||
#define Yap_av Yap_heap_regs->av_
|
#define Yap_av Yap_heap_regs->av_
|
||||||
#if USE_DL_MALLOC
|
#if USE_DL_MALLOC
|
||||||
#define Yap_MemoryHoles Yap_heap_regs->memory_holes
|
#define Yap_MemoryHoles Yap_heap_regs->memory_holes
|
||||||
#define Yap_NOfMemoryHoles Yap_heap_regs->nof_memory_holes
|
#define Yap_NOfMemoryHoles Yap_heap_regs->nof_memory_holes
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define DLMallocLock Yap_heap_regs->dlmalloc_lock
|
#define DLMallocLock Yap_heap_regs->dlmalloc_lock
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
||||||
#ifndef HeapUsed
|
#ifndef HeapUsed
|
||||||
#define HeapUsed Yap_givemallinfo()
|
#define HeapUsed Yap_givemallinfo()
|
||||||
#endif
|
#endif
|
||||||
#define NotHeapUsed Yap_heap_regs->heap_used
|
#define NotHeapUsed Yap_heap_regs->heap_used
|
||||||
#else
|
#else
|
||||||
#define HeapUsed Yap_heap_regs->heap_used
|
#define HeapUsed Yap_heap_regs->heap_used
|
||||||
#endif
|
#endif
|
||||||
#define HeapMax Yap_heap_regs->heap_max
|
#define HeapMax Yap_heap_regs->heap_max
|
||||||
#define HeapTop Yap_heap_regs->heap_top
|
#define HeapTop Yap_heap_regs->heap_top
|
||||||
#define HeapLim Yap_heap_regs->heap_lim
|
#define HeapLim Yap_heap_regs->heap_lim
|
||||||
#define FreeBlocks Yap_heap_regs->free_blocks
|
#define FreeBlocks Yap_heap_regs->free_blocks
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define FreeBlocksLock Yap_heap_regs->free_blocks_lock
|
#define FreeBlocksLock Yap_heap_regs->free_blocks_lock
|
||||||
#define HeapUsedLock Yap_heap_regs->heap_used_lock
|
#define HeapUsedLock Yap_heap_regs->heap_used_lock
|
||||||
#define HeapTopLock Yap_heap_regs->heap_top_lock
|
#define HeapTopLock Yap_heap_regs->heap_top_lock
|
||||||
#define HeapTopOwner Yap_heap_regs->heap_top_owner
|
#define HeapTopOwner Yap_heap_regs->heap_top_owner
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if USE_THREADED_CODE
|
#if USE_THREADED_CODE
|
||||||
#define OP_RTABLE Yap_heap_regs->op_rtable
|
#define OP_RTABLE Yap_heap_regs->op_rtable
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->execute_cpred_op_code
|
#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->execute_cpred_op_code
|
||||||
#define EXPAND_OP_CODE Yap_heap_regs->expand_op_code
|
#define EXPAND_OP_CODE Yap_heap_regs->expand_op_code
|
||||||
#define FAIL_OPCODE Yap_heap_regs->fail_op
|
#define FAIL_OPCODE Yap_heap_regs->fail_op
|
||||||
#define INDEX_OPCODE Yap_heap_regs->index_op
|
#define INDEX_OPCODE Yap_heap_regs->index_op
|
||||||
#define LOCKPRED_OPCODE Yap_heap_regs->lockpred_op
|
#define LOCKPRED_OPCODE Yap_heap_regs->lockpred_op
|
||||||
#define ORLAST_OPCODE Yap_heap_regs->orlast_op
|
#define ORLAST_OPCODE Yap_heap_regs->orlast_op
|
||||||
#define UNDEF_OPCODE Yap_heap_regs->undef_op
|
#define UNDEF_OPCODE Yap_heap_regs->undef_op
|
||||||
|
|
||||||
#define NOfAtoms Yap_heap_regs->n_of_atoms
|
#define NOfAtoms Yap_heap_regs->n_of_atoms
|
||||||
#define AtomHashTableSize Yap_heap_regs->atom_hash_table_size
|
#define AtomHashTableSize Yap_heap_regs->atom_hash_table_size
|
||||||
#define WideAtomHashTableSize Yap_heap_regs->wide_atom_hash_table_size
|
#define WideAtomHashTableSize Yap_heap_regs->wide_atom_hash_table_size
|
||||||
#define NOfWideAtoms Yap_heap_regs->n_of_wide_atoms
|
#define NOfWideAtoms Yap_heap_regs->n_of_wide_atoms
|
||||||
#define INVISIBLECHAIN Yap_heap_regs->invisiblechain
|
#define INVISIBLECHAIN Yap_heap_regs->invisiblechain
|
||||||
#define WideHashChain Yap_heap_regs->wide_hash_chain
|
#define WideHashChain Yap_heap_regs->wide_hash_chain
|
||||||
#define HashChain Yap_heap_regs->hash_chain
|
#define HashChain Yap_heap_regs->hash_chain
|
||||||
|
|
||||||
|
|
||||||
#ifdef EUROTRA
|
#ifdef EUROTRA
|
||||||
#define TermDollarU Yap_heap_regs->term_dollar_u
|
#define TermDollarU Yap_heap_regs->term_dollar_u
|
||||||
#endif
|
#endif
|
||||||
#define TermProlog Yap_heap_regs->term_prolog
|
#define TermProlog Yap_heap_regs->term_prolog
|
||||||
#define TermReFoundVar Yap_heap_regs->term_refound_var
|
#define TermReFoundVar Yap_heap_regs->term_refound_var
|
||||||
#define USER_MODULE Yap_heap_regs->user_module
|
#define USER_MODULE Yap_heap_regs->user_module
|
||||||
#define IDB_MODULE Yap_heap_regs->idb_module
|
#define IDB_MODULE Yap_heap_regs->idb_module
|
||||||
#define ATTRIBUTES_MODULE Yap_heap_regs->attributes_module
|
#define ATTRIBUTES_MODULE Yap_heap_regs->attributes_module
|
||||||
#define CHARSIO_MODULE Yap_heap_regs->charsio_module
|
#define CHARSIO_MODULE Yap_heap_regs->charsio_module
|
||||||
#define TERMS_MODULE Yap_heap_regs->terms_module
|
#define TERMS_MODULE Yap_heap_regs->terms_module
|
||||||
#define SYSTEM_MODULE Yap_heap_regs->system_module
|
#define SYSTEM_MODULE Yap_heap_regs->system_module
|
||||||
#define OPERATING_SYSTEM_MODULE Yap_heap_regs->operating_system_module
|
#define OPERATING_SYSTEM_MODULE Yap_heap_regs->operating_system_module
|
||||||
#define READUTIL_MODULE Yap_heap_regs->readutil_module
|
#define READUTIL_MODULE Yap_heap_regs->readutil_module
|
||||||
#define HACKS_MODULE Yap_heap_regs->hacks_module
|
#define HACKS_MODULE Yap_heap_regs->hacks_module
|
||||||
#define ARG_MODULE Yap_heap_regs->arg_module
|
#define ARG_MODULE Yap_heap_regs->arg_module
|
||||||
#define GLOBALS_MODULE Yap_heap_regs->globals_module
|
#define GLOBALS_MODULE Yap_heap_regs->globals_module
|
||||||
#define SWI_MODULE Yap_heap_regs->swi_module
|
#define SWI_MODULE Yap_heap_regs->swi_module
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define CurrentModules Yap_heap_regs->current_modules
|
#define CurrentModules Yap_heap_regs->current_modules
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define Yap_ExecutionMode Yap_heap_regs->execution_mode
|
#define Yap_ExecutionMode Yap_heap_regs->execution_mode
|
||||||
|
|
||||||
#define PredHash Yap_heap_regs->pred_hash
|
#define PredHash Yap_heap_regs->pred_hash
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define PredHashRWLock Yap_heap_regs->pred_hash_rw_lock
|
#define PredHashRWLock Yap_heap_regs->pred_hash_rw_lock
|
||||||
#endif
|
#endif
|
||||||
#define PredsInHashTable Yap_heap_regs->preds_in_hash_table
|
#define PredsInHashTable Yap_heap_regs->preds_in_hash_table
|
||||||
#define PredHashTableSize Yap_heap_regs->pred_hash_table_size
|
#define PredHashTableSize Yap_heap_regs->pred_hash_table_size
|
||||||
|
|
||||||
#define CreepCode Yap_heap_regs->creep_code
|
#define CreepCode Yap_heap_regs->creep_code
|
||||||
#define UndefCode Yap_heap_regs->undef_code
|
#define UndefCode Yap_heap_regs->undef_code
|
||||||
#define SpyCode Yap_heap_regs->spy_code
|
#define SpyCode Yap_heap_regs->spy_code
|
||||||
#define PredFail Yap_heap_regs->pred_fail
|
#define PredFail Yap_heap_regs->pred_fail
|
||||||
#define PredTrue Yap_heap_regs->pred_true
|
#define PredTrue Yap_heap_regs->pred_true
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
#define WakeUpCode Yap_heap_regs->wake_up_code
|
#define WakeUpCode Yap_heap_regs->wake_up_code
|
||||||
#endif
|
#endif
|
||||||
#define PredGoalExpansion Yap_heap_regs->pred_goal_expansion
|
#define PredGoalExpansion Yap_heap_regs->pred_goal_expansion
|
||||||
#define PredMetaCall Yap_heap_regs->pred_meta_call
|
#define PredMetaCall Yap_heap_regs->pred_meta_call
|
||||||
#define PredDollarCatch Yap_heap_regs->pred_dollar_catch
|
#define PredDollarCatch Yap_heap_regs->pred_dollar_catch
|
||||||
#define PredRecordedWithKey Yap_heap_regs->pred_recorded_with_key
|
#define PredRecordedWithKey Yap_heap_regs->pred_recorded_with_key
|
||||||
#define PredLogUpdClause Yap_heap_regs->pred_log_upd_clause
|
#define PredLogUpdClause Yap_heap_regs->pred_log_upd_clause
|
||||||
#define PredLogUpdClauseErase Yap_heap_regs->pred_log_upd_clause_erase
|
#define PredLogUpdClauseErase Yap_heap_regs->pred_log_upd_clause_erase
|
||||||
#define PredLogUpdClause0 Yap_heap_regs->pred_log_upd_clause0
|
#define PredLogUpdClause0 Yap_heap_regs->pred_log_upd_clause0
|
||||||
#define PredStaticClause Yap_heap_regs->pred_static_clause
|
#define PredStaticClause Yap_heap_regs->pred_static_clause
|
||||||
#define PredThrow Yap_heap_regs->pred_throw
|
#define PredThrow Yap_heap_regs->pred_throw
|
||||||
#define PredHandleThrow Yap_heap_regs->pred_handle_throw
|
#define PredHandleThrow Yap_heap_regs->pred_handle_throw
|
||||||
#define PredIs Yap_heap_regs->pred_is
|
#define PredIs Yap_heap_regs->pred_is
|
||||||
#define PredSafeCallCleanup Yap_heap_regs->pred_safe_call_cleanup
|
#define PredSafeCallCleanup Yap_heap_regs->pred_safe_call_cleanup
|
||||||
#define PredRestoreRegs Yap_heap_regs->pred_restore_regs
|
#define PredRestoreRegs Yap_heap_regs->pred_restore_regs
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
#define PredGetwork Yap_heap_regs->pred_getwork
|
#define PredGetwork Yap_heap_regs->pred_getwork
|
||||||
#define PredGetworkSeq Yap_heap_regs->pred_getwork_seq
|
#define PredGetworkSeq Yap_heap_regs->pred_getwork_seq
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
#define Yap_do_low_level_trace Yap_heap_regs->yap_do_low_level_trace
|
#define Yap_do_low_level_trace Yap_heap_regs->yap_do_low_level_trace
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define Yap_low_level_trace_lock Yap_heap_regs->low_level_trace_lock
|
#define Yap_low_level_trace_lock Yap_heap_regs->low_level_trace_lock
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define Yap_ClauseSpace Yap_heap_regs->clause_space
|
#define Yap_ClauseSpace Yap_heap_regs->clause_space
|
||||||
#define Yap_IndexSpace_Tree Yap_heap_regs->index_space_Tree
|
#define Yap_IndexSpace_Tree Yap_heap_regs->index_space_Tree
|
||||||
#define Yap_IndexSpace_EXT Yap_heap_regs->index_space_EXT
|
#define Yap_IndexSpace_EXT Yap_heap_regs->index_space_EXT
|
||||||
#define Yap_IndexSpace_SW Yap_heap_regs->index_space_SW
|
#define Yap_IndexSpace_SW Yap_heap_regs->index_space_SW
|
||||||
#define Yap_LUClauseSpace Yap_heap_regs->lu_clause_space
|
#define Yap_LUClauseSpace Yap_heap_regs->lu_clause_space
|
||||||
#define Yap_LUIndexSpace_Tree Yap_heap_regs->lu_index_space_Tree
|
#define Yap_LUIndexSpace_Tree Yap_heap_regs->lu_index_space_Tree
|
||||||
#define Yap_LUIndexSpace_CP Yap_heap_regs->lu_index_space_CP
|
#define Yap_LUIndexSpace_CP Yap_heap_regs->lu_index_space_CP
|
||||||
#define Yap_LUIndexSpace_EXT Yap_heap_regs->lu_index_space_EXT
|
#define Yap_LUIndexSpace_EXT Yap_heap_regs->lu_index_space_EXT
|
||||||
#define Yap_LUIndexSpace_SW Yap_heap_regs->lu_index_space_SW
|
#define Yap_LUIndexSpace_SW Yap_heap_regs->lu_index_space_SW
|
||||||
|
|
||||||
#define COMMA_CODE Yap_heap_regs->comma_code
|
#define COMMA_CODE Yap_heap_regs->comma_code
|
||||||
#define DUMMYCODE Yap_heap_regs->dummycode
|
#define DUMMYCODE Yap_heap_regs->dummycode
|
||||||
#define FAILCODE Yap_heap_regs->failcode
|
#define FAILCODE Yap_heap_regs->failcode
|
||||||
#define NOCODE Yap_heap_regs->nocode
|
#define NOCODE Yap_heap_regs->nocode
|
||||||
#define ENV_FOR_TRUSTFAIL Yap_heap_regs->env_for_trustfail
|
#define ENV_FOR_TRUSTFAIL Yap_heap_regs->env_for_trustfail
|
||||||
#define TRUSTFAILCODE Yap_heap_regs->trustfailcode
|
#define TRUSTFAILCODE Yap_heap_regs->trustfailcode
|
||||||
#define ENV_FOR_YESCODE Yap_heap_regs->env_for_yescode
|
#define ENV_FOR_YESCODE Yap_heap_regs->env_for_yescode
|
||||||
#define YESCODE Yap_heap_regs->yescode
|
#define YESCODE Yap_heap_regs->yescode
|
||||||
#define RTRYCODE Yap_heap_regs->rtrycode
|
#define RTRYCODE Yap_heap_regs->rtrycode
|
||||||
#ifdef BEAM
|
#ifdef BEAM
|
||||||
#define BEAM_RETRY_CODE Yap_heap_regs->beam_retry_code
|
#define BEAM_RETRY_CODE Yap_heap_regs->beam_retry_code
|
||||||
#endif /* BEAM */
|
#endif /* BEAM */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
#define SEQUENTIAL_IS_DEFAULT Yap_heap_regs->seq_def
|
#define SEQUENTIAL_IS_DEFAULT Yap_heap_regs->seq_def
|
||||||
#define GETWORK Yap_heap_regs->getwork_code
|
#define GETWORK Yap_heap_regs->getwork_code
|
||||||
#define GETWORK_SEQ Yap_heap_regs->getwork_seq_code
|
#define GETWORK_SEQ Yap_heap_regs->getwork_seq_code
|
||||||
#define GETWORK_FIRST_TIME Yap_heap_regs->getwork_first_time
|
#define GETWORK_FIRST_TIME Yap_heap_regs->getwork_first_time
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
#define LOAD_ANSWER Yap_heap_regs->table_load_answer_code
|
#define LOAD_ANSWER Yap_heap_regs->table_load_answer_code
|
||||||
#define TRY_ANSWER Yap_heap_regs->table_try_answer_code
|
#define TRY_ANSWER Yap_heap_regs->table_try_answer_code
|
||||||
#define ANSWER_RESOLUTION Yap_heap_regs->table_answer_resolution_code
|
#define ANSWER_RESOLUTION Yap_heap_regs->table_answer_resolution_code
|
||||||
#define COMPLETION Yap_heap_regs->table_completion_code
|
#define COMPLETION Yap_heap_regs->table_completion_code
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define P_before_spy Yap_heap_regs->debugger_p_before_spy
|
#define P_before_spy Yap_heap_regs->debugger_p_before_spy
|
||||||
|
|
||||||
#define RETRY_C_RECORDEDP_CODE Yap_heap_regs->retry_recordedp_code
|
#define RETRY_C_RECORDEDP_CODE Yap_heap_regs->retry_recordedp_code
|
||||||
#define RETRY_C_RECORDED_K_CODE Yap_heap_regs->retry_recorded_k_code
|
#define RETRY_C_RECORDED_K_CODE Yap_heap_regs->retry_recorded_k_code
|
||||||
|
|
||||||
#define PROFILING Yap_heap_regs->system_profiling
|
#define PROFILING Yap_heap_regs->system_profiling
|
||||||
#define CALL_COUNTING Yap_heap_regs->system_call_counting
|
#define CALL_COUNTING Yap_heap_regs->system_call_counting
|
||||||
#define PRED_GOAL_EXPANSION_ALL Yap_heap_regs->system_pred_goal_expansion_all
|
#define PRED_GOAL_EXPANSION_ALL Yap_heap_regs->system_pred_goal_expansion_all
|
||||||
#define PRED_GOAL_EXPANSION_FUNC Yap_heap_regs->system_pred_goal_expansion_func
|
#define PRED_GOAL_EXPANSION_FUNC Yap_heap_regs->system_pred_goal_expansion_func
|
||||||
#define PRED_GOAL_EXPANSION_ON Yap_heap_regs->system_pred_goal_expansion_on
|
#define PRED_GOAL_EXPANSION_ON Yap_heap_regs->system_pred_goal_expansion_on
|
||||||
#define optimizer_on Yap_heap_regs->compiler_optimizer_on
|
#define optimizer_on Yap_heap_regs->compiler_optimizer_on
|
||||||
#define compile_mode Yap_heap_regs->compiler_compile_mode
|
#define compile_mode Yap_heap_regs->compiler_compile_mode
|
||||||
#define profiling Yap_heap_regs->compiler_profiling
|
#define profiling Yap_heap_regs->compiler_profiling
|
||||||
#define call_counting Yap_heap_regs->compiler_call_counting
|
#define call_counting Yap_heap_regs->compiler_call_counting
|
||||||
|
|
||||||
#define compile_arrays Yap_heap_regs->compiler_compile_arrays
|
#define compile_arrays Yap_heap_regs->compiler_compile_arrays
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define DBTermsListLock Yap_heap_regs->dbterms_list_lock
|
#define DBTermsListLock Yap_heap_regs->dbterms_list_lock
|
||||||
#endif
|
#endif
|
||||||
#define DBTermsList Yap_heap_regs->dbterms_list
|
#define DBTermsList Yap_heap_regs->dbterms_list
|
||||||
|
|
||||||
#define ExpandClausesFirst Yap_heap_regs->expand_clauses_first
|
#define ExpandClausesFirst Yap_heap_regs->expand_clauses_first
|
||||||
#define ExpandClausesLast Yap_heap_regs->expand_clauses_last
|
#define ExpandClausesLast Yap_heap_regs->expand_clauses_last
|
||||||
#define Yap_ExpandClauses Yap_heap_regs->expand_clauses
|
#define Yap_ExpandClauses Yap_heap_regs->expand_clauses
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define ExpandClausesListLock Yap_heap_regs->expand_clauses_list_lock
|
#define ExpandClausesListLock Yap_heap_regs->expand_clauses_list_lock
|
||||||
#define OpListLock Yap_heap_regs->op_list_lock
|
#define OpListLock Yap_heap_regs->op_list_lock
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
#define Yap_NewCps Yap_heap_regs->new_cps
|
#define Yap_NewCps Yap_heap_regs->new_cps
|
||||||
#define Yap_LiveCps Yap_heap_regs->live_cps
|
#define Yap_LiveCps Yap_heap_regs->live_cps
|
||||||
#define Yap_DirtyCps Yap_heap_regs->dirty_cps
|
#define Yap_DirtyCps Yap_heap_regs->dirty_cps
|
||||||
#define Yap_FreedCps Yap_heap_regs->freed_cps
|
#define Yap_FreedCps Yap_heap_regs->freed_cps
|
||||||
#endif
|
#endif
|
||||||
#define Yap_expand_clauses_sz Yap_heap_regs->expand_clauses_sz
|
#define Yap_expand_clauses_sz Yap_heap_regs->expand_clauses_sz
|
||||||
|
|
||||||
#define UdiControlBlocks Yap_heap_regs->udi_control_blocks
|
#define UdiControlBlocks Yap_heap_regs->udi_control_blocks
|
||||||
|
|
||||||
|
|
||||||
#define STATIC_PREDICATES_MARKED Yap_heap_regs->static_predicates_marked
|
#define STATIC_PREDICATES_MARKED Yap_heap_regs->static_predicates_marked
|
||||||
|
|
||||||
#define INT_KEYS Yap_heap_regs->IntKeys
|
#define INT_KEYS Yap_heap_regs->IntKeys
|
||||||
#define INT_LU_KEYS Yap_heap_regs->IntLUKeys
|
#define INT_LU_KEYS Yap_heap_regs->IntLUKeys
|
||||||
#define INT_BB_KEYS Yap_heap_regs->IntBBKeys
|
#define INT_BB_KEYS Yap_heap_regs->IntBBKeys
|
||||||
|
|
||||||
#define INT_KEYS_SIZE Yap_heap_regs->int_keys_size
|
#define INT_KEYS_SIZE Yap_heap_regs->int_keys_size
|
||||||
#define INT_KEYS_TIMESTAMP Yap_heap_regs->int_keys_timestamp
|
#define INT_KEYS_TIMESTAMP Yap_heap_regs->int_keys_timestamp
|
||||||
#define INT_BB_KEYS_SIZE Yap_heap_regs->int_bb_keys_size
|
#define INT_BB_KEYS_SIZE Yap_heap_regs->int_bb_keys_size
|
||||||
|
|
||||||
#define UPDATE_MODE Yap_heap_regs->update_mode
|
#define UPDATE_MODE Yap_heap_regs->update_mode
|
||||||
|
|
||||||
#define DBErasedMarker Yap_heap_regs->db_erased_marker
|
#define DBErasedMarker Yap_heap_regs->db_erased_marker
|
||||||
#define LogDBErasedMarker Yap_heap_regs->logdb_erased_marker
|
#define LogDBErasedMarker Yap_heap_regs->logdb_erased_marker
|
||||||
|
|
||||||
#define DeadStaticClauses Yap_heap_regs->dead_static_clauses
|
#define DeadStaticClauses Yap_heap_regs->dead_static_clauses
|
||||||
#define DeadMegaClauses Yap_heap_regs->dead_mega_clauses
|
#define DeadMegaClauses Yap_heap_regs->dead_mega_clauses
|
||||||
#define DeadStaticIndices Yap_heap_regs->dead_static_indices
|
#define DeadStaticIndices Yap_heap_regs->dead_static_indices
|
||||||
#define DBErasedList Yap_heap_regs->db_erased_list
|
#define DBErasedList Yap_heap_regs->db_erased_list
|
||||||
#define DBErasedIList Yap_heap_regs->db_erased_ilist
|
#define DBErasedIList Yap_heap_regs->db_erased_ilist
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#define DeadStaticClausesLock Yap_heap_regs->dead_static_clauses_lock
|
#define DeadStaticClausesLock Yap_heap_regs->dead_static_clauses_lock
|
||||||
#define DeadMegaClausesLock Yap_heap_regs->dead_mega_clauses_lock
|
#define DeadMegaClausesLock Yap_heap_regs->dead_mega_clauses_lock
|
||||||
#define DeadStaticIndicesLock Yap_heap_regs->dead_static_indices_lock
|
#define DeadStaticIndicesLock Yap_heap_regs->dead_static_indices_lock
|
||||||
#endif
|
#endif
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
|
|
||||||
#define NUM_OF_ATTS Yap_heap_regs->num_of_atts
|
#define NUM_OF_ATTS Yap_heap_regs->num_of_atts
|
||||||
|
|
||||||
#define Yap_AttsSize Yap_heap_regs->atts_size
|
#define Yap_AttsSize Yap_heap_regs->atts_size
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define yap_flags Yap_heap_regs->yap_flags_field
|
#define yap_flags Yap_heap_regs->yap_flags_field
|
||||||
|
|
||||||
#define OpList Yap_heap_regs->op_list
|
#define OpList Yap_heap_regs->op_list
|
||||||
|
|
||||||
|
|
||||||
#define Stream Yap_heap_regs->yap_streams
|
#define Stream Yap_heap_regs->yap_streams
|
||||||
|
|
||||||
#define NOfFileAliases Yap_heap_regs->n_of_file_aliases
|
#define NOfFileAliases Yap_heap_regs->n_of_file_aliases
|
||||||
#define SzOfFileAliases Yap_heap_regs->sz_of_file_aliases
|
#define SzOfFileAliases Yap_heap_regs->sz_of_file_aliases
|
||||||
#define FileAliases Yap_heap_regs->file_aliases
|
#define FileAliases Yap_heap_regs->file_aliases
|
||||||
|
|
||||||
#define AtPrompt Yap_heap_regs->atprompt
|
#define AtPrompt Yap_heap_regs->atprompt
|
||||||
#define YapPrompt Yap_heap_regs->_prompt
|
#define YapPrompt Yap_heap_regs->_prompt
|
||||||
|
|
||||||
#define CharConversionTable Yap_heap_regs->char_conversion_table
|
#define CharConversionTable Yap_heap_regs->char_conversion_table
|
||||||
#define CharConversionTable2 Yap_heap_regs->char_conversion_table2
|
#define CharConversionTable2 Yap_heap_regs->char_conversion_table2
|
||||||
|
|
||||||
#define ParserErrorStyle Yap_heap_regs->parser_error_style
|
#define ParserErrorStyle Yap_heap_regs->parser_error_style
|
||||||
|
|
||||||
#define Yap_LibDir Yap_heap_regs->yap_lib_dir
|
#define Yap_LibDir Yap_heap_regs->yap_lib_dir
|
||||||
|
|
||||||
#define LastWtimePtr Yap_heap_regs->last_wtime
|
#define LastWtimePtr Yap_heap_regs->last_wtime
|
||||||
|
|
||||||
#define output_msg Yap_heap_regs->debugger_output_msg
|
#define output_msg Yap_heap_regs->debugger_output_msg
|
||||||
#if LOW_PROF
|
#if LOW_PROF
|
||||||
#define ProfilerOn Yap_heap_regs->profiler_on
|
#define ProfilerOn Yap_heap_regs->profiler_on
|
||||||
#define Yap_OffLineProfiler Yap_heap_regs->offline_profiler
|
#define Yap_OffLineProfiler Yap_heap_regs->offline_profiler
|
||||||
#define FProf Yap_heap_regs->f_prof
|
#define FProf Yap_heap_regs->f_prof
|
||||||
#define FPreds Yap_heap_regs->f_preds
|
#define FPreds Yap_heap_regs->f_preds
|
||||||
#define ProfPreds Yap_heap_regs->prof_preds
|
#define ProfPreds Yap_heap_regs->prof_preds
|
||||||
#endif /* LOW_PROF */
|
#endif /* LOW_PROF */
|
||||||
|
|
||||||
#define ForeignCodeLoaded Yap_heap_regs->foreign_code_loaded
|
#define ForeignCodeLoaded Yap_heap_regs->foreign_code_loaded
|
||||||
#define ForeignCodeBase Yap_heap_regs->foreign_code_base
|
#define ForeignCodeBase Yap_heap_regs->foreign_code_base
|
||||||
#define ForeignCodeTop Yap_heap_regs->foreign_code_top
|
#define ForeignCodeTop Yap_heap_regs->foreign_code_top
|
||||||
#define ForeignCodeMax Yap_heap_regs->foreign_code_max
|
#define ForeignCodeMax Yap_heap_regs->foreign_code_max
|
||||||
|
|
||||||
#define Yap_Records Yap_heap_regs->yap_records
|
#define Yap_Records Yap_heap_regs->yap_records
|
||||||
|
|
||||||
#define SWI_Atoms Yap_heap_regs->swi_atoms
|
#define SWI_Atoms Yap_heap_regs->swi_atoms
|
||||||
#define SWI_Functors Yap_heap_regs->swi_functors
|
#define SWI_Functors Yap_heap_regs->swi_functors
|
||||||
#define SWI_ReverseHash Yap_heap_regs->swi_reverse_hash
|
#define SWI_ReverseHash Yap_heap_regs->swi_reverse_hash
|
||||||
|
|
||||||
#define SWI_BlobTypes Yap_heap_regs->swi_blob_types
|
#define SWI_BlobTypes Yap_heap_regs->swi_blob_types
|
||||||
#define SWI_Blobs Yap_heap_regs->swi_blobs
|
#define SWI_Blobs Yap_heap_regs->swi_blobs
|
||||||
|
282
H/hglobals.h
282
H/hglobals.h
@ -1,213 +1,69 @@
|
|||||||
|
|
||||||
/* This file, hglobals.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, hglobals.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/GLOBALS instead */
|
please do not update, update misc/GLOBALS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct worker_local {
|
typedef struct worker_shared {
|
||||||
|
|
||||||
int c_input_stream;
|
#if THREADS
|
||||||
int c_output_stream;
|
|
||||||
int c_error_stream;
|
UInt n_of_threads;
|
||||||
|
|
||||||
restoreinfo rinfo;
|
UInt n_of_threads_created;
|
||||||
|
|
||||||
|
UInt threads_total_time;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
|
|
||||||
|
lockvar bgl;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int allow_local_expansion;
|
||||||
|
int allow_global_expansion;
|
||||||
|
int allow_trail_expansion;
|
||||||
|
UInt size_of_overflow;
|
||||||
|
|
||||||
|
UInt agc_last_call;
|
||||||
|
|
||||||
|
UInt agc_threshold;
|
||||||
|
Agc_hook agc_hook;
|
||||||
|
|
||||||
|
#if HAVE_LIBREADLINE
|
||||||
struct reduction_counters call_counters;
|
char *readline_buf;
|
||||||
|
char *readline_pos;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef THREADS
|
||||||
|
lockvar thread_handles_lock;
|
||||||
|
#endif
|
||||||
int interrupts_disabled;
|
|
||||||
|
#if defined(YAPOR) || defined(TABLING)
|
||||||
|
struct global_data global;
|
||||||
union CONSULT_OBJ* consultsp;
|
struct local_data remote[MAX_WORKERS];
|
||||||
|
#endif
|
||||||
UInt consultcapacity;
|
|
||||||
|
int initialised;
|
||||||
union CONSULT_OBJ* consultbase;
|
int initialised_from_pl;
|
||||||
|
int pl_argc;
|
||||||
union CONSULT_OBJ* consultlow;
|
char **pl_argv;
|
||||||
|
|
||||||
Term global_arena;
|
struct halt_hook *yap_halt_hook;
|
||||||
UInt global_arena_overflows;
|
} w_shared;
|
||||||
Int delay_arena_overflows;
|
|
||||||
Int arena_overflows;
|
|
||||||
Int depth_arenas;
|
|
||||||
int arith_error;
|
|
||||||
struct pred_entry* last_asserted_pred;
|
|
||||||
int debug_on;
|
|
||||||
struct format_status* f_info;
|
|
||||||
char* scanner_stack;
|
|
||||||
struct scanner_extra_alloc* scanner_extra_blocks;
|
|
||||||
struct DB_TERM *ball_term;
|
|
||||||
UInt active_signals;
|
|
||||||
UInt i_pred_arity;
|
|
||||||
yamop* prof_end;
|
|
||||||
int uncaught_throw;
|
|
||||||
int doing_undefp;
|
|
||||||
Int start_line;
|
|
||||||
scratch_block scratchpad;
|
|
||||||
#ifdef COROUTINING
|
|
||||||
Term woken_goals;
|
|
||||||
Term atts_mutable_list;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Term gc_generation;
|
|
||||||
Term gc_phase;
|
|
||||||
UInt gc_current_phase;
|
|
||||||
UInt gc_calls;
|
|
||||||
Int tot_gc_time;
|
|
||||||
YAP_ULONG_LONG tot_gc_recovered;
|
|
||||||
Int last_gc_time;
|
|
||||||
Int last_ss_time;
|
|
||||||
#if LOW_LEVEL_TRACER
|
|
||||||
Int total_cps;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
lockvar signal_lock;
|
|
||||||
struct pred_entry* wpp;
|
|
||||||
|
|
||||||
Int tot_marked;
|
|
||||||
Int tot_oldies;
|
|
||||||
#if DEBUG && COROUTINING
|
|
||||||
UInt tot_smarked;
|
|
||||||
#endif
|
|
||||||
struct choicept *wl_current_B;
|
|
||||||
CELL* wl_prev_HB;
|
|
||||||
CELL* hgen;
|
|
||||||
CELL** ip_top;
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
char* b_p;
|
|
||||||
#endif
|
|
||||||
#if defined(TABLING) || defined(SBA)
|
|
||||||
struct trail_frame* wl_sTR;
|
|
||||||
struct trail_frame* wl_sTR0;
|
|
||||||
struct trail_frame* new_tr;
|
|
||||||
#else
|
|
||||||
Term *wl_sTR;
|
|
||||||
Term *wl_sTR0;
|
|
||||||
Term *new_tr;
|
|
||||||
#endif
|
|
||||||
struct gc_mark_continuation* conttop0;
|
|
||||||
struct gc_mark_continuation* conttop;
|
|
||||||
int disc_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;
|
|
||||||
#endif /* defined(YAPOR) || defined(THREADS) */
|
|
||||||
sigjmp_buf gc_restore;
|
|
||||||
struct array_entry* dynamic_arrays;
|
|
||||||
struct static_array_entry* static_arrays;
|
|
||||||
struct global_entry* global_variables;
|
|
||||||
int allow_restart;
|
|
||||||
|
|
||||||
struct mem_blk* cmem_first_block;
|
|
||||||
UInt cmem_first_block_sz;
|
|
||||||
|
|
||||||
Int* label_first_array;
|
|
||||||
UInt label_first_array_sz;
|
|
||||||
|
|
||||||
struct PL_local_data *Yap_ld_;
|
|
||||||
struct open_query_struct* _execution;
|
|
||||||
|
|
||||||
#if (defined(YAPOR) || defined(TABLING)) && defined(THREADS)
|
|
||||||
struct worker worker;
|
|
||||||
#endif
|
|
||||||
#ifdef THREADS
|
|
||||||
struct thandle thread_handle;
|
|
||||||
#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle)
|
|
||||||
#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} w_local;
|
|
||||||
|
|
||||||
typedef struct worker_shared {
|
|
||||||
|
|
||||||
#if THREADS
|
|
||||||
|
|
||||||
UInt n_of_threads;
|
|
||||||
|
|
||||||
UInt n_of_threads_created;
|
|
||||||
|
|
||||||
UInt threads_total_time;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
|
|
||||||
lockvar bgl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int allow_local_expansion;
|
|
||||||
int allow_global_expansion;
|
|
||||||
int allow_trail_expansion;
|
|
||||||
UInt size_of_overflow;
|
|
||||||
|
|
||||||
UInt agc_last_call;
|
|
||||||
|
|
||||||
UInt agc_threshold;
|
|
||||||
Agc_hook agc_hook;
|
|
||||||
|
|
||||||
#if HAVE_LIBREADLINE
|
|
||||||
char *readline_buf;
|
|
||||||
char *readline_pos;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef THREADS
|
|
||||||
lockvar thread_handles_lock;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(TABLING)
|
|
||||||
struct global_data global;
|
|
||||||
struct local_data remote[MAX_WORKERS];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int initialised;
|
|
||||||
int initialised_from_pl;
|
|
||||||
int pl_argc;
|
|
||||||
char **pl_argv;
|
|
||||||
|
|
||||||
struct halt_hook *yap_halt_hook;
|
|
||||||
} w_shared;
|
|
||||||
|
608
H/hstruct.h
608
H/hstruct.h
@ -1,304 +1,304 @@
|
|||||||
|
|
||||||
/* This file, hstruct.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, hstruct.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/HEAPFIELDS instead */
|
please do not update, update misc/HEAPFIELDS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UInt hole_size;
|
UInt hole_size;
|
||||||
struct malloc_state *av_;
|
struct malloc_state *av_;
|
||||||
#if USE_DL_MALLOC
|
#if USE_DL_MALLOC
|
||||||
struct memory_hole memory_holes[MAX_DLMALLOC_HOLES];
|
struct memory_hole memory_holes[MAX_DLMALLOC_HOLES];
|
||||||
UInt nof_memory_holes;
|
UInt nof_memory_holes;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar dlmalloc_lock;
|
lockvar dlmalloc_lock;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
||||||
#ifndef HeapUsed
|
#ifndef HeapUsed
|
||||||
#define HeapUsed Yap_givemallinfo()
|
#define HeapUsed Yap_givemallinfo()
|
||||||
#endif
|
#endif
|
||||||
Int heap_used;
|
Int heap_used;
|
||||||
#else
|
#else
|
||||||
Int heap_used;
|
Int heap_used;
|
||||||
#endif
|
#endif
|
||||||
Int heap_max;
|
Int heap_max;
|
||||||
ADDR heap_top;
|
ADDR heap_top;
|
||||||
ADDR heap_lim;
|
ADDR heap_lim;
|
||||||
struct FREEB *free_blocks;
|
struct FREEB *free_blocks;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar free_blocks_lock;
|
lockvar free_blocks_lock;
|
||||||
lockvar heap_used_lock;
|
lockvar heap_used_lock;
|
||||||
lockvar heap_top_lock;
|
lockvar heap_top_lock;
|
||||||
int heap_top_owner;
|
int heap_top_owner;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if USE_THREADED_CODE
|
#if USE_THREADED_CODE
|
||||||
opentry *op_rtable;
|
opentry *op_rtable;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
OPCODE execute_cpred_op_code;
|
OPCODE execute_cpred_op_code;
|
||||||
OPCODE expand_op_code;
|
OPCODE expand_op_code;
|
||||||
OPCODE fail_op;
|
OPCODE fail_op;
|
||||||
OPCODE index_op;
|
OPCODE index_op;
|
||||||
OPCODE lockpred_op;
|
OPCODE lockpred_op;
|
||||||
OPCODE orlast_op;
|
OPCODE orlast_op;
|
||||||
OPCODE undef_op;
|
OPCODE undef_op;
|
||||||
|
|
||||||
UInt n_of_atoms;
|
UInt n_of_atoms;
|
||||||
UInt atom_hash_table_size;
|
UInt atom_hash_table_size;
|
||||||
UInt wide_atom_hash_table_size;
|
UInt wide_atom_hash_table_size;
|
||||||
UInt n_of_wide_atoms;
|
UInt n_of_wide_atoms;
|
||||||
AtomHashEntry invisiblechain;
|
AtomHashEntry invisiblechain;
|
||||||
AtomHashEntry *wide_hash_chain;
|
AtomHashEntry *wide_hash_chain;
|
||||||
AtomHashEntry *hash_chain;
|
AtomHashEntry *hash_chain;
|
||||||
|
|
||||||
#include "tatoms.h"
|
#include "tatoms.h"
|
||||||
#ifdef EUROTRA
|
#ifdef EUROTRA
|
||||||
Term term_dollar_u;
|
Term term_dollar_u;
|
||||||
#endif
|
#endif
|
||||||
Term term_prolog;
|
Term term_prolog;
|
||||||
Term term_refound_var;
|
Term term_refound_var;
|
||||||
Term user_module;
|
Term user_module;
|
||||||
Term idb_module;
|
Term idb_module;
|
||||||
Term attributes_module;
|
Term attributes_module;
|
||||||
Term charsio_module;
|
Term charsio_module;
|
||||||
Term terms_module;
|
Term terms_module;
|
||||||
Term system_module;
|
Term system_module;
|
||||||
Term operating_system_module;
|
Term operating_system_module;
|
||||||
Term readutil_module;
|
Term readutil_module;
|
||||||
Term hacks_module;
|
Term hacks_module;
|
||||||
Term arg_module;
|
Term arg_module;
|
||||||
Term globals_module;
|
Term globals_module;
|
||||||
Term swi_module;
|
Term swi_module;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct mod_entry *current_modules;
|
struct mod_entry *current_modules;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
yap_exec_mode execution_mode;
|
yap_exec_mode execution_mode;
|
||||||
|
|
||||||
struct pred_entry **pred_hash;
|
struct pred_entry **pred_hash;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
rwlock_t pred_hash_rw_lock;
|
rwlock_t pred_hash_rw_lock;
|
||||||
#endif
|
#endif
|
||||||
UInt preds_in_hash_table;
|
UInt preds_in_hash_table;
|
||||||
UInt pred_hash_table_size;
|
UInt pred_hash_table_size;
|
||||||
|
|
||||||
struct pred_entry *creep_code;
|
struct pred_entry *creep_code;
|
||||||
struct pred_entry *undef_code;
|
struct pred_entry *undef_code;
|
||||||
struct pred_entry *spy_code;
|
struct pred_entry *spy_code;
|
||||||
struct pred_entry *pred_fail;
|
struct pred_entry *pred_fail;
|
||||||
struct pred_entry *pred_true;
|
struct pred_entry *pred_true;
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
struct pred_entry *wake_up_code;
|
struct pred_entry *wake_up_code;
|
||||||
#endif
|
#endif
|
||||||
struct pred_entry *pred_goal_expansion;
|
struct pred_entry *pred_goal_expansion;
|
||||||
struct pred_entry *pred_meta_call;
|
struct pred_entry *pred_meta_call;
|
||||||
struct pred_entry *pred_dollar_catch;
|
struct pred_entry *pred_dollar_catch;
|
||||||
struct pred_entry *pred_recorded_with_key;
|
struct pred_entry *pred_recorded_with_key;
|
||||||
struct pred_entry *pred_log_upd_clause;
|
struct pred_entry *pred_log_upd_clause;
|
||||||
struct pred_entry *pred_log_upd_clause_erase;
|
struct pred_entry *pred_log_upd_clause_erase;
|
||||||
struct pred_entry *pred_log_upd_clause0;
|
struct pred_entry *pred_log_upd_clause0;
|
||||||
struct pred_entry *pred_static_clause;
|
struct pred_entry *pred_static_clause;
|
||||||
struct pred_entry *pred_throw;
|
struct pred_entry *pred_throw;
|
||||||
struct pred_entry *pred_handle_throw;
|
struct pred_entry *pred_handle_throw;
|
||||||
struct pred_entry *pred_is;
|
struct pred_entry *pred_is;
|
||||||
struct pred_entry *pred_safe_call_cleanup;
|
struct pred_entry *pred_safe_call_cleanup;
|
||||||
struct pred_entry *pred_restore_regs;
|
struct pred_entry *pred_restore_regs;
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
struct pred_entry *pred_getwork;
|
struct pred_entry *pred_getwork;
|
||||||
struct pred_entry *pred_getwork_seq;
|
struct pred_entry *pred_getwork_seq;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
int yap_do_low_level_trace;
|
int yap_do_low_level_trace;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar low_level_trace_lock;
|
lockvar low_level_trace_lock;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
UInt clause_space;
|
UInt clause_space;
|
||||||
UInt index_space_Tree;
|
UInt index_space_Tree;
|
||||||
UInt index_space_EXT;
|
UInt index_space_EXT;
|
||||||
UInt index_space_SW;
|
UInt index_space_SW;
|
||||||
UInt lu_clause_space;
|
UInt lu_clause_space;
|
||||||
UInt lu_index_space_Tree;
|
UInt lu_index_space_Tree;
|
||||||
UInt lu_index_space_CP;
|
UInt lu_index_space_CP;
|
||||||
UInt lu_index_space_EXT;
|
UInt lu_index_space_EXT;
|
||||||
UInt lu_index_space_SW;
|
UInt lu_index_space_SW;
|
||||||
|
|
||||||
yamop comma_code[5];
|
yamop comma_code[5];
|
||||||
yamop dummycode[1];
|
yamop dummycode[1];
|
||||||
yamop failcode[1];
|
yamop failcode[1];
|
||||||
yamop nocode[1];
|
yamop nocode[1];
|
||||||
yamop env_for_trustfail[2];
|
yamop env_for_trustfail[2];
|
||||||
yamop *trustfailcode;
|
yamop *trustfailcode;
|
||||||
yamop env_for_yescode[2];
|
yamop env_for_yescode[2];
|
||||||
yamop *yescode;
|
yamop *yescode;
|
||||||
yamop rtrycode[1];
|
yamop rtrycode[1];
|
||||||
#ifdef BEAM
|
#ifdef BEAM
|
||||||
yamop beam_retry_code[1];
|
yamop beam_retry_code[1];
|
||||||
#endif /* BEAM */
|
#endif /* BEAM */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
int seq_def;
|
int seq_def;
|
||||||
yamop getwork_code[1];
|
yamop getwork_code[1];
|
||||||
yamop getwork_seq_code[1];
|
yamop getwork_seq_code[1];
|
||||||
yamop getwork_first_time[1];
|
yamop getwork_first_time[1];
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
yamop table_load_answer_code[1];
|
yamop table_load_answer_code[1];
|
||||||
yamop table_try_answer_code[1];
|
yamop table_try_answer_code[1];
|
||||||
yamop table_answer_resolution_code[1];
|
yamop table_answer_resolution_code[1];
|
||||||
yamop table_completion_code[1];
|
yamop table_completion_code[1];
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
yamop *debugger_p_before_spy;
|
yamop *debugger_p_before_spy;
|
||||||
|
|
||||||
yamop *retry_recordedp_code;
|
yamop *retry_recordedp_code;
|
||||||
yamop *retry_recorded_k_code;
|
yamop *retry_recorded_k_code;
|
||||||
|
|
||||||
int system_profiling;
|
int system_profiling;
|
||||||
int system_call_counting;
|
int system_call_counting;
|
||||||
int system_pred_goal_expansion_all;
|
int system_pred_goal_expansion_all;
|
||||||
int system_pred_goal_expansion_func;
|
int system_pred_goal_expansion_func;
|
||||||
int system_pred_goal_expansion_on;
|
int system_pred_goal_expansion_on;
|
||||||
int compiler_optimizer_on;
|
int compiler_optimizer_on;
|
||||||
int compiler_compile_mode;
|
int compiler_compile_mode;
|
||||||
int compiler_profiling;
|
int compiler_profiling;
|
||||||
int compiler_call_counting;
|
int compiler_call_counting;
|
||||||
|
|
||||||
int compiler_compile_arrays;
|
int compiler_compile_arrays;
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar dbterms_list_lock;
|
lockvar dbterms_list_lock;
|
||||||
#endif
|
#endif
|
||||||
struct dbterm_list *dbterms_list;
|
struct dbterm_list *dbterms_list;
|
||||||
|
|
||||||
yamop *expand_clauses_first;
|
yamop *expand_clauses_first;
|
||||||
yamop *expand_clauses_last;
|
yamop *expand_clauses_last;
|
||||||
UInt expand_clauses;
|
UInt expand_clauses;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar expand_clauses_list_lock;
|
lockvar expand_clauses_list_lock;
|
||||||
lockvar op_list_lock;
|
lockvar op_list_lock;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
UInt new_cps;
|
UInt new_cps;
|
||||||
UInt live_cps;
|
UInt live_cps;
|
||||||
UInt dirty_cps;
|
UInt dirty_cps;
|
||||||
UInt freed_cps;
|
UInt freed_cps;
|
||||||
#endif
|
#endif
|
||||||
UInt expand_clauses_sz;
|
UInt expand_clauses_sz;
|
||||||
|
|
||||||
struct udi_info *udi_control_blocks;
|
struct udi_info *udi_control_blocks;
|
||||||
|
|
||||||
|
|
||||||
Int static_predicates_marked;
|
Int static_predicates_marked;
|
||||||
|
|
||||||
Prop *IntKeys;
|
Prop *IntKeys;
|
||||||
Prop *IntLUKeys;
|
Prop *IntLUKeys;
|
||||||
Prop *IntBBKeys;
|
Prop *IntBBKeys;
|
||||||
|
|
||||||
UInt int_keys_size;
|
UInt int_keys_size;
|
||||||
UInt int_keys_timestamp;
|
UInt int_keys_timestamp;
|
||||||
UInt int_bb_keys_size;
|
UInt int_bb_keys_size;
|
||||||
|
|
||||||
int update_mode;
|
int update_mode;
|
||||||
|
|
||||||
struct DB_STRUCT *db_erased_marker;
|
struct DB_STRUCT *db_erased_marker;
|
||||||
struct logic_upd_clause *logdb_erased_marker;
|
struct logic_upd_clause *logdb_erased_marker;
|
||||||
|
|
||||||
struct static_clause *dead_static_clauses;
|
struct static_clause *dead_static_clauses;
|
||||||
struct static_mega_clause *dead_mega_clauses;
|
struct static_mega_clause *dead_mega_clauses;
|
||||||
struct static_index *dead_static_indices;
|
struct static_index *dead_static_indices;
|
||||||
struct logic_upd_clause *db_erased_list;
|
struct logic_upd_clause *db_erased_list;
|
||||||
struct logic_upd_index *db_erased_ilist;
|
struct logic_upd_index *db_erased_ilist;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
lockvar dead_static_clauses_lock;
|
lockvar dead_static_clauses_lock;
|
||||||
lockvar dead_mega_clauses_lock;
|
lockvar dead_mega_clauses_lock;
|
||||||
lockvar dead_static_indices_lock;
|
lockvar dead_static_indices_lock;
|
||||||
#endif
|
#endif
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
|
|
||||||
int num_of_atts;
|
int num_of_atts;
|
||||||
|
|
||||||
UInt atts_size;
|
UInt atts_size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Int yap_flags_field[NUMBER_OF_YAP_FLAGS];
|
Int yap_flags_field[NUMBER_OF_YAP_FLAGS];
|
||||||
|
|
||||||
struct operator_entry *op_list;
|
struct operator_entry *op_list;
|
||||||
|
|
||||||
|
|
||||||
struct stream_desc *yap_streams;
|
struct stream_desc *yap_streams;
|
||||||
|
|
||||||
UInt n_of_file_aliases;
|
UInt n_of_file_aliases;
|
||||||
UInt sz_of_file_aliases;
|
UInt sz_of_file_aliases;
|
||||||
struct AliasDescS *file_aliases;
|
struct AliasDescS *file_aliases;
|
||||||
|
|
||||||
Atom atprompt;
|
Atom atprompt;
|
||||||
char _prompt[MAX_PROMPT];
|
char _prompt[MAX_PROMPT];
|
||||||
|
|
||||||
char *char_conversion_table;
|
char *char_conversion_table;
|
||||||
char *char_conversion_table2;
|
char *char_conversion_table2;
|
||||||
|
|
||||||
int parser_error_style;
|
int parser_error_style;
|
||||||
|
|
||||||
char *yap_lib_dir;
|
char *yap_lib_dir;
|
||||||
|
|
||||||
void *last_wtime;
|
void *last_wtime;
|
||||||
|
|
||||||
int debugger_output_msg;
|
int debugger_output_msg;
|
||||||
#if LOW_PROF
|
#if LOW_PROF
|
||||||
int profiler_on;
|
int profiler_on;
|
||||||
int offline_profiler;
|
int offline_profiler;
|
||||||
FILE *f_prof;
|
FILE *f_prof;
|
||||||
FILE *f_preds;
|
FILE *f_preds;
|
||||||
UInt prof_preds;
|
UInt prof_preds;
|
||||||
#endif /* LOW_PROF */
|
#endif /* LOW_PROF */
|
||||||
|
|
||||||
struct ForeignLoadItem *foreign_code_loaded;
|
struct ForeignLoadItem *foreign_code_loaded;
|
||||||
ADDR foreign_code_base;
|
ADDR foreign_code_base;
|
||||||
ADDR foreign_code_top;
|
ADDR foreign_code_top;
|
||||||
ADDR foreign_code_max;
|
ADDR foreign_code_max;
|
||||||
|
|
||||||
struct record_list *yap_records;
|
struct record_list *yap_records;
|
||||||
|
|
||||||
Atom swi_atoms[N_SWI_ATOMS];
|
Atom swi_atoms[N_SWI_ATOMS];
|
||||||
Functor swi_functors[N_SWI_FUNCTORS];
|
Functor swi_functors[N_SWI_FUNCTORS];
|
||||||
struct swi_reverse_hash swi_reverse_hash[N_SWI_HASH];
|
struct swi_reverse_hash swi_reverse_hash[N_SWI_HASH];
|
||||||
|
|
||||||
struct PL_blob_t *swi_blob_types;
|
struct PL_blob_t *swi_blob_types;
|
||||||
struct AtomEntryStruct *swi_blobs;
|
struct AtomEntryStruct *swi_blobs;
|
||||||
|
280
H/iglobals.h
280
H/iglobals.h
@ -1,211 +1,69 @@
|
|||||||
|
|
||||||
/* This file, iglobals.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, iglobals.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/GLOBALS instead */
|
please do not update, update misc/GLOBALS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void InitWorker(int wid) {
|
static void InitGlobal(void) {
|
||||||
|
|
||||||
FOREIGN_WL(wid)->c_input_stream = 0;
|
#if THREADS
|
||||||
FOREIGN_WL(wid)->c_output_stream = 1;
|
|
||||||
FOREIGN_WL(wid)->c_error_stream = 2;
|
Yap_global->n_of_threads = 1;
|
||||||
|
|
||||||
FOREIGN_WL(wid)->rinfo.old_ASP = NULL;
|
Yap_global->n_of_threads_created = 1;
|
||||||
FOREIGN_WL(wid)->rinfo.old_LCL0 = NULL;
|
|
||||||
FOREIGN_WL(wid)->rinfo.old_TR = NULL;
|
Yap_global->threads_total_time = 0L;
|
||||||
FOREIGN_WL(wid)->rinfo.old_GlobalBase = NULL;
|
#endif
|
||||||
FOREIGN_WL(wid)->rinfo.old_H = NULL;
|
|
||||||
FOREIGN_WL(wid)->rinfo.old_H0 = NULL;
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
FOREIGN_WL(wid)->rinfo.old_TrailBase = NULL;
|
|
||||||
FOREIGN_WL(wid)->rinfo.old_TrailTop = NULL;
|
INIT_LOCK(Yap_global->bgl);
|
||||||
FOREIGN_WL(wid)->rinfo.old_HeapBase = NULL;
|
#endif
|
||||||
FOREIGN_WL(wid)->rinfo.old_HeapTop = NULL;
|
|
||||||
FOREIGN_WL(wid)->rinfo.cl_diff = 0L;
|
Yap_global->allow_local_expansion = TRUE;
|
||||||
FOREIGN_WL(wid)->rinfo.g_diff = 0L;
|
Yap_global->allow_global_expansion = TRUE;
|
||||||
FOREIGN_WL(wid)->rinfo.h_diff = 0L;
|
Yap_global->allow_trail_expansion = TRUE;
|
||||||
FOREIGN_WL(wid)->rinfo.g_diff0 = 0L;
|
Yap_global->size_of_overflow = 0;
|
||||||
FOREIGN_WL(wid)->rinfo.g_split = NULL;
|
|
||||||
FOREIGN_WL(wid)->rinfo.l_diff = 0L;
|
Yap_global->agc_last_call = 0;
|
||||||
FOREIGN_WL(wid)->rinfo.tr_diff = 0L;
|
|
||||||
FOREIGN_WL(wid)->rinfo.x_diff = 0L;
|
Yap_global->agc_threshold = 10000;
|
||||||
FOREIGN_WL(wid)->rinfo.delay_diff = 0L;
|
Yap_global->agc_hook = NULL;
|
||||||
FOREIGN_WL(wid)->rinfo.base_diff = 0L;
|
|
||||||
FOREIGN_WL(wid)->call_counters.reductions = 0L;
|
#if HAVE_LIBREADLINE
|
||||||
FOREIGN_WL(wid)->call_counters.reductions_retries = 0L;
|
Yap_global->readline_buf = NULL;
|
||||||
FOREIGN_WL(wid)->call_counters.retries = 0L;
|
Yap_global->readline_pos = 0L;
|
||||||
FOREIGN_WL(wid)->call_counters.reductions_on = 0L;
|
#endif
|
||||||
FOREIGN_WL(wid)->call_counters.reductions_retries_on = 0L;
|
|
||||||
FOREIGN_WL(wid)->call_counters.retries_on = 0L;
|
#ifdef THREADS
|
||||||
FOREIGN_WL(wid)->interrupts_disabled = FALSE;
|
INIT_LOCK(Yap_global->thread_handles_lock);
|
||||||
|
#endif
|
||||||
|
|
||||||
FOREIGN_WL(wid)->consultsp = NULL;
|
#if defined(YAPOR) || defined(TABLING)
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
FOREIGN_WL(wid)->consultbase = NULL;
|
|
||||||
|
Yap_global->initialised = FALSE;
|
||||||
FOREIGN_WL(wid)->consultlow = NULL;
|
Yap_global->initialised_from_pl = FALSE;
|
||||||
|
Yap_global->pl_argc = 0;
|
||||||
FOREIGN_WL(wid)->global_arena = 0L;
|
Yap_global->pl_argv = NULL;
|
||||||
FOREIGN_WL(wid)->global_arena_overflows = 0L;
|
|
||||||
FOREIGN_WL(wid)->delay_arena_overflows = 0L;
|
Yap_global->yap_halt_hook = NULL;
|
||||||
FOREIGN_WL(wid)->arena_overflows = 0L;
|
}
|
||||||
FOREIGN_WL(wid)->depth_arenas = 0;
|
|
||||||
FOREIGN_WL(wid)->arith_error = FALSE;
|
|
||||||
FOREIGN_WL(wid)->last_asserted_pred = NULL;
|
|
||||||
FOREIGN_WL(wid)->debug_on = FALSE;
|
|
||||||
FOREIGN_WL(wid)->f_info = NULL;
|
|
||||||
FOREIGN_WL(wid)->scanner_stack = NULL;
|
|
||||||
FOREIGN_WL(wid)->scanner_extra_blocks = NULL;
|
|
||||||
FOREIGN_WL(wid)->ball_term = NULL;
|
|
||||||
FOREIGN_WL(wid)->active_signals = 0L;
|
|
||||||
FOREIGN_WL(wid)->i_pred_arity = 0L;
|
|
||||||
FOREIGN_WL(wid)->prof_end = NULL;
|
|
||||||
FOREIGN_WL(wid)->uncaught_throw = FALSE;
|
|
||||||
FOREIGN_WL(wid)->doing_undefp = FALSE;
|
|
||||||
FOREIGN_WL(wid)->start_line = 0L;
|
|
||||||
InitScratchPad(wid);
|
|
||||||
#ifdef COROUTINING
|
|
||||||
FOREIGN_WL(wid)->woken_goals = 0L;
|
|
||||||
FOREIGN_WL(wid)->atts_mutable_list = 0L;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->gc_generation = 0L;
|
|
||||||
FOREIGN_WL(wid)->gc_phase = 0L;
|
|
||||||
FOREIGN_WL(wid)->gc_current_phase = 0L;
|
|
||||||
FOREIGN_WL(wid)->gc_calls = 0L;
|
|
||||||
FOREIGN_WL(wid)->tot_gc_time = 0L;
|
|
||||||
FOREIGN_WL(wid)->tot_gc_recovered = 0L;
|
|
||||||
FOREIGN_WL(wid)->last_gc_time = 0L;
|
|
||||||
FOREIGN_WL(wid)->last_ss_time = 0L;
|
|
||||||
#if LOW_LEVEL_TRACER
|
|
||||||
FOREIGN_WL(wid)->total_cps = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
INIT_LOCK(FOREIGN_WL(wid)->signal_lock);
|
|
||||||
FOREIGN_WL(wid)->wpp = NULL;
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->tot_marked = 0L;
|
|
||||||
FOREIGN_WL(wid)->tot_oldies = 0L;
|
|
||||||
#if DEBUG && COROUTINING
|
|
||||||
FOREIGN_WL(wid)->tot_smarked = 0L;
|
|
||||||
#endif
|
|
||||||
FOREIGN_WL(wid)->wl_current_B = NULL;
|
|
||||||
FOREIGN_WL(wid)->wl_prev_HB = NULL;
|
|
||||||
FOREIGN_WL(wid)->hgen = NULL;
|
|
||||||
FOREIGN_WL(wid)->ip_top = NULL;
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
FOREIGN_WL(wid)->b_p = NULL;
|
|
||||||
#endif
|
|
||||||
#if defined(TABLING) || defined(SBA)
|
|
||||||
FOREIGN_WL(wid)->wl_sTR = NULL;
|
|
||||||
FOREIGN_WL(wid)->wl_sTR0 = NULL;
|
|
||||||
FOREIGN_WL(wid)->new_tr = NULL;
|
|
||||||
#else
|
|
||||||
FOREIGN_WL(wid)->wl_sTR = NULL;
|
|
||||||
FOREIGN_WL(wid)->wl_sTR0 = NULL;
|
|
||||||
FOREIGN_WL(wid)->new_tr = NULL;
|
|
||||||
#endif
|
|
||||||
FOREIGN_WL(wid)->conttop0 = NULL;
|
|
||||||
FOREIGN_WL(wid)->conttop = NULL;
|
|
||||||
FOREIGN_WL(wid)->disc_trail_entries = 0;
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->Gc_ma_h_top = NULL;
|
|
||||||
FOREIGN_WL(wid)->Gc_ma_h_list = NULL;
|
|
||||||
FOREIGN_WL(wid)->Gc_timestamp = 0L;
|
|
||||||
FOREIGN_WL(wid)->DB_vec = NULL;
|
|
||||||
FOREIGN_WL(wid)->DB_vec0 = NULL;
|
|
||||||
FOREIGN_WL(wid)->DB_root = NULL;
|
|
||||||
FOREIGN_WL(wid)->DB_nil = NULL;
|
|
||||||
#endif /* defined(YAPOR) || defined(THREADS) */
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->dynamic_arrays = NULL;
|
|
||||||
FOREIGN_WL(wid)->static_arrays = NULL;
|
|
||||||
FOREIGN_WL(wid)->global_variables = NULL;
|
|
||||||
FOREIGN_WL(wid)->allow_restart = FALSE;
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->cmem_first_block = NULL;
|
|
||||||
FOREIGN_WL(wid)->cmem_first_block_sz = 0L;
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->label_first_array = NULL;
|
|
||||||
FOREIGN_WL(wid)->label_first_array_sz = 0L;
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->Yap_ld_ = Yap_InitThreadIO(wid);
|
|
||||||
FOREIGN_WL(wid)->_execution = NULL;
|
|
||||||
|
|
||||||
#if (defined(YAPOR) || defined(TABLING)) && defined(THREADS)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef THREADS
|
|
||||||
InitThreadHandle(wid);
|
|
||||||
#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle)
|
|
||||||
#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void InitGlobal(void) {
|
|
||||||
|
|
||||||
#if THREADS
|
|
||||||
|
|
||||||
Yap_global->n_of_threads = 1;
|
|
||||||
|
|
||||||
Yap_global->n_of_threads_created = 1;
|
|
||||||
|
|
||||||
Yap_global->threads_total_time = 0L;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
|
|
||||||
INIT_LOCK(Yap_global->bgl);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Yap_global->allow_local_expansion = TRUE;
|
|
||||||
Yap_global->allow_global_expansion = TRUE;
|
|
||||||
Yap_global->allow_trail_expansion = TRUE;
|
|
||||||
Yap_global->size_of_overflow = 0;
|
|
||||||
|
|
||||||
Yap_global->agc_last_call = 0;
|
|
||||||
|
|
||||||
Yap_global->agc_threshold = 10000;
|
|
||||||
Yap_global->agc_hook = NULL;
|
|
||||||
|
|
||||||
#if HAVE_LIBREADLINE
|
|
||||||
Yap_global->readline_buf = NULL;
|
|
||||||
Yap_global->readline_pos = 0L;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef THREADS
|
|
||||||
INIT_LOCK(Yap_global->thread_handles_lock);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(TABLING)
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Yap_global->initialised = FALSE;
|
|
||||||
Yap_global->initialised_from_pl = FALSE;
|
|
||||||
Yap_global->pl_argc = 0;
|
|
||||||
Yap_global->pl_argv = NULL;
|
|
||||||
|
|
||||||
Yap_global->yap_halt_hook = NULL;
|
|
||||||
}
|
|
||||||
|
608
H/ihstruct.h
608
H/ihstruct.h
@ -1,304 +1,304 @@
|
|||||||
|
|
||||||
/* This file, ihstruct.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, ihstruct.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/HEAPFIELDS instead */
|
please do not update, update misc/HEAPFIELDS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if USE_DL_MALLOC
|
#if USE_DL_MALLOC
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
INIT_LOCK(Yap_heap_regs->dlmalloc_lock);
|
INIT_LOCK(Yap_heap_regs->dlmalloc_lock);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
||||||
#ifndef HeapUsed
|
#ifndef HeapUsed
|
||||||
#define HeapUsed Yap_givemallinfo()
|
#define HeapUsed Yap_givemallinfo()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
INIT_LOCK(Yap_heap_regs->free_blocks_lock);
|
INIT_LOCK(Yap_heap_regs->free_blocks_lock);
|
||||||
INIT_LOCK(Yap_heap_regs->heap_used_lock);
|
INIT_LOCK(Yap_heap_regs->heap_used_lock);
|
||||||
INIT_LOCK(Yap_heap_regs->heap_top_lock);
|
INIT_LOCK(Yap_heap_regs->heap_top_lock);
|
||||||
Yap_heap_regs->heap_top_owner = -1;
|
Yap_heap_regs->heap_top_owner = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if USE_THREADED_CODE
|
#if USE_THREADED_CODE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
|
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
|
||||||
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
||||||
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
|
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
|
||||||
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
|
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
|
||||||
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
|
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
|
||||||
Yap_heap_regs->orlast_op = Yap_opcode(_or_last);
|
Yap_heap_regs->orlast_op = Yap_opcode(_or_last);
|
||||||
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
|
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
InitInvisibleAtoms();
|
InitInvisibleAtoms();
|
||||||
InitWideAtoms();
|
InitWideAtoms();
|
||||||
InitAtoms();
|
InitAtoms();
|
||||||
|
|
||||||
#include "iatoms.h"
|
#include "iatoms.h"
|
||||||
#ifdef EUROTRA
|
#ifdef EUROTRA
|
||||||
Yap_heap_regs->term_dollar_u = MkAtomTerm(AtomDollarU);
|
Yap_heap_regs->term_dollar_u = MkAtomTerm(AtomDollarU);
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->term_prolog = MkAtomTerm(AtomProlog);
|
Yap_heap_regs->term_prolog = MkAtomTerm(AtomProlog);
|
||||||
Yap_heap_regs->term_refound_var = MkAtomTerm(AtomRefoundVar);
|
Yap_heap_regs->term_refound_var = MkAtomTerm(AtomRefoundVar);
|
||||||
Yap_heap_regs->user_module = MkAtomTerm(AtomUser);
|
Yap_heap_regs->user_module = MkAtomTerm(AtomUser);
|
||||||
Yap_heap_regs->idb_module = MkAtomTerm(AtomIDB);
|
Yap_heap_regs->idb_module = MkAtomTerm(AtomIDB);
|
||||||
Yap_heap_regs->attributes_module = MkAtomTerm(AtomAttributes);
|
Yap_heap_regs->attributes_module = MkAtomTerm(AtomAttributes);
|
||||||
Yap_heap_regs->charsio_module = MkAtomTerm(AtomCharsio);
|
Yap_heap_regs->charsio_module = MkAtomTerm(AtomCharsio);
|
||||||
Yap_heap_regs->terms_module = MkAtomTerm(AtomTerms);
|
Yap_heap_regs->terms_module = MkAtomTerm(AtomTerms);
|
||||||
Yap_heap_regs->system_module = MkAtomTerm(AtomSystem);
|
Yap_heap_regs->system_module = MkAtomTerm(AtomSystem);
|
||||||
Yap_heap_regs->operating_system_module = MkAtomTerm(AtomOperatingSystemSupport);
|
Yap_heap_regs->operating_system_module = MkAtomTerm(AtomOperatingSystemSupport);
|
||||||
Yap_heap_regs->readutil_module = MkAtomTerm(AtomReadutil);
|
Yap_heap_regs->readutil_module = MkAtomTerm(AtomReadutil);
|
||||||
Yap_heap_regs->hacks_module = MkAtomTerm(AtomYapHacks);
|
Yap_heap_regs->hacks_module = MkAtomTerm(AtomYapHacks);
|
||||||
Yap_heap_regs->arg_module = MkAtomTerm(AtomArg);
|
Yap_heap_regs->arg_module = MkAtomTerm(AtomArg);
|
||||||
Yap_heap_regs->globals_module = MkAtomTerm(AtomNb);
|
Yap_heap_regs->globals_module = MkAtomTerm(AtomNb);
|
||||||
Yap_heap_regs->swi_module = MkAtomTerm(AtomSwi);
|
Yap_heap_regs->swi_module = MkAtomTerm(AtomSwi);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->current_modules = NULL;
|
Yap_heap_regs->current_modules = NULL;
|
||||||
|
|
||||||
|
|
||||||
Yap_InitModules();
|
Yap_InitModules();
|
||||||
|
|
||||||
Yap_heap_regs->execution_mode = INTERPRETED;
|
Yap_heap_regs->execution_mode = INTERPRETED;
|
||||||
|
|
||||||
InitPredHash();
|
InitPredHash();
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->preds_in_hash_table = 0;
|
Yap_heap_regs->preds_in_hash_table = 0;
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->creep_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomCreep,1),PROLOG_MODULE));
|
Yap_heap_regs->creep_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomCreep,1),PROLOG_MODULE));
|
||||||
Yap_heap_regs->undef_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomUndefp,1),PROLOG_MODULE));
|
Yap_heap_regs->undef_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomUndefp,1),PROLOG_MODULE));
|
||||||
Yap_heap_regs->spy_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomSpy,1),PROLOG_MODULE));
|
Yap_heap_regs->spy_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomSpy,1),PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_fail = RepPredProp(PredPropByAtom(AtomFail,PROLOG_MODULE));
|
Yap_heap_regs->pred_fail = RepPredProp(PredPropByAtom(AtomFail,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_true = RepPredProp(PredPropByAtom(AtomTrue,PROLOG_MODULE));
|
Yap_heap_regs->pred_true = RepPredProp(PredPropByAtom(AtomTrue,PROLOG_MODULE));
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
Yap_heap_regs->wake_up_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomWakeUpGoal,2),PROLOG_MODULE));
|
Yap_heap_regs->wake_up_code = RepPredProp(PredPropByFunc(Yap_MkFunctor(AtomWakeUpGoal,2),PROLOG_MODULE));
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->pred_goal_expansion = RepPredProp(PredPropByFunc(FunctorGoalExpansion,USER_MODULE));
|
Yap_heap_regs->pred_goal_expansion = RepPredProp(PredPropByFunc(FunctorGoalExpansion,USER_MODULE));
|
||||||
Yap_heap_regs->pred_meta_call = RepPredProp(PredPropByFunc(FunctorMetaCall,PROLOG_MODULE));
|
Yap_heap_regs->pred_meta_call = RepPredProp(PredPropByFunc(FunctorMetaCall,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_dollar_catch = RepPredProp(PredPropByFunc(FunctorCatch,PROLOG_MODULE));
|
Yap_heap_regs->pred_dollar_catch = RepPredProp(PredPropByFunc(FunctorCatch,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_recorded_with_key = RepPredProp(PredPropByFunc(FunctorRecordedWithKey,PROLOG_MODULE));
|
Yap_heap_regs->pred_recorded_with_key = RepPredProp(PredPropByFunc(FunctorRecordedWithKey,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_log_upd_clause = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE));
|
Yap_heap_regs->pred_log_upd_clause = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_log_upd_clause_erase = RepPredProp(PredPropByFunc(FunctorDoLogUpdClauseErase,PROLOG_MODULE));
|
Yap_heap_regs->pred_log_upd_clause_erase = RepPredProp(PredPropByFunc(FunctorDoLogUpdClauseErase,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_log_upd_clause0 = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE));
|
Yap_heap_regs->pred_log_upd_clause0 = RepPredProp(PredPropByFunc(FunctorDoLogUpdClause,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_static_clause = RepPredProp(PredPropByFunc(FunctorDoStaticClause,PROLOG_MODULE));
|
Yap_heap_regs->pred_static_clause = RepPredProp(PredPropByFunc(FunctorDoStaticClause,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_throw = RepPredProp(PredPropByFunc(FunctorThrow,PROLOG_MODULE));
|
Yap_heap_regs->pred_throw = RepPredProp(PredPropByFunc(FunctorThrow,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_handle_throw = RepPredProp(PredPropByFunc(FunctorHandleThrow,PROLOG_MODULE));
|
Yap_heap_regs->pred_handle_throw = RepPredProp(PredPropByFunc(FunctorHandleThrow,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_is = RepPredProp(PredPropByFunc(FunctorIs,PROLOG_MODULE));
|
Yap_heap_regs->pred_is = RepPredProp(PredPropByFunc(FunctorIs,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_safe_call_cleanup = RepPredProp(PredPropByFunc(FunctorSafeCallCleanup,PROLOG_MODULE));
|
Yap_heap_regs->pred_safe_call_cleanup = RepPredProp(PredPropByFunc(FunctorSafeCallCleanup,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_restore_regs = RepPredProp(PredPropByFunc(FunctorRestoreRegs,PROLOG_MODULE));
|
Yap_heap_regs->pred_restore_regs = RepPredProp(PredPropByFunc(FunctorRestoreRegs,PROLOG_MODULE));
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
Yap_heap_regs->pred_getwork = RepPredProp(PredPropByAtom(AtomGetwork,PROLOG_MODULE));
|
Yap_heap_regs->pred_getwork = RepPredProp(PredPropByAtom(AtomGetwork,PROLOG_MODULE));
|
||||||
Yap_heap_regs->pred_getwork_seq = RepPredProp(PredPropByAtom(AtomGetworkSeq,PROLOG_MODULE));
|
Yap_heap_regs->pred_getwork_seq = RepPredProp(PredPropByAtom(AtomGetworkSeq,PROLOG_MODULE));
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
Yap_heap_regs->yap_do_low_level_trace = FALSE;
|
Yap_heap_regs->yap_do_low_level_trace = FALSE;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
INIT_LOCK(Yap_heap_regs->low_level_trace_lock);
|
INIT_LOCK(Yap_heap_regs->low_level_trace_lock);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Yap_heap_regs->clause_space = 0;
|
Yap_heap_regs->clause_space = 0;
|
||||||
Yap_heap_regs->index_space_Tree = 0;
|
Yap_heap_regs->index_space_Tree = 0;
|
||||||
Yap_heap_regs->index_space_EXT = 0;
|
Yap_heap_regs->index_space_EXT = 0;
|
||||||
Yap_heap_regs->index_space_SW = 0;
|
Yap_heap_regs->index_space_SW = 0;
|
||||||
Yap_heap_regs->lu_clause_space = 0;
|
Yap_heap_regs->lu_clause_space = 0;
|
||||||
Yap_heap_regs->lu_index_space_Tree = 0;
|
Yap_heap_regs->lu_index_space_Tree = 0;
|
||||||
Yap_heap_regs->lu_index_space_CP = 0;
|
Yap_heap_regs->lu_index_space_CP = 0;
|
||||||
Yap_heap_regs->lu_index_space_EXT = 0;
|
Yap_heap_regs->lu_index_space_EXT = 0;
|
||||||
Yap_heap_regs->lu_index_space_SW = 0;
|
Yap_heap_regs->lu_index_space_SW = 0;
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->dummycode->opc = Yap_opcode(_op_fail);
|
Yap_heap_regs->dummycode->opc = Yap_opcode(_op_fail);
|
||||||
Yap_heap_regs->failcode->opc = Yap_opcode(_op_fail);
|
Yap_heap_regs->failcode->opc = Yap_opcode(_op_fail);
|
||||||
Yap_heap_regs->nocode->opc = Yap_opcode(_Nstop);
|
Yap_heap_regs->nocode->opc = Yap_opcode(_Nstop);
|
||||||
InitEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail);
|
InitEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail);
|
||||||
|
|
||||||
InitEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail);
|
InitEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail);
|
||||||
|
|
||||||
InitOtaplInst(RTRYCODE,_retry_and_mark,PredFail);
|
InitOtaplInst(RTRYCODE,_retry_and_mark,PredFail);
|
||||||
#ifdef BEAM
|
#ifdef BEAM
|
||||||
Yap_heap_regs->beam_retry_code->opc = Yap_opcode(_beam_retry_code);
|
Yap_heap_regs->beam_retry_code->opc = Yap_opcode(_beam_retry_code);
|
||||||
#endif /* BEAM */
|
#endif /* BEAM */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
Yap_heap_regs->seq_def = FALSE;
|
Yap_heap_regs->seq_def = FALSE;
|
||||||
InitOtaplInst(GETWORK,_getwork,PredGetwork);
|
InitOtaplInst(GETWORK,_getwork,PredGetwork);
|
||||||
InitOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq);
|
InitOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq);
|
||||||
Yap_heap_regs->getwork_first_time->opc = Yap_opcode(_getwork_first_time);
|
Yap_heap_regs->getwork_first_time->opc = Yap_opcode(_getwork_first_time);
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
InitOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail);
|
InitOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail);
|
||||||
InitOtaplInst(TRY_ANSWER,_table_try_answer,PredFail);
|
InitOtaplInst(TRY_ANSWER,_table_try_answer,PredFail);
|
||||||
InitOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail);
|
InitOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail);
|
||||||
InitOtaplInst(COMPLETION,_table_completion,PredFail);
|
InitOtaplInst(COMPLETION,_table_completion,PredFail);
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->debugger_p_before_spy = NULL;
|
Yap_heap_regs->debugger_p_before_spy = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->retry_recordedp_code = NULL;
|
Yap_heap_regs->retry_recordedp_code = NULL;
|
||||||
Yap_heap_regs->retry_recorded_k_code = NULL;
|
Yap_heap_regs->retry_recorded_k_code = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->system_profiling = FALSE;
|
Yap_heap_regs->system_profiling = FALSE;
|
||||||
Yap_heap_regs->system_call_counting = FALSE;
|
Yap_heap_regs->system_call_counting = FALSE;
|
||||||
Yap_heap_regs->system_pred_goal_expansion_all = FALSE;
|
Yap_heap_regs->system_pred_goal_expansion_all = FALSE;
|
||||||
Yap_heap_regs->system_pred_goal_expansion_func = FALSE;
|
Yap_heap_regs->system_pred_goal_expansion_func = FALSE;
|
||||||
Yap_heap_regs->system_pred_goal_expansion_on = FALSE;
|
Yap_heap_regs->system_pred_goal_expansion_on = FALSE;
|
||||||
Yap_heap_regs->compiler_optimizer_on = TRUE;
|
Yap_heap_regs->compiler_optimizer_on = TRUE;
|
||||||
Yap_heap_regs->compiler_compile_mode = 0;
|
Yap_heap_regs->compiler_compile_mode = 0;
|
||||||
Yap_heap_regs->compiler_profiling = FALSE;
|
Yap_heap_regs->compiler_profiling = FALSE;
|
||||||
Yap_heap_regs->compiler_call_counting = FALSE;
|
Yap_heap_regs->compiler_call_counting = FALSE;
|
||||||
|
|
||||||
Yap_heap_regs->compiler_compile_arrays = FALSE;
|
Yap_heap_regs->compiler_compile_arrays = FALSE;
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
INIT_LOCK(Yap_heap_regs->dbterms_list_lock);
|
INIT_LOCK(Yap_heap_regs->dbterms_list_lock);
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->dbterms_list = NULL;
|
Yap_heap_regs->dbterms_list = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->expand_clauses_first = NULL;
|
Yap_heap_regs->expand_clauses_first = NULL;
|
||||||
Yap_heap_regs->expand_clauses_last = NULL;
|
Yap_heap_regs->expand_clauses_last = NULL;
|
||||||
Yap_heap_regs->expand_clauses = 0;
|
Yap_heap_regs->expand_clauses = 0;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
INIT_LOCK(Yap_heap_regs->expand_clauses_list_lock);
|
INIT_LOCK(Yap_heap_regs->expand_clauses_list_lock);
|
||||||
INIT_LOCK(Yap_heap_regs->op_list_lock);
|
INIT_LOCK(Yap_heap_regs->op_list_lock);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
Yap_heap_regs->new_cps = 0L;
|
Yap_heap_regs->new_cps = 0L;
|
||||||
Yap_heap_regs->live_cps = 0L;
|
Yap_heap_regs->live_cps = 0L;
|
||||||
Yap_heap_regs->dirty_cps = 0L;
|
Yap_heap_regs->dirty_cps = 0L;
|
||||||
Yap_heap_regs->freed_cps = 0L;
|
Yap_heap_regs->freed_cps = 0L;
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->expand_clauses_sz = 0L;
|
Yap_heap_regs->expand_clauses_sz = 0L;
|
||||||
|
|
||||||
Yap_heap_regs->udi_control_blocks = NULL;
|
Yap_heap_regs->udi_control_blocks = NULL;
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->static_predicates_marked = FALSE;
|
Yap_heap_regs->static_predicates_marked = FALSE;
|
||||||
|
|
||||||
Yap_heap_regs->IntKeys = NULL;
|
Yap_heap_regs->IntKeys = NULL;
|
||||||
Yap_heap_regs->IntLUKeys = NULL;
|
Yap_heap_regs->IntLUKeys = NULL;
|
||||||
Yap_heap_regs->IntBBKeys = NULL;
|
Yap_heap_regs->IntBBKeys = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->int_keys_size = INT_KEYS_DEFAULT_SIZE;
|
Yap_heap_regs->int_keys_size = INT_KEYS_DEFAULT_SIZE;
|
||||||
Yap_heap_regs->int_keys_timestamp = 0L;
|
Yap_heap_regs->int_keys_timestamp = 0L;
|
||||||
Yap_heap_regs->int_bb_keys_size = INT_KEYS_DEFAULT_SIZE;
|
Yap_heap_regs->int_bb_keys_size = INT_KEYS_DEFAULT_SIZE;
|
||||||
|
|
||||||
Yap_heap_regs->update_mode = UPDATE_MODE_LOGICAL;
|
Yap_heap_regs->update_mode = UPDATE_MODE_LOGICAL;
|
||||||
|
|
||||||
InitDBErasedMarker();
|
InitDBErasedMarker();
|
||||||
InitLogDBErasedMarker();
|
InitLogDBErasedMarker();
|
||||||
|
|
||||||
Yap_heap_regs->dead_static_clauses = NULL;
|
Yap_heap_regs->dead_static_clauses = NULL;
|
||||||
Yap_heap_regs->dead_mega_clauses = NULL;
|
Yap_heap_regs->dead_mega_clauses = NULL;
|
||||||
Yap_heap_regs->dead_static_indices = NULL;
|
Yap_heap_regs->dead_static_indices = NULL;
|
||||||
Yap_heap_regs->db_erased_list = NULL;
|
Yap_heap_regs->db_erased_list = NULL;
|
||||||
Yap_heap_regs->db_erased_ilist = NULL;
|
Yap_heap_regs->db_erased_ilist = NULL;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
INIT_LOCK(Yap_heap_regs->dead_static_clauses_lock);
|
INIT_LOCK(Yap_heap_regs->dead_static_clauses_lock);
|
||||||
INIT_LOCK(Yap_heap_regs->dead_mega_clauses_lock);
|
INIT_LOCK(Yap_heap_regs->dead_mega_clauses_lock);
|
||||||
INIT_LOCK(Yap_heap_regs->dead_static_indices_lock);
|
INIT_LOCK(Yap_heap_regs->dead_static_indices_lock);
|
||||||
#endif
|
#endif
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
|
|
||||||
Yap_heap_regs->num_of_atts = 1;
|
Yap_heap_regs->num_of_atts = 1;
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
InitFlags();
|
InitFlags();
|
||||||
|
|
||||||
Yap_heap_regs->op_list = NULL;
|
Yap_heap_regs->op_list = NULL;
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->yap_streams = NULL;
|
Yap_heap_regs->yap_streams = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->n_of_file_aliases = 0;
|
Yap_heap_regs->n_of_file_aliases = 0;
|
||||||
Yap_heap_regs->sz_of_file_aliases = 0;
|
Yap_heap_regs->sz_of_file_aliases = 0;
|
||||||
Yap_heap_regs->file_aliases = NULL;
|
Yap_heap_regs->file_aliases = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->atprompt = AtomNil;
|
Yap_heap_regs->atprompt = AtomNil;
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->char_conversion_table = NULL;
|
Yap_heap_regs->char_conversion_table = NULL;
|
||||||
Yap_heap_regs->char_conversion_table2 = NULL;
|
Yap_heap_regs->char_conversion_table2 = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->parser_error_style = EXCEPTION_ON_PARSER_ERROR;
|
Yap_heap_regs->parser_error_style = EXCEPTION_ON_PARSER_ERROR;
|
||||||
|
|
||||||
Yap_heap_regs->yap_lib_dir = NULL;
|
Yap_heap_regs->yap_lib_dir = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->last_wtime = NULL;
|
Yap_heap_regs->last_wtime = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->debugger_output_msg = 0L;
|
Yap_heap_regs->debugger_output_msg = 0L;
|
||||||
#if LOW_PROF
|
#if LOW_PROF
|
||||||
Yap_heap_regs->profiler_on = FALSE;
|
Yap_heap_regs->profiler_on = FALSE;
|
||||||
Yap_heap_regs->offline_profiler = FALSE;
|
Yap_heap_regs->offline_profiler = FALSE;
|
||||||
Yap_heap_regs->f_prof = NULL;
|
Yap_heap_regs->f_prof = NULL;
|
||||||
Yap_heap_regs->f_preds = NULL;
|
Yap_heap_regs->f_preds = NULL;
|
||||||
Yap_heap_regs->prof_preds = 0L;
|
Yap_heap_regs->prof_preds = 0L;
|
||||||
#endif /* LOW_PROF */
|
#endif /* LOW_PROF */
|
||||||
|
|
||||||
Yap_heap_regs->foreign_code_loaded = NULL;
|
Yap_heap_regs->foreign_code_loaded = NULL;
|
||||||
Yap_heap_regs->foreign_code_base = NULL;
|
Yap_heap_regs->foreign_code_base = NULL;
|
||||||
Yap_heap_regs->foreign_code_top = NULL;
|
Yap_heap_regs->foreign_code_top = NULL;
|
||||||
Yap_heap_regs->foreign_code_max = NULL;
|
Yap_heap_regs->foreign_code_max = NULL;
|
||||||
|
|
||||||
Yap_heap_regs->yap_records = NULL;
|
Yap_heap_regs->yap_records = NULL;
|
||||||
|
|
||||||
InitSWIAtoms();
|
InitSWIAtoms();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->swi_blob_types = NULL;
|
Yap_heap_regs->swi_blob_types = NULL;
|
||||||
Yap_heap_regs->swi_blobs = NULL;
|
Yap_heap_regs->swi_blobs = NULL;
|
||||||
|
280
H/rglobals.h
280
H/rglobals.h
@ -1,211 +1,69 @@
|
|||||||
|
|
||||||
/* This file, rglobals.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, rglobals.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/GLOBALS instead */
|
please do not update, update misc/GLOBALS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void RestoreWorker(int wid USES_REGS) {
|
static void RestoreGlobal(void) {
|
||||||
|
|
||||||
|
#if THREADS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
|
|
||||||
|
REINIT_LOCK(Yap_global->bgl);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if HAVE_LIBREADLINE
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef THREADS
|
||||||
|
REINIT_LOCK(Yap_global->thread_handles_lock);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(YAPOR) || defined(TABLING)
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->global_arena = TermToGlobalOrAtomAdjust(FOREIGN_WL(wid)->global_arena);
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreBallTerm(wid);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef COROUTINING
|
|
||||||
FOREIGN_WL(wid)->woken_goals = TermToGlobalAdjust(FOREIGN_WL(wid)->woken_goals);
|
|
||||||
FOREIGN_WL(wid)->atts_mutable_list = TermToGlobalAdjust(FOREIGN_WL(wid)->atts_mutable_list);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->gc_generation = TermToGlobalAdjust(FOREIGN_WL(wid)->gc_generation);
|
|
||||||
FOREIGN_WL(wid)->gc_phase = TermToGlobalAdjust(FOREIGN_WL(wid)->gc_phase);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if LOW_LEVEL_TRACER
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
REINIT_LOCK(FOREIGN_WL(wid)->signal_lock);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if DEBUG && COROUTINING
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#if defined(TABLING) || defined(SBA)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* defined(YAPOR) || defined(THREADS) */
|
|
||||||
|
|
||||||
FOREIGN_WL(wid)->dynamic_arrays = PtoArrayEAdjust(FOREIGN_WL(wid)->dynamic_arrays);
|
|
||||||
FOREIGN_WL(wid)->static_arrays = PtoArraySAdjust(FOREIGN_WL(wid)->static_arrays);
|
|
||||||
FOREIGN_WL(wid)->global_variables = PtoGlobalEAdjust(FOREIGN_WL(wid)->global_variables);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if (defined(YAPOR) || defined(TABLING)) && defined(THREADS)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef THREADS
|
|
||||||
|
|
||||||
#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle)
|
|
||||||
#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void RestoreGlobal(void) {
|
|
||||||
|
|
||||||
#if THREADS
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
|
|
||||||
REINIT_LOCK(Yap_global->bgl);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if HAVE_LIBREADLINE
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef THREADS
|
|
||||||
REINIT_LOCK(Yap_global->thread_handles_lock);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(TABLING)
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -1023,6 +1023,7 @@ RestoreBallTerm(int wid)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#include "rglobals.h"
|
#include "rglobals.h"
|
||||||
|
#include "rlocals.h"
|
||||||
|
|
||||||
/* restore the failcodes */
|
/* restore the failcodes */
|
||||||
static void
|
static void
|
||||||
|
608
H/rhstruct.h
608
H/rhstruct.h
@ -1,304 +1,304 @@
|
|||||||
|
|
||||||
/* This file, rhstruct.h, was generated automatically by "yap -L misc/buildheap"
|
/* This file, rhstruct.h, was generated automatically by "yap -L misc/buildheap"
|
||||||
please do not update, update misc/HEAPFIELDS instead */
|
please do not update, update misc/HEAPFIELDS instead */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if USE_DL_MALLOC
|
#if USE_DL_MALLOC
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
REINIT_LOCK(Yap_heap_regs->dlmalloc_lock);
|
REINIT_LOCK(Yap_heap_regs->dlmalloc_lock);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
|
||||||
#ifndef HeapUsed
|
#ifndef HeapUsed
|
||||||
#define HeapUsed Yap_givemallinfo()
|
#define HeapUsed Yap_givemallinfo()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
REINIT_LOCK(Yap_heap_regs->free_blocks_lock);
|
REINIT_LOCK(Yap_heap_regs->free_blocks_lock);
|
||||||
REINIT_LOCK(Yap_heap_regs->heap_used_lock);
|
REINIT_LOCK(Yap_heap_regs->heap_used_lock);
|
||||||
REINIT_LOCK(Yap_heap_regs->heap_top_lock);
|
REINIT_LOCK(Yap_heap_regs->heap_top_lock);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if USE_THREADED_CODE
|
#if USE_THREADED_CODE
|
||||||
Yap_heap_regs->op_rtable = OpRTableAdjust(Yap_heap_regs->op_rtable);
|
Yap_heap_regs->op_rtable = OpRTableAdjust(Yap_heap_regs->op_rtable);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
|
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
|
||||||
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
||||||
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
|
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
|
||||||
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
|
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
|
||||||
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
|
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
|
||||||
Yap_heap_regs->orlast_op = Yap_opcode(_or_last);
|
Yap_heap_regs->orlast_op = Yap_opcode(_or_last);
|
||||||
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
|
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreInvisibleAtoms();
|
RestoreInvisibleAtoms();
|
||||||
RestoreWideAtoms();
|
RestoreWideAtoms();
|
||||||
RestoreAtoms();
|
RestoreAtoms();
|
||||||
|
|
||||||
#include "ratoms.h"
|
#include "ratoms.h"
|
||||||
#ifdef EUROTRA
|
#ifdef EUROTRA
|
||||||
Yap_heap_regs->term_dollar_u = AtomTermAdjust(Yap_heap_regs->term_dollar_u);
|
Yap_heap_regs->term_dollar_u = AtomTermAdjust(Yap_heap_regs->term_dollar_u);
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->term_prolog = AtomTermAdjust(Yap_heap_regs->term_prolog);
|
Yap_heap_regs->term_prolog = AtomTermAdjust(Yap_heap_regs->term_prolog);
|
||||||
Yap_heap_regs->term_refound_var = AtomTermAdjust(Yap_heap_regs->term_refound_var);
|
Yap_heap_regs->term_refound_var = AtomTermAdjust(Yap_heap_regs->term_refound_var);
|
||||||
Yap_heap_regs->user_module = AtomTermAdjust(Yap_heap_regs->user_module);
|
Yap_heap_regs->user_module = AtomTermAdjust(Yap_heap_regs->user_module);
|
||||||
Yap_heap_regs->idb_module = AtomTermAdjust(Yap_heap_regs->idb_module);
|
Yap_heap_regs->idb_module = AtomTermAdjust(Yap_heap_regs->idb_module);
|
||||||
Yap_heap_regs->attributes_module = AtomTermAdjust(Yap_heap_regs->attributes_module);
|
Yap_heap_regs->attributes_module = AtomTermAdjust(Yap_heap_regs->attributes_module);
|
||||||
Yap_heap_regs->charsio_module = AtomTermAdjust(Yap_heap_regs->charsio_module);
|
Yap_heap_regs->charsio_module = AtomTermAdjust(Yap_heap_regs->charsio_module);
|
||||||
Yap_heap_regs->terms_module = AtomTermAdjust(Yap_heap_regs->terms_module);
|
Yap_heap_regs->terms_module = AtomTermAdjust(Yap_heap_regs->terms_module);
|
||||||
Yap_heap_regs->system_module = AtomTermAdjust(Yap_heap_regs->system_module);
|
Yap_heap_regs->system_module = AtomTermAdjust(Yap_heap_regs->system_module);
|
||||||
Yap_heap_regs->operating_system_module = AtomTermAdjust(Yap_heap_regs->operating_system_module);
|
Yap_heap_regs->operating_system_module = AtomTermAdjust(Yap_heap_regs->operating_system_module);
|
||||||
Yap_heap_regs->readutil_module = AtomTermAdjust(Yap_heap_regs->readutil_module);
|
Yap_heap_regs->readutil_module = AtomTermAdjust(Yap_heap_regs->readutil_module);
|
||||||
Yap_heap_regs->hacks_module = AtomTermAdjust(Yap_heap_regs->hacks_module);
|
Yap_heap_regs->hacks_module = AtomTermAdjust(Yap_heap_regs->hacks_module);
|
||||||
Yap_heap_regs->arg_module = AtomTermAdjust(Yap_heap_regs->arg_module);
|
Yap_heap_regs->arg_module = AtomTermAdjust(Yap_heap_regs->arg_module);
|
||||||
Yap_heap_regs->globals_module = AtomTermAdjust(Yap_heap_regs->globals_module);
|
Yap_heap_regs->globals_module = AtomTermAdjust(Yap_heap_regs->globals_module);
|
||||||
Yap_heap_regs->swi_module = AtomTermAdjust(Yap_heap_regs->swi_module);
|
Yap_heap_regs->swi_module = AtomTermAdjust(Yap_heap_regs->swi_module);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->current_modules = ModEntryPtrAdjust(Yap_heap_regs->current_modules);
|
Yap_heap_regs->current_modules = ModEntryPtrAdjust(Yap_heap_regs->current_modules);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestorePredHash();
|
RestorePredHash();
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->creep_code = PtoPredAdjust(Yap_heap_regs->creep_code);
|
Yap_heap_regs->creep_code = PtoPredAdjust(Yap_heap_regs->creep_code);
|
||||||
Yap_heap_regs->undef_code = PtoPredAdjust(Yap_heap_regs->undef_code);
|
Yap_heap_regs->undef_code = PtoPredAdjust(Yap_heap_regs->undef_code);
|
||||||
Yap_heap_regs->spy_code = PtoPredAdjust(Yap_heap_regs->spy_code);
|
Yap_heap_regs->spy_code = PtoPredAdjust(Yap_heap_regs->spy_code);
|
||||||
Yap_heap_regs->pred_fail = PtoPredAdjust(Yap_heap_regs->pred_fail);
|
Yap_heap_regs->pred_fail = PtoPredAdjust(Yap_heap_regs->pred_fail);
|
||||||
Yap_heap_regs->pred_true = PtoPredAdjust(Yap_heap_regs->pred_true);
|
Yap_heap_regs->pred_true = PtoPredAdjust(Yap_heap_regs->pred_true);
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
Yap_heap_regs->wake_up_code = PtoPredAdjust(Yap_heap_regs->wake_up_code);
|
Yap_heap_regs->wake_up_code = PtoPredAdjust(Yap_heap_regs->wake_up_code);
|
||||||
#endif
|
#endif
|
||||||
Yap_heap_regs->pred_goal_expansion = PtoPredAdjust(Yap_heap_regs->pred_goal_expansion);
|
Yap_heap_regs->pred_goal_expansion = PtoPredAdjust(Yap_heap_regs->pred_goal_expansion);
|
||||||
Yap_heap_regs->pred_meta_call = PtoPredAdjust(Yap_heap_regs->pred_meta_call);
|
Yap_heap_regs->pred_meta_call = PtoPredAdjust(Yap_heap_regs->pred_meta_call);
|
||||||
Yap_heap_regs->pred_dollar_catch = PtoPredAdjust(Yap_heap_regs->pred_dollar_catch);
|
Yap_heap_regs->pred_dollar_catch = PtoPredAdjust(Yap_heap_regs->pred_dollar_catch);
|
||||||
Yap_heap_regs->pred_recorded_with_key = PtoPredAdjust(Yap_heap_regs->pred_recorded_with_key);
|
Yap_heap_regs->pred_recorded_with_key = PtoPredAdjust(Yap_heap_regs->pred_recorded_with_key);
|
||||||
Yap_heap_regs->pred_log_upd_clause = PtoPredAdjust(Yap_heap_regs->pred_log_upd_clause);
|
Yap_heap_regs->pred_log_upd_clause = PtoPredAdjust(Yap_heap_regs->pred_log_upd_clause);
|
||||||
Yap_heap_regs->pred_log_upd_clause_erase = PtoPredAdjust(Yap_heap_regs->pred_log_upd_clause_erase);
|
Yap_heap_regs->pred_log_upd_clause_erase = PtoPredAdjust(Yap_heap_regs->pred_log_upd_clause_erase);
|
||||||
Yap_heap_regs->pred_log_upd_clause0 = PtoPredAdjust(Yap_heap_regs->pred_log_upd_clause0);
|
Yap_heap_regs->pred_log_upd_clause0 = PtoPredAdjust(Yap_heap_regs->pred_log_upd_clause0);
|
||||||
Yap_heap_regs->pred_static_clause = PtoPredAdjust(Yap_heap_regs->pred_static_clause);
|
Yap_heap_regs->pred_static_clause = PtoPredAdjust(Yap_heap_regs->pred_static_clause);
|
||||||
Yap_heap_regs->pred_throw = PtoPredAdjust(Yap_heap_regs->pred_throw);
|
Yap_heap_regs->pred_throw = PtoPredAdjust(Yap_heap_regs->pred_throw);
|
||||||
Yap_heap_regs->pred_handle_throw = PtoPredAdjust(Yap_heap_regs->pred_handle_throw);
|
Yap_heap_regs->pred_handle_throw = PtoPredAdjust(Yap_heap_regs->pred_handle_throw);
|
||||||
Yap_heap_regs->pred_is = PtoPredAdjust(Yap_heap_regs->pred_is);
|
Yap_heap_regs->pred_is = PtoPredAdjust(Yap_heap_regs->pred_is);
|
||||||
Yap_heap_regs->pred_safe_call_cleanup = PtoPredAdjust(Yap_heap_regs->pred_safe_call_cleanup);
|
Yap_heap_regs->pred_safe_call_cleanup = PtoPredAdjust(Yap_heap_regs->pred_safe_call_cleanup);
|
||||||
Yap_heap_regs->pred_restore_regs = PtoPredAdjust(Yap_heap_regs->pred_restore_regs);
|
Yap_heap_regs->pred_restore_regs = PtoPredAdjust(Yap_heap_regs->pred_restore_regs);
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
Yap_heap_regs->pred_getwork = PtoPredAdjust(Yap_heap_regs->pred_getwork);
|
Yap_heap_regs->pred_getwork = PtoPredAdjust(Yap_heap_regs->pred_getwork);
|
||||||
Yap_heap_regs->pred_getwork_seq = PtoPredAdjust(Yap_heap_regs->pred_getwork_seq);
|
Yap_heap_regs->pred_getwork_seq = PtoPredAdjust(Yap_heap_regs->pred_getwork_seq);
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
REINIT_LOCK(Yap_heap_regs->low_level_trace_lock);
|
REINIT_LOCK(Yap_heap_regs->low_level_trace_lock);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->dummycode->opc = Yap_opcode(_op_fail);
|
Yap_heap_regs->dummycode->opc = Yap_opcode(_op_fail);
|
||||||
Yap_heap_regs->failcode->opc = Yap_opcode(_op_fail);
|
Yap_heap_regs->failcode->opc = Yap_opcode(_op_fail);
|
||||||
Yap_heap_regs->nocode->opc = Yap_opcode(_Nstop);
|
Yap_heap_regs->nocode->opc = Yap_opcode(_Nstop);
|
||||||
RestoreEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail);
|
RestoreEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail);
|
||||||
|
|
||||||
RestoreEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail);
|
RestoreEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail);
|
||||||
|
|
||||||
RestoreOtaplInst(RTRYCODE,_retry_and_mark,PredFail);
|
RestoreOtaplInst(RTRYCODE,_retry_and_mark,PredFail);
|
||||||
#ifdef BEAM
|
#ifdef BEAM
|
||||||
Yap_heap_regs->beam_retry_code->opc = Yap_opcode(_beam_retry_code);
|
Yap_heap_regs->beam_retry_code->opc = Yap_opcode(_beam_retry_code);
|
||||||
#endif /* BEAM */
|
#endif /* BEAM */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
|
|
||||||
RestoreOtaplInst(GETWORK,_getwork,PredGetwork);
|
RestoreOtaplInst(GETWORK,_getwork,PredGetwork);
|
||||||
RestoreOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq);
|
RestoreOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq);
|
||||||
Yap_heap_regs->getwork_first_time->opc = Yap_opcode(_getwork_first_time);
|
Yap_heap_regs->getwork_first_time->opc = Yap_opcode(_getwork_first_time);
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
RestoreOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail);
|
RestoreOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail);
|
||||||
RestoreOtaplInst(TRY_ANSWER,_table_try_answer,PredFail);
|
RestoreOtaplInst(TRY_ANSWER,_table_try_answer,PredFail);
|
||||||
RestoreOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail);
|
RestoreOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail);
|
||||||
RestoreOtaplInst(COMPLETION,_table_completion,PredFail);
|
RestoreOtaplInst(COMPLETION,_table_completion,PredFail);
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->debugger_p_before_spy = PtoOpAdjust(Yap_heap_regs->debugger_p_before_spy);
|
Yap_heap_regs->debugger_p_before_spy = PtoOpAdjust(Yap_heap_regs->debugger_p_before_spy);
|
||||||
|
|
||||||
Yap_heap_regs->retry_recordedp_code = PtoOpAdjust(Yap_heap_regs->retry_recordedp_code);
|
Yap_heap_regs->retry_recordedp_code = PtoOpAdjust(Yap_heap_regs->retry_recordedp_code);
|
||||||
Yap_heap_regs->retry_recorded_k_code = PtoOpAdjust(Yap_heap_regs->retry_recorded_k_code);
|
Yap_heap_regs->retry_recorded_k_code = PtoOpAdjust(Yap_heap_regs->retry_recorded_k_code);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
REINIT_LOCK(Yap_heap_regs->dbterms_list_lock);
|
REINIT_LOCK(Yap_heap_regs->dbterms_list_lock);
|
||||||
#endif
|
#endif
|
||||||
RestoreDBTermsList();
|
RestoreDBTermsList();
|
||||||
|
|
||||||
|
|
||||||
RestoreExpandList();
|
RestoreExpandList();
|
||||||
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
REINIT_LOCK(Yap_heap_regs->expand_clauses_list_lock);
|
REINIT_LOCK(Yap_heap_regs->expand_clauses_list_lock);
|
||||||
REINIT_LOCK(Yap_heap_regs->op_list_lock);
|
REINIT_LOCK(Yap_heap_regs->op_list_lock);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
RestoreUdiControlBlocks();
|
RestoreUdiControlBlocks();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreIntKeys();
|
RestoreIntKeys();
|
||||||
RestoreIntLUKeys();
|
RestoreIntLUKeys();
|
||||||
RestoreIntBBKeys();
|
RestoreIntBBKeys();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreDBErasedMarker();
|
RestoreDBErasedMarker();
|
||||||
RestoreLogDBErasedMarker();
|
RestoreLogDBErasedMarker();
|
||||||
|
|
||||||
RestoreDeadStaticClauses();
|
RestoreDeadStaticClauses();
|
||||||
RestoreDeadMegaClauses();
|
RestoreDeadMegaClauses();
|
||||||
RestoreDeadStaticIndices();
|
RestoreDeadStaticIndices();
|
||||||
RestoreDBErasedList();
|
RestoreDBErasedList();
|
||||||
RestoreDBErasedIList();
|
RestoreDBErasedIList();
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
REINIT_LOCK(Yap_heap_regs->dead_static_clauses_lock);
|
REINIT_LOCK(Yap_heap_regs->dead_static_clauses_lock);
|
||||||
REINIT_LOCK(Yap_heap_regs->dead_mega_clauses_lock);
|
REINIT_LOCK(Yap_heap_regs->dead_mega_clauses_lock);
|
||||||
REINIT_LOCK(Yap_heap_regs->dead_static_indices_lock);
|
REINIT_LOCK(Yap_heap_regs->dead_static_indices_lock);
|
||||||
#endif
|
#endif
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->op_list = OpListAdjust(Yap_heap_regs->op_list);
|
Yap_heap_regs->op_list = OpListAdjust(Yap_heap_regs->op_list);
|
||||||
|
|
||||||
|
|
||||||
RestoreStreams();
|
RestoreStreams();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreAliases();
|
RestoreAliases();
|
||||||
|
|
||||||
Yap_heap_regs->atprompt = AtomAdjust(Yap_heap_regs->atprompt);
|
Yap_heap_regs->atprompt = AtomAdjust(Yap_heap_regs->atprompt);
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->char_conversion_table = CodeCharPAdjust(Yap_heap_regs->char_conversion_table);
|
Yap_heap_regs->char_conversion_table = CodeCharPAdjust(Yap_heap_regs->char_conversion_table);
|
||||||
Yap_heap_regs->char_conversion_table2 = CodeCharPAdjust(Yap_heap_regs->char_conversion_table2);
|
Yap_heap_regs->char_conversion_table2 = CodeCharPAdjust(Yap_heap_regs->char_conversion_table2);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Yap_heap_regs->yap_lib_dir = CodeCharPAdjust(Yap_heap_regs->yap_lib_dir);
|
Yap_heap_regs->yap_lib_dir = CodeCharPAdjust(Yap_heap_regs->yap_lib_dir);
|
||||||
|
|
||||||
Yap_heap_regs->last_wtime = CodeVoidPAdjust(Yap_heap_regs->last_wtime);
|
Yap_heap_regs->last_wtime = CodeVoidPAdjust(Yap_heap_regs->last_wtime);
|
||||||
|
|
||||||
|
|
||||||
#if LOW_PROF
|
#if LOW_PROF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* LOW_PROF */
|
#endif /* LOW_PROF */
|
||||||
|
|
||||||
RestoreForeignCode();
|
RestoreForeignCode();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreYapRecords();
|
RestoreYapRecords();
|
||||||
|
|
||||||
RestoreSWIAtoms();
|
RestoreSWIAtoms();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RestoreSWIBlobTypes();
|
RestoreSWIBlobTypes();
|
||||||
RestoreSWIBlobs();
|
RestoreSWIBlobs();
|
||||||
|
@ -161,18 +161,22 @@ HEADERS = \
|
|||||||
$(srcdir)/H/corout.h \
|
$(srcdir)/H/corout.h \
|
||||||
$(srcdir)/H/dlmalloc.h \
|
$(srcdir)/H/dlmalloc.h \
|
||||||
$(srcdir)/H/dglobals.h \
|
$(srcdir)/H/dglobals.h \
|
||||||
|
$(srcdir)/H/dlocals.h \
|
||||||
$(srcdir)/H/dhstruct.h \
|
$(srcdir)/H/dhstruct.h \
|
||||||
$(srcdir)/H/eval.h \
|
$(srcdir)/H/eval.h \
|
||||||
$(srcdir)/H/heapgc.h \
|
$(srcdir)/H/heapgc.h \
|
||||||
$(srcdir)/H/hglobals.h \
|
$(srcdir)/H/hglobals.h \
|
||||||
|
$(srcdir)/H/hlocals.h \
|
||||||
$(srcdir)/H/hstruct.h \
|
$(srcdir)/H/hstruct.h \
|
||||||
$(srcdir)/H/iglobals.h \
|
$(srcdir)/H/iglobals.h \
|
||||||
|
$(srcdir)/H/ilocals.h \
|
||||||
$(srcdir)/H/ihstruct.h \
|
$(srcdir)/H/ihstruct.h \
|
||||||
$(srcdir)/H/index.h \
|
$(srcdir)/H/index.h \
|
||||||
$(srcdir)/H/iopreds.h \
|
$(srcdir)/H/iopreds.h \
|
||||||
$(srcdir)/H/iswiatoms.h \
|
$(srcdir)/H/iswiatoms.h \
|
||||||
$(srcdir)/H/rclause.h \
|
$(srcdir)/H/rclause.h \
|
||||||
$(srcdir)/H/rglobals.h \
|
$(srcdir)/H/rglobals.h \
|
||||||
|
$(srcdir)/H/rlocals.h \
|
||||||
$(srcdir)/H/rheap.h \
|
$(srcdir)/H/rheap.h \
|
||||||
$(srcdir)/H/rhstruct.h \
|
$(srcdir)/H/rhstruct.h \
|
||||||
$(srcdir)/H/threads.h \
|
$(srcdir)/H/threads.h \
|
||||||
|
163
misc/GLOBALS
163
misc/GLOBALS
@ -17,169 +17,6 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
// Stuff that must be considered local to a thread or worker
|
|
||||||
START_WORKER_LOCAL
|
|
||||||
|
|
||||||
// Streams
|
|
||||||
int c_input_stream Yap_c_input_stream =0
|
|
||||||
int c_output_stream Yap_c_output_stream =1
|
|
||||||
int c_error_stream Yap_c_error_stream =2
|
|
||||||
|
|
||||||
/* shifts and restore: per local data-structure */
|
|
||||||
restoreinfo rinfo
|
|
||||||
. rinfo.old_ASP OldASP =NULL
|
|
||||||
. rinfo.old_LCL0 OldLCL0 =NULL
|
|
||||||
. rinfo.old_TR OldTR =NULL
|
|
||||||
. rinfo.old_GlobalBase OldGlobalBase =NULL
|
|
||||||
. rinfo.old_H OldH =NULL
|
|
||||||
. rinfo.old_H0 OldH0 =NULL
|
|
||||||
. rinfo.old_TrailBase OldTrailBase =NULL
|
|
||||||
. rinfo.old_TrailTop OldTrailTop =NULL
|
|
||||||
. rinfo.old_HeapBase OldHeapBase =NULL
|
|
||||||
. rinfo.old_HeapTop OldHeapTop =NULL
|
|
||||||
. rinfo.cl_diff ClDiff =0L
|
|
||||||
. rinfo.g_diff GDiff =0L
|
|
||||||
. rinfo.h_diff HDiff =0L
|
|
||||||
. rinfo.g_diff0 GDiff0 =0L
|
|
||||||
. rinfo.g_split GSplit =NULL
|
|
||||||
. rinfo.l_diff LDiff =0L
|
|
||||||
. rinfo.tr_diff TrDiff =0L
|
|
||||||
. rinfo.x_diff XDiff =0L
|
|
||||||
. rinfo.delay_diff DelayDiff =0L
|
|
||||||
. rinfo.base_diff BaseDiff =0L
|
|
||||||
|
|
||||||
struct reduction_counters call_counters
|
|
||||||
. call_counters.reductions ReductionsCounter =0L
|
|
||||||
. call_counters.reductions_retries PredEntriesCounter =0L
|
|
||||||
. call_counters.retries RetriesCounter =0L
|
|
||||||
. call_counters.reductions_on ReductionsCounterOn =0L
|
|
||||||
. call_counters.reductions_retries_on PredEntriesCounterOn =0L
|
|
||||||
. call_counters.retries_on RetriesCounterOn =0L
|
|
||||||
|
|
||||||
int interrupts_disabled Yap_InterruptsDisabled =FALSE
|
|
||||||
|
|
||||||
// support for consulting files
|
|
||||||
/* current consult stack */
|
|
||||||
union CONSULT_OBJ* consultsp ConsultSp =NULL
|
|
||||||
/* current maximum number of cells in consult stack */
|
|
||||||
UInt consultcapacity ConsultCapacity void
|
|
||||||
/* top of consult stack */
|
|
||||||
union CONSULT_OBJ* consultbase ConsultBase =NULL
|
|
||||||
/* low-water mark for consult */
|
|
||||||
union CONSULT_OBJ* consultlow ConsultLow =NULL
|
|
||||||
|
|
||||||
//global variables
|
|
||||||
Term global_arena GlobalArena =0L TermToGlobalOrAtomAdjust
|
|
||||||
UInt global_arena_overflows GlobalArenaOverflows =0L
|
|
||||||
Int delay_arena_overflows DelayArenaOverflows =0L
|
|
||||||
Int arena_overflows ArenaOverflows =0L
|
|
||||||
Int depth_arenas DepthArenas =0
|
|
||||||
|
|
||||||
int arith_error ArithError =FALSE
|
|
||||||
struct pred_entry* last_asserted_pred LastAssertedPred =NULL
|
|
||||||
int debug_on DebugOn =FALSE
|
|
||||||
struct format_status* f_info FormatInfo =NULL
|
|
||||||
char* scanner_stack ScannerStack =NULL
|
|
||||||
struct scanner_extra_alloc* scanner_extra_blocks ScannerExtraBlocks =NULL
|
|
||||||
struct DB_TERM *ball_term BallTerm =NULL RestoreBallTerm(wid)
|
|
||||||
UInt active_signals ActiveSignals =0L
|
|
||||||
UInt i_pred_arity IPredArity =0L
|
|
||||||
yamop* prof_end ProfEnd =NULL
|
|
||||||
int uncaught_throw UncaughtThrow =FALSE
|
|
||||||
int doing_undefp DoingUndefp =FALSE
|
|
||||||
Int start_line StartLine =0L
|
|
||||||
scratch_block scratchpad ScratchPad InitScratchPad(wid)
|
|
||||||
#ifdef COROUTINING
|
|
||||||
Term woken_goals WokenGoals =0L TermToGlobalAdjust
|
|
||||||
Term atts_mutable_list AttsMutableList =0L TermToGlobalAdjust
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// gc_stuff
|
|
||||||
Term gc_generation GcGeneration =0L TermToGlobalAdjust
|
|
||||||
Term gc_phase GcPhase =0L TermToGlobalAdjust
|
|
||||||
UInt gc_current_phase GcCurrentPhase =0L
|
|
||||||
UInt gc_calls GcCalls =0L
|
|
||||||
Int tot_gc_time TotGcTime =0L
|
|
||||||
YAP_ULONG_LONG tot_gc_recovered TotGcRecovered =0L
|
|
||||||
Int last_gc_time LastGcTime =0L
|
|
||||||
Int last_ss_time LastSSTime =0L
|
|
||||||
|
|
||||||
#if LOW_LEVEL_TRACER
|
|
||||||
Int total_cps Yap_total_choicepoints =0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// global variables that cannot be global in a thread/or-p implementation
|
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
lockvar signal_lock SignalLock MkLock
|
|
||||||
struct pred_entry* wpp WPP =NULL
|
|
||||||
/* in a single gc */
|
|
||||||
Int tot_marked total_marked =0L
|
|
||||||
Int tot_oldies total_oldies =0L
|
|
||||||
#if DEBUG && COROUTINING
|
|
||||||
UInt tot_smarked total_smarked =0L
|
|
||||||
#endif
|
|
||||||
struct choicept *wl_current_B current_B =NULL
|
|
||||||
CELL* wl_prev_HB prev_HB =NULL
|
|
||||||
CELL* hgen HGEN =NULL
|
|
||||||
CELL** ip_top iptop =NULL
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
char* b_p Yap_bp =NULL
|
|
||||||
#endif
|
|
||||||
#if defined(TABLING) || defined(SBA)
|
|
||||||
struct trail_frame* wl_sTR sTR =NULL
|
|
||||||
struct trail_frame* wl_sTR0 sTR0 =NULL
|
|
||||||
struct trail_frame* new_tr new_TR =NULL
|
|
||||||
#else
|
|
||||||
Term *wl_sTR sTR =NULL
|
|
||||||
Term *wl_sTR0 sTR0 =NULL
|
|
||||||
Term *new_tr new_TR =NULL
|
|
||||||
#endif
|
|
||||||
struct gc_mark_continuation* conttop0 cont_top0 =NULL
|
|
||||||
struct gc_mark_continuation* conttop cont_top =NULL
|
|
||||||
int disc_trail_entries discard_trail_entries =0
|
|
||||||
gc_ma_hash_entry Gc_ma_hash_table[GC_MAVARS_HASH_SIZE] gc_ma_hash_table void
|
|
||||||
gc_ma_hash_entry* Gc_ma_h_top gc_ma_h_top =NULL
|
|
||||||
gc_ma_hash_entry* Gc_ma_h_list gc_ma_h_list =NULL
|
|
||||||
UInt Gc_timestamp gc_timestamp =0L
|
|
||||||
ADDR DB_vec db_vec =NULL
|
|
||||||
ADDR DB_vec0 db_vec0 =NULL
|
|
||||||
struct RB_red_blk_node* DB_root db_root =NULL
|
|
||||||
struct RB_red_blk_node* DB_nil db_nil =NULL
|
|
||||||
#endif /* defined(YAPOR) || defined(THREADS) */
|
|
||||||
|
|
||||||
|
|
||||||
sigjmp_buf gc_restore Yap_gc_restore void
|
|
||||||
struct array_entry* dynamic_arrays DynamicArrays =NULL PtoArrayEAdjust
|
|
||||||
struct static_array_entry* static_arrays StaticArrays =NULL PtoArraySAdjust
|
|
||||||
struct global_entry* global_variables GlobalVariables =NULL PtoGlobalEAdjust
|
|
||||||
int allow_restart Yap_AllowRestart =FALSE
|
|
||||||
|
|
||||||
// Thread Local Area for Fast Storage of Intermediate Compiled Code.
|
|
||||||
struct mem_blk* cmem_first_block Yap_CMemFirstBlock =NULL
|
|
||||||
UInt cmem_first_block_sz Yap_CMemFirstBlockSz =0L
|
|
||||||
|
|
||||||
// Thread Local Area for Labels.
|
|
||||||
Int* label_first_array Yap_LabelFirstArray =NULL
|
|
||||||
UInt label_first_array_sz Yap_LabelFirstArraySz =0L
|
|
||||||
|
|
||||||
// Thread Local Area for SWI-Prolog emulation routines.
|
|
||||||
struct PL_local_data *Yap_ld_ PL_local_data_p =Yap_InitThreadIO(wid)
|
|
||||||
|
|
||||||
struct open_query_struct* _execution execution =NULL
|
|
||||||
|
|
||||||
// Ricardo's stuff
|
|
||||||
#if (defined(YAPOR) || defined(TABLING)) && defined(THREADS)
|
|
||||||
struct worker worker WORKER void
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef THREADS
|
|
||||||
struct thandle thread_handle ThreadHandle InitThreadHandle(wid)
|
|
||||||
#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle)
|
|
||||||
#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// END WORKER LOCAL STUFF
|
|
||||||
END_WORKER_LOCAL
|
|
||||||
|
|
||||||
// Stuff that must be shared by all threads or workers
|
// Stuff that must be shared by all threads or workers
|
||||||
START_WORKER_SHARED
|
START_WORKER_SHARED
|
||||||
|
@ -25,7 +25,11 @@ main :-
|
|||||||
file_filter_with_init('misc/GLOBALS','H/hglobals.h',gen_struct,Warning,['hglobals.h','GLOBALS']),
|
file_filter_with_init('misc/GLOBALS','H/hglobals.h',gen_struct,Warning,['hglobals.h','GLOBALS']),
|
||||||
file_filter_with_init('misc/GLOBALS','H/dglobals.h',gen_dstruct,Warning,['dglobals.h','GLOBALS']),
|
file_filter_with_init('misc/GLOBALS','H/dglobals.h',gen_dstruct,Warning,['dglobals.h','GLOBALS']),
|
||||||
file_filter_with_init('misc/GLOBALS','H/rglobals.h',gen_hstruct,Warning,['rglobals.h','GLOBALS']),
|
file_filter_with_init('misc/GLOBALS','H/rglobals.h',gen_hstruct,Warning,['rglobals.h','GLOBALS']),
|
||||||
file_filter_with_init('misc/GLOBALS','H/iglobals.h',gen_init,Warning,['iglobals.h','GLOBALS']).
|
file_filter_with_init('misc/GLOBALS','H/iglobals.h',gen_init,Warning,['iglobals.h','GLOBALS']),
|
||||||
|
file_filter_with_init('misc/LOCALS','H/hlocals.h',gen_struct,Warning,['hlocals.h','LOCALS']),
|
||||||
|
file_filter_with_init('misc/LOCALS','H/dlocals.h',gen_dstruct,Warning,['dlocals.h','LOCALS']),
|
||||||
|
file_filter_with_init('misc/LOCALS','H/rlocals.h',gen_hstruct,Warning,['rlocals.h','LOCALS']),
|
||||||
|
file_filter_with_init('misc/LOCALS','H/ilocals.h',gen_init,Warning,['ilocals.h','LOCALS']).
|
||||||
|
|
||||||
warning('~n /* This file, ~a, was generated automatically by \"yap -L misc/buildheap\"~n please do not update, update misc/~a instead */~n~n').
|
warning('~n /* This file, ~a, was generated automatically by \"yap -L misc/buildheap\"~n please do not update, update misc/~a instead */~n~n').
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user