new atoms, terms and slight functionality

This commit is contained in:
Vítor Santos Costa 2015-06-19 00:56:24 +01:00
parent 3b42554a68
commit 5746edafaf
23 changed files with 699 additions and 143 deletions

View File

@ -24,6 +24,7 @@
#define GLOBAL_InitialisedFromPL Yap_global->InitialisedFromPL_ #define GLOBAL_InitialisedFromPL Yap_global->InitialisedFromPL_
#define GLOBAL_PL_Argc Yap_global->PL_Argc_ #define GLOBAL_PL_Argc Yap_global->PL_Argc_
#define GLOBAL_PL_Argv Yap_global->PL_Argv_ #define GLOBAL_PL_Argv Yap_global->PL_Argv_
#define GLOBAL_FAST_BOOT_FLAG Yap_global->FAST_BOOT_FLAG_
#define GLOBAL_HaltHooks Yap_global->HaltHooks_ #define GLOBAL_HaltHooks Yap_global->HaltHooks_
#define GLOBAL_JIT_finalizer Yap_global->JIT_finalizer_ #define GLOBAL_JIT_finalizer Yap_global->JIT_finalizer_
@ -69,12 +70,14 @@
#define GLOBAL_WithMutex Yap_global->WithMutex_ #define GLOBAL_WithMutex Yap_global->WithMutex_
#endif /* THREADS */ #endif /* THREADS */
#define GLOBAL_stdout Yap_global->stdout_ #define GLOBAL_Stream Yap_global->Stream_
#define GLOBAL_stderr Yap_global->stderr_
#define GLOBAL_argv Yap_global->argv_ #define GLOBAL_argv Yap_global->argv_
#define GLOBAL_argc Yap_global->argc_ #define GLOBAL_argc Yap_global->argc_
#define GLOBAL_Flags Yap_global->Flags_
#define GLOBAL_flagCount Yap_global->flagCount_
#ifdef COROUTINING #ifdef COROUTINING
#define GLOBAL_attas Yap_global->attas_ #define GLOBAL_attas Yap_global->attas_
@ -134,3 +137,8 @@
#endif #endif
#define GLOBAL_Home Yap_global->Home_ #define GLOBAL_Home Yap_global->Home_
#define GLOBAL_CharConversionTable Yap_global->CharConversionTable_
#define GLOBAL_CharConversionTable2 Yap_global->CharConversionTable2_
#define GLOBAL_LastWtimePtr Yap_global->LastWtimePtr_

View File

@ -85,8 +85,51 @@
#ifdef EUROTRA #ifdef EUROTRA
#define TermDollarU Yap_heap_regs->term_dollar_u #define TermDollarU Yap_heap_regs->term_dollar_u
#endif #endif
#define TermAppend Yap_heap_regs->term_append
#define TermAtom Yap_heap_regs->term_atomd
#define TermBinary Yap_heap_regs->term_binary
#define TermBoolean Yap_heap_regs->term_boolean
#define TermChars Yap_heap_regs->term_chars
#define TermCodes Yap_heap_regs->term_codes
#define TermCompact Yap_heap_regs->term_compact
#define TermDec10 Yap_heap_regs->term_dec10
#define TermDots Yap_heap_regs->term_dots
#define TermEof Yap_heap_regs->term_eof
#define TermEOfCode Yap_heap_regs->term_eof_code
#define TermError Yap_heap_regs->term_error
#define TermException Yap_heap_regs->term_exception
#define TermFail Yap_heap_regs->term_fail
#define TermFalse Yap_heap_regs->term_false
#define TermFloat Yap_heap_regs->term_float
#define TermGlobal Yap_heap_regs->term_global
#define TermIgnore Yap_heap_regs->term_ignore
#define TermInteger Yap_heap_regs->term_integer
#define TermMax Yap_heap_regs->term_max
#define TermModule Yap_heap_regs->term_module
#define TermMulti Yap_heap_regs->term_multi
#define TermOff Yap_heap_regs->term_off
#define TermOn Yap_heap_regs->term_on
#define TermPortray Yap_heap_regs->term_portray
#define TermProlog Yap_heap_regs->term_prolog #define TermProlog Yap_heap_regs->term_prolog
#define TermQuiet Yap_heap_regs->term_quiet
#define TermRead Yap_heap_regs->term_read
#define TermReadOnly Yap_heap_regs->term_read_only
#define TermReadWrite Yap_heap_regs->term_read_write
#define TermReFoundVar Yap_heap_regs->term_refound_var #define TermReFoundVar Yap_heap_regs->term_refound_var
#define TermReset Yap_heap_regs->term_reset
#define TermSilent Yap_heap_regs->term_silent
#define TermSingle Yap_heap_regs->term_single
#define TermSource Yap_heap_regs->term_source
#define TermString Yap_heap_regs->term_string
#define TermSymbolChar Yap_heap_regs->term_symbolchar
#define TermTerm Yap_heap_regs->term_term
#define TermText Yap_heap_regs->term_text
#define TermThread Yap_heap_regs->term_thread
#define TermTrue Yap_heap_regs->term_true
#define TermWarning Yap_heap_regs->term_warning
#define TermWrite Yap_heap_regs->term_write
#define TermXml Yap_heap_regs->term_xml
#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
@ -111,6 +154,12 @@
#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
@ -267,22 +316,8 @@
#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 OpList Yap_heap_regs->op_list #define OpList Yap_heap_regs->op_list
#define CharConversionTable Yap_heap_regs->char_conversion_table
#define CharConversionTable2 Yap_heap_regs->char_conversion_table2
#define ParserErrorStyle Yap_heap_regs->parser_error_style
#define Yap_LibDir Yap_heap_regs->yap_lib_dir
#define Yap_ForeignDir Yap_heap_regs->yap_foreign_dir
#define Yap_CommonsDir Yap_heap_regs->yap_commons_dir
#define Yap_BinDir Yap_heap_regs->yap_bin_dir
#define LastWtimePtr Yap_heap_regs->last_wtime
#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
@ -299,10 +334,10 @@
#define EmptyWakeups Yap_heap_regs->empty_wakeups #define EmptyWakeups Yap_heap_regs->empty_wakeups
#define MaxEmptyWakeups Yap_heap_regs->max_empty_wakeups #define MaxEmptyWakeups Yap_heap_regs->max_empty_wakeups
#define SWI_BlobTypes Yap_heap_regs->swi_blob_types #define BlobTypes Yap_heap_regs->swi_blob_types
#define SWI_Blobs Yap_heap_regs->swi_blobs #define Blobs Yap_heap_regs->swi_blobs
#define NOfBlobs Yap_heap_regs->nofblobs #define NOfBlobs Yap_heap_regs->nofblobs
#define NOfBlobsMax Yap_heap_regs->nofblobsmax #define NOfBlobsMax Yap_heap_regs->nofblobsmax
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
#define SWI_Blobs_Lock Yap_heap_regs->swi_blobs_lock #define Blobs_Lock Yap_heap_regs->blobs_lock
#endif #endif

View File

@ -5,12 +5,46 @@
#define LOCAL_FileAliases LOCAL->FileAliases_
#define REMOTE_FileAliases(wid) REMOTE(wid)->FileAliases_
#define LOCAL_NOfFileAliases LOCAL->NOfFileAliases_
#define REMOTE_NOfFileAliases(wid) REMOTE(wid)->NOfFileAliases_
#define LOCAL_SzOfFileAliases LOCAL->SzOfFileAliases_
#define REMOTE_SzOfFileAliases(wid) REMOTE(wid)->SzOfFileAliases_
#define LOCAL_c_input_stream LOCAL->c_input_stream_ #define LOCAL_c_input_stream LOCAL->c_input_stream_
#define REMOTE_c_input_stream(wid) REMOTE(wid)->c_input_stream_ #define REMOTE_c_input_stream(wid) REMOTE(wid)->c_input_stream_
#define LOCAL_c_output_stream LOCAL->c_output_stream_ #define LOCAL_c_output_stream LOCAL->c_output_stream_
#define REMOTE_c_output_stream(wid) REMOTE(wid)->c_output_stream_ #define REMOTE_c_output_stream(wid) REMOTE(wid)->c_output_stream_
#define LOCAL_c_error_stream LOCAL->c_error_stream_ #define LOCAL_c_error_stream LOCAL->c_error_stream_
#define REMOTE_c_error_stream(wid) REMOTE(wid)->c_error_stream_ #define REMOTE_c_error_stream(wid) REMOTE(wid)->c_error_stream_
#define LOCAL_sockets_io LOCAL->sockets_io_
#define REMOTE_sockets_io(wid) REMOTE(wid)->sockets_io_
#define LOCAL_newline LOCAL->newline_
#define REMOTE_newline(wid) REMOTE(wid)->newline_
#define LOCAL_FormatInfo LOCAL->FormatInfo_
#define REMOTE_FormatInfo(wid) REMOTE(wid)->FormatInfo_
#define LOCAL_AtPrompt LOCAL->AtPrompt_
#define REMOTE_AtPrompt(wid) REMOTE(wid)->AtPrompt_
#define LOCAL_Prompt LOCAL->Prompt_
#define REMOTE_Prompt(wid) REMOTE(wid)->Prompt_
#define LOCAL_encoding LOCAL->encoding_
#define REMOTE_encoding(wid) REMOTE(wid)->encoding_
#define LOCAL_quasi_quotations LOCAL->quasi_quotations_
#define REMOTE_quasi_quotations(wid) REMOTE(wid)->quasi_quotations_
#define LOCAL_default_priority LOCAL->default_priority_
#define REMOTE_default_priority(wid) REMOTE(wid)->default_priority_
#define LOCAL_eot_before_eof LOCAL->eot_before_eof_
#define REMOTE_eot_before_eof(wid) REMOTE(wid)->eot_before_eof_
#define LOCAL_max_depth LOCAL->max_depth_
#define REMOTE_max_depth(wid) REMOTE(wid)->max_depth_
#define LOCAL_max_list LOCAL->max_list_
#define REMOTE_max_list(wid) REMOTE(wid)->max_list_
#define LOCAL_max_write_args LOCAL->max_write_args_
#define REMOTE_max_write_args(wid) REMOTE(wid)->max_write_args_
#define LOCAL_OldASP LOCAL->OldASP_ #define LOCAL_OldASP LOCAL->OldASP_
#define REMOTE_OldASP(wid) REMOTE(wid)->OldASP_ #define REMOTE_OldASP(wid) REMOTE(wid)->OldASP_
@ -80,6 +114,10 @@
#define REMOTE_ConsultLow(wid) REMOTE(wid)->ConsultLow_ #define REMOTE_ConsultLow(wid) REMOTE(wid)->ConsultLow_
#define LOCAL_VarNames LOCAL->VarNames_ #define LOCAL_VarNames LOCAL->VarNames_
#define REMOTE_VarNames(wid) REMOTE(wid)->VarNames_ #define REMOTE_VarNames(wid) REMOTE(wid)->VarNames_
#define LOCAL_SourceFileName LOCAL->SourceFileName_
#define REMOTE_SourceFileName(wid) REMOTE(wid)->SourceFileName_
#define LOCAL_SourceFileLineno LOCAL->SourceFileLineno_
#define REMOTE_SourceFileLineno(wid) REMOTE(wid)->SourceFileLineno_
#define LOCAL_GlobalArena LOCAL->GlobalArena_ #define LOCAL_GlobalArena LOCAL->GlobalArena_
#define REMOTE_GlobalArena(wid) REMOTE(wid)->GlobalArena_ #define REMOTE_GlobalArena(wid) REMOTE(wid)->GlobalArena_
@ -219,8 +257,7 @@
#define LOCAL_LabelFirstArraySz LOCAL->LabelFirstArraySz_ #define LOCAL_LabelFirstArraySz LOCAL->LabelFirstArraySz_
#define REMOTE_LabelFirstArraySz(wid) REMOTE(wid)->LabelFirstArraySz_ #define REMOTE_LabelFirstArraySz(wid) REMOTE(wid)->LabelFirstArraySz_
#define LOCAL_PL_local_data_p LOCAL->PL_local_data_p_
#define REMOTE_PL_local_data_p(wid) REMOTE(wid)->PL_local_data_p_
#ifdef THREADS #ifdef THREADS
#define LOCAL_ThreadHandle LOCAL->ThreadHandle_ #define LOCAL_ThreadHandle LOCAL->ThreadHandle_
#define REMOTE_ThreadHandle(wid) REMOTE(wid)->ThreadHandle_ #define REMOTE_ThreadHandle(wid) REMOTE(wid)->ThreadHandle_
@ -228,6 +265,8 @@
#if defined(YAPOR) || defined(TABLING) #if defined(YAPOR) || defined(TABLING)
#define LOCAL_optyap_data LOCAL->optyap_data_ #define LOCAL_optyap_data LOCAL->optyap_data_
#define REMOTE_optyap_data(wid) REMOTE(wid)->optyap_data_ #define REMOTE_optyap_data(wid) REMOTE(wid)->optyap_data_
#define LOCAL_TabMode LOCAL->TabMode_
#define REMOTE_TabMode(wid) REMOTE(wid)->TabMode_
#endif /* YAPOR || TABLING */ #endif /* YAPOR || TABLING */
#define LOCAL_InterruptsDisabled LOCAL->InterruptsDisabled_ #define LOCAL_InterruptsDisabled LOCAL->InterruptsDisabled_
#define REMOTE_InterruptsDisabled(wid) REMOTE(wid)->InterruptsDisabled_ #define REMOTE_InterruptsDisabled(wid) REMOTE(wid)->InterruptsDisabled_
@ -287,11 +326,18 @@
#define LOCAL_FileNameBuf2 LOCAL->FileNameBuf2_ #define LOCAL_FileNameBuf2 LOCAL->FileNameBuf2_
#define REMOTE_FileNameBuf2(wid) REMOTE(wid)->FileNameBuf2_ #define REMOTE_FileNameBuf2(wid) REMOTE(wid)->FileNameBuf2_
#define LOCAL_BreakLevel LOCAL->BreakLevel_
#define REMOTE_BreakLevel(wid) REMOTE(wid)->BreakLevel_
#define LOCAL_PrologMode LOCAL->PrologMode_ #define LOCAL_PrologMode LOCAL->PrologMode_
#define REMOTE_PrologMode(wid) REMOTE(wid)->PrologMode_ #define REMOTE_PrologMode(wid) REMOTE(wid)->PrologMode_
#define LOCAL_CritLocks LOCAL->CritLocks_ #define LOCAL_CritLocks LOCAL->CritLocks_
#define REMOTE_CritLocks(wid) REMOTE(wid)->CritLocks_ #define REMOTE_CritLocks(wid) REMOTE(wid)->CritLocks_
#define LOCAL_Flags LOCAL->Flags_
#define REMOTE_Flags(wid) REMOTE(wid)->Flags_
#define LOCAL_flagCount LOCAL->flagCount_
#define REMOTE_flagCount(wid) REMOTE(wid)->flagCount_
#ifdef ANALYST #ifdef ANALYST
#define LOCAL_opcount LOCAL->opcount_ #define LOCAL_opcount LOCAL->opcount_

View File

