YAP 7.1.0
Yap.h File Reference

Main definitions. More...

#include "YapConfig.h"
#include "inline-only.h"
#include "YapDefs.h"
#include "Atoms.h"
#include <nolocks.h>
#include "YapTags.h"
#include "YapCompoundTerm.h"
#include "corout.h"
#include "amidefs.h"
#include "Regs.h"
#include "Yapproto.h"
#include "amiops.h"
#include "arrays.h"
#include "gprof.h"
#include "YapError.h"
#include "ScannerTypes.h"
#include "encoding.h"
#include <stdio.h>
#include "YapHandles.h"
#include "YapSignals.h"
#include "GitSHA1.h"
#include "YapText.h"

Go to the source code of this file.

Macros

#define USE_MYDDAS   1
 
#define USE_MYDDAS_SQLITE3   1
 
#define COROUTINING   1
 
#define RATIONAL_TREES   1
 
#define CUT_C   1
 
#define FunAdr(X)   X
 
#define MULTI_ASSIGNMENT_VARIABLES   1
 
#define TERM_EXTENSIONS   1
 
#define nullptr   NULL
 Stolen from Mozzila, this code should deal with bad implementations of stdc++. More...
 
#define MIN_ARRAY   1
 
#define DUMMY_FILLER_FOR_ABS_TYPE   int dummy;
 
#define likely(x)   (x)
 
#define unlikely(x)   (x)
 
#define NIL   0
 
#define HEAP_INIT_BASE   ((CELL)Yap_HeapBase)
 
#define AtomBase   (Yap_HeapBase)
 
#define ALIGN_LONGS   1
 
#define K1   ((CELL)1024)
 
#define K16   ((CELL)(1024 * 64))
 
#define K64   ((CELL)(1024 * 64))
 
#define M1   ((CELL)(1024 * 1024))
 
#define M2   ((CELL)(2048 * 1024))
 
#define TermPtr(V)   ((Term *)(V))
 
#define Addr(V)   ((ADDR)(V))
 
#define CodePtr(V)   ((CODEADDR)(V))
 
#define CellPtr(V)   ((CELL *)(V))
 
#define OpCodePtr(V)   ((OPCODE *)(V))
 
#define OpRegPtr(V)   ((OPREG *)(V))
 
#define SmallPtr(V)   ((SMALLUNSGN *)(V))
 
#define WordPtr(V)   ((BITS16 *)(V))
 
#define DisplPtr(V)   ((DISPREG *)(V))
 
#define FUNC_READ_LOCK(X)   READ_LOCK((X)->FRWLock)
 
#define FUNC_READ_UNLOCK(X)   READ_UNLOCK((X)->FRWLock)
 
#define FUNC_WRITE_LOCK(X)   WRITE_LOCK((X)->FRWLock)
 
#define FUNC_WRITE_UNLOCK(X)   WRITE_UNLOCK((X)->FRWLock)
 
#define IN_BETWEEN(MIN, X, MAX)    ((void *)(X) >= (void *)(MIN) && (void *)(X) <= (void *)(MAX))
 
#define OUTSIDE(MIN, X, MAX)    ((void *)(X) < (void *)(MIN) || (void *)(X) > (void *)(MAX))
 
#define TermSize   sizeof(Term)
 
#define MAX_EMPTY_WAKEUPS   16
 
#define MAX_PATH   1024
 
#define __android_log_print(...)
 
#define MaxHash   3333
 
#define MaxWideHash   (MaxHash / 10 + 1)
 
#define MAX_PROMPT   256
 
#define DefaultMaxModules   256
 
#define YAPEnterCriticalSection()
 
#define YAPLeaveCriticalSection()
 
#define AT_BOOT   0
 
#define AT_RESTORE   1
 
#define MIXED_MODE   (MIXED_MODE_USER | MIXED_MODE_ALL)
 
#define COMPILED   (COMPILE_USER | COMPILE_ALL)
 
#define GC_MAVARS_HASH_SIZE   512
 
#define Yap_global   (&Yap_Global)
 
#define REMOTE(wid)   (&Yap_local)
 
#define YP_FILE   FILE
 
#define must_be_variable(t)   if (!IsVarTerm(t)) Yap_ThrowError(UNINSTANTIATION_ERROR, v, NULL)
 
#define LOG(...)
 
#define REGS_LOG(...)
 

Typedefs

typedef void *(* fptr_t) (void)
 
typedef CELL SFLAGS
 
typedef char * ADDR
 
typedef CELL OFFSET
 
typedef unsigned char * CODEADDR
 
typedef enum e_restore_t restore_t
 
typedef struct TIMED_MAVAR timed_var
 
typedef struct queue_entry QueueEntry
 
