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_PL_Argc Yap_global->PL_Argc_
#define GLOBAL_PL_Argv Yap_global->PL_Argv_
#define GLOBAL_FAST_BOOT_FLAG Yap_global->FAST_BOOT_FLAG_
#define GLOBAL_HaltHooks Yap_global->HaltHooks_
#define GLOBAL_JIT_finalizer Yap_global->JIT_finalizer_
@ -69,12 +70,14 @@
#define GLOBAL_WithMutex Yap_global->WithMutex_
#endif /* THREADS */
#define GLOBAL_stdout Yap_global->stdout_
#define GLOBAL_stderr Yap_global->stderr_
#define GLOBAL_Stream Yap_global->Stream_
#define GLOBAL_argv Yap_global->argv_
#define GLOBAL_argc Yap_global->argc_
#define GLOBAL_Flags Yap_global->Flags_
#define GLOBAL_flagCount Yap_global->flagCount_
#ifdef COROUTINING
#define GLOBAL_attas Yap_global->attas_
@ -134,3 +137,8 @@
#endif
#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
#define TermDollarU Yap_heap_regs->term_dollar_u
#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 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 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 IDB_MODULE Yap_heap_regs->idb_module
#define ATTRIBUTES_MODULE Yap_heap_regs->attributes_module
@ -111,6 +154,12 @@
#define Yap_ExecutionMode Yap_heap_regs->execution_mode
#define PredHash Yap_heap_regs->pred_hash
@ -267,22 +316,8 @@
#define Yap_AttsSize Yap_heap_regs->atts_size
#endif
#define yap_flags Yap_heap_regs->yap_flags_field
#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 ForeignCodeBase Yap_heap_regs->foreign_code_base
#define ForeignCodeTop Yap_heap_regs->foreign_code_top
@ -299,10 +334,10 @@
#define EmptyWakeups Yap_heap_regs->empty_wakeups
#define MaxEmptyWakeups Yap_heap_regs->max_empty_wakeups
#define SWI_BlobTypes Yap_heap_regs->swi_blob_types
#define SWI_Blobs Yap_heap_regs->swi_blobs
#define BlobTypes Yap_heap_regs->swi_blob_types
#define Blobs Yap_heap_regs->swi_blobs
#define NOfBlobs Yap_heap_regs->nofblobs
#define NOfBlobsMax Yap_heap_regs->nofblobsmax
#if defined(YAPOR) || defined(THREADS)
#define SWI_Blobs_Lock Yap_heap_regs->swi_blobs_lock
#define Blobs_Lock Yap_heap_regs->blobs_lock
#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 REMOTE_c_input_stream(wid) REMOTE(wid)->c_input_stream_
#define LOCAL_c_output_stream LOCAL->c_output_stream_
#define REMOTE_c_output_stream(wid) REMOTE(wid)->c_output_stream_
#define LOCAL_c_error_stream LOCAL->c_error_stream_
#define REMOTE_c_error_stream(wid) REMOTE(wid)->c_error_stream_
#define LOCAL_sockets_io LOCAL->sockets_io_
#define REMOTE_sockets_io(wid) REMOTE(wid)->sockets_io_
#define LOCAL_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 REMOTE_OldASP(wid) REMOTE(wid)->OldASP_
@ -80,6 +114,10 @@
#define REMOTE_ConsultLow(wid) REMOTE(wid)->ConsultLow_
#define LOCAL_VarNames LOCAL->VarNames_
#define REMOTE_VarNames(wid) REMOTE(wid)->VarNames_
#define LOCAL_SourceFileName LOCAL->SourceFileName_
#define REMOTE_SourceFileName(wid) REMOTE(wid)->SourceFileName_
#define LOCAL_SourceFileLineno LOCAL->SourceFileLineno_
#define REMOTE_SourceFileLineno(wid) REMOTE(wid)->SourceFileLineno_
#define LOCAL_GlobalArena LOCAL->GlobalArena_
#define REMOTE_GlobalArena(wid) REMOTE(wid)->GlobalArena_
@ -219,8 +257,7 @@
#define LOCAL_LabelFirstArraySz LOCAL->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
#define LOCAL_ThreadHandle LOCAL->ThreadHandle_
#define REMOTE_ThreadHandle(wid) REMOTE(wid)->ThreadHandle_
@ -228,6 +265,8 @@
#if defined(YAPOR) || defined(TABLING)
#define LOCAL_optyap_data LOCAL->optyap_data_
#define REMOTE_optyap_data(wid) REMOTE(wid)->optyap_data_
#define LOCAL_TabMode LOCAL->TabMode_
#define REMOTE_TabMode(wid) REMOTE(wid)->TabMode_
#endif /* YAPOR || TABLING */
#define LOCAL_InterruptsDisabled LOCAL->InterruptsDisabled_
#define REMOTE_InterruptsDisabled(wid) REMOTE(wid)->InterruptsDisabled_
@ -287,11 +326,18 @@
#define LOCAL_FileNameBuf2 LOCAL->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 REMOTE_PrologMode(wid) REMOTE(wid)->PrologMode_
#define LOCAL_CritLocks LOCAL->CritLocks_
#define REMOTE_CritLocks(wid) REMOTE(wid)->CritLocks_
#define LOCAL_Flags LOCAL->Flags_
#define REMOTE_Flags(wid) REMOTE(wid)->Flags_
#define LOCAL_flagCount LOCAL->flagCount_
#define REMOTE_flagCount(wid) REMOTE(wid)->flagCount_
#ifdef ANALYST
#define LOCAL_opcount LOCAL->opcount_

