BAM
Abstract Machine for Bottom-Up Evaluation with the Push Method
Macros | Typedefs
ver.h File Reference

Some basic version settings. More...

Go to the source code of this file.

Macros

#define YES   1
 
#define NO   0
 
#define VER_PROG_NAME   "ydb"
 
#define VER_PROMPT   "ydb> "
 
#define VER_CGI   NO
 
#define VER_ALERT_FILE   "alert"
 
#define VER_DEBUG   NO
 
#define VER_FULLCHECK   NO
 
#define VER_DUMP   YES
 
#define VER_DEBUG_OUT_ENABLED   NO
 
#define VER_PAGESIZE   4096
 
#define VER_MAX_TIMERS   5
 
#define VER_MAX_ATOMSIZE   20
 
#define VER_MAX_PRED_ARGS   10
 
#define VER_BENCH_DBLP_LOAD   NO
 
#define VER_BENCH_TCFF_LOAD_1   YES
 
#define VER_BENCH_TCFF_LOAD_2   YES
 
#define VER_BENCH_DBLP_1   NO
 
#define VER_BENCH_DBLP_2   NO
 
#define VER_BENCH_DBLP_3   NO
 
#define VER_BENCH_J1AXY_1   YES
 
#define VER_BENCH_J1AXY_2   YES
 
#define VER_BENCH_J1AXY_3   YES
 
#define VER_BENCH_J1AXY_4   YES
 
#define VER_BENCH_J1AXY_5   YES
 
#define VER_BENCH_J1AXY_6   YES
 
#define VER_BENCH_TCFF_1   YES
 
#define VER_BENCH_TCFF_2   YES
 
#define VER_BENCH_TCFF_3   YES
 
#define VER_BENCH_TCFF_4   YES
 
#define VER_BENCH_TCFF_5   YES
 
#define VER_BENCH_TCBF_1   NO
 
#define VER_BENCH_TCBF_2   NO
 
#define VER_BENCH_TCBF_4   NO
 
#define VER_BENCH_WINE   NO
 
#define VER_TCFF_LOAD   YES
 
#define VER_FILE_DBLP_TEST   "../data/dblp_test.data"
 
#define VER_FILE_DBLP   "../data/dblp.data"
 
#define VER_FILE_DBLP_BIG   "../data/dblp_big.data"
 
#define VER_FILE_JOIN1_TEST   "../data/d1000_test.P"
 
#define VER_FILE_JOIN1_10K   "../data/d1000_relsize10000_xsb_cyc.P"
 
#define VER_FILE_JOIN1_50K   "../data/d1000_relsize50000_xsb_cyc.P"
 
#define VER_FILE_JOIN1_250K   "../data/d1000_relsize250000_xsb_cyc.P"
 
#define VER_FILE_TC_TEST   "../data/tc_test.P"
 
#define VER_FILE_TC_50K   "../data/tc_d1000_parsize50000_xsb_nocyc.P"
 
#define VER_FILE_TC_50K_CYC   "../data/tc_d1000_parsize50000_xsb_cyc.P"
 
#define VER_FILE_TC_250K   "../data/tc_d1000_parsize250000_xsb_nocyc.P"
 
#define VER_FILE_TC_250K_CYC   "../data/tc_d1000_parsize250000_xsb_cyc.P"
 
#define VER_FILE_TC_500K   "../data/tc_d1000_parsize500000_xsb_nocyc.P"
 
#define VER_FILE_TC_500K_CYC   "../data/tc_d1000_parsize500000_xsb_cyc.P"
 
#define VER_FILE_TC_500K_D2   "../data/tc_d2000_parsize500000_xsb_nocyc.P"
 
#define VER_FILE_TC_500K_D2_CYC   "../data/tc_d2000_parsize500000_xsb_cyc.P"
 
#define VER_FILE_TC_1M_D2   "../data/tc_d2000_parsize1000000_xsb_nocyc.P"
 
#define VER_FILE_TC_1M_D2_CYC   "../data/tc_d2000_parsize1000000_xsb_cyc.P"
 
#define VER_FILE_WINE   "../data/wine_data.P"
 
#define VER_UNIX   YES
 
#define VER_CS_ISO   YES
 
#define VER_CS_MSDOS   NO
 
#define VER_IOSTREAM   NO
 
#define VER_UNUSED(ARG)   ARG
 
#define VER_PRESS_RETURN   NO
 
#define VER_SIGNAL   YES
 
#define VER_UINT_BITS   32
 

Typedefs

typedef char VER_BYTE
 
typedef unsigned short VER_USHORT
 
typedef int VER_INT
 
typedef unsigned int VER_UINT
 
typedef long long VER_INT64
 

Detailed Description