typedef struct idb_queue db_queue
 
typedef struct gc_ma_hash_entry_struct gc_ma_hash_entry
 
typedef int(* Agc_hook) (Atom)
 
typedef struct scratch_block_struct scratch_block
 

Enumerations

enum  e_restore_t { FAIL_RESTORE = 0 , DO_EVERYTHING = 1 , DO_ONLY_CODE = 2 , YAP_BOOT_FROM_PROLOG = 4 }
 
enum  yap_exec_mode {
  INTERPRETED = 0x1 , MIXED_MODE_USER = 0x2 , MIXED_MODE_ALL = 0x4 , COMPILE_USER = 0x8 ,
  COMPILE_ALL = 0x10
}
 

Functions

INLINE_ONLY EXTERN size_t strnlen (const char *s, size_t maxlen)
 
void Yap_init_tqueue (db_queue *dbq)
 
void Yap_destroy_tqueue (db_queue *dbq USES_REGS)
 
bool Yap_enqueue_tqueue (db_queue *father_key, Term t USES_REGS)
 
bool Yap_dequeue_tqueue (db_queue *father_key, Term t, bool first, bool release USES_REGS)
 
INLINE_ONLY Term must_be_module (Term t)
 
INLINE_ONLY Term must_be_integer (Term t)
 
INLINE_ONLY Term must_be_unbound (Term t)
 

Variables

const char * Yap_BINDIR
 
const char * Yap_ROOTDIR
 
const char * Yap_SHAREDIR
 
const char * Yap_LIBDIR
 
const char * Yap_DLLDIR
 
const char * Yap_PLDIR
 
const char * Yap_COMMONSDIR
 
const char * Yap_STARTUP
 
const char * Yap_INPUT_STARTUP
 
const char * Yap_OUTPUT_STARTUP
 
const char * Yap_BOOTFILE
 
const char * Yap_INCLUDEDIR
 
size_t Yap_page_size
 
ADDR Yap_HeapBase
 
struct global_data Yap_Global
 
struct worker_local Yap_local
 
bool Yap_Embedded
 
bool Yap_Server
 

Detailed Description

Main definitions.

Definition in file Yap.h.

Macro Definition Documentation

◆ __android_log_print

#define __android_log_print (   ...)

Definition at line 475 of file Yap.h.

◆ Addr

#define Addr (   V)    ((ADDR)(V))

Definition at line 293 of file Yap.h.

◆ ALIGN_LONGS

#define ALIGN_LONGS   1

Definition at line 273 of file Yap.h.

◆ AT_BOOT

#define AT_BOOT   0

Definition at line 569 of file Yap.h.

◆ AT_RESTORE

#define AT_RESTORE   1

Definition at line 570 of file Yap.h.

◆ AtomBase

#define AtomBase   (Yap_HeapBase)

Definition at line 267 of file Yap.h.

◆ CellPtr

#define CellPtr (   V)    ((CELL *)(V))

Definition at line 296 of file Yap.h.

◆ CodePtr

#define CodePtr (   V)    ((CODEADDR)(V))

Definition at line 295 of file Yap.h.

◆ COMPILED

#define COMPILED   (COMPILE_USER | COMPILE_ALL)

Definition at line 597 of file Yap.h.

◆ COROUTINING

#define COROUTINING   1

Definition at line 69 of file Yap.h.

◆ CUT_C

#define CUT_C   1

Definition at line 77 of file Yap.h.

◆ DefaultMaxModules

#define DefaultMaxModules   256

Definition at line 503 of file Yap.h.

◆ DisplPtr

#define DisplPtr (   V)    ((DISPREG *)(V))

Definition at line 301 of file Yap.h.

◆ DUMMY_FILLER_FOR_ABS_TYPE

#define DUMMY_FILLER_FOR_ABS_TYPE   int dummy;

Definition at line 157 of file Yap.h.

◆ FunAdr

#define FunAdr (   X)    X

Definition at line 80 of file Yap.h.

◆ FUNC_READ_LOCK

#define FUNC_READ_LOCK (   X)    READ_LOCK((X)->FRWLock)

Definition at line 332 of file Yap.h.

◆ FUNC_READ_UNLOCK

#define FUNC_READ_UNLOCK (   X)    READ_UNLOCK((X)->FRWLock)

Definition at line 333 of file Yap.h.

◆ FUNC_WRITE_LOCK

#define FUNC_WRITE_LOCK (   X)    WRITE_LOCK((X)->FRWLock)

Definition at line 334 of file Yap.h.

◆ FUNC_WRITE_UNLOCK

#define FUNC_WRITE_UNLOCK (   X)    WRITE_UNLOCK((X)->FRWLock)