View File

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

View File

@ -5,9 +5,28 @@
typedef struct worker_local {
struct AliasDescS* FileAliases_;
int NOfFileAliases_;
int SzOfFileAliases_;
int c_input_stream_;
int c_output_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* OldLCL0_;
@ -46,6 +65,8 @@ typedef struct worker_local {
union CONSULT_OBJ* ConsultLow_;
Term VarNames_;
Atom SourceFileName_;
UInt SourceFileLineno_;
Term GlobalArena_;
UInt GlobalArenaOverflows_;
@ -121,12 +142,13 @@ typedef struct worker_local {
Int* LabelFirstArray_;
UInt LabelFirstArraySz_;
struct PL_local_data* PL_local_data_p_;
#ifdef THREADS
struct thandle ThreadHandle_;
#endif /* THREADS */
#if defined(YAPOR) || defined(TABLING)
struct local_optyap_data optyap_data_;
UInt TabMode_;
#endif /* YAPOR || TABLING */
int InterruptsDisabled_;
struct open_query_struct* execution_;
@ -159,9 +181,13 @@ typedef struct worker_local {
char FileNameBuf_[YAP_FILENAME_MAX];
char FileNameBuf2_[YAP_FILENAME_MAX];
UInt BreakLevel_;
Int PrologMode_;
int CritLocks_;
union flagTerm* Flags_;
UInt flagCount_;
#ifdef ANALYST
YAP_ULONG_LONG opcount_[_std_top+1];

View File

@ -85,8 +85,51 @@
#ifdef EUROTRA
Term term_dollar_u;
#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_quiet;
Term term_read;
Term term_read_only;
Term term_read_write;
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 idb_module;
Term attributes_module;
@ -111,6 +154,12 @@
yap_exec_mode execution_mode;
struct pred_entry **pred_hash;
@ -267,22 +316,8 @@
UInt atts_size;
#endif
Int yap_flags_field[NUMBER_OF_YAP_FLAGS];
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;
ADDR foreign_code_base;
ADDR foreign_code_top;
@ -299,10 +334,10 @@
Atom empty_wakeups[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;
UInt nofblobs;
UInt nofblobsmax;
#if defined(YAPOR) || defined(THREADS)
lockvar swi_blobs_lock;
lockvar blobs_lock;
#endif

View File

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

View File

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

View File

@ -85,8 +85,51 @@
#ifdef EUROTRA
TermDollarU = MkAtomTerm(AtomDollarU);
#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);
TermQuiet = MkAtomTerm(AtomQuiet);
TermRead = MkAtomTerm(AtomRead);
TermReadOnly = MkAtomTerm(AtomReadOnly);
TermReadWrite = MkAtomTerm(AtomReadWrite);
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);
IDB_MODULE = MkAtomTerm(AtomIDB);
ATTRIBUTES_MODULE = MkAtomTerm(AtomAttributes);
@ -111,6 +154,12 @@
Yap_InitModules();
Yap_InitPlIO();
Yap_InitFlags(true);
Yap_ExecutionMode = INTERPRETED;
InitPredHash();
@ -267,22 +316,8 @@
#endif
InitFlags();
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;
ForeignCodeBase = NULL;
ForeignCodeTop = NULL;
@ -299,10 +334,10 @@
InitEmptyWakeups();
MaxEmptyWakeups = 0;
SWI_BlobTypes = NULL;
SWI_Blobs = NULL;
BlobTypes = NULL;
Blobs = NULL;
NOfBlobs = 0;
NOfBlobsMax = 256;
#if defined(YAPOR) || defined(THREADS)
INIT_LOCK(SWI_Blobs_Lock);
INIT_LOCK(Blobs_Lock);
#endif

View File

@ -5,9 +5,28 @@
static void InitWorker(int wid) {
REMOTE_FileAliases(wid) = Yap_InitStandardAliases();
REMOTE_c_input_stream(wid) = 0;
REMOTE_c_output_stream(wid) = 1;
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_OldLCL0(wid) = NULL;
@ -46,6 +65,8 @@ static void InitWorker(int wid) {
REMOTE_ConsultLow(wid) = NULL;
REMOTE_VarNames(wid) = ((Term)0);
REMOTE_SourceFileName(wid) = NULL;
REMOTE_SourceFileLineno(wid) = 0;
REMOTE_GlobalArena(wid) = 0L;
REMOTE_GlobalArenaOverflows(wid) = 0L;
@ -121,12 +142,13 @@ static void InitWorker(int wid) {
REMOTE_LabelFirstArray(wid) = NULL;
REMOTE_LabelFirstArraySz(wid) = 0L;
REMOTE_PL_local_data_p(wid) = Yap_InitThreadIO(wid);
#ifdef THREADS
InitThreadHandle(wid);
#endif /* THREADS */
#if defined(YAPOR) || defined(TABLING)
Yap_init_local_optyap_data(wid);
REMOTE_TabMode(wid) = 0L;
#endif /* YAPOR || TABLING */
REMOTE_InterruptsDisabled(wid) = FALSE;
REMOTE_execution(wid) = NULL;
@ -159,10 +181,14 @@ static void InitWorker(int wid) {
REMOTE_BreakLevel(wid) = 0;
REMOTE_PrologMode(wid) = BootMode;
REMOTE_CritLocks(wid) = 0;
#ifdef ANALYST

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -87,8 +87,52 @@ ATOMS
#ifdef EUROTRA
Term term_dollar_u TermDollarU MkAT AtomDollarU
#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_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_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 idb_module IDB_MODULE MkAT AtomIDB
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
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 */
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
#endif
/* YAP control flags */
Int yap_flags_field[NUMBER_OF_YAP_FLAGS] yap_flags InitFlags() void
/* Operators */
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 */
struct ForeignLoadItem *foreign_code_loaded ForeignCodeLoaded =NULL RestoreForeignCode()
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
/* SWI blobs */
struct PL_blob_t *swi_blob_types SWI_BlobTypes =NULL RestoreSWIBlobTypes()
struct AtomEntryStruct *swi_blobs SWI_Blobs =NULL RestoreSWIBlobs()
struct YAP_blob_t *swi_blob_types BlobTypes =NULL RestoreBlobTypes()
struct AtomEntryStruct *swi_blobs Blobs =NULL RestoreBlobs()
UInt nofblobs NOfBlobs =0
UInt nofblobsmax NOfBlobsMax =256
#if defined(YAPOR) || defined(THREADS)
lockvar swi_blobs_lock SWI_Blobs_Lock MkLock
lockvar blobs_lock Blobs_Lock MkLock
#endif

View File

@ -2,10 +2,37 @@
START_WORKER_LOCAL
// Streams
struct AliasDescS* FileAliases =Yap_InitStandardAliases()
int NOfFileAliases void
int SzOfFileAliases void
int c_input_stream =0
int c_output_stream =1
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
CELL* OldASP =NULL
CELL* OldLCL0 =NULL
@ -46,6 +73,8 @@ union CONSULT_OBJ* ConsultBase =NULL
/* low-water mark for consult */
union CONSULT_OBJ* ConsultLow =NULL
Term VarNames =((Term)0)
Atom SourceFileName =NULL
UInt SourceFileLineno =0
//global variables
Term GlobalArena =0L TermToGlobalOrAtomAdjust
@ -60,7 +89,7 @@ char* ScannerStack =NULL
struct scanner_extra_alloc* ScannerExtraBlocks =NULL
struct DB_TERM* BallTerm =NULL RestoreBallTerm(wid)
UInt MaxActiveSignals =64L
uint64_t Signals =0L
uint64_t Signals =0L
UInt IPredArity =0L
yamop* ProfEnd =NULL
int UncaughtThrow =FALSE
@ -131,7 +160,7 @@ Int* LabelFirstArray =NULL
UInt LabelFirstArraySz =0L
// 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
struct thandle ThreadHandle InitThreadHandle(wid)
@ -139,6 +168,7 @@ struct thandle ThreadHandle InitThreadHandle(wid)
#if defined(YAPOR) || defined(TABLING)
struct local_optyap_data optyap_data Yap_init_local_optyap_data(wid)
UInt TabMode =0L
#endif /* YAPOR || TABLING */
int InterruptsDisabled =FALSE
@ -177,10 +207,14 @@ char FileNameBuf[YAP_FILENAME_MAX] void
char FileNameBuf2[YAP_FILENAME_MAX] void
// Prolog State
UInt BreakLevel =0
Int PrologMode =BootMode
int CritLocks =0
// Prolog execution and state flags
union flagTerm* Flags void
UInt flagCount void
//analyst.c
/* used to find out how many instructions of each kind are executed */
#ifdef ANALYST

View File

@ -1,6 +1,6 @@
:- use_module(library(lineutils),
[file_filter_with_initialization/5,
[file_filter_with_init/5,
split/3]).
:- use_module(library(lists),
@ -12,9 +12,9 @@
main :-
warning(Warning),
file_filter_with_initialization('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_initialization('misc/ATOMS','H/ratoms.h',gen_rcov, Warning, ['ratoms.h']).
file_filter_with_init('misc/ATOMS','H/tatoms.h',gen_fields, Warning, ['tatoms.h']),
file_filter_with_init('misc/ATOMS','H/iatoms.h',gen_decl, Warning, ['iatoms.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').