Some basic version settings.

Macro Definition Documentation

#define NO   0

False value for use in feature selection macros.

#define VER_ALERT_FILE   "alert"

Name of the file for error messages and warnings.

#define VER_BENCH_DBLP_1   NO

Compile Ver.1 of DBLP benchmark (Handwritten loader, RelLocalVars).

#define VER_BENCH_DBLP_2   NO

Compile Ver.2 of DBLP benchmark (Cursor Interface, Rel+Var in Attributes).

#define VER_BENCH_DBLP_3   NO

Compile Ver.3 of DBLP benchmark (Separate Objects).

#define VER_BENCH_DBLP_LOAD   NO

Compile benchmark of handcrafted Loader for DBLP Benchmark.

#define VER_BENCH_J1AXY_1   YES

Compile Ver.1 of the Join1 a(X,Y) benchmark (RelAttr, no goto, fullDupCh).

#define VER_BENCH_J1AXY_2   YES

Compile Ver.2 of the Join1 a(X,Y) benchmark (no goto, bitmap-dupcheck).

#define VER_BENCH_J1AXY_3   YES

Compile Ver.3 of the Join1 a(X,Y) benchmark (goto, bitmap-dupcheck, cursor).

#define VER_BENCH_J1AXY_4   YES

Compile Ver.4 of the Join1 a(X,Y) benchmark (functions, bitmap-dupcheck).

#define VER_BENCH_J1AXY_5   YES

Compile Ver.5 of the Join1 a(X,Y) benchmark (fun without args, bitmap).

#define VER_BENCH_J1AXY_6   YES

Compile Ver.6 of the Join1 a(X,Y) benchmark (abstract machine, bitmap).

#define VER_BENCH_TCBF_1   NO

Compile Ver.1 of the TCBF benchmark (local vars for relations).

#define VER_BENCH_TCBF_2   NO

Compile Ver.2 of the TCBF benchmark (cursor interface, RelAttr).

#define VER_BENCH_TCBF_4   NO

Compile Ver.4 of the TCFF benchmark (with functions).

#define VER_BENCH_TCFF_1   YES

Compile Ver.1 of the TCFF benchmark (local vars for relations).

#define VER_BENCH_TCFF_2   YES

Compile Ver.2 of the TCFF benchmark (with cursor interface).

#define VER_BENCH_TCFF_3   YES

Compile Ver.3 of the TCFF benchmark (seminaive evaluation).

#define VER_BENCH_TCFF_4   YES

Compile Ver.4 of the TCFF benchmark (with functions).

#define VER_BENCH_TCFF_5   YES

Compile Ver.5 of the TCFF benchmark (with abstract machine).

#define VER_BENCH_TCFF_LOAD_1   YES

Compile benchmark of handcrafted Loader for TCFF Benchmark.

#define VER_BENCH_TCFF_LOAD_2   YES

Compile benchmark of general Loader for TCFF Benchmark.

#define VER_BENCH_WINE   NO

Compile the wine ontology benchmark.

Please note that this is a very long procedure. Compiling with g++ with -O2 is possible (at least on a machine with big memory), but takes a long time (about 10 minutes on a fast computer). Compiling with "Microsoft Visual Studio Community 2015" on a machine with 4 GB memory gives the error: "fatal error C1002: compiler is out of heap space in pass 2"

#define VER_CGI   NO

Should this program run as CGI program?

#define VER_CS_ISO   YES

Allow national characters according to ISO Latin 8859/1 code.

#define VER_CS_MSDOS   NO

Allow national characters according to some MSDOS code.

Only one of VER_CS_ISO and VER_CS_MSDOS may be defined. If none is defined, only ASCII characters are accepted.

#define VER_DEBUG   NO

Check runtime assertions etc. (Debug Version).

#define VER_DEBUG_OUT_ENABLED   NO

Compile code for debug output (other than dumps).

Note that commenting out this symbol does not necessarily switch off all debug output. Debug output is also controlled by the debug flag in out_c. However, in benchmarks, when checking for this flag costs time, this is compiled in only if this symbol is defined. So comment out this symbol if doing benchmarks.

#define VER_DUMP   YES

Compile code for data structure dumps (for debugging/testing).

#define VER_FILE_DBLP   "../data/dblp.data"

Data file for the DBLP benchmark (official version from OpenRuleBench).

The file size is 125.434 KB (~122 MB). It contains data about 200.000 publications. The total number of facts (table rows) in the data file is about 2.4 Million (2 437 867).

#define VER_FILE_DBLP_BIG   "../data/dblp_big.data"

Data file for the DBLP benchmark (large version with all data from Oct 2016).

#define VER_FILE_DBLP_TEST   "../data/dblp_test.data"