@ -24,6 +24,7 @@ typedef struct global_data {
int InitialisedFromPL_; int InitialisedFromPL_;
int PL_Argc_; int PL_Argc_;
char** PL_Argv_; char** PL_Argv_;
bool FAST_BOOT_FLAG_;
struct halt_hook* HaltHooks_; struct halt_hook* HaltHooks_;
fptr_t JIT_finalizer_; fptr_t JIT_finalizer_;
@ -69,12 +70,14 @@ typedef struct global_data {
struct swi_mutex* WithMutex_; struct swi_mutex* WithMutex_;
#endif /* THREADS */ #endif /* THREADS */
struct io_stream* stdout_; struct stream_desc* Stream_;
struct io_stream* stderr_;
char** argv_; char** argv_;
int argc_; int argc_;
union flagTerm* Flags_;
UInt flagCount_;
#ifdef COROUTINING #ifdef COROUTINING
ext_op attas_[attvars_ext+1]; ext_op attas_[attvars_ext+1];
@ -133,4 +136,9 @@ typedef struct global_data {
lockvar MUT_ACCESS_; lockvar MUT_ACCESS_;
#endif #endif
char* Home_; char* Home_;
char* CharConversionTable_;
char* CharConversionTable2_;
void* LastWtimePtr_;
} w_shared; } w_shared;

View File

@ -5,9 +5,28 @@
typedef struct worker_local { typedef struct worker_local {
struct AliasDescS* FileAliases_;
int NOfFileAliases_;
int SzOfFileAliases_;
int c_input_stream_; int c_input_stream_;
int c_output_stream_; int c_output_stream_;
int c_error_stream_; int c_error_stream_;
bool sockets_io_;
bool newline_;
struct format_status* FormatInfo_;
Atom AtPrompt_;
char Prompt_[MAX_PROMPT+1];
encoding_t encoding_;
bool quasi_quotations_;
UInt default_priority_;
bool eot_before_eof_;
UInt max_depth_;
UInt max_list_;
UInt max_write_args_;
CELL* OldASP_; CELL* OldASP_;
CELL* OldLCL0_; CELL* OldLCL0_;
@ -46,6 +65,8 @@ typedef struct worker_local {
union CONSULT_OBJ* ConsultLow_; union CONSULT_OBJ* ConsultLow_;
Term VarNames_; Term VarNames_;
Atom SourceFileName_;
UInt SourceFileLineno_;
Term GlobalArena_; Term GlobalArena_;
UInt GlobalArenaOverflows_; UInt GlobalArenaOverflows_;
@ -121,12 +142,13 @@ typedef struct worker_local {
Int* LabelFirstArray_; Int* LabelFirstArray_;
UInt LabelFirstArraySz_; UInt LabelFirstArraySz_;
struct PL_local_data* PL_local_data_p_;
#ifdef THREADS #ifdef THREADS
struct thandle ThreadHandle_; struct thandle ThreadHandle_;
#endif /* THREADS */ #endif /* THREADS */
#if defined(YAPOR) || defined(TABLING) #if defined(YAPOR) || defined(TABLING)
struct local_optyap_data optyap_data_; struct local_optyap_data optyap_data_;
UInt TabMode_;
#endif /* YAPOR || TABLING */ #endif /* YAPOR || TABLING */
int InterruptsDisabled_; int InterruptsDisabled_;
struct open_query_struct* execution_; struct open_query_struct* execution_;
@ -159,9 +181,13 @@ typedef struct worker_local {
char FileNameBuf_[YAP_FILENAME_MAX]; char FileNameBuf_[YAP_FILENAME_MAX];
char FileNameBuf2_[YAP_FILENAME_MAX]; char FileNameBuf2_[YAP_FILENAME_MAX];
UInt BreakLevel_;
Int PrologMode_; Int PrologMode_;
int CritLocks_; int CritLocks_;
union flagTerm* Flags_;
UInt flagCount_;
#ifdef ANALYST #ifdef ANALYST
YAP_ULONG_LONG opcount_[_std_top+1]; YAP_ULONG_LONG opcount_[_std_top+1];

View File

@ -85,8 +85,51 @@
#ifdef EUROTRA #ifdef EUROTRA
Term term_dollar_u; Term term_dollar_u;
#endif #endif
Term term_append;
Term term_atomd;
Term term_binary;
Term term_boolean;
Term term_chars;
Term term_codes;
Term term_compact;
Term term_dec10;
Term term_dots;
Term term_eof;
Term term_eof_code;
Term term_error;
Term term_exception;
Term term_fail;
Term term_false;
Term term_float;
Term term_global;
Term term_ignore;
Term term_integer;
Term term_max;
Term term_module;
Term term_multi;
Term term_off;
Term term_on;
Term term_portray;
Term term_prolog; Term term_prolog;
Term term_quiet;
Term term_read;
Term term_read_only;
Term term_read_write;
Term term_refound_var; Term term_refound_var;
Term term_reset;
Term term_silent;
Term term_single;
Term term_source;
Term term_string;
Term term_symbolchar;
Term term_term;
Term term_text;
Term term_thread;
Term term_true;
Term term_warning;
Term term_write;
Term term_xml;
Term user_module; Term user_module;
Term idb_module; Term idb_module;
Term attributes_module; Term attributes_module;
@ -111,6 +154,12 @@
yap_exec_mode execution_mode; yap_exec_mode execution_mode;
struct pred_entry **pred_hash; struct pred_entry **pred_hash;
@ -267,22 +316,8 @@
UInt atts_size; UInt atts_size;
#endif #endif
Int yap_flags_field[NUMBER_OF_YAP_FLAGS];
struct operator_entry *op_list; struct operator_entry *op_list;
char *char_conversion_table;
char *char_conversion_table2;
int parser_error_style;
const char *yap_lib_dir;
const char *yap_foreign_dir;
const char *yap_commons_dir;
const char *yap_bin_dir;
void *last_wtime;
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;
@ -299,10 +334,10 @@
Atom empty_wakeups[MAX_EMPTY_WAKEUPS]; Atom empty_wakeups[MAX_EMPTY_WAKEUPS];
int max_empty_wakeups; int max_empty_wakeups;
struct PL_blob_t *swi_blob_types; struct YAP_blob_t *swi_blob_types;
struct AtomEntryStruct *swi_blobs; struct AtomEntryStruct *swi_blobs;
UInt nofblobs; UInt nofblobs;
UInt nofblobsmax; UInt nofblobsmax;
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
lockvar swi_blobs_lock; lockvar blobs_lock;
#endif #endif

View File

@ -34,9 +34,10 @@
AtomB = Yap_FullLookupAtom("$last_choice_pt"); AtomB = Yap_FullLookupAtom("$last_choice_pt");
AtomBatched = Yap_LookupAtom("batched"); AtomBatched = Yap_LookupAtom("batched");
AtomBetween = Yap_LookupAtom("between"); AtomBetween = Yap_LookupAtom("between");
AtomHugeInt = Yap_LookupAtom("huge_int"); AtomBinary = Yap_LookupAtom("binary");
AtomBigNum = Yap_LookupAtom("big_num"); AtomBigNum = Yap_LookupAtom("big_num");
AtomBinaryStream = Yap_LookupAtom("binary_stream"); AtomBinaryStream = Yap_LookupAtom("binary_stream");
AtomBoolean = Yap_LookupAtom("boolean");
AtomBraces = Yap_LookupAtom("{}"); AtomBraces = Yap_LookupAtom("{}");
AtomBreak = Yap_FullLookupAtom("$break"); AtomBreak = Yap_FullLookupAtom("$break");
AtomByte = Yap_LookupAtom("byte"); AtomByte = Yap_LookupAtom("byte");
@ -51,6 +52,7 @@
AtomCharsio = Yap_LookupAtom("charsio"); AtomCharsio = Yap_LookupAtom("charsio");
AtomCharacter = Yap_LookupAtom("character"); AtomCharacter = Yap_LookupAtom("character");
AtomCharacterCode = Yap_LookupAtom("character_code"); AtomCharacterCode = Yap_LookupAtom("character_code");
AtomChars = Yap_LookupAtom("chars");
AtomCharset = Yap_LookupAtom("charset"); AtomCharset = Yap_LookupAtom("charset");
AtomCleanCall = Yap_FullLookupAtom("$clean_call"); AtomCleanCall = Yap_FullLookupAtom("$clean_call");
AtomColomn = Yap_LookupAtom(":"); AtomColomn = Yap_LookupAtom(":");
@ -59,6 +61,7 @@
AtomCoInductive = Yap_LookupAtom("coinductive"); AtomCoInductive = Yap_LookupAtom("coinductive");
AtomComma = Yap_LookupAtom(","); AtomComma = Yap_LookupAtom(",");
AtomCommentHook = Yap_LookupAtom("comment_hook"); AtomCommentHook = Yap_LookupAtom("comment_hook");
AtomCompact = Yap_LookupAtom("compact");
AtomCompound = Yap_LookupAtom("compound"); AtomCompound = Yap_LookupAtom("compound");
AtomConsistencyError = Yap_LookupAtom("consistency_error"); AtomConsistencyError = Yap_LookupAtom("consistency_error");
AtomConsultOnBoot = Yap_FullLookupAtom("$consult_on_boot"); AtomConsultOnBoot = Yap_FullLookupAtom("$consult_on_boot");
@ -78,20 +81,23 @@
AtomDBTerm = Yap_LookupAtom("db_term"); AtomDBTerm = Yap_LookupAtom("db_term");
AtomDBref = Yap_FullLookupAtom("$dbref"); AtomDBref = Yap_FullLookupAtom("$dbref");
AtomDInteger = Yap_FullLookupAtom("$integer"); AtomDInteger = Yap_FullLookupAtom("$integer");
AtomDOUBLE = Yap_FullLookupAtom("Double"); AtomDebuggerInput = Yap_LookupAtom("debugger_input");
AtomDec10 = Yap_LookupAtom("dec10"); AtomDec10 = Yap_LookupAtom("dec10");
AtomDefault = Yap_LookupAtom("default"); AtomDefault = Yap_LookupAtom("default");
AtomDevNull = Yap_LookupAtom("/dev/null"); AtomDevNull = Yap_LookupAtom("/dev/null");
AtomDiff = Yap_LookupAtom("\\="); AtomDiff = Yap_LookupAtom("\\=");
AtomDiscontiguous = Yap_LookupAtom("discontiguous"); AtomDiscontiguous = Yap_LookupAtom("discontiguous");
AtomDiscontiguousWarnings = Yap_LookupAtom("discontiguous_warnings");
AtomDollar = Yap_FullLookupAtom("$"); AtomDollar = Yap_FullLookupAtom("$");
AtomDoLogUpdClause = Yap_FullLookupAtom("$do_log_upd_clause"); AtomDoLogUpdClause = Yap_FullLookupAtom("$do_log_upd_clause");
AtomDoLogUpdClause0 = Yap_FullLookupAtom("$do_log_upd_clause0"); AtomDoLogUpdClause0 = Yap_FullLookupAtom("$do_log_upd_clause0");
AtomDoLogUpdClauseErase = Yap_FullLookupAtom("$do_log_upd_clause_erase"); AtomDoLogUpdClauseErase = Yap_FullLookupAtom("$do_log_upd_clause_erase");
AtomDoStaticClause = Yap_FullLookupAtom("$do_static_clause");
AtomDollarU = Yap_FullLookupAtom("$u"); AtomDollarU = Yap_FullLookupAtom("$u");
AtomDollarUndef = Yap_FullLookupAtom("$undef"); AtomDollarUndef = Yap_FullLookupAtom("$undef");
AtomDomainError = Yap_LookupAtom("domain_error"); AtomDomainError = Yap_LookupAtom("domain_error");
AtomDoStaticClause = Yap_FullLookupAtom("$do_static_clause");
AtomDots = Yap_LookupAtom("dots");
AtomDOUBLE = Yap_FullLookupAtom("Double");
AtomE = Yap_LookupAtom("e"); AtomE = Yap_LookupAtom("e");
AtomEOFBeforeEOT = Yap_LookupAtom("end_of_file_found_before_end_of_term"); AtomEOFBeforeEOT = Yap_LookupAtom("end_of_file_found_before_end_of_term");
AtomEQ = Yap_LookupAtom("="); AtomEQ = Yap_LookupAtom("=");
@ -99,8 +105,10 @@
AtomEncoding = Yap_LookupAtom("encoding"); AtomEncoding = Yap_LookupAtom("encoding");
AtomEndOfStream = Yap_LookupAtom("$end_of_stream"); AtomEndOfStream = Yap_LookupAtom("$end_of_stream");
AtomEof = Yap_LookupAtom("end_of_file"); AtomEof = Yap_LookupAtom("end_of_file");
AtomEOfCode = Yap_LookupAtom("eof_code");
AtomEq = Yap_LookupAtom("="); AtomEq = Yap_LookupAtom("=");
AtomError = Yap_LookupAtom("error"); AtomError = Yap_LookupAtom("error");
AtomException = Yap_LookupAtom("exception");
AtomEvaluable = Yap_LookupAtom("evaluable"); AtomEvaluable = Yap_LookupAtom("evaluable");
AtomEvaluationError = Yap_LookupAtom("evaluation_error"); AtomEvaluationError = Yap_LookupAtom("evaluation_error");
AtomExecute = Yap_LookupAtom("execute"); AtomExecute = Yap_LookupAtom("execute");
@ -124,6 +132,7 @@
AtomFloatUnderflow = Yap_LookupAtom("float_underflow"); AtomFloatUnderflow = Yap_LookupAtom("float_underflow");
AtomFormat = Yap_LookupAtom("format"); AtomFormat = Yap_LookupAtom("format");
AtomFormatAt = Yap_FullLookupAtom("$format@"); AtomFormatAt = Yap_FullLookupAtom("$format@");
AtomFull = Yap_LookupAtom("full");
AtomFunctor = Yap_LookupAtom("functor"); AtomFunctor = Yap_LookupAtom("functor");
AtomGT = Yap_LookupAtom(">"); AtomGT = Yap_LookupAtom(">");
AtomGVar = Yap_LookupAtom("var"); AtomGVar = Yap_LookupAtom("var");
@ -135,6 +144,7 @@
AtomGeneratePredInfo = Yap_FullLookupAtom("$generate_pred_info"); AtomGeneratePredInfo = Yap_FullLookupAtom("$generate_pred_info");
AtomGetwork = Yap_FullLookupAtom("$getwork"); AtomGetwork = Yap_FullLookupAtom("$getwork");
AtomGetworkSeq = Yap_FullLookupAtom("$getwork_seq"); AtomGetworkSeq = Yap_FullLookupAtom("$getwork_seq");
AtomGlobal = Yap_LookupAtom("global");
AtomGlobalSp = Yap_LookupAtom("global_sp"); AtomGlobalSp = Yap_LookupAtom("global_sp");
AtomGlobalTrie = Yap_LookupAtom("global_trie"); AtomGlobalTrie = Yap_LookupAtom("global_trie");
AtomGoalExpansion = Yap_LookupAtom("goal_expansion"); AtomGoalExpansion = Yap_LookupAtom("goal_expansion");
@ -143,9 +153,11 @@
AtomHandleThrow = Yap_FullLookupAtom("$handle_throw"); AtomHandleThrow = Yap_FullLookupAtom("$handle_throw");
AtomHeap = Yap_LookupAtom("heap"); AtomHeap = Yap_LookupAtom("heap");
AtomHeapUsed = Yap_LookupAtom("heapused"); AtomHeapUsed = Yap_LookupAtom("heapused");
AtomHugeInt = Yap_LookupAtom("huge_int");
AtomIDB = Yap_LookupAtom("idb"); AtomIDB = Yap_LookupAtom("idb");
AtomIOMode = Yap_LookupAtom("io_mode"); AtomIOMode = Yap_LookupAtom("io_mode");
AtomId = Yap_LookupAtom("id"); AtomId = Yap_LookupAtom("id");
AtomIgnore = Yap_LookupAtom("ignore");
AtomInf = Yap_LookupAtom("inf"); AtomInf = Yap_LookupAtom("inf");
AtomInfinity = Yap_LookupAtom("infinity"); AtomInfinity = Yap_LookupAtom("infinity");
AtomInitGoal = Yap_FullLookupAtom("$init_goal"); AtomInitGoal = Yap_FullLookupAtom("$init_goal");
@ -162,12 +174,14 @@
AtomLDLibraryPath = Yap_LookupAtom("LD_LIBRARY_PATH"); AtomLDLibraryPath = Yap_LookupAtom("LD_LIBRARY_PATH");
AtomLONGINT = Yap_LookupAtom("LongInt"); AtomLONGINT = Yap_LookupAtom("LongInt");
AtomLOOP = Yap_LookupAtom("_LOOP_"); AtomLOOP = Yap_LookupAtom("_LOOP_");
AtomLoopStream = Yap_LookupAtom("loop_stream");
AtomLT = Yap_LookupAtom("<"); AtomLT = Yap_LookupAtom("<");
AtomLastExecuteWithin = Yap_FullLookupAtom("$last_execute_within"); AtomLastExecuteWithin = Yap_FullLookupAtom("$last_execute_within");
AtomLeash = Yap_FullLookupAtom("$leash"); AtomLeash = Yap_FullLookupAtom("$leash");
AtomLeast = Yap_LookupAtom("least"); AtomLeast = Yap_LookupAtom("least");
AtomLength = Yap_FullLookupAtom("length"); AtomLength = Yap_FullLookupAtom("length");
AtomList = Yap_LookupAtom("list"); AtomList = Yap_LookupAtom("list");
AtomLine = Yap_LookupAtom("line");
AtomLive = Yap_FullLookupAtom("$live"); AtomLive = Yap_FullLookupAtom("$live");
AtomLoadAnswers = Yap_LookupAtom("load_answers"); AtomLoadAnswers = Yap_LookupAtom("load_answers");
AtomLocal = Yap_LookupAtom("local"); AtomLocal = Yap_LookupAtom("local");
@ -184,7 +198,9 @@
AtomMinimum = Yap_LookupAtom("minimum"); AtomMinimum = Yap_LookupAtom("minimum");
AtomMinus = Yap_LookupAtom("-"); AtomMinus = Yap_LookupAtom("-");
AtomModify = Yap_LookupAtom("modify"); AtomModify = Yap_LookupAtom("modify");
AtomModule = Yap_LookupAtom("module");
AtomMost = Yap_LookupAtom("most"); AtomMost = Yap_LookupAtom("most");
AtomMulti = Yap_LookupAtom("multi");
AtomMultiFile = Yap_FullLookupAtom("$mf"); AtomMultiFile = Yap_FullLookupAtom("$mf");
AtomMultiple = Yap_FullLookupAtom("multiple"); AtomMultiple = Yap_FullLookupAtom("multiple");
AtomMutable = Yap_LookupAtom("mutable"); AtomMutable = Yap_LookupAtom("mutable");
@ -228,7 +244,9 @@
AtomOutOfStackError = Yap_LookupAtom("out_of_stack_error"); AtomOutOfStackError = Yap_LookupAtom("out_of_stack_error");
AtomOutOfTrailError = Yap_LookupAtom("out_of_trail_error"); AtomOutOfTrailError = Yap_LookupAtom("out_of_trail_error");
AtomOutput = Yap_LookupAtom("output"); AtomOutput = Yap_LookupAtom("output");
AtomParameter = Yap_LookupAtom("parameter");
AtomPrologCommonsDir = Yap_LookupAtom("prolog_commons_directory"); AtomPrologCommonsDir = Yap_LookupAtom("prolog_commons_directory");
AtomPast = Yap_LookupAtom("past");
AtomPastEndOfStream = Yap_LookupAtom("past_end_of_stream"); AtomPastEndOfStream = Yap_LookupAtom("past_end_of_stream");
AtomPermissionError = Yap_LookupAtom("permission_error"); AtomPermissionError = Yap_LookupAtom("permission_error");
AtomPi = Yap_LookupAtom("pi"); AtomPi = Yap_LookupAtom("pi");
@ -250,17 +268,21 @@
AtomRadix = Yap_LookupAtom("radix"); AtomRadix = Yap_LookupAtom("radix");
AtomRandom = Yap_LookupAtom("random"); AtomRandom = Yap_LookupAtom("random");
AtomRange = Yap_LookupAtom("range"); AtomRange = Yap_LookupAtom("range");
AtomRDiv = Yap_LookupAtom("rdiv");
AtomRead = Yap_LookupAtom("read"); AtomRead = Yap_LookupAtom("read");
AtomReadOnly = Yap_LookupAtom("read_only");
AtomReadWrite = Yap_LookupAtom("read_write");
AtomReadutil = Yap_LookupAtom("readutil"); AtomReadutil = Yap_LookupAtom("readutil");
AtomRecordedP = Yap_FullLookupAtom("$recordep"); AtomRecordedP = Yap_FullLookupAtom("$recordep");
AtomRecordedWithKey = Yap_FullLookupAtom("$recorded_with_key"); AtomRecordedWithKey = Yap_FullLookupAtom("$recorded_with_key");
AtomRedefineWarnings = Yap_LookupAtom("redefine_warnings");
AtomRedoFreeze = Yap_FullLookupAtom("$redo_freeze"); AtomRedoFreeze = Yap_FullLookupAtom("$redo_freeze");
AtomRefoundVar = Yap_FullLookupAtom("$I_FOUND_THE_VARIABLE_AGAIN"); AtomRefoundVar = Yap_FullLookupAtom("$I_FOUND_THE_VARIABLE_AGAIN");
AtomRepeat = Yap_LookupAtom("repeat"); AtomRepeat = Yap_LookupAtom("repeat");
AtomRepeatSpace = Yap_LookupAtom("repeat "); AtomRepeatSpace = Yap_LookupAtom("repeat ");
AtomReposition = Yap_LookupAtom("reposition"); AtomReposition = Yap_LookupAtom("reposition");
AtomRepresentationError = Yap_LookupAtom("representation_error"); AtomRepresentationError = Yap_LookupAtom("representation_error");
AtomRDiv = Yap_LookupAtom("rdiv"); AtomReset = Yap_LookupAtom("reset");
AtomResize = Yap_LookupAtom("resize"); AtomResize = Yap_LookupAtom("resize");
AtomResourceError = Yap_LookupAtom("resource_error"); AtomResourceError = Yap_LookupAtom("resource_error");
AtomRestoreRegs = Yap_FullLookupAtom("$restore_regs"); AtomRestoreRegs = Yap_FullLookupAtom("$restore_regs");
@ -289,9 +311,13 @@
AtomSigUsr2 = Yap_LookupAtom("sig_usr2"); AtomSigUsr2 = Yap_LookupAtom("sig_usr2");
AtomSigVTAlarm = Yap_LookupAtom("sig_vtalarm"); AtomSigVTAlarm = Yap_LookupAtom("sig_vtalarm");
AtomSigWakeUp = Yap_LookupAtom("sig_wake_up"); AtomSigWakeUp = Yap_LookupAtom("sig_wake_up");
AtomSilent = Yap_LookupAtom("Silent");
AtomSingle = Yap_LookupAtom("single");
AtomSingleVarWarnings = Yap_LookupAtom("single_var_warnings");
AtomSingleton = Yap_LookupAtom("singleton"); AtomSingleton = Yap_LookupAtom("singleton");
AtomSlash = Yap_LookupAtom("/"); AtomSlash = Yap_LookupAtom("/");
AtomSocket = Yap_LookupAtom("socket"); AtomSocket = Yap_LookupAtom("socket");
AtomSource = Yap_LookupAtom("source");
AtomSourceSink = Yap_LookupAtom("source_sink"); AtomSourceSink = Yap_LookupAtom("source_sink");
AtomSpy = Yap_FullLookupAtom("$spy"); AtomSpy = Yap_FullLookupAtom("$spy");
AtomStack = Yap_LookupAtom("stack"); AtomStack = Yap_LookupAtom("stack");
@ -309,6 +335,7 @@
AtomString = Yap_LookupAtom("string"); AtomString = Yap_LookupAtom("string");
AtomSTRING = Yap_FullLookupAtom("String"); AtomSTRING = Yap_FullLookupAtom("String");
AtomSwi = Yap_LookupAtom("swi"); AtomSwi = Yap_LookupAtom("swi");
AtomSymbolChar = Yap_LookupAtom("symbol_char");
AtomSyntaxError = Yap_LookupAtom("syntax_error"); AtomSyntaxError = Yap_LookupAtom("syntax_error");
AtomSyntaxErrorHandler = Yap_LookupAtom("syntax_error_handler"); AtomSyntaxErrorHandler = Yap_LookupAtom("syntax_error_handler");
AtomSystem = Yap_LookupAtom("system"); AtomSystem = Yap_LookupAtom("system");
@ -319,6 +346,7 @@
AtomTermExpansion = Yap_LookupAtom("term_expansion"); AtomTermExpansion = Yap_LookupAtom("term_expansion");
AtomText = Yap_LookupAtom("text"); AtomText = Yap_LookupAtom("text");
AtomTextStream = Yap_LookupAtom("text_stream"); AtomTextStream = Yap_LookupAtom("text_stream");
AtomThread = Yap_LookupAtom("thread");
AtomThreads = Yap_LookupAtom("threads"); AtomThreads = Yap_LookupAtom("threads");
AtomThrow = Yap_LookupAtom("throw"); AtomThrow = Yap_LookupAtom("throw");
AtomTimeOutSpec = Yap_LookupAtom("time_out_spec"); AtomTimeOutSpec = Yap_LookupAtom("time_out_spec");
@ -344,12 +372,15 @@
AtomVBar = Yap_LookupAtom("|"); AtomVBar = Yap_LookupAtom("|");
AtomVar = Yap_FullLookupAtom("$VAR"); AtomVar = Yap_FullLookupAtom("$VAR");
AtomVarBranches = Yap_LookupAtom("var_branches"); AtomVarBranches = Yap_LookupAtom("var_branches");
AtomVariableNames = Yap_LookupAtom("variable_names");
AtomHiddenVar = Yap_FullLookupAtom("$V"); AtomHiddenVar = Yap_FullLookupAtom("$V");
AtomVariable = Yap_LookupAtom("variable"); AtomVariable = Yap_LookupAtom("variable");
AtomVersionNumber = Yap_FullLookupAtom("$version_name"); AtomVersionNumber = Yap_FullLookupAtom("$version_name");
AtomWakeUpGoal = Yap_FullLookupAtom("$wake_up_goal"); AtomWakeUpGoal = Yap_FullLookupAtom("$wake_up_goal");
AtomWarning = Yap_LookupAtom("warning");
AtomWhen = Yap_FullLookupAtom("$when"); AtomWhen = Yap_FullLookupAtom("$when");
AtomWrite = Yap_LookupAtom("write"); AtomWrite = Yap_LookupAtom("write");
AtomXml = Yap_LookupAtom("xml");
AtomYapHacks = Yap_LookupAtom("yap_hacks"); AtomYapHacks = Yap_LookupAtom("yap_hacks");
AtomZeroDivisor = Yap_LookupAtom("zero_divisor"); AtomZeroDivisor = Yap_LookupAtom("zero_divisor");
FunctorAfInet = Yap_MkFunctor(AtomAfInet,2); FunctorAfInet = Yap_MkFunctor(AtomAfInet,2);
@ -370,9 +401,12 @@
FunctorCall = Yap_MkFunctor(AtomCall,1); FunctorCall = Yap_MkFunctor(AtomCall,1);
FunctorCatch = Yap_MkFunctor(AtomCatch,3); FunctorCatch = Yap_MkFunctor(AtomCatch,3);
FunctorChangeModule = Yap_MkFunctor(AtomChangeModule,1); FunctorChangeModule = Yap_MkFunctor(AtomChangeModule,1);
FunctorChars = Yap_MkFunctor(AtomChars,2);
FunctorChars1 = Yap_MkFunctor(AtomChars,1);
FunctorCleanCall = Yap_MkFunctor(AtomCleanCall,2); FunctorCleanCall = Yap_MkFunctor(AtomCleanCall,2);
FunctorClist = Yap_MkFunctor(AtomWhen,4); FunctorClist = Yap_MkFunctor(AtomWhen,4);
FunctorCodes = Yap_MkFunctor(AtomCodes,2); FunctorCodes = Yap_MkFunctor(AtomCodes,2);
FunctorCodes1 = Yap_MkFunctor(AtomCodes,1);
FunctorComma = Yap_MkFunctor(AtomComma,2); FunctorComma = Yap_MkFunctor(AtomComma,2);
FunctorCommentHook = Yap_MkFunctor(AtomCommentHook,3); FunctorCommentHook = Yap_MkFunctor(AtomCommentHook,3);
FunctorContext2 = Yap_MkFunctor(AtomContext,2); FunctorContext2 = Yap_MkFunctor(AtomContext,2);
@ -462,6 +496,7 @@
FunctorStream = Yap_MkFunctor(AtomStream,1); FunctorStream = Yap_MkFunctor(AtomStream,1);
FunctorStreamEOS = Yap_MkFunctor(AtomEndOfStream,1); FunctorStreamEOS = Yap_MkFunctor(AtomEndOfStream,1);
FunctorStreamPos = Yap_MkFunctor(AtomStreamPos,4); FunctorStreamPos = Yap_MkFunctor(AtomStreamPos,4);
FunctorString1 = Yap_MkFunctor(AtomString,1);
FunctorSyntaxError = Yap_MkFunctor(AtomSyntaxError,7); FunctorSyntaxError = Yap_MkFunctor(AtomSyntaxError,7);
FunctorShortSyntaxError = Yap_MkFunctor(AtomSyntaxError,1); FunctorShortSyntaxError = Yap_MkFunctor(AtomSyntaxError,1);
FunctorTermExpansion = Yap_MkFunctor(AtomTermExpansion,2); FunctorTermExpansion = Yap_MkFunctor(AtomTermExpansion,2);

View File

@ -24,6 +24,7 @@ static void InitGlobal(void) {
GLOBAL_InitialisedFromPL = FALSE; GLOBAL_InitialisedFromPL = FALSE;
GLOBAL_PL_Argc = 0; GLOBAL_PL_Argc = 0;
GLOBAL_PL_Argv = NULL; GLOBAL_PL_Argv = NULL;
GLOBAL_FAST_BOOT_FLAG = false;
GLOBAL_HaltHooks = NULL; GLOBAL_HaltHooks = NULL;
GLOBAL_JIT_finalizer = NULL; GLOBAL_JIT_finalizer = NULL;
@ -69,8 +70,10 @@ static void InitGlobal(void) {
#endif /* THREADS */ #endif /* THREADS */
GLOBAL_stdout = Soutput;
GLOBAL_stderr = Serror;
@ -133,4 +136,9 @@ static void InitGlobal(void) {
INIT_LOCK(GLOBAL_MUT_ACCESS); INIT_LOCK(GLOBAL_MUT_ACCESS);
#endif #endif
GLOBAL_Home = NULL; GLOBAL_Home = NULL;
GLOBAL_CharConversionTable = NULL;
GLOBAL_CharConversionTable2 = NULL;
GLOBAL_LastWtimePtr = NULL;
} }

View File

@ -85,8 +85,51 @@
#ifdef EUROTRA #ifdef EUROTRA
TermDollarU = MkAtomTerm(AtomDollarU); TermDollarU = MkAtomTerm(AtomDollarU);
#endif #endif
TermAppend = MkAtomTerm(AtomAppend);
TermAtom = MkAtomTerm(AtomAtom);
TermBinary = MkAtomTerm(AtomBinary);
TermBoolean = MkAtomTerm(AtomBoolean);
TermChars = MkAtomTerm(AtomChars);
TermCodes = MkAtomTerm(AtomCodes);
TermCompact = MkAtomTerm(AtomCompact);
TermDec10 = MkAtomTerm(AtomDec10);
TermDots = MkAtomTerm(AtomDots);
TermEof = MkAtomTerm(AtomEof);
TermEOfCode = MkAtomTerm(AtomEOfCode);
TermError = MkAtomTerm(AtomError);
TermException = MkAtomTerm(AtomException);
TermFail = MkAtomTerm(AtomFail);
TermFalse = MkAtomTerm(AtomFalse);
TermFloat = MkAtomTerm(AtomFloat);
TermGlobal = MkAtomTerm(AtomGlobal);
TermIgnore = MkAtomTerm(AtomIgnore);
TermInteger = MkAtomTerm(AtomInteger);
TermMax = MkAtomTerm(AtomMax);
TermModule = MkAtomTerm(AtomModule);
TermMulti = MkAtomTerm(AtomMulti);
TermOff = MkAtomTerm(AtomOff);
TermOn = MkAtomTerm(AtomOn);
TermPortray = MkAtomTerm(AtomPortray);
TermProlog = MkAtomTerm(AtomProlog); TermProlog = MkAtomTerm(AtomProlog);
TermQuiet = MkAtomTerm(AtomQuiet);
TermRead = MkAtomTerm(AtomRead);
TermReadOnly = MkAtomTerm(AtomReadOnly);
TermReadWrite = MkAtomTerm(AtomReadWrite);
TermReFoundVar = MkAtomTerm(AtomRefoundVar); TermReFoundVar = MkAtomTerm(AtomRefoundVar);
TermReset = MkAtomTerm(AtomReset);
TermSilent = MkAtomTerm(AtomSilent);
TermSingle = MkAtomTerm(AtomSingle);
TermSource = MkAtomTerm(AtomSource);
TermString = MkAtomTerm(AtomString);
TermSymbolChar = MkAtomTerm(AtomSymbolChar);
TermTerm = MkAtomTerm(AtomTerm);
TermText = MkAtomTerm(AtomText);
TermThread = MkAtomTerm(AtomThread);
TermTrue = MkAtomTerm(AtomTrue);
TermWarning = MkAtomTerm(AtomWarning);
TermWrite = MkAtomTerm(AtomWrite);
TermXml = MkAtomTerm(AtomXml);
USER_MODULE = MkAtomTerm(AtomUser); USER_MODULE = MkAtomTerm(AtomUser);
IDB_MODULE = MkAtomTerm(AtomIDB); IDB_MODULE = MkAtomTerm(AtomIDB);
ATTRIBUTES_MODULE = MkAtomTerm(AtomAttributes); ATTRIBUTES_MODULE = MkAtomTerm(AtomAttributes);
@ -111,6 +154,12 @@
Yap_InitModules(); Yap_InitModules();
Yap_InitPlIO();
Yap_InitFlags(true);
Yap_ExecutionMode = INTERPRETED; Yap_ExecutionMode = INTERPRETED;
InitPredHash(); InitPredHash();
@ -267,22 +316,8 @@
#endif #endif
InitFlags();
OpList = NULL; OpList = NULL;
CharConversionTable = NULL;
CharConversionTable2 = NULL;
ParserErrorStyle = EXCEPTION_ON_PARSER_ERROR;
Yap_LibDir = NULL;
Yap_ForeignDir = NULL;
Yap_CommonsDir = NULL;
Yap_BinDir = NULL;
LastWtimePtr = NULL;
ForeignCodeLoaded = NULL; ForeignCodeLoaded = NULL;
ForeignCodeBase = NULL; ForeignCodeBase = NULL;
ForeignCodeTop = NULL; ForeignCodeTop = NULL;
@ -299,10 +334,10 @@
InitEmptyWakeups(); InitEmptyWakeups();
MaxEmptyWakeups = 0; MaxEmptyWakeups = 0;
SWI_BlobTypes = NULL; BlobTypes = NULL;
SWI_Blobs = NULL; Blobs = NULL;
NOfBlobs = 0; NOfBlobs = 0;
NOfBlobsMax = 256; NOfBlobsMax = 256;
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
INIT_LOCK(SWI_Blobs_Lock); INIT_LOCK(Blobs_Lock);
#endif #endif

View File

@ -5,9 +5,28 @@
static void InitWorker(int wid) { static void InitWorker(int wid) {
REMOTE_FileAliases(wid) = Yap_InitStandardAliases();
REMOTE_c_input_stream(wid) = 0; REMOTE_c_input_stream(wid) = 0;
REMOTE_c_output_stream(wid) = 1; REMOTE_c_output_stream(wid) = 1;
REMOTE_c_error_stream(wid) = 2; REMOTE_c_error_stream(wid) = 2;
REMOTE_sockets_io(wid) = false;
REMOTE_newline(wid) = true;
REMOTE_FormatInfo(wid) = NULL;
REMOTE_AtPrompt(wid) = AtomNil;
REMOTE_encoding(wid) = Yap_InitialEncoding();
REMOTE_quasi_quotations(wid) = false;
REMOTE_default_priority(wid) = 1200;
REMOTE_eot_before_eof(wid) = false;
REMOTE_max_depth(wid) = 0;
REMOTE_max_list(wid) = 0;
REMOTE_max_write_args(wid) = 0;
REMOTE_OldASP(wid) = NULL; REMOTE_OldASP(wid) = NULL;
REMOTE_OldLCL0(wid) = NULL; REMOTE_OldLCL0(wid) = NULL;
@ -46,6 +65,8 @@ static void InitWorker(int wid) {
REMOTE_ConsultLow(wid) = NULL; REMOTE_ConsultLow(wid) = NULL;
REMOTE_VarNames(wid) = ((Term)0); REMOTE_VarNames(wid) = ((Term)0);
REMOTE_SourceFileName(wid) = NULL;
REMOTE_SourceFileLineno(wid) = 0;
REMOTE_GlobalArena(wid) = 0L; REMOTE_GlobalArena(wid) = 0L;
REMOTE_GlobalArenaOverflows(wid) = 0L; REMOTE_GlobalArenaOverflows(wid) = 0L;
@ -121,12 +142,13 @@ static void InitWorker(int wid) {
REMOTE_LabelFirstArray(wid) = NULL; REMOTE_LabelFirstArray(wid) = NULL;
REMOTE_LabelFirstArraySz(wid) = 0L; REMOTE_LabelFirstArraySz(wid) = 0L;
REMOTE_PL_local_data_p(wid) = Yap_InitThreadIO(wid);
#ifdef THREADS #ifdef THREADS
InitThreadHandle(wid); InitThreadHandle(wid);
#endif /* THREADS */ #endif /* THREADS */
#if defined(YAPOR) || defined(TABLING) #if defined(YAPOR) || defined(TABLING)
Yap_init_local_optyap_data(wid); Yap_init_local_optyap_data(wid);
REMOTE_TabMode(wid) = 0L;
#endif /* YAPOR || TABLING */ #endif /* YAPOR || TABLING */
REMOTE_InterruptsDisabled(wid) = FALSE; REMOTE_InterruptsDisabled(wid) = FALSE;
REMOTE_execution(wid) = NULL; REMOTE_execution(wid) = NULL;
@ -159,10 +181,14 @@ static void InitWorker(int wid) {
REMOTE_BreakLevel(wid) = 0;
REMOTE_PrologMode(wid) = BootMode; REMOTE_PrologMode(wid) = BootMode;
REMOTE_CritLocks(wid) = 0; REMOTE_CritLocks(wid) = 0;
#ifdef ANALYST #ifdef ANALYST

View File

@ -34,9 +34,10 @@
AtomB = AtomAdjust(AtomB); AtomB = AtomAdjust(AtomB);
AtomBatched = AtomAdjust(AtomBatched); AtomBatched = AtomAdjust(AtomBatched);
AtomBetween = AtomAdjust(AtomBetween); AtomBetween = AtomAdjust(AtomBetween);
AtomHugeInt = AtomAdjust(AtomHugeInt); AtomBinary = AtomAdjust(AtomBinary);
AtomBigNum = AtomAdjust(AtomBigNum); AtomBigNum = AtomAdjust(AtomBigNum);
AtomBinaryStream = AtomAdjust(AtomBinaryStream); AtomBinaryStream = AtomAdjust(AtomBinaryStream);
AtomBoolean = AtomAdjust(AtomBoolean);
AtomBraces = AtomAdjust(AtomBraces); AtomBraces = AtomAdjust(AtomBraces);
AtomBreak = AtomAdjust(AtomBreak); AtomBreak = AtomAdjust(AtomBreak);
AtomByte = AtomAdjust(AtomByte); AtomByte = AtomAdjust(AtomByte);
@ -51,6 +52,7 @@
AtomCharsio = AtomAdjust(AtomCharsio); AtomCharsio = AtomAdjust(AtomCharsio);
AtomCharacter = AtomAdjust(AtomCharacter); AtomCharacter = AtomAdjust(AtomCharacter);
AtomCharacterCode = AtomAdjust(AtomCharacterCode); AtomCharacterCode = AtomAdjust(AtomCharacterCode);
AtomChars = AtomAdjust(AtomChars);
AtomCharset = AtomAdjust(AtomCharset); AtomCharset = AtomAdjust(AtomCharset);
AtomCleanCall = AtomAdjust(AtomCleanCall); AtomCleanCall = AtomAdjust(AtomCleanCall);
AtomColomn = AtomAdjust(AtomColomn); AtomColomn = AtomAdjust(AtomColomn);
@ -59,6 +61,7 @@
AtomCoInductive = AtomAdjust(AtomCoInductive); AtomCoInductive = AtomAdjust(AtomCoInductive);
AtomComma = AtomAdjust(AtomComma); AtomComma = AtomAdjust(AtomComma);
AtomCommentHook = AtomAdjust(AtomCommentHook); AtomCommentHook = AtomAdjust(AtomCommentHook);
AtomCompact = AtomAdjust(AtomCompact);
AtomCompound = AtomAdjust(AtomCompound); AtomCompound = AtomAdjust(AtomCompound);
AtomConsistencyError = AtomAdjust(AtomConsistencyError); AtomConsistencyError = AtomAdjust(AtomConsistencyError);
AtomConsultOnBoot = AtomAdjust(AtomConsultOnBoot); AtomConsultOnBoot = AtomAdjust(AtomConsultOnBoot);
@ -78,20 +81,23 @@
AtomDBTerm = AtomAdjust(AtomDBTerm); AtomDBTerm = AtomAdjust(AtomDBTerm);
AtomDBref = AtomAdjust(AtomDBref); AtomDBref = AtomAdjust(AtomDBref);
AtomDInteger = AtomAdjust(AtomDInteger); AtomDInteger = AtomAdjust(AtomDInteger);
AtomDOUBLE = AtomAdjust(AtomDOUBLE); AtomDebuggerInput = AtomAdjust(AtomDebuggerInput);
AtomDec10 = AtomAdjust(AtomDec10); AtomDec10 = AtomAdjust(AtomDec10);
AtomDefault = AtomAdjust(AtomDefault); AtomDefault = AtomAdjust(AtomDefault);
AtomDevNull = AtomAdjust(AtomDevNull); AtomDevNull = AtomAdjust(AtomDevNull);
AtomDiff = AtomAdjust(AtomDiff); AtomDiff = AtomAdjust(AtomDiff);
AtomDiscontiguous = AtomAdjust(AtomDiscontiguous); AtomDiscontiguous = AtomAdjust(AtomDiscontiguous);
AtomDiscontiguousWarnings = AtomAdjust(AtomDiscontiguousWarnings);
AtomDollar = AtomAdjust(AtomDollar); AtomDollar = AtomAdjust(AtomDollar);
AtomDoLogUpdClause = AtomAdjust(AtomDoLogUpdClause); AtomDoLogUpdClause = AtomAdjust(AtomDoLogUpdClause);
AtomDoLogUpdClause0 = AtomAdjust(AtomDoLogUpdClause0); AtomDoLogUpdClause0 = AtomAdjust(AtomDoLogUpdClause0);
AtomDoLogUpdClauseErase = AtomAdjust(AtomDoLogUpdClauseErase); AtomDoLogUpdClauseErase = AtomAdjust(AtomDoLogUpdClauseErase);
AtomDoStaticClause = AtomAdjust(AtomDoStaticClause);
AtomDollarU = AtomAdjust(AtomDollarU); AtomDollarU = AtomAdjust(AtomDollarU);
AtomDollarUndef = AtomAdjust(AtomDollarUndef); AtomDollarUndef = AtomAdjust(AtomDollarUndef);
AtomDomainError = AtomAdjust(AtomDomainError); AtomDomainError = AtomAdjust(AtomDomainError);
AtomDoStaticClause = AtomAdjust(AtomDoStaticClause);
AtomDots = AtomAdjust(AtomDots);
AtomDOUBLE = AtomAdjust(AtomDOUBLE);
AtomE = AtomAdjust(AtomE); AtomE = AtomAdjust(AtomE);
AtomEOFBeforeEOT = AtomAdjust(AtomEOFBeforeEOT); AtomEOFBeforeEOT = AtomAdjust(AtomEOFBeforeEOT);
AtomEQ = AtomAdjust(AtomEQ); AtomEQ = AtomAdjust(AtomEQ);
@ -99,8 +105,10 @@
AtomEncoding = AtomAdjust(AtomEncoding); AtomEncoding = AtomAdjust(AtomEncoding);
AtomEndOfStream = AtomAdjust(AtomEndOfStream); AtomEndOfStream = AtomAdjust(AtomEndOfStream);
AtomEof = AtomAdjust(AtomEof); AtomEof = AtomAdjust(AtomEof);
AtomEOfCode = AtomAdjust(AtomEOfCode);
AtomEq = AtomAdjust(AtomEq); AtomEq = AtomAdjust(AtomEq);
AtomError = AtomAdjust(AtomError); AtomError = AtomAdjust(AtomError);
AtomException = AtomAdjust(AtomException);
AtomEvaluable = AtomAdjust(AtomEvaluable); AtomEvaluable = AtomAdjust(AtomEvaluable);
AtomEvaluationError = AtomAdjust(AtomEvaluationError); AtomEvaluationError = AtomAdjust(AtomEvaluationError);
AtomExecute = AtomAdjust(AtomExecute); AtomExecute = AtomAdjust(AtomExecute);
@ -124,6 +132,7 @@
AtomFloatUnderflow = AtomAdjust(AtomFloatUnderflow); AtomFloatUnderflow = AtomAdjust(AtomFloatUnderflow);
AtomFormat = AtomAdjust(AtomFormat); AtomFormat = AtomAdjust(AtomFormat);
AtomFormatAt = AtomAdjust(AtomFormatAt); AtomFormatAt = AtomAdjust(AtomFormatAt);
AtomFull = AtomAdjust(AtomFull);
AtomFunctor = AtomAdjust(AtomFunctor); AtomFunctor = AtomAdjust(AtomFunctor);
AtomGT = AtomAdjust(AtomGT); AtomGT = AtomAdjust(AtomGT);
AtomGVar = AtomAdjust(AtomGVar); AtomGVar = AtomAdjust(AtomGVar);
@ -135,6 +144,7 @@
AtomGeneratePredInfo = AtomAdjust(AtomGeneratePredInfo); AtomGeneratePredInfo = AtomAdjust(AtomGeneratePredInfo);
AtomGetwork = AtomAdjust(AtomGetwork); AtomGetwork = AtomAdjust(AtomGetwork);
AtomGetworkSeq = AtomAdjust(AtomGetworkSeq); AtomGetworkSeq = AtomAdjust(AtomGetworkSeq);
AtomGlobal = AtomAdjust(AtomGlobal);
AtomGlobalSp = AtomAdjust(AtomGlobalSp); AtomGlobalSp = AtomAdjust(AtomGlobalSp);
AtomGlobalTrie = AtomAdjust(AtomGlobalTrie); AtomGlobalTrie = AtomAdjust(AtomGlobalTrie);
AtomGoalExpansion = AtomAdjust(AtomGoalExpansion); AtomGoalExpansion = AtomAdjust(AtomGoalExpansion);
@ -143,9 +153,11 @@
AtomHandleThrow = AtomAdjust(AtomHandleThrow); AtomHandleThrow = AtomAdjust(AtomHandleThrow);
AtomHeap = AtomAdjust(AtomHeap); AtomHeap = AtomAdjust(AtomHeap);
AtomHeapUsed = AtomAdjust(AtomHeapUsed); AtomHeapUsed = AtomAdjust(AtomHeapUsed);
AtomHugeInt = AtomAdjust(AtomHugeInt);
AtomIDB = AtomAdjust(AtomIDB); AtomIDB = AtomAdjust(AtomIDB);
AtomIOMode = AtomAdjust(AtomIOMode); AtomIOMode = AtomAdjust(AtomIOMode);
AtomId = AtomAdjust(AtomId); AtomId = AtomAdjust(AtomId);
AtomIgnore = AtomAdjust(AtomIgnore);
AtomInf = AtomAdjust(AtomInf); AtomInf = AtomAdjust(AtomInf);
AtomInfinity = AtomAdjust(AtomInfinity); AtomInfinity = AtomAdjust(AtomInfinity);
AtomInitGoal = AtomAdjust(AtomInitGoal); AtomInitGoal = AtomAdjust(AtomInitGoal);
@ -162,12 +174,14 @@
AtomLDLibraryPath = AtomAdjust(AtomLDLibraryPath); AtomLDLibraryPath = AtomAdjust(AtomLDLibraryPath);
AtomLONGINT = AtomAdjust(AtomLONGINT); AtomLONGINT = AtomAdjust(AtomLONGINT);
AtomLOOP = AtomAdjust(AtomLOOP); AtomLOOP = AtomAdjust(AtomLOOP);
AtomLoopStream = AtomAdjust(AtomLoopStream);
AtomLT = AtomAdjust(AtomLT); AtomLT = AtomAdjust(AtomLT);
AtomLastExecuteWithin = AtomAdjust(AtomLastExecuteWithin); AtomLastExecuteWithin = AtomAdjust(AtomLastExecuteWithin);
AtomLeash = AtomAdjust(AtomLeash); AtomLeash = AtomAdjust(AtomLeash);
AtomLeast = AtomAdjust(AtomLeast); AtomLeast = AtomAdjust(AtomLeast);
AtomLength = AtomAdjust(AtomLength); AtomLength = AtomAdjust(AtomLength);
AtomList = AtomAdjust(AtomList); AtomList = AtomAdjust(AtomList);
AtomLine = AtomAdjust(AtomLine);
AtomLive = AtomAdjust(AtomLive); AtomLive = AtomAdjust(AtomLive);
AtomLoadAnswers = AtomAdjust(AtomLoadAnswers); AtomLoadAnswers = AtomAdjust(AtomLoadAnswers);
AtomLocal = AtomAdjust(AtomLocal); AtomLocal = AtomAdjust(AtomLocal);
@ -184,7 +198,9 @@
AtomMinimum = AtomAdjust(AtomMinimum); AtomMinimum = AtomAdjust(AtomMinimum);
AtomMinus = AtomAdjust(AtomMinus); AtomMinus = AtomAdjust(AtomMinus);
AtomModify = AtomAdjust(AtomModify); AtomModify = AtomAdjust(AtomModify);
AtomModule = AtomAdjust(AtomModule);
AtomMost = AtomAdjust(AtomMost); AtomMost = AtomAdjust(AtomMost);
AtomMulti = AtomAdjust(AtomMulti);
AtomMultiFile = AtomAdjust(AtomMultiFile); AtomMultiFile = AtomAdjust(AtomMultiFile);
AtomMultiple = AtomAdjust(AtomMultiple); AtomMultiple = AtomAdjust(AtomMultiple);
AtomMutable = AtomAdjust(AtomMutable); AtomMutable = AtomAdjust(AtomMutable);
@ -228,7 +244,9 @@
AtomOutOfStackError = AtomAdjust(AtomOutOfStackError); AtomOutOfStackError = AtomAdjust(AtomOutOfStackError);
AtomOutOfTrailError = AtomAdjust(AtomOutOfTrailError); AtomOutOfTrailError = AtomAdjust(AtomOutOfTrailError);
AtomOutput = AtomAdjust(AtomOutput); AtomOutput = AtomAdjust(AtomOutput);
AtomParameter = AtomAdjust(AtomParameter);
AtomPrologCommonsDir = AtomAdjust(AtomPrologCommonsDir); AtomPrologCommonsDir = AtomAdjust(AtomPrologCommonsDir);
AtomPast = AtomAdjust(AtomPast);
AtomPastEndOfStream = AtomAdjust(AtomPastEndOfStream); AtomPastEndOfStream = AtomAdjust(AtomPastEndOfStream);
AtomPermissionError = AtomAdjust(AtomPermissionError); AtomPermissionError = AtomAdjust(AtomPermissionError);
AtomPi = AtomAdjust(AtomPi); AtomPi = AtomAdjust(AtomPi);
@ -250,17 +268,21 @@
AtomRadix = AtomAdjust(AtomRadix); AtomRadix = AtomAdjust(AtomRadix);
AtomRandom = AtomAdjust(AtomRandom); AtomRandom = AtomAdjust(AtomRandom);
AtomRange = AtomAdjust(AtomRange); AtomRange = AtomAdjust(AtomRange);
AtomRDiv = AtomAdjust(AtomRDiv);
AtomRead = AtomAdjust(AtomRead); AtomRead = AtomAdjust(AtomRead);
AtomReadOnly = AtomAdjust(AtomReadOnly);
AtomReadWrite = AtomAdjust(AtomReadWrite);
AtomReadutil = AtomAdjust(AtomReadutil); AtomReadutil = AtomAdjust(AtomReadutil);
AtomRecordedP = AtomAdjust(AtomRecordedP); AtomRecordedP = AtomAdjust(AtomRecordedP);
AtomRecordedWithKey = AtomAdjust(AtomRecordedWithKey); AtomRecordedWithKey = AtomAdjust(AtomRecordedWithKey);
AtomRedefineWarnings = AtomAdjust(AtomRedefineWarnings);
AtomRedoFreeze = AtomAdjust(AtomRedoFreeze); AtomRedoFreeze = AtomAdjust(AtomRedoFreeze);
AtomRefoundVar = AtomAdjust(AtomRefoundVar); AtomRefoundVar = AtomAdjust(AtomRefoundVar);
AtomRepeat = AtomAdjust(AtomRepeat); AtomRepeat = AtomAdjust(AtomRepeat);
AtomRepeatSpace = AtomAdjust(AtomRepeatSpace); AtomRepeatSpace = AtomAdjust(AtomRepeatSpace);
AtomReposition = AtomAdjust(AtomReposition); AtomReposition = AtomAdjust(AtomReposition);
AtomRepresentationError = AtomAdjust(AtomRepresentationError); AtomRepresentationError = AtomAdjust(AtomRepresentationError);
AtomRDiv = AtomAdjust(AtomRDiv); AtomReset = AtomAdjust(AtomReset);
AtomResize = AtomAdjust(AtomResize); AtomResize = AtomAdjust(AtomResize);
AtomResourceError = AtomAdjust(AtomResourceError); AtomResourceError = AtomAdjust(AtomResourceError);
AtomRestoreRegs = AtomAdjust(AtomRestoreRegs); AtomRestoreRegs = AtomAdjust(AtomRestoreRegs);
@ -289,9 +311,13 @@
AtomSigUsr2 = AtomAdjust(AtomSigUsr2); AtomSigUsr2 = AtomAdjust(AtomSigUsr2);
AtomSigVTAlarm = AtomAdjust(AtomSigVTAlarm); AtomSigVTAlarm = AtomAdjust(AtomSigVTAlarm);
AtomSigWakeUp = AtomAdjust(AtomSigWakeUp); AtomSigWakeUp = AtomAdjust(AtomSigWakeUp);
AtomSilent = AtomAdjust(AtomSilent);
AtomSingle = AtomAdjust(AtomSingle);
AtomSingleVarWarnings = AtomAdjust(AtomSingleVarWarnings);
AtomSingleton = AtomAdjust(AtomSingleton); AtomSingleton = AtomAdjust(AtomSingleton);
AtomSlash = AtomAdjust(AtomSlash); AtomSlash = AtomAdjust(AtomSlash);
AtomSocket = AtomAdjust(AtomSocket); AtomSocket = AtomAdjust(AtomSocket);
AtomSource = AtomAdjust(AtomSource);
AtomSourceSink = AtomAdjust(AtomSourceSink); AtomSourceSink = AtomAdjust(AtomSourceSink);
AtomSpy = AtomAdjust(AtomSpy); AtomSpy = AtomAdjust(AtomSpy);
AtomStack = AtomAdjust(AtomStack); AtomStack = AtomAdjust(AtomStack);
@ -309,6 +335,7 @@
AtomString = AtomAdjust(AtomString); AtomString = AtomAdjust(AtomString);
AtomSTRING = AtomAdjust(AtomSTRING); AtomSTRING = AtomAdjust(AtomSTRING);
AtomSwi = AtomAdjust(AtomSwi); AtomSwi = AtomAdjust(AtomSwi);
AtomSymbolChar = AtomAdjust(AtomSymbolChar);
AtomSyntaxError = AtomAdjust(AtomSyntaxError); AtomSyntaxError = AtomAdjust(AtomSyntaxError);
AtomSyntaxErrorHandler = AtomAdjust(AtomSyntaxErrorHandler); AtomSyntaxErrorHandler = AtomAdjust(AtomSyntaxErrorHandler);
AtomSystem = AtomAdjust(AtomSystem); AtomSystem = AtomAdjust(AtomSystem);
@ -319,6 +346,7 @@
AtomTermExpansion = AtomAdjust(AtomTermExpansion); AtomTermExpansion = AtomAdjust(AtomTermExpansion);
AtomText = AtomAdjust(AtomText); AtomText = AtomAdjust(AtomText);
AtomTextStream = AtomAdjust(AtomTextStream); AtomTextStream = AtomAdjust(AtomTextStream);
AtomThread = AtomAdjust(AtomThread);
AtomThreads = AtomAdjust(AtomThreads); AtomThreads = AtomAdjust(AtomThreads);
AtomThrow = AtomAdjust(AtomThrow); AtomThrow = AtomAdjust(AtomThrow);
AtomTimeOutSpec = AtomAdjust(AtomTimeOutSpec); AtomTimeOutSpec = AtomAdjust(AtomTimeOutSpec);
@ -344,12 +372,15 @@
AtomVBar = AtomAdjust(AtomVBar); AtomVBar = AtomAdjust(AtomVBar);
AtomVar = AtomAdjust(AtomVar); AtomVar = AtomAdjust(AtomVar);
AtomVarBranches = AtomAdjust(AtomVarBranches); AtomVarBranches = AtomAdjust(AtomVarBranches);
AtomVariableNames = AtomAdjust(AtomVariableNames);
AtomHiddenVar = AtomAdjust(AtomHiddenVar); AtomHiddenVar = AtomAdjust(AtomHiddenVar);
AtomVariable = AtomAdjust(AtomVariable); AtomVariable = AtomAdjust(AtomVariable);
AtomVersionNumber = AtomAdjust(AtomVersionNumber); AtomVersionNumber = AtomAdjust(AtomVersionNumber);
AtomWakeUpGoal = AtomAdjust(AtomWakeUpGoal); AtomWakeUpGoal = AtomAdjust(AtomWakeUpGoal);
AtomWarning = AtomAdjust(AtomWarning);
AtomWhen = AtomAdjust(AtomWhen); AtomWhen = AtomAdjust(AtomWhen);
AtomWrite = AtomAdjust(AtomWrite); AtomWrite = AtomAdjust(AtomWrite);
AtomXml = AtomAdjust(AtomXml);
AtomYapHacks = AtomAdjust(AtomYapHacks); AtomYapHacks = AtomAdjust(AtomYapHacks);
AtomZeroDivisor = AtomAdjust(AtomZeroDivisor); AtomZeroDivisor = AtomAdjust(AtomZeroDivisor);
FunctorAfInet = FuncAdjust(FunctorAfInet); FunctorAfInet = FuncAdjust(FunctorAfInet);
@ -370,9 +401,12 @@
FunctorCall = FuncAdjust(FunctorCall); FunctorCall = FuncAdjust(FunctorCall);
FunctorCatch = FuncAdjust(FunctorCatch); FunctorCatch = FuncAdjust(FunctorCatch);
FunctorChangeModule = FuncAdjust(FunctorChangeModule); FunctorChangeModule = FuncAdjust(FunctorChangeModule);
FunctorChars = FuncAdjust(FunctorChars);
FunctorChars1 = FuncAdjust(FunctorChars1);
FunctorCleanCall = FuncAdjust(FunctorCleanCall); FunctorCleanCall = FuncAdjust(FunctorCleanCall);
FunctorClist = FuncAdjust(FunctorClist); FunctorClist = FuncAdjust(FunctorClist);
FunctorCodes = FuncAdjust(FunctorCodes); FunctorCodes = FuncAdjust(FunctorCodes);
FunctorCodes1 = FuncAdjust(FunctorCodes1);
FunctorComma = FuncAdjust(FunctorComma); FunctorComma = FuncAdjust(FunctorComma);
FunctorCommentHook = FuncAdjust(FunctorCommentHook); FunctorCommentHook = FuncAdjust(FunctorCommentHook);
FunctorContext2 = FuncAdjust(FunctorContext2); FunctorContext2 = FuncAdjust(FunctorContext2);
@ -462,6 +496,7 @@
FunctorStream = FuncAdjust(FunctorStream); FunctorStream = FuncAdjust(FunctorStream);
FunctorStreamEOS = FuncAdjust(FunctorStreamEOS); FunctorStreamEOS = FuncAdjust(FunctorStreamEOS);
FunctorStreamPos = FuncAdjust(FunctorStreamPos); FunctorStreamPos = FuncAdjust(FunctorStreamPos);
FunctorString1 = FuncAdjust(FunctorString1);
FunctorSyntaxError = FuncAdjust(FunctorSyntaxError); FunctorSyntaxError = FuncAdjust(FunctorSyntaxError);
FunctorShortSyntaxError = FuncAdjust(FunctorShortSyntaxError); FunctorShortSyntaxError = FuncAdjust(FunctorShortSyntaxError);
FunctorTermExpansion = FuncAdjust(FunctorTermExpansion); FunctorTermExpansion = FuncAdjust(FunctorTermExpansion);

View File

@ -35,6 +35,7 @@ static void RestoreGlobal(void) {
#if __ANDROID__ #if __ANDROID__
@ -75,6 +76,8 @@ static void RestoreGlobal(void) {
#ifdef COROUTINING #ifdef COROUTINING
@ -133,4 +136,9 @@ static void RestoreGlobal(void) {
REINIT_LOCK(GLOBAL_MUT_ACCESS); REINIT_LOCK(GLOBAL_MUT_ACCESS);
#endif #endif
} }

View File

@ -716,6 +716,7 @@ CleanSIndex(StaticIndex *idx, int recurse USES_REGS)
} }
} }
static void static void
RestoreSWIAtoms__( USES_REGS1 ) RestoreSWIAtoms__( USES_REGS1 )
{ {
@ -729,16 +730,20 @@ RestoreSWIAtoms__( USES_REGS1 )
RestoreSWIHash(); RestoreSWIHash();
} }
static void #define RestoreBlobTypes() RestoreBlobTypes__( PASS_REGS1 )
RestoreSWIBlobTypes__( USES_REGS1 ) #define RestoreBlobs() RestoreBlobs__( PASS_REGS1);
static void
RestoreBlobTypes__( USES_REGS1 )
{ {
} }
static void static void
RestoreSWIBlobs__( USES_REGS1 ) RestoreBlobs__( USES_REGS1 )
{ {
SWI_Blobs = AtomAdjust(SWI_Blobs); Blobs = AtomAdjust(Blobs);
RestoreAtomList(SWI_Blobs PASS_REGS); RestoreAtomList(Blobs PASS_REGS);
} }
static void static void
@ -1609,8 +1614,8 @@ RestoreEntries(PropEntry *pp, int int_key USES_REGS)
PropAdjust(pp->NextOfPE); PropAdjust(pp->NextOfPE);
{ {
BlobPropEntry *bpe = (BlobPropEntry *)pp; BlobPropEntry *bpe = (BlobPropEntry *)pp;
bpe->blob_t = bpe->blob_type =
BlobTypeAdjust(bpe->blob_t); BlobTypeAdjust(bpe->blob_type);
} }
break; break;
default: default:

View File

@ -85,8 +85,51 @@
#ifdef EUROTRA #ifdef EUROTRA
TermDollarU = AtomTermAdjust(TermDollarU); TermDollarU = AtomTermAdjust(TermDollarU);
#endif #endif
TermAppend = AtomTermAdjust(TermAppend);
TermAtom = AtomTermAdjust(TermAtom);
TermBinary = AtomTermAdjust(TermBinary);
TermBoolean = AtomTermAdjust(TermBoolean);
TermChars = AtomTermAdjust(TermChars);
TermCodes = AtomTermAdjust(TermCodes);
TermCompact = AtomTermAdjust(TermCompact);
TermDec10 = AtomTermAdjust(TermDec10);
TermDots = AtomTermAdjust(TermDots);
TermEof = AtomTermAdjust(TermEof);
TermEOfCode = AtomTermAdjust(TermEOfCode);
TermError = AtomTermAdjust(TermError);
TermException = AtomTermAdjust(TermException);
TermFail = AtomTermAdjust(TermFail);
TermFalse = AtomTermAdjust(TermFalse);
TermFloat = AtomTermAdjust(TermFloat);
TermGlobal = AtomTermAdjust(TermGlobal);
TermIgnore = AtomTermAdjust(TermIgnore);
TermInteger = AtomTermAdjust(TermInteger);
TermMax = AtomTermAdjust(TermMax);
TermModule = AtomTermAdjust(TermModule);
TermMulti = AtomTermAdjust(TermMulti);
TermOff = AtomTermAdjust(TermOff);
TermOn = AtomTermAdjust(TermOn);
TermPortray = AtomTermAdjust(TermPortray);
TermProlog = AtomTermAdjust(TermProlog); TermProlog = AtomTermAdjust(TermProlog);
TermQuiet = AtomTermAdjust(TermQuiet);
TermRead = AtomTermAdjust(TermRead);
TermReadOnly = AtomTermAdjust(TermReadOnly);
TermReadWrite = AtomTermAdjust(TermReadWrite);
TermReFoundVar = AtomTermAdjust(TermReFoundVar); TermReFoundVar = AtomTermAdjust(TermReFoundVar);
TermReset = AtomTermAdjust(TermReset);
TermSilent = AtomTermAdjust(TermSilent);
TermSingle = AtomTermAdjust(TermSingle);
TermSource = AtomTermAdjust(TermSource);
TermString = AtomTermAdjust(TermString);
TermSymbolChar = AtomTermAdjust(TermSymbolChar);
TermTerm = AtomTermAdjust(TermTerm);
TermText = AtomTermAdjust(TermText);
TermThread = AtomTermAdjust(TermThread);
TermTrue = AtomTermAdjust(TermTrue);
TermWarning = AtomTermAdjust(TermWarning);
TermWrite = AtomTermAdjust(TermWrite);
TermXml = AtomTermAdjust(TermXml);
USER_MODULE = AtomTermAdjust(USER_MODULE); USER_MODULE = AtomTermAdjust(USER_MODULE);
IDB_MODULE = AtomTermAdjust(IDB_MODULE); IDB_MODULE = AtomTermAdjust(IDB_MODULE);
ATTRIBUTES_MODULE = AtomTermAdjust(ATTRIBUTES_MODULE); ATTRIBUTES_MODULE = AtomTermAdjust(ATTRIBUTES_MODULE);
@ -113,6 +156,12 @@
RestorePredHash(); RestorePredHash();
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
@ -267,22 +316,8 @@
#endif #endif
OpList = OpListAdjust(OpList); OpList = OpListAdjust(OpList);
CharConversionTable = CodeCharPAdjust(CharConversionTable);
CharConversionTable2 = CodeCharPAdjust(CharConversionTable2);
Yap_LibDir = CodeConstCharPAdjust(Yap_LibDir);
Yap_ForeignDir = CodeConstCharPAdjust(Yap_ForeignDir);
Yap_CommonsDir = CodeConstCharPAdjust(Yap_CommonsDir);
Yap_BinDir = CodeConstCharPAdjust(Yap_BinDir);
LastWtimePtr = CodeVoidPAdjust(LastWtimePtr);
RestoreForeignCode(); RestoreForeignCode();
@ -299,10 +334,10 @@
RestoreEmptyWakeups(); RestoreEmptyWakeups();
RestoreSWIBlobTypes(); RestoreBlobTypes();
RestoreSWIBlobs(); RestoreBlobs();
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
REINIT_LOCK(SWI_Blobs_Lock); REINIT_LOCK(Blobs_Lock);
#endif #endif

View File

@ -26,6 +26,27 @@ static void RestoreWorker(int wid USES_REGS) {
@ -127,6 +148,7 @@ static void RestoreWorker(int wid USES_REGS) {
#endif /* THREADS */ #endif /* THREADS */
#if defined(YAPOR) || defined(TABLING) #if defined(YAPOR) || defined(TABLING)
#endif /* YAPOR || TABLING */ #endif /* YAPOR || TABLING */
@ -158,6 +180,10 @@ static void RestoreWorker(int wid USES_REGS) {

View File

@ -66,12 +66,14 @@
#define AtomBatched Yap_heap_regs->AtomBatched_ #define AtomBatched Yap_heap_regs->AtomBatched_
Atom AtomBetween_; Atom AtomBetween_;
#define AtomBetween Yap_heap_regs->AtomBetween_ #define AtomBetween Yap_heap_regs->AtomBetween_
Atom AtomHugeInt_; Atom AtomBinary_;
#define AtomHugeInt Yap_heap_regs->AtomHugeInt_ #define AtomBinary Yap_heap_regs->AtomBinary_
Atom AtomBigNum_; Atom AtomBigNum_;
#define AtomBigNum Yap_heap_regs->AtomBigNum_ #define AtomBigNum Yap_heap_regs->AtomBigNum_
Atom AtomBinaryStream_; Atom AtomBinaryStream_;
#define AtomBinaryStream Yap_heap_regs->AtomBinaryStream_ #define AtomBinaryStream Yap_heap_regs->AtomBinaryStream_
Atom AtomBoolean_;
#define AtomBoolean Yap_heap_regs->AtomBoolean_
Atom AtomBraces_; Atom AtomBraces_;
#define AtomBraces Yap_heap_regs->AtomBraces_ #define AtomBraces Yap_heap_regs->AtomBraces_
Atom AtomBreak_; Atom AtomBreak_;
@ -100,6 +102,8 @@
#define AtomCharacter Yap_heap_regs->AtomCharacter_ #define AtomCharacter Yap_heap_regs->AtomCharacter_
Atom AtomCharacterCode_; Atom AtomCharacterCode_;
#define AtomCharacterCode Yap_heap_regs->AtomCharacterCode_ #define AtomCharacterCode Yap_heap_regs->AtomCharacterCode_
Atom AtomChars_;
#define AtomChars Yap_heap_regs->AtomChars_
Atom AtomCharset_; Atom AtomCharset_;
#define AtomCharset Yap_heap_regs->AtomCharset_ #define AtomCharset Yap_heap_regs->AtomCharset_
Atom AtomCleanCall_; Atom AtomCleanCall_;
@ -116,6 +120,8 @@
#define AtomComma Yap_heap_regs->AtomComma_ #define AtomComma Yap_heap_regs->AtomComma_
Atom AtomCommentHook_; Atom AtomCommentHook_;
#define AtomCommentHook Yap_heap_regs->AtomCommentHook_ #define AtomCommentHook Yap_heap_regs->AtomCommentHook_
Atom AtomCompact_;
#define AtomCompact Yap_heap_regs->AtomCompact_
Atom AtomCompound_; Atom AtomCompound_;
#define AtomCompound Yap_heap_regs->AtomCompound_ #define AtomCompound Yap_heap_regs->AtomCompound_
Atom AtomConsistencyError_; Atom AtomConsistencyError_;
@ -154,8 +160,8 @@
#define AtomDBref Yap_heap_regs->AtomDBref_ #define AtomDBref Yap_heap_regs->AtomDBref_
Atom AtomDInteger_; Atom AtomDInteger_;
#define AtomDInteger Yap_heap_regs->AtomDInteger_ #define AtomDInteger Yap_heap_regs->AtomDInteger_
Atom AtomDOUBLE_; Atom AtomDebuggerInput_;
#define AtomDOUBLE Yap_heap_regs->AtomDOUBLE_ #define AtomDebuggerInput Yap_heap_regs->AtomDebuggerInput_
Atom AtomDec10_; Atom AtomDec10_;
#define AtomDec10 Yap_heap_regs->AtomDec10_ #define AtomDec10 Yap_heap_regs->AtomDec10_
Atom AtomDefault_; Atom AtomDefault_;
@ -166,6 +172,8 @@
#define AtomDiff Yap_heap_regs->AtomDiff_ #define AtomDiff Yap_heap_regs->AtomDiff_
Atom AtomDiscontiguous_; Atom AtomDiscontiguous_;
#define AtomDiscontiguous Yap_heap_regs->AtomDiscontiguous_ #define AtomDiscontiguous Yap_heap_regs->AtomDiscontiguous_
Atom AtomDiscontiguousWarnings_;
#define AtomDiscontiguousWarnings Yap_heap_regs->AtomDiscontiguousWarnings_
Atom AtomDollar_; Atom AtomDollar_;
#define AtomDollar Yap_heap_regs->AtomDollar_ #define AtomDollar Yap_heap_regs->AtomDollar_
Atom AtomDoLogUpdClause_; Atom AtomDoLogUpdClause_;
@ -174,14 +182,18 @@
#define AtomDoLogUpdClause0 Yap_heap_regs->AtomDoLogUpdClause0_ #define AtomDoLogUpdClause0 Yap_heap_regs->AtomDoLogUpdClause0_
Atom AtomDoLogUpdClauseErase_; Atom AtomDoLogUpdClauseErase_;
#define AtomDoLogUpdClauseErase Yap_heap_regs->AtomDoLogUpdClauseErase_ #define AtomDoLogUpdClauseErase Yap_heap_regs->AtomDoLogUpdClauseErase_
Atom AtomDoStaticClause_;
#define AtomDoStaticClause Yap_heap_regs->AtomDoStaticClause_
Atom AtomDollarU_; Atom AtomDollarU_;
#define AtomDollarU Yap_heap_regs->AtomDollarU_ #define AtomDollarU Yap_heap_regs->AtomDollarU_
Atom AtomDollarUndef_; Atom AtomDollarUndef_;
#define AtomDollarUndef Yap_heap_regs->AtomDollarUndef_ #define AtomDollarUndef Yap_heap_regs->AtomDollarUndef_
Atom AtomDomainError_; Atom AtomDomainError_;
#define AtomDomainError Yap_heap_regs->AtomDomainError_ #define AtomDomainError Yap_heap_regs->AtomDomainError_
Atom AtomDoStaticClause_;
#define AtomDoStaticClause Yap_heap_regs->AtomDoStaticClause_
Atom AtomDots_;
#define AtomDots Yap_heap_regs->AtomDots_
Atom AtomDOUBLE_;
#define AtomDOUBLE Yap_heap_regs->AtomDOUBLE_
Atom AtomE_; Atom AtomE_;
#define AtomE Yap_heap_regs->AtomE_ #define AtomE Yap_heap_regs->AtomE_
Atom AtomEOFBeforeEOT_; Atom AtomEOFBeforeEOT_;
@ -196,10 +208,14 @@
#define AtomEndOfStream Yap_heap_regs->AtomEndOfStream_ #define AtomEndOfStream Yap_heap_regs->AtomEndOfStream_
Atom AtomEof_; Atom AtomEof_;
#define AtomEof Yap_heap_regs->AtomEof_ #define AtomEof Yap_heap_regs->AtomEof_
Atom AtomEOfCode_;
#define AtomEOfCode Yap_heap_regs->AtomEOfCode_
Atom AtomEq_; Atom AtomEq_;
#define AtomEq Yap_heap_regs->AtomEq_ #define AtomEq Yap_heap_regs->AtomEq_
Atom AtomError_; Atom AtomError_;
#define AtomError Yap_heap_regs->AtomError_ #define AtomError Yap_heap_regs->AtomError_
Atom AtomException_;
#define AtomException Yap_heap_regs->AtomException_
Atom AtomEvaluable_; Atom AtomEvaluable_;
#define AtomEvaluable Yap_heap_regs->AtomEvaluable_ #define AtomEvaluable Yap_heap_regs->AtomEvaluable_
Atom AtomEvaluationError_; Atom AtomEvaluationError_;
@ -246,6 +262,8 @@
#define AtomFormat Yap_heap_regs->AtomFormat_ #define AtomFormat Yap_heap_regs->AtomFormat_
Atom AtomFormatAt_; Atom AtomFormatAt_;
#define AtomFormatAt Yap_heap_regs->AtomFormatAt_ #define AtomFormatAt Yap_heap_regs->AtomFormatAt_
Atom AtomFull_;
#define AtomFull Yap_heap_regs->AtomFull_
Atom AtomFunctor_; Atom AtomFunctor_;
#define AtomFunctor Yap_heap_regs->AtomFunctor_ #define AtomFunctor Yap_heap_regs->AtomFunctor_
Atom AtomGT_; Atom AtomGT_;
@ -268,6 +286,8 @@
#define AtomGetwork Yap_heap_regs->AtomGetwork_ #define AtomGetwork Yap_heap_regs->AtomGetwork_
Atom AtomGetworkSeq_; Atom AtomGetworkSeq_;
#define AtomGetworkSeq Yap_heap_regs->AtomGetworkSeq_ #define AtomGetworkSeq Yap_heap_regs->AtomGetworkSeq_
Atom AtomGlobal_;
#define AtomGlobal Yap_heap_regs->AtomGlobal_
Atom AtomGlobalSp_; Atom AtomGlobalSp_;
#define AtomGlobalSp Yap_heap_regs->AtomGlobalSp_ #define AtomGlobalSp Yap_heap_regs->AtomGlobalSp_
Atom AtomGlobalTrie_; Atom AtomGlobalTrie_;
@ -284,12 +304,16 @@
#define AtomHeap Yap_heap_regs->AtomHeap_ #define AtomHeap Yap_heap_regs->AtomHeap_
Atom AtomHeapUsed_; Atom AtomHeapUsed_;
#define AtomHeapUsed Yap_heap_regs->AtomHeapUsed_ #define AtomHeapUsed Yap_heap_regs->AtomHeapUsed_
Atom AtomHugeInt_;
#define AtomHugeInt Yap_heap_regs->AtomHugeInt_
Atom AtomIDB_; Atom AtomIDB_;
#define AtomIDB Yap_heap_regs->AtomIDB_ #define AtomIDB Yap_heap_regs->AtomIDB_
Atom AtomIOMode_; Atom AtomIOMode_;
#define AtomIOMode Yap_heap_regs->AtomIOMode_ #define AtomIOMode Yap_heap_regs->AtomIOMode_
Atom AtomId_; Atom AtomId_;
#define AtomId Yap_heap_regs->AtomId_ #define AtomId Yap_heap_regs->AtomId_
Atom AtomIgnore_;
#define AtomIgnore Yap_heap_regs->AtomIgnore_
Atom AtomInf_; Atom AtomInf_;
#define AtomInf Yap_heap_regs->AtomInf_ #define AtomInf Yap_heap_regs->AtomInf_
Atom AtomInfinity_; Atom AtomInfinity_;
@ -322,6 +346,8 @@
#define AtomLONGINT Yap_heap_regs->AtomLONGINT_ #define AtomLONGINT Yap_heap_regs->AtomLONGINT_
Atom AtomLOOP_; Atom AtomLOOP_;
#define AtomLOOP Yap_heap_regs->AtomLOOP_ #define AtomLOOP Yap_heap_regs->AtomLOOP_
Atom AtomLoopStream_;
#define AtomLoopStream Yap_heap_regs->AtomLoopStream_
Atom AtomLT_; Atom AtomLT_;
#define AtomLT Yap_heap_regs->AtomLT_ #define AtomLT Yap_heap_regs->AtomLT_
Atom AtomLastExecuteWithin_; Atom AtomLastExecuteWithin_;
@ -334,6 +360,8 @@
#define AtomLength Yap_heap_regs->AtomLength_ #define AtomLength Yap_heap_regs->AtomLength_
Atom AtomList_; Atom AtomList_;
#define AtomList Yap_heap_regs->AtomList_ #define AtomList Yap_heap_regs->AtomList_
Atom AtomLine_;
#define AtomLine Yap_heap_regs->AtomLine_
Atom AtomLive_; Atom AtomLive_;
#define AtomLive Yap_heap_regs->AtomLive_ #define AtomLive Yap_heap_regs->AtomLive_
Atom AtomLoadAnswers_; Atom AtomLoadAnswers_;
@ -366,8 +394,12 @@
#define AtomMinus Yap_heap_regs->AtomMinus_ #define AtomMinus Yap_heap_regs->AtomMinus_
Atom AtomModify_; Atom AtomModify_;
#define AtomModify Yap_heap_regs->AtomModify_ #define AtomModify Yap_heap_regs->AtomModify_
Atom AtomModule_;
#define AtomModule Yap_heap_regs->AtomModule_
Atom AtomMost_; Atom AtomMost_;
#define AtomMost Yap_heap_regs->AtomMost_ #define AtomMost Yap_heap_regs->AtomMost_
Atom AtomMulti_;
#define AtomMulti Yap_heap_regs->AtomMulti_
Atom AtomMultiFile_; Atom AtomMultiFile_;
#define AtomMultiFile Yap_heap_regs->AtomMultiFile_ #define AtomMultiFile Yap_heap_regs->AtomMultiFile_
Atom AtomMultiple_; Atom AtomMultiple_;
@ -454,8 +486,12 @@
#define AtomOutOfTrailError Yap_heap_regs->AtomOutOfTrailError_ #define AtomOutOfTrailError Yap_heap_regs->AtomOutOfTrailError_
Atom AtomOutput_; Atom AtomOutput_;
#define AtomOutput Yap_heap_regs->AtomOutput_ #define AtomOutput Yap_heap_regs->AtomOutput_
Atom AtomParameter_;
#define AtomParameter Yap_heap_regs->AtomParameter_
Atom AtomPrologCommonsDir_; Atom AtomPrologCommonsDir_;
#define AtomPrologCommonsDir Yap_heap_regs->AtomPrologCommonsDir_ #define AtomPrologCommonsDir Yap_heap_regs->AtomPrologCommonsDir_
Atom AtomPast_;
#define AtomPast Yap_heap_regs->AtomPast_
Atom AtomPastEndOfStream_; Atom AtomPastEndOfStream_;
#define AtomPastEndOfStream Yap_heap_regs->AtomPastEndOfStream_ #define AtomPastEndOfStream Yap_heap_regs->AtomPastEndOfStream_
Atom AtomPermissionError_; Atom AtomPermissionError_;
@ -498,14 +534,22 @@
#define AtomRandom Yap_heap_regs->AtomRandom_ #define AtomRandom Yap_heap_regs->AtomRandom_
Atom AtomRange_; Atom AtomRange_;
#define AtomRange Yap_heap_regs->AtomRange_ #define AtomRange Yap_heap_regs->AtomRange_
Atom AtomRDiv_;
#define AtomRDiv Yap_heap_regs->AtomRDiv_
Atom AtomRead_; Atom AtomRead_;
#define AtomRead Yap_heap_regs->AtomRead_ #define AtomRead Yap_heap_regs->AtomRead_
Atom AtomReadOnly_;
#define AtomReadOnly Yap_heap_regs->AtomReadOnly_
Atom AtomReadWrite_;
#define AtomReadWrite Yap_heap_regs->AtomReadWrite_
Atom AtomReadutil_; Atom AtomReadutil_;
#define AtomReadutil Yap_heap_regs->AtomReadutil_ #define AtomReadutil Yap_heap_regs->AtomReadutil_
Atom AtomRecordedP_; Atom AtomRecordedP_;
#define AtomRecordedP Yap_heap_regs->AtomRecordedP_ #define AtomRecordedP Yap_heap_regs->AtomRecordedP_
Atom AtomRecordedWithKey_; Atom AtomRecordedWithKey_;
#define AtomRecordedWithKey Yap_heap_regs->AtomRecordedWithKey_ #define AtomRecordedWithKey Yap_heap_regs->AtomRecordedWithKey_
Atom AtomRedefineWarnings_;
#define AtomRedefineWarnings Yap_heap_regs->AtomRedefineWarnings_
Atom AtomRedoFreeze_; Atom AtomRedoFreeze_;
#define AtomRedoFreeze Yap_heap_regs->AtomRedoFreeze_ #define AtomRedoFreeze Yap_heap_regs->AtomRedoFreeze_
Atom AtomRefoundVar_; Atom AtomRefoundVar_;
@ -518,8 +562,8 @@
#define AtomReposition Yap_heap_regs->AtomReposition_ #define AtomReposition Yap_heap_regs->AtomReposition_
Atom AtomRepresentationError_; Atom AtomRepresentationError_;
#define AtomRepresentationError Yap_heap_regs->AtomRepresentationError_ #define AtomRepresentationError Yap_heap_regs->AtomRepresentationError_
Atom AtomRDiv_; Atom AtomReset_;
#define AtomRDiv Yap_heap_regs->AtomRDiv_ #define AtomReset Yap_heap_regs->AtomReset_
Atom AtomResize_; Atom AtomResize_;
#define AtomResize Yap_heap_regs->AtomResize_ #define AtomResize Yap_heap_regs->AtomResize_
Atom AtomResourceError_; Atom AtomResourceError_;
@ -576,12 +620,20 @@
#define AtomSigVTAlarm Yap_heap_regs->AtomSigVTAlarm_ #define AtomSigVTAlarm Yap_heap_regs->AtomSigVTAlarm_
Atom AtomSigWakeUp_; Atom AtomSigWakeUp_;
#define AtomSigWakeUp Yap_heap_regs->AtomSigWakeUp_ #define AtomSigWakeUp Yap_heap_regs->AtomSigWakeUp_
Atom AtomSilent_;
#define AtomSilent Yap_heap_regs->AtomSilent_
Atom AtomSingle_;
#define AtomSingle Yap_heap_regs->AtomSingle_
Atom AtomSingleVarWarnings_;
#define AtomSingleVarWarnings Yap_heap_regs->AtomSingleVarWarnings_
Atom AtomSingleton_; Atom AtomSingleton_;
#define AtomSingleton Yap_heap_regs->AtomSingleton_ #define AtomSingleton Yap_heap_regs->AtomSingleton_
Atom AtomSlash_; Atom AtomSlash_;
#define AtomSlash Yap_heap_regs->AtomSlash_ #define AtomSlash Yap_heap_regs->AtomSlash_
Atom AtomSocket_; Atom AtomSocket_;
#define AtomSocket Yap_heap_regs->AtomSocket_ #define AtomSocket Yap_heap_regs->AtomSocket_
Atom AtomSource_;
#define AtomSource Yap_heap_regs->AtomSource_
Atom AtomSourceSink_; Atom AtomSourceSink_;
#define AtomSourceSink Yap_heap_regs->AtomSourceSink_ #define AtomSourceSink Yap_heap_regs->AtomSourceSink_
Atom AtomSpy_; Atom AtomSpy_;
@ -616,6 +668,8 @@
#define AtomSTRING Yap_heap_regs->AtomSTRING_ #define AtomSTRING Yap_heap_regs->AtomSTRING_
Atom AtomSwi_; Atom AtomSwi_;
#define AtomSwi Yap_heap_regs->AtomSwi_ #define AtomSwi Yap_heap_regs->AtomSwi_
Atom AtomSymbolChar_;
#define AtomSymbolChar Yap_heap_regs->AtomSymbolChar_
Atom AtomSyntaxError_; Atom AtomSyntaxError_;
#define AtomSyntaxError Yap_heap_regs->AtomSyntaxError_ #define AtomSyntaxError Yap_heap_regs->AtomSyntaxError_
Atom AtomSyntaxErrorHandler_; Atom AtomSyntaxErrorHandler_;
@ -636,6 +690,8 @@
#define AtomText Yap_heap_regs->AtomText_ #define AtomText Yap_heap_regs->AtomText_
Atom AtomTextStream_; Atom AtomTextStream_;
#define AtomTextStream Yap_heap_regs->AtomTextStream_ #define AtomTextStream Yap_heap_regs->AtomTextStream_
Atom AtomThread_;
#define AtomThread Yap_heap_regs->AtomThread_
Atom AtomThreads_; Atom AtomThreads_;
#define AtomThreads Yap_heap_regs->AtomThreads_ #define AtomThreads Yap_heap_regs->AtomThreads_
Atom AtomThrow_; Atom AtomThrow_;
@ -686,6 +742,8 @@
#define AtomVar Yap_heap_regs->AtomVar_ #define AtomVar Yap_heap_regs->AtomVar_
Atom AtomVarBranches_; Atom AtomVarBranches_;
#define AtomVarBranches Yap_heap_regs->AtomVarBranches_ #define AtomVarBranches Yap_heap_regs->AtomVarBranches_
Atom AtomVariableNames_;
#define AtomVariableNames Yap_heap_regs->AtomVariableNames_
Atom AtomHiddenVar_; Atom AtomHiddenVar_;
#define AtomHiddenVar Yap_heap_regs->AtomHiddenVar_ #define AtomHiddenVar Yap_heap_regs->AtomHiddenVar_
Atom AtomVariable_; Atom AtomVariable_;
@ -694,10 +752,14 @@
#define AtomVersionNumber Yap_heap_regs->AtomVersionNumber_ #define AtomVersionNumber Yap_heap_regs->AtomVersionNumber_
Atom AtomWakeUpGoal_; Atom AtomWakeUpGoal_;
#define AtomWakeUpGoal Yap_heap_regs->AtomWakeUpGoal_ #define AtomWakeUpGoal Yap_heap_regs->AtomWakeUpGoal_
Atom AtomWarning_;
#define AtomWarning Yap_heap_regs->AtomWarning_
Atom AtomWhen_; Atom AtomWhen_;
#define AtomWhen Yap_heap_regs->AtomWhen_ #define AtomWhen Yap_heap_regs->AtomWhen_
Atom AtomWrite_; Atom AtomWrite_;
#define AtomWrite Yap_heap_regs->AtomWrite_ #define AtomWrite Yap_heap_regs->AtomWrite_
Atom AtomXml_;
#define AtomXml Yap_heap_regs->AtomXml_
Atom AtomYapHacks_; Atom AtomYapHacks_;
#define AtomYapHacks Yap_heap_regs->AtomYapHacks_ #define AtomYapHacks Yap_heap_regs->AtomYapHacks_
Atom AtomZeroDivisor_; Atom AtomZeroDivisor_;
@ -738,12 +800,18 @@
#define FunctorCatch Yap_heap_regs->FunctorCatch_ #define FunctorCatch Yap_heap_regs->FunctorCatch_
Functor FunctorChangeModule_; Functor FunctorChangeModule_;
#define FunctorChangeModule Yap_heap_regs->FunctorChangeModule_ #define FunctorChangeModule Yap_heap_regs->FunctorChangeModule_
Functor FunctorChars_;
#define FunctorChars Yap_heap_regs->FunctorChars_
Functor FunctorChars1_;
#define FunctorChars1 Yap_heap_regs->FunctorChars1_
Functor FunctorCleanCall_; Functor FunctorCleanCall_;
#define FunctorCleanCall Yap_heap_regs->FunctorCleanCall_ #define FunctorCleanCall Yap_heap_regs->FunctorCleanCall_
Functor FunctorClist_; Functor FunctorClist_;
#define FunctorClist Yap_heap_regs->FunctorClist_ #define FunctorClist Yap_heap_regs->FunctorClist_
Functor FunctorCodes_; Functor FunctorCodes_;
#define FunctorCodes Yap_heap_regs->FunctorCodes_ #define FunctorCodes Yap_heap_regs->FunctorCodes_
Functor FunctorCodes1_;
#define FunctorCodes1 Yap_heap_regs->FunctorCodes1_
Functor FunctorComma_; Functor FunctorComma_;
#define FunctorComma Yap_heap_regs->FunctorComma_ #define FunctorComma Yap_heap_regs->FunctorComma_
Functor FunctorCommentHook_; Functor FunctorCommentHook_;
@ -922,6 +990,8 @@
#define FunctorStreamEOS Yap_heap_regs->FunctorStreamEOS_ #define FunctorStreamEOS Yap_heap_regs->FunctorStreamEOS_
Functor FunctorStreamPos_; Functor FunctorStreamPos_;
#define FunctorStreamPos Yap_heap_regs->FunctorStreamPos_ #define FunctorStreamPos Yap_heap_regs->FunctorStreamPos_
Functor FunctorString1_;
#define FunctorString1 Yap_heap_regs->FunctorString1_
Functor FunctorSyntaxError_; Functor FunctorSyntaxError_;
#define FunctorSyntaxError Yap_heap_regs->FunctorSyntaxError_ #define FunctorSyntaxError Yap_heap_regs->FunctorSyntaxError_
Functor FunctorShortSyntaxError_; Functor FunctorShortSyntaxError_;

View File

@ -35,12 +35,12 @@ typedef struct read_data_t
unsigned char *base; /* base of clause */ unsigned char *base; /* base of clause */
unsigned char *end; /* end of the clause */ unsigned char *end; /* end of the clause */
unsigned char *token_start; /* start of most recent read token */ unsigned char *token_start; /* start of most recent read token */
int magic; /* RD_MAGIC */ int magic; /* RD_MAGIC */
IOPOS position; /* Line, line pos, char and byte */ IOPOS position; /* Line, line pos, char and byte */
unsigned char *posp; /* position pointer */ unsigned char *posp; /* position pointer */
size_t posi; /* position number */ size_t posi; /* position number */
term_t subtpos; /* Report Subterm positions */ term_t subtpos; /* Report Subterm positions */
bool cycles; /* Re-establish cycles */ bool cycles; /* Re-establish cycles */
source_location start_of_term; /* Position of start of term */ source_location start_of_term; /* Position of start of term */
@ -57,7 +57,7 @@ typedef struct read_data_t
term_t exception; /* raised exception */ term_t exception; /* raised exception */
term_t variables; /* report variables */ term_t variables; /* report variables */
term_t singles; /* Report singleton variables */ term_t singles; /* Report singleton variables */
term_t varnames; /* Report variables+names */ term_t varnames; /* Report variables+names */
int strictness; /* Strictness level */ int strictness; /* Strictness level */
#ifdef O_QUASIQUOTATIONS #ifdef O_QUASIQUOTATIONS

View File

@ -39,9 +39,10 @@ A Attributes N "attributes"
A B F "$last_choice_pt" A B F "$last_choice_pt"
A Batched N "batched" A Batched N "batched"
A Between N "between" A Between N "between"
A HugeInt N "huge_int" A Binary N "binary"
A BigNum N "big_num" A BigNum N "big_num"
A BinaryStream N "binary_stream" A BinaryStream N "binary_stream"
A Boolean N "boolean"
A Braces N "{}" A Braces N "{}"
A Break F "$break" A Break F "$break"
A Byte N "byte" A Byte N "byte"
@ -56,14 +57,16 @@ A Char N "char"
A Charsio N "charsio" A Charsio N "charsio"
A Character N "character" A Character N "character"
A CharacterCode N "character_code" A CharacterCode N "character_code"
A Chars N "chars"
A Charset N "charset" A Charset N "charset"
A CleanCall F "$clean_call" A CleanCall F "$clean_call"
A Colomn N ":" A Colomn N ":"
A CodeSpace N "code_space" A CodeSpace N "code_space"
A Codes N "codes" A Codes N "codes"
A CoInductive N "coinductive" A CoInductive N "coinductive"
A Comma N "," A Comma N ","
A CommentHook N "comment_hook" A CommentHook N "comment_hook"
A Compact N "compact"
A Compound N "compound" A Compound N "compound"
A ConsistencyError N "consistency_error" A ConsistencyError N "consistency_error"
A ConsultOnBoot F "$consult_on_boot" A ConsultOnBoot F "$consult_on_boot"
@ -83,20 +86,23 @@ A DBReference N "db_reference"
A DBTerm N "db_term" A DBTerm N "db_term"
A DBref F "$dbref" A DBref F "$dbref"
A DInteger F "$integer" A DInteger F "$integer"
A DOUBLE F "Double" A DebuggerInput N "debugger_input"
A Dec10 N "dec10" A Dec10 N "dec10"
A Default N "default" A Default N "default"
A DevNull N "/dev/null" A DevNull N "/dev/null"
A Diff N "\\=" A Diff N "\\="
A Discontiguous N "discontiguous" A Discontiguous N "discontiguous"
A DiscontiguousWarnings N "discontiguous_warnings"
A Dollar F "$" A Dollar F "$"
A DoLogUpdClause F "$do_log_upd_clause" A DoLogUpdClause F "$do_log_upd_clause"
A DoLogUpdClause0 F "$do_log_upd_clause0" A DoLogUpdClause0 F "$do_log_upd_clause0"
A DoLogUpdClauseErase F "$do_log_upd_clause_erase" A DoLogUpdClauseErase F "$do_log_upd_clause_erase"
A DoStaticClause F "$do_static_clause"
A DollarU F "$u" A DollarU F "$u"
A DollarUndef F "$undef" A DollarUndef F "$undef"
A DomainError N "domain_error" A DomainError N "domain_error"
A DoStaticClause F "$do_static_clause"
A Dots N "dots"
A DOUBLE F "Double"
A E N "e" A E N "e"
A EOFBeforeEOT N "end_of_file_found_before_end_of_term" A EOFBeforeEOT N "end_of_file_found_before_end_of_term"
A EQ N "=" A EQ N "="
@ -104,8 +110,10 @@ A EmptyAtom N ""
A Encoding N "encoding" A Encoding N "encoding"
A EndOfStream N "$end_of_stream" A EndOfStream N "$end_of_stream"
A Eof N "end_of_file" A Eof N "end_of_file"
A EOfCode N "eof_code"
A Eq N "=" A Eq N "="
A Error N "error" A Error N "error"
A Exception N "exception"
A Evaluable N "evaluable" A Evaluable N "evaluable"
A EvaluationError N "evaluation_error" A EvaluationError N "evaluation_error"
A Execute N "execute" A Execute N "execute"
@ -129,6 +137,7 @@ A FloatOverflow N "float_overflow"
A FloatUnderflow N "float_underflow" A FloatUnderflow N "float_underflow"
A Format N "format" A Format N "format"
A FormatAt F "$format@" A FormatAt F "$format@"
A Full N "full"
A Functor N "functor" A Functor N "functor"
A GT N ">" A GT N ">"
A GVar N "var" A GVar N "var"
@ -140,6 +149,7 @@ A GcVeryVerbose F "$gc_very_verbose"
A GeneratePredInfo F "$generate_pred_info" A GeneratePredInfo F "$generate_pred_info"
A Getwork F "$getwork" A Getwork F "$getwork"
A GetworkSeq F "$getwork_seq" A GetworkSeq F "$getwork_seq"
A Global N "global"
A GlobalSp N "global_sp" A GlobalSp N "global_sp"
A GlobalTrie N "global_trie" A GlobalTrie N "global_trie"
A GoalExpansion N "goal_expansion" A GoalExpansion N "goal_expansion"
@ -148,9 +158,11 @@ A HERE N "\n <====HERE====> \n"
A HandleThrow F "$handle_throw" A HandleThrow F "$handle_throw"
A Heap N "heap" A Heap N "heap"
A HeapUsed N "heapused" A HeapUsed N "heapused"
A HugeInt N "huge_int"
A IDB N "idb" A IDB N "idb"
A IOMode N "io_mode" A IOMode N "io_mode"
A Id N "id" A Id N "id"
A Ignore N "ignore"
A Inf N "inf" A Inf N "inf"
A Infinity N "infinity" A Infinity N "infinity"
A InitGoal F "$init_goal" A InitGoal F "$init_goal"
@ -167,12 +179,14 @@ A Key N "key"
A LDLibraryPath N "LD_LIBRARY_PATH" A LDLibraryPath N "LD_LIBRARY_PATH"
A LONGINT N "LongInt" A LONGINT N "LongInt"
A LOOP N "_LOOP_" A LOOP N "_LOOP_"
A LoopStream N "loop_stream"
A LT N "<" A LT N "<"
A LastExecuteWithin F "$last_execute_within" A LastExecuteWithin F "$last_execute_within"
A Leash F "$leash" A Leash F "$leash"
A Least N "least" A Least N "least"
A Length F "length" A Length F "length"
A List N "list" A List N "list"
A Line N "line"
A Live F "$live" A Live F "$live"
A LoadAnswers N "load_answers" A LoadAnswers N "load_answers"
A Local N "local" A Local N "local"
@ -189,7 +203,9 @@ A Min N "min"
A Minimum N "minimum" A Minimum N "minimum"
A Minus N "-" A Minus N "-"
A Modify N "modify" A Modify N "modify"
A Module N "module"
A Most N "most" A Most N "most"
A Multi N "multi"
A MultiFile F "$mf" A MultiFile F "$mf"
A Multiple F "multiple" A Multiple F "multiple"
A Mutable N "mutable" A Mutable N "mutable"
@ -233,7 +249,9 @@ A OutOfRange N "out_of_range"
A OutOfStackError N "out_of_stack_error" A OutOfStackError N "out_of_stack_error"
A OutOfTrailError N "out_of_trail_error" A OutOfTrailError N "out_of_trail_error"
A Output N "output" A Output N "output"
A Parameter N "parameter"
A PrologCommonsDir N "prolog_commons_directory" A PrologCommonsDir N "prolog_commons_directory"
A Past N "past"
A PastEndOfStream N "past_end_of_stream" A PastEndOfStream N "past_end_of_stream"
A PermissionError N "permission_error" A PermissionError N "permission_error"
A Pi N "pi" A Pi N "pi"
@ -255,17 +273,21 @@ A Quiet N "quiet"
A Radix N "radix" A Radix N "radix"
A Random N "random" A Random N "random"
A Range N "range" A Range N "range"
A RDiv N "rdiv"
A Read N "read" A Read N "read"
A ReadOnly N "read_only"
A ReadWrite N "read_write"
A Readutil N "readutil" A Readutil N "readutil"
A RecordedP F "$recordep" A RecordedP F "$recordep"
A RecordedWithKey F "$recorded_with_key" A RecordedWithKey F "$recorded_with_key"
A RedefineWarnings N "redefine_warnings"
A RedoFreeze F "$redo_freeze" A RedoFreeze F "$redo_freeze"
A RefoundVar F "$I_FOUND_THE_VARIABLE_AGAIN" A RefoundVar F "$I_FOUND_THE_VARIABLE_AGAIN"
A Repeat N "repeat" A Repeat N "repeat"
A RepeatSpace N "repeat " A RepeatSpace N "repeat "
A Reposition N "reposition" A Reposition N "reposition"
A RepresentationError N "representation_error" A RepresentationError N "representation_error"
A RDiv N "rdiv" A Reset N "reset"
A Resize N "resize" A Resize N "resize"
A ResourceError N "resource_error" A ResourceError N "resource_error"
A RestoreRegs F "$restore_regs" A RestoreRegs F "$restore_regs"
@ -294,9 +316,13 @@ A SigUsr1 N "sig_usr1"
A SigUsr2 N "sig_usr2" A SigUsr2 N "sig_usr2"
A SigVTAlarm N "sig_vtalarm" A SigVTAlarm N "sig_vtalarm"
A SigWakeUp N "sig_wake_up" A SigWakeUp N "sig_wake_up"
A Silent N "Silent"
A Single N "single"
A SingleVarWarnings N "single_var_warnings"
A Singleton N "singleton" A Singleton N "singleton"
A Slash N "/" A Slash N "/"
A Socket N "socket" A Socket N "socket"
A Source N "source"
A SourceSink N "source_sink" A SourceSink N "source_sink"
A Spy F "$spy" A Spy F "$spy"
A Stack N "stack" A Stack N "stack"
@ -314,6 +340,7 @@ A StreamPosition N "stream_position"
A String N "string" A String N "string"
A STRING F "String" A STRING F "String"
A Swi N "swi" A Swi N "swi"
A SymbolChar N "symbol_char"
A SyntaxError N "syntax_error" A SyntaxError N "syntax_error"
A SyntaxErrorHandler N "syntax_error_handler" A SyntaxErrorHandler N "syntax_error_handler"
A System N "system" A System N "system"
@ -324,6 +351,7 @@ A Terms N "terms"
A TermExpansion N "term_expansion" A TermExpansion N "term_expansion"
A Text N "text" A Text N "text"
A TextStream N "text_stream" A TextStream N "text_stream"
A Thread N "thread"
A Threads N "threads" A Threads N "threads"
A Throw N "throw" A Throw N "throw"
A TimeOutSpec N "time_out_spec" A TimeOutSpec N "time_out_spec"
@ -349,12 +377,15 @@ A UserOut N "user_output"
A VBar N "|" A VBar N "|"
A Var F "$VAR" A Var F "$VAR"
A VarBranches N "var_branches" A VarBranches N "var_branches"
A VariableNames N "variable_names"
A HiddenVar F "$V" A HiddenVar F "$V"
A Variable N "variable" A Variable N "variable"
A VersionNumber F "$version_name" A VersionNumber F "$version_name"
A WakeUpGoal F "$wake_up_goal" A WakeUpGoal F "$wake_up_goal"
A Warning N "warning"
A When F "$when" A When F "$when"
A Write N "write" A Write N "write"
A Xml N "xml"
A YapHacks N "yap_hacks" A YapHacks N "yap_hacks"
A ZeroDivisor N "zero_divisor" A ZeroDivisor N "zero_divisor"
F AfInet AfInet 2 F AfInet AfInet 2
@ -375,9 +406,12 @@ F Braces Braces 1
F Call Call 1 F Call Call 1
F Catch Catch 3 F Catch Catch 3
F ChangeModule ChangeModule 1 F ChangeModule ChangeModule 1
F Chars Chars 2
F Chars1 Chars 1
F CleanCall CleanCall 2 F CleanCall CleanCall 2
F Clist When 4 F Clist When 4
F Codes Codes 2 F Codes Codes 2
F Codes1 Codes 1
F Comma Comma 2 F Comma Comma 2
F CommentHook CommentHook 3 F CommentHook CommentHook 3
F Context2 Context 2 F Context2 Context 2
@ -467,6 +501,7 @@ F StaticClause StaticClause 2
F Stream Stream 1 F Stream Stream 1
F StreamEOS EndOfStream 1 F StreamEOS EndOfStream 1
F StreamPos StreamPos 4 F StreamPos StreamPos 4
F String1 String 1
F SyntaxError SyntaxError 7 F SyntaxError SyntaxError 7
F ShortSyntaxError SyntaxError 1 F ShortSyntaxError SyntaxError 1
F TermExpansion TermExpansion 2 F TermExpansion TermExpansion 2

View File

@ -22,6 +22,7 @@ int Initialised =FALSE
int InitialisedFromPL =FALSE int InitialisedFromPL =FALSE
int PL_Argc =0 int PL_Argc =0
char** PL_Argv =NULL char** PL_Argv =NULL
bool FAST_BOOT_FLAG =false
// halt hooks // halt hooks
struct halt_hook* HaltHooks =NULL struct halt_hook* HaltHooks =NULL
@ -71,20 +72,23 @@ int PrologShouldHandleInterrupts void
/* This is the guy who actually started the system, and who has the correct registers */ /* This is the guy who actually started the system, and who has the correct registers */
#if defined(THREADS) #if defined(THREADS)
pthread_t master_thread void pthread_t master_thread void
struct thread_mbox* named_mboxes =NULL struct thread_mbox* named_mboxes =NULL
lockvar mboxq_lock MkLock lockvar mboxq_lock MkLock
UInt mbox_count =0 UInt mbox_count =0
struct swi_mutex* WithMutex void struct swi_mutex* WithMutex void
#endif /* THREADS */ #endif /* THREADS */
// streams // streams
struct io_stream* stdout =Soutput struct stream_desc* Stream void
struct io_stream* stderr =Serror
// access to yap initial arguments // access to yap initial arguments
char** argv void char** argv void
int argc void int argc void
// Prolog execution and state flags
union flagTerm* Flags void
UInt flagCount void
// extensions to Terms // extensions to Terms
#ifdef COROUTINING #ifdef COROUTINING
/* array with the ops for your favourite extensions */ /* array with the ops for your favourite extensions */
@ -157,6 +161,15 @@ lockvar MUT_ACCESS MkLock
char* Home =NULL char* Home =NULL
/* ISO char conversion: I will make no comments */
char* CharConversionTable =NULL
char* CharConversionTable2 =NULL
/* time */
void* LastWtimePtr =NULL
END_GLOBAL_DATA END_GLOBAL_DATA

View File

@ -87,8 +87,52 @@ ATOMS
#ifdef EUROTRA #ifdef EUROTRA
Term term_dollar_u TermDollarU MkAT AtomDollarU Term term_dollar_u TermDollarU MkAT AtomDollarU
#endif #endif
Term term_append TermAppend MkAT AtomAppend
Term term_atomd TermAtom MkAT AtomAtom
Term term_binary TermBinary MkAT AtomBinary
Term term_boolean TermBoolean MkAT AtomBoolean
Term term_chars TermChars MkAT AtomChars
Term term_codes TermCodes MkAT AtomCodes
Term term_compact TermCompact MkAT AtomCompact
Term term_dec10 TermDec10 MkAT AtomDec10
Term term_dots TermDots MkAT AtomDots
Term term_eof TermEof MkAT AtomEof
Term term_eof_code TermEOfCode MkAT AtomEOfCode
Term term_error TermError MkAT AtomError
Term term_exception TermException MkAT AtomException
Term term_fail TermFail MkAT AtomFail
Term term_false TermFalse MkAT AtomFalse
Term term_float TermFloat MkAT AtomFloat
Term term_global TermGlobal MkAT AtomGlobal
Term term_ignore TermIgnore MkAT AtomIgnore
Term term_integer TermInteger MkAT AtomInteger
Term term_max TermMax MkAT AtomMax
Term term_module TermModule MkAT AtomModule
Term term_multi TermMulti MkAT AtomMulti
Term term_off TermOff MkAT AtomOff
Term term_on TermOn MkAT AtomOn
Term term_portray TermPortray MkAT AtomPortray
Term term_prolog TermProlog MkAT AtomProlog Term term_prolog TermProlog MkAT AtomProlog
Term term_quiet TermQuiet MkAT AtomQuiet
Term term_read TermRead MkAT AtomRead
Term term_read_only TermReadOnly MkAT AtomReadOnly
Term term_read_write TermReadWrite MkAT AtomReadWrite
Term term_refound_var TermReFoundVar MkAT AtomRefoundVar Term term_refound_var TermReFoundVar MkAT AtomRefoundVar
Term term_reset TermReset MkAT AtomReset
Term term_silent TermSilent MkAT AtomSilent
Term term_single TermSingle MkAT AtomSingle
Term term_source TermSource MkAT AtomSource
Term term_string TermString MkAT AtomString
Term term_symbolchar TermSymbolChar MkAT AtomSymbolChar
Term term_term TermTerm MkAT AtomTerm
Term term_text TermText MkAT AtomText
Term term_thread TermThread MkAT AtomThread
Term term_true TermTrue MkAT AtomTrue
Term term_warning TermWarning MkAT AtomWarning
Term term_write TermWrite MkAT AtomWrite
Term term_xml TermXml MkAT AtomXml
//modules
Term user_module USER_MODULE MkAT AtomUser Term user_module USER_MODULE MkAT AtomUser
Term idb_module IDB_MODULE MkAT AtomIDB Term idb_module IDB_MODULE MkAT AtomIDB
Term attributes_module ATTRIBUTES_MODULE MkAT AtomAttributes Term attributes_module ATTRIBUTES_MODULE MkAT AtomAttributes
@ -115,6 +159,14 @@ struct mod_entry *current_modules CurrentModules =NULL ModEntryPtrAdjust
// don't actually want to define a field // don't actually want to define a field
void void void Yap_InitModules() void void void void Yap_InitModules() void
// make sure we have the streams set at this point.
// don't actually want to define a field
void void void Yap_InitPlIO() void
// make sure we have the flags set at this point.
// don't actually want to define a field
void void void Yap_InitFlags(true) void
/* Anderson's JIT */ /* Anderson's JIT */
yap_exec_mode execution_mode Yap_ExecutionMode =INTERPRETED void yap_exec_mode execution_mode Yap_ExecutionMode =INTERPRETED void
@ -295,28 +347,9 @@ int num_of_atts NUM_OF_ATTS =1 void
UInt atts_size Yap_AttsSize void void UInt atts_size Yap_AttsSize void void
#endif #endif
/* YAP control flags */
Int yap_flags_field[NUMBER_OF_YAP_FLAGS] yap_flags InitFlags() void
/* Operators */ /* Operators */
struct operator_entry *op_list OpList =NULL OpListAdjust struct operator_entry *op_list OpList =NULL OpListAdjust
/* ISO char conversion: I will make no comments */
char *char_conversion_table CharConversionTable =NULL CodeCharPAdjust
char *char_conversion_table2 CharConversionTable2 =NULL CodeCharPAdjust
/* what to do when the parser gives an error: should be thread bound? */
int parser_error_style ParserErrorStyle =EXCEPTION_ON_PARSER_ERROR void
/* library location. */
const char *yap_lib_dir Yap_LibDir =NULL CodeConstCharPAdjust
const char *yap_foreign_dir Yap_ForeignDir =NULL CodeConstCharPAdjust
const char *yap_commons_dir Yap_CommonsDir =NULL CodeConstCharPAdjust
const char *yap_bin_dir Yap_BinDir =NULL CodeConstCharPAdjust
/* time */
void *last_wtime LastWtimePtr =NULL CodeVoidPAdjust
/* foreign code loaded */ /* foreign code loaded */
struct ForeignLoadItem *foreign_code_loaded ForeignCodeLoaded =NULL RestoreForeignCode() struct ForeignLoadItem *foreign_code_loaded ForeignCodeLoaded =NULL RestoreForeignCode()
ADDR foreign_code_base ForeignCodeBase =NULL void ADDR foreign_code_base ForeignCodeBase =NULL void
@ -340,10 +373,10 @@ Atom empty_wakeups[MAX_EMPTY_WAKEUPS] EmptyWakeups InitEmptyWakeups() RestoreE
int max_empty_wakeups MaxEmptyWakeups =0 int max_empty_wakeups MaxEmptyWakeups =0
/* SWI blobs */ /* SWI blobs */
struct PL_blob_t *swi_blob_types SWI_BlobTypes =NULL RestoreSWIBlobTypes() struct YAP_blob_t *swi_blob_types BlobTypes =NULL RestoreBlobTypes()
struct AtomEntryStruct *swi_blobs SWI_Blobs =NULL RestoreSWIBlobs() struct AtomEntryStruct *swi_blobs Blobs =NULL RestoreBlobs()
UInt nofblobs NOfBlobs =0 UInt nofblobs NOfBlobs =0
UInt nofblobsmax NOfBlobsMax =256 UInt nofblobsmax NOfBlobsMax =256
#if defined(YAPOR) || defined(THREADS) #if defined(YAPOR) || defined(THREADS)
lockvar swi_blobs_lock SWI_Blobs_Lock MkLock lockvar blobs_lock Blobs_Lock MkLock
#endif #endif

View File

@ -2,10 +2,37 @@
START_WORKER_LOCAL START_WORKER_LOCAL
// Streams // Streams
struct AliasDescS* FileAliases =Yap_InitStandardAliases()
int NOfFileAliases void
int SzOfFileAliases void
int c_input_stream =0 int c_input_stream =0
int c_output_stream =1 int c_output_stream =1
int c_error_stream =2 int c_error_stream =2
bool sockets_io =false
//
// Used by the prompts to check if they are after a newline, and then a
// prompt should be output, or if we are in the middle of a line.
//
bool newline =true
struct format_status* FormatInfo =NULL
Atom AtPrompt =AtomNil
char Prompt[MAX_PROMPT+1] void
encoding_t encoding =Yap_InitialEncoding()
bool quasi_quotations =false
UInt default_priority =1200
bool eot_before_eof =false
UInt max_depth =0
UInt max_list =0
UInt max_write_args =0
// Restore info // Restore info
CELL* OldASP =NULL CELL* OldASP =NULL
CELL* OldLCL0 =NULL CELL* OldLCL0 =NULL
@ -46,6 +73,8 @@ union CONSULT_OBJ* ConsultBase =NULL
/* low-water mark for consult */ /* low-water mark for consult */
union CONSULT_OBJ* ConsultLow =NULL union CONSULT_OBJ* ConsultLow =NULL
Term VarNames =((Term)0) Term VarNames =((Term)0)
Atom SourceFileName =NULL
UInt SourceFileLineno =0
//global variables //global variables
Term GlobalArena =0L TermToGlobalOrAtomAdjust Term GlobalArena =0L TermToGlobalOrAtomAdjust
@ -60,7 +89,7 @@ char* ScannerStack =NULL
struct scanner_extra_alloc* ScannerExtraBlocks =NULL struct scanner_extra_alloc* ScannerExtraBlocks =NULL
struct DB_TERM* BallTerm =NULL RestoreBallTerm(wid) struct DB_TERM* BallTerm =NULL RestoreBallTerm(wid)
UInt MaxActiveSignals =64L UInt MaxActiveSignals =64L
uint64_t Signals =0L uint64_t Signals =0L
UInt IPredArity =0L UInt IPredArity =0L
yamop* ProfEnd =NULL yamop* ProfEnd =NULL
int UncaughtThrow =FALSE int UncaughtThrow =FALSE
@ -131,7 +160,7 @@ Int* LabelFirstArray =NULL
UInt LabelFirstArraySz =0L UInt LabelFirstArraySz =0L
// Thread Local Area for SWI-Prolog emulation routines. // Thread Local Area for SWI-Prolog emulation routines.
struct PL_local_data* PL_local_data_p =Yap_InitThreadIO(wid) // struct PL_local_data* PL_local_data_p =Yap_InitThreadIO(wid)
#ifdef THREADS #ifdef THREADS
struct thandle ThreadHandle InitThreadHandle(wid) struct thandle ThreadHandle InitThreadHandle(wid)
@ -139,6 +168,7 @@ struct thandle ThreadHandle InitThreadHandle(wid)
#if defined(YAPOR) || defined(TABLING) #if defined(YAPOR) || defined(TABLING)
struct local_optyap_data optyap_data Yap_init_local_optyap_data(wid) struct local_optyap_data optyap_data Yap_init_local_optyap_data(wid)
UInt TabMode =0L
#endif /* YAPOR || TABLING */ #endif /* YAPOR || TABLING */
int InterruptsDisabled =FALSE int InterruptsDisabled =FALSE
@ -177,10 +207,14 @@ char FileNameBuf[YAP_FILENAME_MAX] void
char FileNameBuf2[YAP_FILENAME_MAX] void char FileNameBuf2[YAP_FILENAME_MAX] void
// Prolog State // Prolog State
UInt BreakLevel =0
Int PrologMode =BootMode Int PrologMode =BootMode
int CritLocks =0 int CritLocks =0
// Prolog execution and state flags
union flagTerm* Flags void
UInt flagCount void
//analyst.c //analyst.c
/* used to find out how many instructions of each kind are executed */ /* used to find out how many instructions of each kind are executed */
#ifdef ANALYST #ifdef ANALYST

View File

@ -1,6 +1,6 @@
:- use_module(library(lineutils), :- use_module(library(lineutils),
[file_filter_with_initialization/5, [file_filter_with_init/5,
split/3]). split/3]).
:- use_module(library(lists), :- use_module(library(lists),
@ -12,9 +12,9 @@
main :- main :-
warning(Warning), warning(Warning),
file_filter_with_initialization('misc/ATOMS','H/tatoms.h',gen_fields, Warning, ['tatoms.h']), file_filter_with_init('misc/ATOMS','H/tatoms.h',gen_fields, Warning, ['tatoms.h']),
file_filter_with_initialization('misc/ATOMS','H/iatoms.h',gen_decl, Warning, ['iatoms.h']), file_filter_with_init('misc/ATOMS','H/iatoms.h',gen_decl, Warning, ['iatoms.h']),
file_filter_with_initialization('misc/ATOMS','H/ratoms.h',gen_rcov, Warning, ['ratoms.h']). file_filter_with_init('misc/ATOMS','H/ratoms.h',gen_rcov, Warning, ['ratoms.h']).
warning('~n /* This file, ~a, was generated automatically by \"yap -L misc/buildatoms\"~n please do not update, update misc/ATOMS instead */~n~n'). warning('~n /* This file, ~a, was generated automatically by \"yap -L misc/buildatoms\"~n please do not update, update misc/ATOMS instead */~n~n').