Definition at line 335 of file Yap.h.

◆ GC_MAVARS_HASH_SIZE

#define GC_MAVARS_HASH_SIZE   512

Definition at line 680 of file Yap.h.

◆ HEAP_INIT_BASE

#define HEAP_INIT_BASE   ((CELL)Yap_HeapBase)

(MMAP_ADDR && (USE_MMAP || USE_SHMAT) && !__simplescalar__ && \ !RANDOMIZE_START_ADDRESS)

Definition at line 266 of file Yap.h.

◆ IN_BETWEEN

#define IN_BETWEEN (   MIN,
  X,
  MAX 
)     ((void *)(X) >= (void *)(MIN) && (void *)(X) <= (void *)(MAX))

Definition at line 348 of file Yap.h.

◆ K1

#define K1   ((CELL)1024)

Definition at line 276 of file Yap.h.

◆ K16

#define K16   ((CELL)(1024 * 64))

Definition at line 277 of file Yap.h.

◆ K64

#define K64   ((CELL)(1024 * 64))

Definition at line 278 of file Yap.h.

◆ likely

#define likely (   x)    (x)

Definition at line 185 of file Yap.h.

◆ LOG

#define LOG (   ...)

Definition at line 794 of file Yap.h.

◆ M1

#define M1   ((CELL)(1024 * 1024))

Definition at line 279 of file Yap.h.

◆ M2

#define M2   ((CELL)(2048 * 1024))

Definition at line 280 of file Yap.h.

◆ MAX_EMPTY_WAKEUPS

#define MAX_EMPTY_WAKEUPS   16

Definition at line 436 of file Yap.h.

◆ MAX_PATH

#define MAX_PATH   1024

Definition at line 446 of file Yap.h.

◆ MAX_PROMPT

#define MAX_PROMPT   256

Definition at line 497 of file Yap.h.

◆ MaxHash

#define MaxHash   3333

Definition at line 483 of file Yap.h.

◆ MaxWideHash

#define MaxWideHash   (MaxHash / 10 + 1)

Definition at line 484 of file Yap.h.

◆ MIN_ARRAY

#define MIN_ARRAY   1

Definition at line 156 of file Yap.h.

◆ MIXED_MODE

#define MIXED_MODE   (MIXED_MODE_USER | MIXED_MODE_ALL)

Definition at line 595 of file Yap.h.

◆ MULTI_ASSIGNMENT_VARIABLES

#define MULTI_ASSIGNMENT_VARIABLES   1

Definition at line 99 of file Yap.h.

◆ must_be_variable

#define must_be_variable (   t)    if (!IsVarTerm(t)) Yap_ThrowError(UNINSTANTIATION_ERROR, v, NULL)

Definition at line 739 of file Yap.h.

◆ NIL

#define NIL   0

Definition at line 199 of file Yap.h.

◆ nullptr

#define nullptr   NULL

Stolen from Mozzila, this code should deal with bad implementations of stdc++.

Use C++11 nullptr if available; otherwise use a C++ typesafe template; and for C, fall back to longs See bugs 547964 and 626472

Definition at line 135 of file Yap.h.

◆ OpCodePtr

#define OpCodePtr (   V)    ((OPCODE *)(V))

Definition at line 297 of file Yap.h.

◆ OpRegPtr

#define OpRegPtr (   V)    ((OPREG *)(V))

Definition at line 298 of file Yap.h.

◆ OUTSIDE

#define OUTSIDE (   MIN,
  X,
  MAX 
)     ((void *)(X) < (void *)(MIN) || (void *)(X) > (void *)(MAX))

Definition at line 351 of file Yap.h.

◆ RATIONAL_TREES

#define RATIONAL_TREES   1

Definition at line 73 of file Yap.h.

◆ REGS_LOG

#define REGS_LOG (   ...)

Definition at line 796 of file Yap.h.

◆ REMOTE

#define REMOTE (   wid)    (&Yap_local)

Definition at line 721 of file Yap.h.

◆ SmallPtr

#define SmallPtr (   V)    ((SMALLUNSGN *)(V))

Definition at line 299 of file Yap.h.

◆ TERM_EXTENSIONS

#define TERM_EXTENSIONS   1

Definition at line 123 of file Yap.h.

◆ TermPtr

#define TermPtr (   V)    ((Term *)(V))

Definition at line 292 of file Yap.h.

◆ TermSize

#define TermSize   sizeof(Term)

Definition at line 363 of file Yap.h.

◆ unlikely

#define unlikely (   x)    (x)

Definition at line 186 of file Yap.h.

◆ USE_MYDDAS

#define USE_MYDDAS   1

Definition at line 35 of file Yap.h.

◆ USE_MYDDAS_SQLITE3