Data file for the DBLP benchmark (small test version).

#define VER_FILE_JOIN1_10K   "../data/d1000_relsize10000_xsb_cyc.P"

Data file for the Join 1 benchmark (10K rows per table).

#define VER_FILE_JOIN1_250K   "../data/d1000_relsize250000_xsb_cyc.P"

Data file for the Join 1 benchmark (250K rows per table).

#define VER_FILE_JOIN1_50K   "../data/d1000_relsize50000_xsb_cyc.P"

Data file for the Join 1 benchmark (50K rows per table).

#define VER_FILE_JOIN1_TEST   "../data/d1000_test.P"

Data file for the Join 1 benchmark (small test file).

#define VER_FILE_TC_1M_D2   "../data/tc_d2000_parsize1000000_xsb_nocyc.P"

Data file for transitive closure benchmark (2K nodes, 1M edges).

#define VER_FILE_TC_1M_D2_CYC   "../data/tc_d2000_parsize1000000_xsb_cyc.P"

Data file for transitive closure benchmark (2K nodes, 1M edges).

#define VER_FILE_TC_250K   "../data/tc_d1000_parsize250000_xsb_nocyc.P"

Data file for transitive closure benchmark (1K nodes, 250K edges).

#define VER_FILE_TC_250K_CYC   "../data/tc_d1000_parsize250000_xsb_cyc.P"

Data file for transitive closure benchmark (1K nodes, 250K edges).

#define VER_FILE_TC_500K   "../data/tc_d1000_parsize500000_xsb_nocyc.P"

Data file for transitive closure benchmark (1K nodes, 500K edges).

#define VER_FILE_TC_500K_CYC   "../data/tc_d1000_parsize500000_xsb_cyc.P"

Data file for transitive closure benchmark (1K nodes, 500K edges).

#define VER_FILE_TC_500K_D2   "../data/tc_d2000_parsize500000_xsb_nocyc.P"

Data file for transitive closure benchmark (2K nodes, 500K edges).

#define VER_FILE_TC_500K_D2_CYC   "../data/tc_d2000_parsize500000_xsb_cyc.P"

Data file for transitive closure benchmark (2K nodes, 500K edges).

#define VER_FILE_TC_50K   "../data/tc_d1000_parsize50000_xsb_nocyc.P"

Data file for transitive closure benchmark (1K nodes, 50K edges).

#define VER_FILE_TC_50K_CYC   "../data/tc_d1000_parsize50000_xsb_cyc.P"

Data file for transitive closure benchmark (1K nodes, 50K edges).

#define VER_FILE_TC_TEST   "../data/tc_test.P"

Data file for transitive closure benchmark (small test file).

#define VER_FILE_WINE   "../data/wine_data.P"

Data File for the Wine Ontology Benchmark.

#define VER_FULLCHECK   NO

Do also time-intensive integrity checks of data structures.

Note: This has only an effect if VER_DEBUG is also defined. Otherwise all integrity checks are eliminated.

#define VER_IOSTREAM   NO

Use the iostream library (else: low level UNIX functions).

#define VER_MAX_ATOMSIZE   20

Maximal length of atoms / identifiers.

#define VER_MAX_PRED_ARGS   10

Maximal number of arguments of an EDB predicate.

#define VER_MAX_TIMERS   5

Number of timer_c objects existing at the same time.

#define VER_PAGESIZE   4096

Size of a memory page in bytes.

#define VER_PRESS_RETURN   NO

Do we need to wait at the end before the program ends?

#define VER_PROG_NAME   "ydb"

What is the name of this program?

#define VER_PROMPT   "ydb> "

Prompt for input from keyboard (standard input).

#define VER_SIGNAL   YES

Try to catch signals.

#define VER_TCFF_LOAD   YES

Is the old handcrafted loader for the TCFF benchmark needed?

This is automatically defined based on the selected benchmarks.

#define VER_UINT_BITS   32

Number of bits in an unsigned int (used for bitmaps).

#define VER_UNIX   YES

Is the program being compiled on a UNIX-like system?

#define VER_UNUSED (   ARG)    ARG

Mark unused arguments so that the warning is not printed.

#define YES   1

True value for use in feature selection macros.

Typedef Documentation

Data type for bytes in data blocks (sizeof must be 1).

typedef int VER_INT

Data type for 32 Bit numbers, sizeof must be 4.

typedef long long VER_INT64

Data type for 64 Bit numbers (if compiled on 64 Bit machine).

Must be sufficient to hold a pointer.

typedef unsigned int VER_UINT

Data type for unsigned 32 Bit numbers, sizeof must be 4.

typedef unsigned short VER_USHORT

Data type for 16 Bit numbers (unsigned), sizeof must be 2.