#define USE_MYDDAS_SQLITE3   1

Definition at line 36 of file Yap.h.

◆ WordPtr

#define WordPtr (   V)    ((BITS16 *)(V))

Definition at line 300 of file Yap.h.

◆ Yap_global

#define Yap_global   (&Yap_Global)

Definition at line 710 of file Yap.h.

◆ YAPEnterCriticalSection

#define YAPEnterCriticalSection ( )
Value:
{ \
LOCAL_PrologMode |= \
CritMode; /* printf("%d, \
%s:%d\n",LOCAL_CritLocks+1,__FILE__,__LINE__);*/ \
LOCAL_CritLocks++; \
}

Definition at line 548 of file Yap.h.

◆ YAPLeaveCriticalSection

#define YAPLeaveCriticalSection ( )
Value:
{ \
LOCAL_CritLocks--; \
/*printf("%d, %s:%d\n",LOCAL_CritLocks,__FILE__,__LINE__);*/ \
if (!LOCAL_CritLocks) { \
LOCAL_PrologMode &= ~CritMode; \
if (LOCAL_PrologMode & AbortMode) { \
LOCAL_PrologMode &= ~AbortMode; \
Yap_RestartYap(1); \
} \
} \
}

Definition at line 554 of file Yap.h.

◆ YP_FILE

#define YP_FILE   FILE

Definition at line 727 of file Yap.h.

Typedef Documentation

◆ ADDR

typedef char* ADDR

Definition at line 288 of file Yap.h.

◆ Agc_hook

typedef int(* Agc_hook) (Atom)

Definition at line 691 of file Yap.h.

◆ CODEADDR

typedef unsigned char* CODEADDR

Definition at line 290 of file Yap.h.

◆ fptr_t

typedef void *(* fptr_t) (void)

Definition at line 161 of file Yap.h.

◆ OFFSET

typedef CELL OFFSET

Definition at line 289 of file Yap.h.

◆ SFLAGS

typedef CELL SFLAGS

Definition at line 283 of file Yap.h.

Enumeration Type Documentation

◆ e_restore_t

enum e_restore_t

Definition at line 486 of file Yap.h.

◆ yap_exec_mode

enum yap_exec_mode

Definition at line 587 of file Yap.h.

Function Documentation

◆ must_be_integer()

INLINE_ONLY Term must_be_integer ( Term  t)

Definition at line 748 of file Yap.h.

◆ must_be_module()

INLINE_ONLY Term must_be_module ( Term  t)

Definition at line 741 of file Yap.h.

◆ must_be_unbound()

INLINE_ONLY Term must_be_unbound ( Term  t)

Definition at line 755 of file Yap.h.

◆ strnlen()

INLINE_ONLY EXTERN size_t strnlen ( const char *  s,
size_t  maxlen 
)

Definition at line 209 of file Yap.h.

Variable Documentation

◆ Yap_BINDIR

const char* Yap_BINDIR
extern

Definition at line 149 of file yap-args.c.

◆ Yap_BOOTFILE

const char * Yap_BOOTFILE

Definition at line 169 of file Yap.h.

◆ Yap_COMMONSDIR

const char * Yap_COMMONSDIR

Definition at line 168 of file Yap.h.

◆ Yap_DLLDIR

const char * Yap_DLLDIR

Definition at line 167 of file Yap.h.

◆ Yap_Embedded

bool Yap_Embedded
extern

Definition at line 66 of file init.c.

◆ Yap_HeapBase

ADDR Yap_HeapBase
extern

Definition at line 91 of file init.c.

◆ Yap_INCLUDEDIR

const char * Yap_INCLUDEDIR

Definition at line 169 of file Yap.h.

◆ Yap_INPUT_STARTUP

const char * Yap_INPUT_STARTUP

Definition at line 168 of file Yap.h.

◆ Yap_LIBDIR

const char * Yap_LIBDIR

Definition at line 167 of file Yap.h.

◆ Yap_local

struct worker_local Yap_local
extern

Definition at line 1273 of file init.c.

◆ Yap_OUTPUT_STARTUP

const char * Yap_OUTPUT_STARTUP

Definition at line 168 of file Yap.h.

◆ Yap_PLDIR

const char * Yap_PLDIR

Definition at line 168 of file Yap.h.

◆ Yap_ROOTDIR

const char * Yap_ROOTDIR

Definition at line 167 of file Yap.h.

◆ Yap_Server

bool Yap_Server

Definition at line 803 of file Yap.h.

◆ Yap_SHAREDIR

const char * Yap_SHAREDIR

Definition at line 167 of file Yap.h.

◆ Yap_STARTUP

const char * Yap_STARTUP

Definition at line 168 of file Yap.h.