Merge 192.168.1.79:github/yap-6.3

This commit is contained in:
Vítor Santos Costa 2018-03-26 11:03:08 +01:00
commit 05356df347
119 changed files with 47950 additions and 1288 deletions

View File

@ -916,9 +916,7 @@ static int interrupt_dexecute(USES_REGS1) {
static void undef_goal(USES_REGS1) {
PredEntry *pe = PredFromDefCode(P);
CELL *b;
CELL *b0;
BEGD(d0);
/* avoid trouble with undefined dynamic procedures */
/* I assume they were not locked beforehand */
@ -928,6 +926,15 @@ static void undef_goal(USES_REGS1) {
PP = pe;
}
#endif
if (pe->PredFlags & (DynamicPredFlag | LogUpdatePredFlag | MultiFileFlag) ) {
#if defined(YAPOR) || defined(THREADS)
UNLOCKPE(19, PP);
PP = NULL;
#endif
CalculateStackGap(PASS_REGS1);
P = FAILCODE;
return;
}
if (UndefCode == NULL || UndefCode->OpcodeOfPred == UNDEF_OPCODE) {
fprintf(stderr,"call to undefined Predicates %s ->", IndicatorOfPred(pe));
Yap_DebugPlWriteln(ARG1);
@ -937,15 +944,6 @@ static void undef_goal(USES_REGS1) {
#if defined(YAPOR) || defined(THREADS)
UNLOCKPE(19, PP);
PP = NULL;
#endif
CalculateStackGap(PASS_REGS1);
P = FAILCODE;
return;
}
if (pe->PredFlags & (DynamicPredFlag | LogUpdatePredFlag | MultiFileFlag) ) {
#if defined(YAPOR) || defined(THREADS)
UNLOCKPE(19, PP);
PP = NULL;
#endif
CalculateStackGap(PASS_REGS1);
P = FAILCODE;
@ -955,27 +953,16 @@ static void undef_goal(USES_REGS1) {
UNLOCKPE(19, PP);
PP = NULL;
#endif
d0 = pe->ArityOfPE;
if (pe->ModuleOfPred == PROLOG_MODULE) {
if (CurrentModule == PROLOG_MODULE)
HR[0] = MkAtomTerm(Yap_LookupAtom("prolog"));
else
HR[0] = CurrentModule;
if (pe->ArityOfPE == 0) {
d0 = MkAtomTerm((Atom)(pe->FunctorOfPred));
} else {
HR[0] = Yap_Module_Name(pe);
}
b = b0 = HR;
HR += 2;
if (d0 == 0) {
b[1] = MkAtomTerm((Atom)(pe->FunctorOfPred));
} else {
b[1] = AbsAppl(b+2);
d0 = AbsAppl(HR);
*HR++ = (CELL)pe->FunctorOfPred;
b += 3;
HR += d0;
CELL *ip=HR, *imax = HR+pe->ArityOfPE;
HR = imax;
BEGP(pt1);
pt1 = XREGS + 1;
for (; d0 > 0; --d0) {
for (; ip < imax; ip++) {
BEGD(d1);
BEGP(pt0);
pt0 = pt1++;
@ -983,18 +970,17 @@ static void undef_goal(USES_REGS1) {
deref_head(d1, undef_unk);
undef_nonvar:
/* just copy it to the heap */
*b++ = d1;
*ip = d1;
continue;
derefa_body(d1, pt0, undef_unk, undef_nonvar);
if (pt0 <= HR) {
/* variable is safe */
*b++ = (CELL)pt0;
*ip = (CELL)pt0;
} else {
/* bind it, in case it is a local variable */
d1 = Unsigned(HR);
RESET_VARIABLE(HR);
HR += 1;
d1 = Unsigned(ip);
RESET_VARIABLE(ip);
Bind_Local(pt0, d1);
}
ENDP(pt0);
@ -1002,9 +988,20 @@ static void undef_goal(USES_REGS1) {
}
ENDP(pt1);
}
ENDD(d0);
ARG1 = AbsPair(b0);
ARG2 = Yap_getUnknownModule(Yap_GetModuleEntry(b0[0]));
ARG1 = AbsPair(HR);
HR[1] = d0;
ENDD(d0);
if (pe->ModuleOfPred == PROLOG_MODULE) {
if (CurrentModule == PROLOG_MODULE)
HR[0] = TermProlog;
else
HR[0] = CurrentModule;
} else {
HR[0] = Yap_Module_Name(pe);
}
ARG2 = Yap_getUnknownModule(Yap_GetModuleEntry(HR[0]));
HR += 2;
#ifdef LOW_LEVEL_TRACER
if (Yap_do_low_level_trace)
low_level_trace(enter_pred, UndefCode, XREGS + 1);

View File

@ -1781,9 +1781,9 @@ X_API bool YAP_LeaveGoal(bool backtrack, YAP_dogoalinfo *dgi) {
BACKUP_MACHINE_REGS();
myB = (choiceptr)(LCL0 - dgi->b);
if (B > myB) {
if (B >= myB) {
/* someone cut us */
return FALSE;
return false;
}
/* prune away choicepoints */
if (B != myB) {

View File

@ -652,7 +652,7 @@ yamop *Yap_Error__(const char *file, const char *function, int lineno,
if (LOCAL_DoingUndefp) {
Yap_PrintWarning(error_t);
} else {
memset(LOCAL_ActiveError, 0, sizeof(*LOCAL_ActiveError));
//memset(LOCAL_ActiveError, 0, sizeof(*LOCAL_ActiveError));
Yap_JumpToEnv(error_t);
}
P = (yamop *)FAILCODE;

1805
CMakeCache.txt Normal file

File diff suppressed because one or more lines are too long

272
CMakeDoxyfile.in Normal file
View File

@ -0,0 +1,272 @@
#
# DO NOT EDIT! THIS FILE WAS GENERATED BY CMAKE!
#
DOXYFILE_ENCODING = @DOXYGEN_DOXYFILE_ENCODING@
PROJECT_NAME = @DOXYGEN_PROJECT_NAME@
PROJECT_NUMBER = @DOXYGEN_PROJECT_NUMBER@
PROJECT_BRIEF = @DOXYGEN_PROJECT_BRIEF@
PROJECT_LOGO = @DOXYGEN_PROJECT_LOGO@
OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT_DIRECTORY@
CREATE_SUBDIRS = @DOXYGEN_CREATE_SUBDIRS@
ALLOW_UNICODE_NAMES = @DOXYGEN_ALLOW_UNICODE_NAMES@
OUTPUT_LANGUAGE = @DOXYGEN_OUTPUT_LANGUAGE@
BRIEF_MEMBER_DESC = @DOXYGEN_BRIEF_MEMBER_DESC@
REPEAT_BRIEF = @DOXYGEN_REPEAT_BRIEF@
ABBREVIATE_BRIEF = @DOXYGEN_ABBREVIATE_BRIEF@
ALWAYS_DETAILED_SEC = @DOXYGEN_ALWAYS_DETAILED_SEC@
INLINE_INHERITED_MEMB = @DOXYGEN_INLINE_INHERITED_MEMB@
FULL_PATH_NAMES = @DOXYGEN_FULL_PATH_NAMES@
STRIP_FROM_PATH = @DOXYGEN_STRIP_FROM_PATH@
STRIP_FROM_INC_PATH = @DOXYGEN_STRIP_FROM_INC_PATH@
SHORT_NAMES = @DOXYGEN_SHORT_NAMES@
JAVADOC_AUTOBRIEF = @DOXYGEN_JAVADOC_AUTOBRIEF@
QT_AUTOBRIEF = @DOXYGEN_QT_AUTOBRIEF@
MULTILINE_CPP_IS_BRIEF = @DOXYGEN_MULTILINE_CPP_IS_BRIEF@
INHERIT_DOCS = @DOXYGEN_INHERIT_DOCS@
SEPARATE_MEMBER_PAGES = @DOXYGEN_SEPARATE_MEMBER_PAGES@
TAB_SIZE = @DOXYGEN_TAB_SIZE@
ALIASES = @DOXYGEN_ALIASES@
TCL_SUBST = @DOXYGEN_TCL_SUBST@
OPTIMIZE_OUTPUT_FOR_C = @DOXYGEN_OPTIMIZE_OUTPUT_FOR_C@
OPTIMIZE_OUTPUT_JAVA = @DOXYGEN_OPTIMIZE_OUTPUT_JAVA@
OPTIMIZE_FOR_FORTRAN = @DOXYGEN_OPTIMIZE_FOR_FORTRAN@
OPTIMIZE_OUTPUT_VHDL = @DOXYGEN_OPTIMIZE_OUTPUT_VHDL@
EXTENSION_MAPPING = @DOXYGEN_EXTENSION_MAPPING@
MARKDOWN_SUPPORT = @DOXYGEN_MARKDOWN_SUPPORT@
TOC_INCLUDE_HEADINGS = @DOXYGEN_TOC_INCLUDE_HEADINGS@
AUTOLINK_SUPPORT = @DOXYGEN_AUTOLINK_SUPPORT@
BUILTIN_STL_SUPPORT = @DOXYGEN_BUILTIN_STL_SUPPORT@
CPP_CLI_SUPPORT = @DOXYGEN_CPP_CLI_SUPPORT@
SIP_SUPPORT = @DOXYGEN_SIP_SUPPORT@
IDL_PROPERTY_SUPPORT = @DOXYGEN_IDL_PROPERTY_SUPPORT@
DISTRIBUTE_GROUP_DOC = @DOXYGEN_DISTRIBUTE_GROUP_DOC@
GROUP_NESTED_COMPOUNDS = @DOXYGEN_GROUP_NESTED_COMPOUNDS@
SUBGROUPING = @DOXYGEN_SUBGROUPING@
INLINE_GROUPED_CLASSES = @DOXYGEN_INLINE_GROUPED_CLASSES@
INLINE_SIMPLE_STRUCTS = @DOXYGEN_INLINE_SIMPLE_STRUCTS@
TYPEDEF_HIDES_STRUCT = @DOXYGEN_TYPEDEF_HIDES_STRUCT@
LOOKUP_CACHE_SIZE = @DOXYGEN_LOOKUP_CACHE_SIZE@
EXTRACT_ALL = @DOXYGEN_EXTRACT_ALL@
EXTRACT_PRIVATE = @DOXYGEN_EXTRACT_PRIVATE@
EXTRACT_PACKAGE = @DOXYGEN_EXTRACT_PACKAGE@
EXTRACT_STATIC = @DOXYGEN_EXTRACT_STATIC@
EXTRACT_LOCAL_CLASSES = @DOXYGEN_EXTRACT_LOCAL_CLASSES@
EXTRACT_LOCAL_METHODS = @DOXYGEN_EXTRACT_LOCAL_METHODS@
EXTRACT_ANON_NSPACES = @DOXYGEN_EXTRACT_ANON_NSPACES@
HIDE_UNDOC_MEMBERS = @DOXYGEN_HIDE_UNDOC_MEMBERS@
HIDE_UNDOC_CLASSES = @DOXYGEN_HIDE_UNDOC_CLASSES@
HIDE_FRIEND_COMPOUNDS = @DOXYGEN_HIDE_FRIEND_COMPOUNDS@
HIDE_IN_BODY_DOCS = @DOXYGEN_HIDE_IN_BODY_DOCS@
INTERNAL_DOCS = @DOXYGEN_INTERNAL_DOCS@
CASE_SENSE_NAMES = @DOXYGEN_CASE_SENSE_NAMES@
HIDE_SCOPE_NAMES = @DOXYGEN_HIDE_SCOPE_NAMES@
HIDE_COMPOUND_REFERENCE= @DOXYGEN_HIDE_COMPOUND_REFERENCE@
SHOW_INCLUDE_FILES = @DOXYGEN_SHOW_INCLUDE_FILES@
SHOW_GROUPED_MEMB_INC = @DOXYGEN_SHOW_GROUPED_MEMB_INC@
FORCE_LOCAL_INCLUDES = @DOXYGEN_FORCE_LOCAL_INCLUDES@
INLINE_INFO = @DOXYGEN_INLINE_INFO@
SORT_MEMBER_DOCS = @DOXYGEN_SORT_MEMBER_DOCS@
SORT_BRIEF_DOCS = @DOXYGEN_SORT_BRIEF_DOCS@
SORT_MEMBERS_CTORS_1ST = @DOXYGEN_SORT_MEMBERS_CTORS_1ST@
SORT_GROUP_NAMES = @DOXYGEN_SORT_GROUP_NAMES@
SORT_BY_SCOPE_NAME = @DOXYGEN_SORT_BY_SCOPE_NAME@
STRICT_PROTO_MATCHING = @DOXYGEN_STRICT_PROTO_MATCHING@
GENERATE_TODOLIST = @DOXYGEN_GENERATE_TODOLIST@
GENERATE_TESTLIST = @DOXYGEN_GENERATE_TESTLIST@
GENERATE_BUGLIST = @DOXYGEN_GENERATE_BUGLIST@
GENERATE_DEPRECATEDLIST= @DOXYGEN_GENERATE_DEPRECATEDLIST@
ENABLED_SECTIONS = @DOXYGEN_ENABLED_SECTIONS@
MAX_INITIALIZER_LINES = @DOXYGEN_MAX_INITIALIZER_LINES@
SHOW_USED_FILES = @DOXYGEN_SHOW_USED_FILES@
SHOW_FILES = @DOXYGEN_SHOW_FILES@
SHOW_NAMESPACES = @DOXYGEN_SHOW_NAMESPACES@
FILE_VERSION_FILTER = @DOXYGEN_FILE_VERSION_FILTER@
LAYOUT_FILE = @DOXYGEN_LAYOUT_FILE@
CITE_BIB_FILES = @DOXYGEN_CITE_BIB_FILES@
QUIET = @DOXYGEN_QUIET@
WARNINGS = @DOXYGEN_WARNINGS@
WARN_IF_UNDOCUMENTED = @DOXYGEN_WARN_IF_UNDOCUMENTED@
WARN_IF_DOC_ERROR = @DOXYGEN_WARN_IF_DOC_ERROR@
WARN_NO_PARAMDOC = @DOXYGEN_WARN_NO_PARAMDOC@
WARN_AS_ERROR = @DOXYGEN_WARN_AS_ERROR@
WARN_FORMAT = @DOXYGEN_WARN_FORMAT@
WARN_LOGFILE = @DOXYGEN_WARN_LOGFILE@
INPUT = @DOXYGEN_INPUT@
INPUT_ENCODING = @DOXYGEN_INPUT_ENCODING@
FILE_PATTERNS = @DOXYGEN_FILE_PATTERNS@
RECURSIVE = @DOXYGEN_RECURSIVE@
EXCLUDE = @DOXYGEN_EXCLUDE@
EXCLUDE_SYMLINKS = @DOXYGEN_EXCLUDE_SYMLINKS@
EXCLUDE_PATTERNS = @DOXYGEN_EXCLUDE_PATTERNS@
EXCLUDE_SYMBOLS = @DOXYGEN_EXCLUDE_SYMBOLS@
EXAMPLE_PATH = @DOXYGEN_EXAMPLE_PATH@
EXAMPLE_PATTERNS = @DOXYGEN_EXAMPLE_PATTERNS@
EXAMPLE_RECURSIVE = @DOXYGEN_EXAMPLE_RECURSIVE@
IMAGE_PATH = @DOXYGEN_IMAGE_PATH@
INPUT_FILTER = @DOXYGEN_INPUT_FILTER@
FILTER_PATTERNS = @DOXYGEN_FILTER_PATTERNS@
FILTER_SOURCE_FILES = @DOXYGEN_FILTER_SOURCE_FILES@
FILTER_SOURCE_PATTERNS = @DOXYGEN_FILTER_SOURCE_PATTERNS@
USE_MDFILE_AS_MAINPAGE = @DOXYGEN_USE_MDFILE_AS_MAINPAGE@
SOURCE_BROWSER = @DOXYGEN_SOURCE_BROWSER@
INLINE_SOURCES = @DOXYGEN_INLINE_SOURCES@
STRIP_CODE_COMMENTS = @DOXYGEN_STRIP_CODE_COMMENTS@
REFERENCED_BY_RELATION = @DOXYGEN_REFERENCED_BY_RELATION@
REFERENCES_RELATION = @DOXYGEN_REFERENCES_RELATION@
REFERENCES_LINK_SOURCE = @DOXYGEN_REFERENCES_LINK_SOURCE@
SOURCE_TOOLTIPS = @DOXYGEN_SOURCE_TOOLTIPS@
USE_HTAGS = @DOXYGEN_USE_HTAGS@
VERBATIM_HEADERS = @DOXYGEN_VERBATIM_HEADERS@
CLANG_ASSISTED_PARSING = @DOXYGEN_CLANG_ASSISTED_PARSING@
CLANG_OPTIONS = @DOXYGEN_CLANG_OPTIONS@
ALPHABETICAL_INDEX = @DOXYGEN_ALPHABETICAL_INDEX@
COLS_IN_ALPHA_INDEX = @DOXYGEN_COLS_IN_ALPHA_INDEX@
IGNORE_PREFIX = @DOXYGEN_IGNORE_PREFIX@
GENERATE_HTML = @DOXYGEN_GENERATE_HTML@
HTML_OUTPUT = @DOXYGEN_HTML_OUTPUT@
HTML_FILE_EXTENSION = @DOXYGEN_HTML_FILE_EXTENSION@
HTML_HEADER = @DOXYGEN_HTML_HEADER@
HTML_FOOTER = @DOXYGEN_HTML_FOOTER@
HTML_STYLESHEET = @DOXYGEN_HTML_STYLESHEET@
HTML_EXTRA_STYLESHEET = @DOXYGEN_HTML_EXTRA_STYLESHEET@
HTML_EXTRA_FILES = @DOXYGEN_HTML_EXTRA_FILES@
HTML_COLORSTYLE_HUE = @DOXYGEN_HTML_COLORSTYLE_HUE@
HTML_COLORSTYLE_SAT = @DOXYGEN_HTML_COLORSTYLE_SAT@
HTML_COLORSTYLE_GAMMA = @DOXYGEN_HTML_COLORSTYLE_GAMMA@
HTML_TIMESTAMP = @DOXYGEN_HTML_TIMESTAMP@
HTML_DYNAMIC_SECTIONS = @DOXYGEN_HTML_DYNAMIC_SECTIONS@
HTML_INDEX_NUM_ENTRIES = @DOXYGEN_HTML_INDEX_NUM_ENTRIES@
GENERATE_DOCSET = @DOXYGEN_GENERATE_DOCSET@
DOCSET_FEEDNAME = @DOXYGEN_DOCSET_FEEDNAME@
DOCSET_BUNDLE_ID = @DOXYGEN_DOCSET_BUNDLE_ID@
DOCSET_PUBLISHER_ID = @DOXYGEN_DOCSET_PUBLISHER_ID@
DOCSET_PUBLISHER_NAME = @DOXYGEN_DOCSET_PUBLISHER_NAME@
GENERATE_HTMLHELP = @DOXYGEN_GENERATE_HTMLHELP@
CHM_FILE = @DOXYGEN_CHM_FILE@
HHC_LOCATION = @DOXYGEN_HHC_LOCATION@
GENERATE_CHI = @DOXYGEN_GENERATE_CHI@
CHM_INDEX_ENCODING = @DOXYGEN_CHM_INDEX_ENCODING@
BINARY_TOC = @DOXYGEN_BINARY_TOC@
TOC_EXPAND = @DOXYGEN_TOC_EXPAND@
GENERATE_QHP = @DOXYGEN_GENERATE_QHP@
QCH_FILE = @DOXYGEN_QCH_FILE@
QHP_NAMESPACE = @DOXYGEN_QHP_NAMESPACE@
QHP_VIRTUAL_FOLDER = @DOXYGEN_QHP_VIRTUAL_FOLDER@
QHP_CUST_FILTER_NAME = @DOXYGEN_QHP_CUST_FILTER_NAME@
QHP_CUST_FILTER_ATTRS = @DOXYGEN_QHP_CUST_FILTER_ATTRS@
QHP_SECT_FILTER_ATTRS = @DOXYGEN_QHP_SECT_FILTER_ATTRS@
QHG_LOCATION = @DOXYGEN_QHG_LOCATION@
GENERATE_ECLIPSEHELP = @DOXYGEN_GENERATE_ECLIPSEHELP@
ECLIPSE_DOC_ID = @DOXYGEN_ECLIPSE_DOC_ID@
DISABLE_INDEX = @DOXYGEN_DISABLE_INDEX@
GENERATE_TREEVIEW = @DOXYGEN_GENERATE_TREEVIEW@
ENUM_VALUES_PER_LINE = @DOXYGEN_ENUM_VALUES_PER_LINE@
TREEVIEW_WIDTH = @DOXYGEN_TREEVIEW_WIDTH@
EXT_LINKS_IN_WINDOW = @DOXYGEN_EXT_LINKS_IN_WINDOW@
FORMULA_FONTSIZE = @DOXYGEN_FORMULA_FONTSIZE@
FORMULA_TRANSPARENT = @DOXYGEN_FORMULA_TRANSPARENT@
USE_MATHJAX = @DOXYGEN_USE_MATHJAX@
MATHJAX_FORMAT = @DOXYGEN_MATHJAX_FORMAT@
MATHJAX_RELPATH = @DOXYGEN_MATHJAX_RELPATH@
MATHJAX_EXTENSIONS = @DOXYGEN_MATHJAX_EXTENSIONS@
MATHJAX_CODEFILE = @DOXYGEN_MATHJAX_CODEFILE@
SEARCHENGINE = @DOXYGEN_SEARCHENGINE@
SERVER_BASED_SEARCH = @DOXYGEN_SERVER_BASED_SEARCH@
EXTERNAL_SEARCH = @DOXYGEN_EXTERNAL_SEARCH@
SEARCHENGINE_URL = @DOXYGEN_SEARCHENGINE_URL@
SEARCHDATA_FILE = @DOXYGEN_SEARCHDATA_FILE@
EXTERNAL_SEARCH_ID = @DOXYGEN_EXTERNAL_SEARCH_ID@
EXTRA_SEARCH_MAPPINGS = @DOXYGEN_EXTRA_SEARCH_MAPPINGS@
GENERATE_LATEX = @DOXYGEN_GENERATE_LATEX@
LATEX_OUTPUT = @DOXYGEN_LATEX_OUTPUT@
LATEX_CMD_NAME = @DOXYGEN_LATEX_CMD_NAME@
MAKEINDEX_CMD_NAME = @DOXYGEN_MAKEINDEX_CMD_NAME@
COMPACT_LATEX = @DOXYGEN_COMPACT_LATEX@
PAPER_TYPE = @DOXYGEN_PAPER_TYPE@
EXTRA_PACKAGES = @DOXYGEN_EXTRA_PACKAGES@
LATEX_HEADER = @DOXYGEN_LATEX_HEADER@
LATEX_FOOTER = @DOXYGEN_LATEX_FOOTER@
LATEX_EXTRA_STYLESHEET = @DOXYGEN_LATEX_EXTRA_STYLESHEET@
LATEX_EXTRA_FILES = @DOXYGEN_LATEX_EXTRA_FILES@
PDF_HYPERLINKS = @DOXYGEN_PDF_HYPERLINKS@
USE_PDFLATEX = @DOXYGEN_USE_PDFLATEX@
LATEX_BATCHMODE = @DOXYGEN_LATEX_BATCHMODE@
LATEX_HIDE_INDICES = @DOXYGEN_LATEX_HIDE_INDICES@
LATEX_SOURCE_CODE = @DOXYGEN_LATEX_SOURCE_CODE@
LATEX_BIB_STYLE = @DOXYGEN_LATEX_BIB_STYLE@
LATEX_TIMESTAMP = @DOXYGEN_LATEX_TIMESTAMP@
GENERATE_RTF = @DOXYGEN_GENERATE_RTF@
RTF_OUTPUT = @DOXYGEN_RTF_OUTPUT@
COMPACT_RTF = @DOXYGEN_COMPACT_RTF@
RTF_HYPERLINKS = @DOXYGEN_RTF_HYPERLINKS@
RTF_STYLESHEET_FILE = @DOXYGEN_RTF_STYLESHEET_FILE@
RTF_EXTENSIONS_FILE = @DOXYGEN_RTF_EXTENSIONS_FILE@
RTF_SOURCE_CODE = @DOXYGEN_RTF_SOURCE_CODE@
GENERATE_MAN = @DOXYGEN_GENERATE_MAN@
MAN_OUTPUT = @DOXYGEN_MAN_OUTPUT@
MAN_EXTENSION = @DOXYGEN_MAN_EXTENSION@
MAN_SUBDIR = @DOXYGEN_MAN_SUBDIR@
MAN_LINKS = @DOXYGEN_MAN_LINKS@
GENERATE_XML = @DOXYGEN_GENERATE_XML@
XML_OUTPUT = @DOXYGEN_XML_OUTPUT@
XML_PROGRAMLISTING = @DOXYGEN_XML_PROGRAMLISTING@
GENERATE_DOCBOOK = @DOXYGEN_GENERATE_DOCBOOK@
DOCBOOK_OUTPUT = @DOXYGEN_DOCBOOK_OUTPUT@
DOCBOOK_PROGRAMLISTING = @DOXYGEN_DOCBOOK_PROGRAMLISTING@
GENERATE_AUTOGEN_DEF = @DOXYGEN_GENERATE_AUTOGEN_DEF@
GENERATE_PERLMOD = @DOXYGEN_GENERATE_PERLMOD@
PERLMOD_LATEX = @DOXYGEN_PERLMOD_LATEX@
PERLMOD_PRETTY = @DOXYGEN_PERLMOD_PRETTY@
PERLMOD_MAKEVAR_PREFIX = @DOXYGEN_PERLMOD_MAKEVAR_PREFIX@
ENABLE_PREPROCESSING = @DOXYGEN_ENABLE_PREPROCESSING@
MACRO_EXPANSION = @DOXYGEN_MACRO_EXPANSION@
EXPAND_ONLY_PREDEF = @DOXYGEN_EXPAND_ONLY_PREDEF@
SEARCH_INCLUDES = @DOXYGEN_SEARCH_INCLUDES@
INCLUDE_PATH = @DOXYGEN_INCLUDE_PATH@
INCLUDE_FILE_PATTERNS = @DOXYGEN_INCLUDE_FILE_PATTERNS@
PREDEFINED = @DOXYGEN_PREDEFINED@
EXPAND_AS_DEFINED = @DOXYGEN_EXPAND_AS_DEFINED@
SKIP_FUNCTION_MACROS = @DOXYGEN_SKIP_FUNCTION_MACROS@
TAGFILES = @DOXYGEN_TAGFILES@
GENERATE_TAGFILE = @DOXYGEN_GENERATE_TAGFILE@
ALLEXTERNALS = @DOXYGEN_ALLEXTERNALS@
EXTERNAL_GROUPS = @DOXYGEN_EXTERNAL_GROUPS@
EXTERNAL_PAGES = @DOXYGEN_EXTERNAL_PAGES@
PERL_PATH = @DOXYGEN_PERL_PATH@
CLASS_DIAGRAMS = @DOXYGEN_CLASS_DIAGRAMS@
MSCGEN_PATH = @DOXYGEN_MSCGEN_PATH@
DIA_PATH = @DOXYGEN_DIA_PATH@
HIDE_UNDOC_RELATIONS = @DOXYGEN_HIDE_UNDOC_RELATIONS@
HAVE_DOT = @DOXYGEN_HAVE_DOT@
DOT_NUM_THREADS = @DOXYGEN_DOT_NUM_THREADS@
DOT_FONTNAME = @DOXYGEN_DOT_FONTNAME@
DOT_FONTSIZE = @DOXYGEN_DOT_FONTSIZE@
DOT_FONTPATH = @DOXYGEN_DOT_FONTPATH@
CLASS_GRAPH = @DOXYGEN_CLASS_GRAPH@
COLLABORATION_GRAPH = @DOXYGEN_COLLABORATION_GRAPH@
GROUP_GRAPHS = @DOXYGEN_GROUP_GRAPHS@
UML_LOOK = @DOXYGEN_UML_LOOK@
UML_LIMIT_NUM_FIELDS = @DOXYGEN_UML_LIMIT_NUM_FIELDS@
TEMPLATE_RELATIONS = @DOXYGEN_TEMPLATE_RELATIONS@
INCLUDE_GRAPH = @DOXYGEN_INCLUDE_GRAPH@
INCLUDED_BY_GRAPH = @DOXYGEN_INCLUDED_BY_GRAPH@
CALL_GRAPH = @DOXYGEN_CALL_GRAPH@
CALLER_GRAPH = @DOXYGEN_CALLER_GRAPH@
GRAPHICAL_HIERARCHY = @DOXYGEN_GRAPHICAL_HIERARCHY@
DIRECTORY_GRAPH = @DOXYGEN_DIRECTORY_GRAPH@
DOT_IMAGE_FORMAT = @DOXYGEN_DOT_IMAGE_FORMAT@
INTERACTIVE_SVG = @DOXYGEN_INTERACTIVE_SVG@
DOT_PATH = @DOXYGEN_DOT_PATH@
DOTFILE_DIRS = @DOXYGEN_DOTFILE_DIRS@
MSCFILE_DIRS = @DOXYGEN_MSCFILE_DIRS@
DIAFILE_DIRS = @DOXYGEN_DIAFILE_DIRS@
PLANTUML_JAR_PATH = @DOXYGEN_PLANTUML_JAR_PATH@
PLANTUML_CFG_FILE = @DOXYGEN_PLANTUML_CFG_FILE@
PLANTUML_INCLUDE_PATH = @DOXYGEN_PLANTUML_INCLUDE_PATH@
DOT_GRAPH_MAX_NODES = @DOXYGEN_DOT_GRAPH_MAX_NODES@
MAX_DOT_GRAPH_DEPTH = @DOXYGEN_MAX_DOT_GRAPH_DEPTH@
DOT_TRANSPARENT = @DOXYGEN_DOT_TRANSPARENT@
DOT_MULTI_TARGETS = @DOXYGEN_DOT_MULTI_TARGETS@
GENERATE_LEGEND = @DOXYGEN_GENERATE_LEGEND@
DOT_CLEANUP = @DOXYGEN_DOT_CLEANUP@

654
CMakeDoxygenDefaults.cmake Normal file
View File

@ -0,0 +1,654 @@
#
# DO NOT EDIT! THIS FILE WAS GENERATED BY CMAKE!
#
if(NOT DEFINED DOXYGEN_DOXYFILE_ENCODING)
set(DOXYGEN_DOXYFILE_ENCODING UTF-8)
endif()
if(NOT DEFINED DOXYGEN_PROJECT_NAME)
set(DOXYGEN_PROJECT_NAME "My Project")
endif()
if(NOT DEFINED DOXYGEN_CREATE_SUBDIRS)
set(DOXYGEN_CREATE_SUBDIRS NO)
endif()
if(NOT DEFINED DOXYGEN_ALLOW_UNICODE_NAMES)
set(DOXYGEN_ALLOW_UNICODE_NAMES NO)
endif()
if(NOT DEFINED DOXYGEN_OUTPUT_LANGUAGE)
set(DOXYGEN_OUTPUT_LANGUAGE English)
endif()
if(NOT DEFINED DOXYGEN_BRIEF_MEMBER_DESC)
set(DOXYGEN_BRIEF_MEMBER_DESC YES)
endif()
if(NOT DEFINED DOXYGEN_REPEAT_BRIEF)
set(DOXYGEN_REPEAT_BRIEF YES)
endif()
if(NOT DEFINED DOXYGEN_ABBREVIATE_BRIEF)
set(DOXYGEN_ABBREVIATE_BRIEF "The $name class"
"The $name widget"
"The $name file"
is
provides
specifies
contains
represents
a
an
the)
endif()
if(NOT DEFINED DOXYGEN_ALWAYS_DETAILED_SEC)
set(DOXYGEN_ALWAYS_DETAILED_SEC NO)
endif()
if(NOT DEFINED DOXYGEN_INLINE_INHERITED_MEMB)
set(DOXYGEN_INLINE_INHERITED_MEMB NO)
endif()
if(NOT DEFINED DOXYGEN_FULL_PATH_NAMES)
set(DOXYGEN_FULL_PATH_NAMES YES)
endif()
if(NOT DEFINED DOXYGEN_SHORT_NAMES)
set(DOXYGEN_SHORT_NAMES NO)
endif()
if(NOT DEFINED DOXYGEN_JAVADOC_AUTOBRIEF)
set(DOXYGEN_JAVADOC_AUTOBRIEF NO)
endif()
if(NOT DEFINED DOXYGEN_QT_AUTOBRIEF)
set(DOXYGEN_QT_AUTOBRIEF NO)
endif()
if(NOT DEFINED DOXYGEN_MULTILINE_CPP_IS_BRIEF)
set(DOXYGEN_MULTILINE_CPP_IS_BRIEF NO)
endif()
if(NOT DEFINED DOXYGEN_INHERIT_DOCS)
set(DOXYGEN_INHERIT_DOCS YES)
endif()
if(NOT DEFINED DOXYGEN_SEPARATE_MEMBER_PAGES)
set(DOXYGEN_SEPARATE_MEMBER_PAGES NO)
endif()
if(NOT DEFINED DOXYGEN_TAB_SIZE)
set(DOXYGEN_TAB_SIZE 4)
endif()
if(NOT DEFINED DOXYGEN_OPTIMIZE_OUTPUT_FOR_C)
set(DOXYGEN_OPTIMIZE_OUTPUT_FOR_C NO)
endif()
if(NOT DEFINED DOXYGEN_OPTIMIZE_OUTPUT_JAVA)
set(DOXYGEN_OPTIMIZE_OUTPUT_JAVA NO)
endif()
if(NOT DEFINED DOXYGEN_OPTIMIZE_FOR_FORTRAN)
set(DOXYGEN_OPTIMIZE_FOR_FORTRAN NO)
endif()
if(NOT DEFINED DOXYGEN_OPTIMIZE_OUTPUT_VHDL)
set(DOXYGEN_OPTIMIZE_OUTPUT_VHDL NO)
endif()
if(NOT DEFINED DOXYGEN_MARKDOWN_SUPPORT)
set(DOXYGEN_MARKDOWN_SUPPORT YES)
endif()
if(NOT DEFINED DOXYGEN_TOC_INCLUDE_HEADINGS)
set(DOXYGEN_TOC_INCLUDE_HEADINGS 0)
endif()
if(NOT DEFINED DOXYGEN_AUTOLINK_SUPPORT)
set(DOXYGEN_AUTOLINK_SUPPORT YES)
endif()
if(NOT DEFINED DOXYGEN_BUILTIN_STL_SUPPORT)
set(DOXYGEN_BUILTIN_STL_SUPPORT NO)
endif()
if(NOT DEFINED DOXYGEN_CPP_CLI_SUPPORT)
set(DOXYGEN_CPP_CLI_SUPPORT NO)
endif()
if(NOT DEFINED DOXYGEN_SIP_SUPPORT)
set(DOXYGEN_SIP_SUPPORT NO)
endif()
if(NOT DEFINED DOXYGEN_IDL_PROPERTY_SUPPORT)
set(DOXYGEN_IDL_PROPERTY_SUPPORT YES)
endif()
if(NOT DEFINED DOXYGEN_DISTRIBUTE_GROUP_DOC)
set(DOXYGEN_DISTRIBUTE_GROUP_DOC NO)
endif()
if(NOT DEFINED DOXYGEN_GROUP_NESTED_COMPOUNDS)
set(DOXYGEN_GROUP_NESTED_COMPOUNDS NO)
endif()
if(NOT DEFINED DOXYGEN_SUBGROUPING)
set(DOXYGEN_SUBGROUPING YES)
endif()
if(NOT DEFINED DOXYGEN_INLINE_GROUPED_CLASSES)
set(DOXYGEN_INLINE_GROUPED_CLASSES NO)
endif()
if(NOT DEFINED DOXYGEN_INLINE_SIMPLE_STRUCTS)
set(DOXYGEN_INLINE_SIMPLE_STRUCTS NO)
endif()
if(NOT DEFINED DOXYGEN_TYPEDEF_HIDES_STRUCT)
set(DOXYGEN_TYPEDEF_HIDES_STRUCT NO)
endif()
if(NOT DEFINED DOXYGEN_LOOKUP_CACHE_SIZE)
set(DOXYGEN_LOOKUP_CACHE_SIZE 0)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_ALL)
set(DOXYGEN_EXTRACT_ALL NO)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_PRIVATE)
set(DOXYGEN_EXTRACT_PRIVATE NO)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_PACKAGE)
set(DOXYGEN_EXTRACT_PACKAGE NO)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_STATIC)
set(DOXYGEN_EXTRACT_STATIC NO)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_LOCAL_CLASSES)
set(DOXYGEN_EXTRACT_LOCAL_CLASSES YES)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_LOCAL_METHODS)
set(DOXYGEN_EXTRACT_LOCAL_METHODS NO)
endif()
if(NOT DEFINED DOXYGEN_EXTRACT_ANON_NSPACES)
set(DOXYGEN_EXTRACT_ANON_NSPACES NO)
endif()
if(NOT DEFINED DOXYGEN_HIDE_UNDOC_MEMBERS)
set(DOXYGEN_HIDE_UNDOC_MEMBERS NO)
endif()
if(NOT DEFINED DOXYGEN_HIDE_UNDOC_CLASSES)
set(DOXYGEN_HIDE_UNDOC_CLASSES NO)
endif()
if(NOT DEFINED DOXYGEN_HIDE_FRIEND_COMPOUNDS)
set(DOXYGEN_HIDE_FRIEND_COMPOUNDS NO)
endif()
if(NOT DEFINED DOXYGEN_HIDE_IN_BODY_DOCS)
set(DOXYGEN_HIDE_IN_BODY_DOCS NO)
endif()
if(NOT DEFINED DOXYGEN_INTERNAL_DOCS)
set(DOXYGEN_INTERNAL_DOCS NO)
endif()
if(NOT DEFINED DOXYGEN_CASE_SENSE_NAMES)
set(DOXYGEN_CASE_SENSE_NAMES YES)
endif()
if(NOT DEFINED DOXYGEN_HIDE_SCOPE_NAMES)
set(DOXYGEN_HIDE_SCOPE_NAMES NO)
endif()
if(NOT DEFINED DOXYGEN_HIDE_COMPOUND_REFERENCE)
set(DOXYGEN_HIDE_COMPOUND_REFERENCE NO)
endif()
if(NOT DEFINED DOXYGEN_SHOW_INCLUDE_FILES)
set(DOXYGEN_SHOW_INCLUDE_FILES YES)
endif()
if(NOT DEFINED DOXYGEN_SHOW_GROUPED_MEMB_INC)
set(DOXYGEN_SHOW_GROUPED_MEMB_INC NO)
endif()
if(NOT DEFINED DOXYGEN_FORCE_LOCAL_INCLUDES)
set(DOXYGEN_FORCE_LOCAL_INCLUDES NO)
endif()
if(NOT DEFINED DOXYGEN_INLINE_INFO)
set(DOXYGEN_INLINE_INFO YES)
endif()
if(NOT DEFINED DOXYGEN_SORT_MEMBER_DOCS)
set(DOXYGEN_SORT_MEMBER_DOCS YES)
endif()
if(NOT DEFINED DOXYGEN_SORT_BRIEF_DOCS)
set(DOXYGEN_SORT_BRIEF_DOCS NO)
endif()
if(NOT DEFINED DOXYGEN_SORT_MEMBERS_CTORS_1ST)
set(DOXYGEN_SORT_MEMBERS_CTORS_1ST NO)
endif()
if(NOT DEFINED DOXYGEN_SORT_GROUP_NAMES)
set(DOXYGEN_SORT_GROUP_NAMES NO)
endif()
if(NOT DEFINED DOXYGEN_SORT_BY_SCOPE_NAME)
set(DOXYGEN_SORT_BY_SCOPE_NAME NO)
endif()
if(NOT DEFINED DOXYGEN_STRICT_PROTO_MATCHING)
set(DOXYGEN_STRICT_PROTO_MATCHING NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_TODOLIST)
set(DOXYGEN_GENERATE_TODOLIST YES)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_TESTLIST)
set(DOXYGEN_GENERATE_TESTLIST YES)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_BUGLIST)
set(DOXYGEN_GENERATE_BUGLIST YES)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_DEPRECATEDLIST)
set(DOXYGEN_GENERATE_DEPRECATEDLIST YES)
endif()
if(NOT DEFINED DOXYGEN_MAX_INITIALIZER_LINES)
set(DOXYGEN_MAX_INITIALIZER_LINES 30)
endif()
if(NOT DEFINED DOXYGEN_SHOW_USED_FILES)
set(DOXYGEN_SHOW_USED_FILES YES)
endif()
if(NOT DEFINED DOXYGEN_SHOW_FILES)
set(DOXYGEN_SHOW_FILES YES)
endif()
if(NOT DEFINED DOXYGEN_SHOW_NAMESPACES)
set(DOXYGEN_SHOW_NAMESPACES YES)
endif()
if(NOT DEFINED DOXYGEN_QUIET)
set(DOXYGEN_QUIET NO)
endif()
if(NOT DEFINED DOXYGEN_WARNINGS)
set(DOXYGEN_WARNINGS YES)
endif()
if(NOT DEFINED DOXYGEN_WARN_IF_UNDOCUMENTED)
set(DOXYGEN_WARN_IF_UNDOCUMENTED YES)
endif()
if(NOT DEFINED DOXYGEN_WARN_IF_DOC_ERROR)
set(DOXYGEN_WARN_IF_DOC_ERROR YES)
endif()
if(NOT DEFINED DOXYGEN_WARN_NO_PARAMDOC)
set(DOXYGEN_WARN_NO_PARAMDOC NO)
endif()
if(NOT DEFINED DOXYGEN_WARN_AS_ERROR)
set(DOXYGEN_WARN_AS_ERROR NO)
endif()
if(NOT DEFINED DOXYGEN_WARN_FORMAT)
set(DOXYGEN_WARN_FORMAT "$file:$line: $text")
endif()
if(NOT DEFINED DOXYGEN_INPUT_ENCODING)
set(DOXYGEN_INPUT_ENCODING UTF-8)
endif()
if(NOT DEFINED DOXYGEN_FILE_PATTERNS)
set(DOXYGEN_FILE_PATTERNS *.c
*.cc
*.cxx
*.cpp
*.c++
*.java
*.ii
*.ixx
*.ipp
*.i++
*.inl
*.idl
*.ddl
*.odl
*.h
*.hh
*.hxx
*.hpp
*.h++
*.cs
*.d
*.php
*.php4
*.php5
*.phtml
*.inc
*.m
*.markdown
*.md
*.mm
*.dox
*.py
*.pyw
*.f90
*.f95
*.f03
*.f08
*.f
*.for
*.tcl
*.vhd
*.vhdl
*.ucf
*.qsf)
endif()
if(NOT DEFINED DOXYGEN_RECURSIVE)
set(DOXYGEN_RECURSIVE NO)
endif()
if(NOT DEFINED DOXYGEN_EXCLUDE_SYMLINKS)
set(DOXYGEN_EXCLUDE_SYMLINKS NO)
endif()
if(NOT DEFINED DOXYGEN_EXAMPLE_PATTERNS)
set(DOXYGEN_EXAMPLE_PATTERNS *)
endif()
if(NOT DEFINED DOXYGEN_EXAMPLE_RECURSIVE)
set(DOXYGEN_EXAMPLE_RECURSIVE NO)
endif()
if(NOT DEFINED DOXYGEN_FILTER_SOURCE_FILES)
set(DOXYGEN_FILTER_SOURCE_FILES NO)
endif()
if(NOT DEFINED DOXYGEN_SOURCE_BROWSER)
set(DOXYGEN_SOURCE_BROWSER NO)
endif()
if(NOT DEFINED DOXYGEN_INLINE_SOURCES)
set(DOXYGEN_INLINE_SOURCES NO)
endif()
if(NOT DEFINED DOXYGEN_STRIP_CODE_COMMENTS)
set(DOXYGEN_STRIP_CODE_COMMENTS YES)
endif()
if(NOT DEFINED DOXYGEN_REFERENCED_BY_RELATION)
set(DOXYGEN_REFERENCED_BY_RELATION NO)
endif()
if(NOT DEFINED DOXYGEN_REFERENCES_RELATION)
set(DOXYGEN_REFERENCES_RELATION NO)
endif()
if(NOT DEFINED DOXYGEN_REFERENCES_LINK_SOURCE)
set(DOXYGEN_REFERENCES_LINK_SOURCE YES)
endif()
if(NOT DEFINED DOXYGEN_SOURCE_TOOLTIPS)
set(DOXYGEN_SOURCE_TOOLTIPS YES)
endif()
if(NOT DEFINED DOXYGEN_USE_HTAGS)
set(DOXYGEN_USE_HTAGS NO)
endif()
if(NOT DEFINED DOXYGEN_VERBATIM_HEADERS)
set(DOXYGEN_VERBATIM_HEADERS YES)
endif()
if(NOT DEFINED DOXYGEN_CLANG_ASSISTED_PARSING)
set(DOXYGEN_CLANG_ASSISTED_PARSING NO)
endif()
if(NOT DEFINED DOXYGEN_ALPHABETICAL_INDEX)
set(DOXYGEN_ALPHABETICAL_INDEX YES)
endif()
if(NOT DEFINED DOXYGEN_COLS_IN_ALPHA_INDEX)
set(DOXYGEN_COLS_IN_ALPHA_INDEX 5)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_HTML)
set(DOXYGEN_GENERATE_HTML YES)
endif()
if(NOT DEFINED DOXYGEN_HTML_OUTPUT)
set(DOXYGEN_HTML_OUTPUT html)
endif()
if(NOT DEFINED DOXYGEN_HTML_FILE_EXTENSION)
set(DOXYGEN_HTML_FILE_EXTENSION .html)
endif()
if(NOT DEFINED DOXYGEN_HTML_COLORSTYLE_HUE)
set(DOXYGEN_HTML_COLORSTYLE_HUE 220)
endif()
if(NOT DEFINED DOXYGEN_HTML_COLORSTYLE_SAT)
set(DOXYGEN_HTML_COLORSTYLE_SAT 100)
endif()
if(NOT DEFINED DOXYGEN_HTML_COLORSTYLE_GAMMA)
set(DOXYGEN_HTML_COLORSTYLE_GAMMA 80)
endif()
if(NOT DEFINED DOXYGEN_HTML_TIMESTAMP)
set(DOXYGEN_HTML_TIMESTAMP NO)
endif()
if(NOT DEFINED DOXYGEN_HTML_DYNAMIC_SECTIONS)
set(DOXYGEN_HTML_DYNAMIC_SECTIONS NO)
endif()
if(NOT DEFINED DOXYGEN_HTML_INDEX_NUM_ENTRIES)
set(DOXYGEN_HTML_INDEX_NUM_ENTRIES 100)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_DOCSET)
set(DOXYGEN_GENERATE_DOCSET NO)
endif()
if(NOT DEFINED DOXYGEN_DOCSET_FEEDNAME)
set(DOXYGEN_DOCSET_FEEDNAME "Doxygen generated docs")
endif()
if(NOT DEFINED DOXYGEN_DOCSET_BUNDLE_ID)
set(DOXYGEN_DOCSET_BUNDLE_ID org.doxygen.Project)
endif()
if(NOT DEFINED DOXYGEN_DOCSET_PUBLISHER_ID)
set(DOXYGEN_DOCSET_PUBLISHER_ID org.doxygen.Publisher)
endif()
if(NOT DEFINED DOXYGEN_DOCSET_PUBLISHER_NAME)
set(DOXYGEN_DOCSET_PUBLISHER_NAME Publisher)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_HTMLHELP)
set(DOXYGEN_GENERATE_HTMLHELP NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_CHI)
set(DOXYGEN_GENERATE_CHI NO)
endif()
if(NOT DEFINED DOXYGEN_BINARY_TOC)
set(DOXYGEN_BINARY_TOC NO)
endif()
if(NOT DEFINED DOXYGEN_TOC_EXPAND)
set(DOXYGEN_TOC_EXPAND NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_QHP)
set(DOXYGEN_GENERATE_QHP NO)
endif()
if(NOT DEFINED DOXYGEN_QHP_NAMESPACE)
set(DOXYGEN_QHP_NAMESPACE org.doxygen.Project)
endif()
if(NOT DEFINED DOXYGEN_QHP_VIRTUAL_FOLDER)
set(DOXYGEN_QHP_VIRTUAL_FOLDER doc)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_ECLIPSEHELP)
set(DOXYGEN_GENERATE_ECLIPSEHELP NO)
endif()
if(NOT DEFINED DOXYGEN_ECLIPSE_DOC_ID)
set(DOXYGEN_ECLIPSE_DOC_ID org.doxygen.Project)
endif()
if(NOT DEFINED DOXYGEN_DISABLE_INDEX)
set(DOXYGEN_DISABLE_INDEX NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_TREEVIEW)
set(DOXYGEN_GENERATE_TREEVIEW NO)
endif()
if(NOT DEFINED DOXYGEN_ENUM_VALUES_PER_LINE)
set(DOXYGEN_ENUM_VALUES_PER_LINE 4)
endif()
if(NOT DEFINED DOXYGEN_TREEVIEW_WIDTH)
set(DOXYGEN_TREEVIEW_WIDTH 250)
endif()
if(NOT DEFINED DOXYGEN_EXT_LINKS_IN_WINDOW)
set(DOXYGEN_EXT_LINKS_IN_WINDOW NO)
endif()
if(NOT DEFINED DOXYGEN_FORMULA_FONTSIZE)
set(DOXYGEN_FORMULA_FONTSIZE 10)
endif()
if(NOT DEFINED DOXYGEN_FORMULA_TRANSPARENT)
set(DOXYGEN_FORMULA_TRANSPARENT YES)
endif()
if(NOT DEFINED DOXYGEN_USE_MATHJAX)
set(DOXYGEN_USE_MATHJAX NO)
endif()
if(NOT DEFINED DOXYGEN_MATHJAX_FORMAT)
set(DOXYGEN_MATHJAX_FORMAT HTML-CSS)
endif()
if(NOT DEFINED DOXYGEN_MATHJAX_RELPATH)
set(DOXYGEN_MATHJAX_RELPATH http://cdn.mathjax.org/mathjax/latest)
endif()
if(NOT DEFINED DOXYGEN_SEARCHENGINE)
set(DOXYGEN_SEARCHENGINE YES)
endif()
if(NOT DEFINED DOXYGEN_SERVER_BASED_SEARCH)
set(DOXYGEN_SERVER_BASED_SEARCH NO)
endif()
if(NOT DEFINED DOXYGEN_EXTERNAL_SEARCH)
set(DOXYGEN_EXTERNAL_SEARCH NO)
endif()
if(NOT DEFINED DOXYGEN_SEARCHDATA_FILE)
set(DOXYGEN_SEARCHDATA_FILE searchdata.xml)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_LATEX)
set(DOXYGEN_GENERATE_LATEX YES)
endif()
if(NOT DEFINED DOXYGEN_LATEX_OUTPUT)
set(DOXYGEN_LATEX_OUTPUT latex)
endif()
if(NOT DEFINED DOXYGEN_LATEX_CMD_NAME)
set(DOXYGEN_LATEX_CMD_NAME latex)
endif()
if(NOT DEFINED DOXYGEN_MAKEINDEX_CMD_NAME)
set(DOXYGEN_MAKEINDEX_CMD_NAME makeindex)
endif()
if(NOT DEFINED DOXYGEN_COMPACT_LATEX)
set(DOXYGEN_COMPACT_LATEX NO)
endif()
if(NOT DEFINED DOXYGEN_PAPER_TYPE)
set(DOXYGEN_PAPER_TYPE a4)
endif()
if(NOT DEFINED DOXYGEN_PDF_HYPERLINKS)
set(DOXYGEN_PDF_HYPERLINKS YES)
endif()
if(NOT DEFINED DOXYGEN_USE_PDFLATEX)
set(DOXYGEN_USE_PDFLATEX YES)
endif()
if(NOT DEFINED DOXYGEN_LATEX_BATCHMODE)
set(DOXYGEN_LATEX_BATCHMODE NO)
endif()
if(NOT DEFINED DOXYGEN_LATEX_HIDE_INDICES)
set(DOXYGEN_LATEX_HIDE_INDICES NO)
endif()
if(NOT DEFINED DOXYGEN_LATEX_SOURCE_CODE)
set(DOXYGEN_LATEX_SOURCE_CODE NO)
endif()
if(NOT DEFINED DOXYGEN_LATEX_BIB_STYLE)
set(DOXYGEN_LATEX_BIB_STYLE plain)
endif()
if(NOT DEFINED DOXYGEN_LATEX_TIMESTAMP)
set(DOXYGEN_LATEX_TIMESTAMP NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_RTF)
set(DOXYGEN_GENERATE_RTF NO)
endif()
if(NOT DEFINED DOXYGEN_RTF_OUTPUT)
set(DOXYGEN_RTF_OUTPUT rtf)
endif()
if(NOT DEFINED DOXYGEN_COMPACT_RTF)
set(DOXYGEN_COMPACT_RTF NO)
endif()
if(NOT DEFINED DOXYGEN_RTF_HYPERLINKS)
set(DOXYGEN_RTF_HYPERLINKS NO)
endif()
if(NOT DEFINED DOXYGEN_RTF_SOURCE_CODE)
set(DOXYGEN_RTF_SOURCE_CODE NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_MAN)
set(DOXYGEN_GENERATE_MAN NO)
endif()
if(NOT DEFINED DOXYGEN_MAN_OUTPUT)
set(DOXYGEN_MAN_OUTPUT man)
endif()
if(NOT DEFINED DOXYGEN_MAN_EXTENSION)
set(DOXYGEN_MAN_EXTENSION .3)
endif()
if(NOT DEFINED DOXYGEN_MAN_LINKS)
set(DOXYGEN_MAN_LINKS NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_XML)
set(DOXYGEN_GENERATE_XML NO)
endif()
if(NOT DEFINED DOXYGEN_XML_OUTPUT)
set(DOXYGEN_XML_OUTPUT xml)
endif()
if(NOT DEFINED DOXYGEN_XML_PROGRAMLISTING)
set(DOXYGEN_XML_PROGRAMLISTING YES)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_DOCBOOK)
set(DOXYGEN_GENERATE_DOCBOOK NO)
endif()
if(NOT DEFINED DOXYGEN_DOCBOOK_OUTPUT)
set(DOXYGEN_DOCBOOK_OUTPUT docbook)
endif()
if(NOT DEFINED DOXYGEN_DOCBOOK_PROGRAMLISTING)
set(DOXYGEN_DOCBOOK_PROGRAMLISTING NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_AUTOGEN_DEF)
set(DOXYGEN_GENERATE_AUTOGEN_DEF NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_PERLMOD)
set(DOXYGEN_GENERATE_PERLMOD NO)
endif()
if(NOT DEFINED DOXYGEN_PERLMOD_LATEX)
set(DOXYGEN_PERLMOD_LATEX NO)
endif()
if(NOT DEFINED DOXYGEN_PERLMOD_PRETTY)
set(DOXYGEN_PERLMOD_PRETTY YES)
endif()
if(NOT DEFINED DOXYGEN_ENABLE_PREPROCESSING)
set(DOXYGEN_ENABLE_PREPROCESSING YES)
endif()
if(NOT DEFINED DOXYGEN_MACRO_EXPANSION)
set(DOXYGEN_MACRO_EXPANSION NO)
endif()
if(NOT DEFINED DOXYGEN_EXPAND_ONLY_PREDEF)
set(DOXYGEN_EXPAND_ONLY_PREDEF NO)
endif()
if(NOT DEFINED DOXYGEN_SEARCH_INCLUDES)
set(DOXYGEN_SEARCH_INCLUDES YES)
endif()
if(NOT DEFINED DOXYGEN_SKIP_FUNCTION_MACROS)
set(DOXYGEN_SKIP_FUNCTION_MACROS YES)
endif()
if(NOT DEFINED DOXYGEN_ALLEXTERNALS)
set(DOXYGEN_ALLEXTERNALS NO)
endif()
if(NOT DEFINED DOXYGEN_EXTERNAL_GROUPS)
set(DOXYGEN_EXTERNAL_GROUPS YES)
endif()
if(NOT DEFINED DOXYGEN_EXTERNAL_PAGES)
set(DOXYGEN_EXTERNAL_PAGES YES)
endif()
if(NOT DEFINED DOXYGEN_PERL_PATH)
set(DOXYGEN_PERL_PATH /usr/bin/perl)
endif()
if(NOT DEFINED DOXYGEN_CLASS_DIAGRAMS)
set(DOXYGEN_CLASS_DIAGRAMS YES)
endif()
if(NOT DEFINED DOXYGEN_HIDE_UNDOC_RELATIONS)
set(DOXYGEN_HIDE_UNDOC_RELATIONS YES)
endif()
if(NOT DEFINED DOXYGEN_HAVE_DOT)
set(DOXYGEN_HAVE_DOT YES)
endif()
if(NOT DEFINED DOXYGEN_DOT_NUM_THREADS)
set(DOXYGEN_DOT_NUM_THREADS 0)
endif()
if(NOT DEFINED DOXYGEN_DOT_FONTNAME)
set(DOXYGEN_DOT_FONTNAME Helvetica)
endif()
if(NOT DEFINED DOXYGEN_DOT_FONTSIZE)
set(DOXYGEN_DOT_FONTSIZE 10)
endif()
if(NOT DEFINED DOXYGEN_CLASS_GRAPH)
set(DOXYGEN_CLASS_GRAPH YES)
endif()
if(NOT DEFINED DOXYGEN_COLLABORATION_GRAPH)
set(DOXYGEN_COLLABORATION_GRAPH YES)
endif()
if(NOT DEFINED DOXYGEN_GROUP_GRAPHS)
set(DOXYGEN_GROUP_GRAPHS YES)
endif()
if(NOT DEFINED DOXYGEN_UML_LOOK)
set(DOXYGEN_UML_LOOK NO)
endif()
if(NOT DEFINED DOXYGEN_UML_LIMIT_NUM_FIELDS)
set(DOXYGEN_UML_LIMIT_NUM_FIELDS 10)
endif()
if(NOT DEFINED DOXYGEN_TEMPLATE_RELATIONS)
set(DOXYGEN_TEMPLATE_RELATIONS NO)
endif()
if(NOT DEFINED DOXYGEN_INCLUDE_GRAPH)
set(DOXYGEN_INCLUDE_GRAPH YES)
endif()
if(NOT DEFINED DOXYGEN_INCLUDED_BY_GRAPH)
set(DOXYGEN_INCLUDED_BY_GRAPH YES)
endif()
if(NOT DEFINED DOXYGEN_CALL_GRAPH)
set(DOXYGEN_CALL_GRAPH NO)
endif()
if(NOT DEFINED DOXYGEN_CALLER_GRAPH)
set(DOXYGEN_CALLER_GRAPH NO)
endif()
if(NOT DEFINED DOXYGEN_GRAPHICAL_HIERARCHY)
set(DOXYGEN_GRAPHICAL_HIERARCHY YES)
endif()
if(NOT DEFINED DOXYGEN_DIRECTORY_GRAPH)
set(DOXYGEN_DIRECTORY_GRAPH YES)
endif()
if(NOT DEFINED DOXYGEN_DOT_IMAGE_FORMAT)
set(DOXYGEN_DOT_IMAGE_FORMAT png)
endif()
if(NOT DEFINED DOXYGEN_INTERACTIVE_SVG)
set(DOXYGEN_INTERACTIVE_SVG NO)
endif()
if(NOT DEFINED DOXYGEN_DOT_GRAPH_MAX_NODES)
set(DOXYGEN_DOT_GRAPH_MAX_NODES 50)
endif()
if(NOT DEFINED DOXYGEN_MAX_DOT_GRAPH_DEPTH)
set(DOXYGEN_MAX_DOT_GRAPH_DEPTH 0)
endif()
if(NOT DEFINED DOXYGEN_DOT_TRANSPARENT)
set(DOXYGEN_DOT_TRANSPARENT NO)
endif()
if(NOT DEFINED DOXYGEN_DOT_MULTI_TARGETS)
set(DOXYGEN_DOT_MULTI_TARGETS NO)
endif()
if(NOT DEFINED DOXYGEN_GENERATE_LEGEND)
set(DOXYGEN_GENERATE_LEGEND YES)
endif()
if(NOT DEFINED DOXYGEN_DOT_CLEANUP)
set(DOXYGEN_DOT_CLEANUP YES)
endif()

View File

@ -688,11 +688,6 @@ if (PYTHONLIBS_FOUND AND SWIG_FOUND)
find_python_module(jupyter)
find_python_module(wheel)
find_python_module(setuptools)
find_python_module(backcall)
if (NOT FOUND_BACKALL)
#bring your own
execute_process( COMMAND ${PYTHON_EXECUTABLE} -m pip install ${CMAKE_SOURCE_DIR}/misc/backcall-0.1.0-cp36-none-any.whl)
endif()
if (PY_JUPYTER AND PY_WHEEL AND PY_SETUPTOOLS)
add_subdirectory(packages/python/yap_kernel)
ENDIF ()

View File

@ -14,8 +14,8 @@ extern "C" {
#include "Python.h"
#endif
#include "YapInterface.h"
#include "YapBlobs.h"
#include "YapInterface.h"
#include "iopreds.h"
X_API char *Yap_TermToBuffer(Term t, encoding_t encodingp, int flags);
@ -31,43 +31,42 @@ X_API bool do_init_python(void);
#endif
}
YAPPredicate::YAPPredicate(Term &t, Term &tmod, CELL * &ts, const char *pname) {
Term t0 = t;
ap = nullptr;
restart:
if (IsVarTerm(t)) {
Yap_Error(INSTANTIATION_ERROR, t0, pname);
} else if (IsAtomTerm(t)) {
ap = RepPredProp(Yap_GetPredPropByAtom(AtomOfTerm(t), tmod));
ts = nullptr;
} else if (IsIntegerTerm(t) && tmod == IDB_MODULE) {
ts = nullptr;
ap = Yap_FindLUIntKey(IntegerOfTerm(t));
} else if (IsPairTerm(t)) {
t = Yap_MkApplTerm(FunctorCsult, 1, &t);
goto restart;
} else if (IsApplTerm(t)) {
Functor fun = FunctorOfTerm(t);
if (IsExtensionFunctor(fun)) {
Yap_Error(TYPE_ERROR_CALLABLE, Yap_PredicateIndicator(t, tmod), pname);
}
if (fun == FunctorModule) {
tmod = ArgOfTerm(1, t);
if (IsVarTerm(tmod)) {
Yap_Error(INSTANTIATION_ERROR, t0, pname);
}
if (!IsAtomTerm(tmod)) {
Yap_Error(TYPE_ERROR_ATOM, t0, pname);
}
t = ArgOfTerm(2, t);
goto restart;
}
ap = RepPredProp(Yap_GetPredPropByFunc(fun, tmod));
ts = RepAppl(t)+1;
} else {
Yap_Error(TYPE_ERROR_CALLABLE, t0, pname);
YAPPredicate::YAPPredicate(Term &t, Term &tmod, CELL *&ts, const char *pname) {
Term t0 = t;
ap = nullptr;
restart:
if (IsVarTerm(t)) {
Yap_Error(INSTANTIATION_ERROR, t0, pname);
} else if (IsAtomTerm(t)) {
ap = RepPredProp(Yap_GetPredPropByAtom(AtomOfTerm(t), tmod));
ts = nullptr;
} else if (IsIntegerTerm(t) && tmod == IDB_MODULE) {
ts = nullptr;
ap = Yap_FindLUIntKey(IntegerOfTerm(t));
} else if (IsPairTerm(t)) {
t = Yap_MkApplTerm(FunctorCsult, 1, &t);
goto restart;
} else if (IsApplTerm(t)) {
Functor fun = FunctorOfTerm(t);
if (IsExtensionFunctor(fun)) {
Yap_Error(TYPE_ERROR_CALLABLE, Yap_PredicateIndicator(t, tmod), pname);
}
if (fun == FunctorModule) {
tmod = ArgOfTerm(1, t);
if (IsVarTerm(tmod)) {
Yap_Error(INSTANTIATION_ERROR, t0, pname);
}
if (!IsAtomTerm(tmod)) {
Yap_Error(TYPE_ERROR_ATOM, t0, pname);
}
t = ArgOfTerm(2, t);
goto restart;
}
ap = RepPredProp(Yap_GetPredPropByFunc(fun, tmod));
ts = RepAppl(t) + 1;
} else {
Yap_Error(TYPE_ERROR_CALLABLE, t0, pname);
}
}
YAPAtomTerm::YAPAtomTerm(char *s) { // build string
@ -230,23 +229,23 @@ YAPApplTerm::YAPApplTerm(YAPFunctor f) : YAPTerm() {
Term &YAPTerm::operator[](arity_t i) {
BACKUP_MACHINE_REGS();
Term t0 = gt();
Term tf = 0;
Term *tf = nullptr;
if (IsApplTerm(t0)) {
// Functor f = FunctorOfTerm(t0);
// if (IsExtensionFunctor(f))
// return 0;
tf = RepAppl(t0)[(i + 1)];
tf = RepAppl(t0) + (i + 1);
} else if (IsPairTerm(t0)) {
if (i == 0)
tf = HeadOfTerm(t0);
tf = RepPair(t0);
else if (i == 1)
tf = TailOfTerm(t0);
tf = RepPair(t0) + 1;
RECOVER_MACHINE_REGS();
} else {
Yap_Error(TYPE_ERROR_COMPOUND, t0, "");
}
RECOVER_MACHINE_REGS();
return (tf);
Yap_Error(TYPE_ERROR_COMPOUND, t0, "");
}
RECOVER_MACHINE_REGS();
return *tf;
}
Term &YAPListTerm::operator[](arity_t i) {
@ -416,99 +415,85 @@ void YAPQuery::openQuery() {
}
bool YAPEngine::call(YAPPredicate ap, YAPTerm ts[]) {
sigjmp_buf *oj = LOCAL_RestartEnv, buf;
try {
CACHE_REGS
if (ap.ap == NULL)
return false;
BACKUP_MACHINE_REGS();
arity_t arity = ap.getArity();
bool result;
YAP_dogoalinfo q;
for (arity_t i = 0; i < arity; i++)
XREGS[i + 1] = ts[i].term();
q.CurSlot = Yap_StartSlots();
q.p = P;
q.cp = CP;
// allow Prolog style exceotion handling
LOCAL_RestartEnv = &buf;
if (sigsetjmp(*LOCAL_RestartEnv, false)) {
std::cerr << "Restart\n";
//q.e = new YAPError();
}
// don't forget, on success these bindings will still be there);
result = YAP_LeaveGoal(false, &q);
Yap_CloseHandles(q.CurSlot);
LOCAL_RestartEnv = oj;
RECOVER_MACHINE_REGS();
return result;
} catch (YAPError e) {
YAP_LeaveGoal(false, &q);
Yap_CloseHandles(q.CurSlot);
std::cerr << "Exception received by "
<< YAPApplTerm(ap.functor(), ts).text() << ".\n Forwarded...\n\n";
LOCAL_RestartEnv = oj;
CACHE_REGS
if (ap.ap == NULL)
return false;
BACKUP_MACHINE_REGS();
arity_t arity = ap.getArity();
bool result;
YAP_dogoalinfo q;
for (arity_t i = 0; i < arity; i++)
XREGS[i + 1] = ts[i].term();
q.CurSlot = Yap_StartSlots();
q.p = P;
q.cp = CP;
// allow Prolog style exceotion handling
// don't forget, on success these bindings will still be there);
result = YAP_LeaveGoal(false, &q);
Term terr;
if ((terr = Yap_PeekException()) != 0) {
std::cerr << "Exception received by " << __func__ << "( "
<< YAPTerm(terr).text() << ").\n Forwarded...\n\n";
// Yap_PopTermFromDB(LOCAL_ActiveError->errorTerm);
// throw YAPError();
}
Yap_CloseHandles(q.CurSlot);
RECOVER_MACHINE_REGS();
return result;
}
bool YAPEngine::mgoal(Term t, Term tmod) {
sigjmp_buf buf, *oldp = LOCAL_RestartEnv;
#if YAP_PYTHON
//PyThreadState *_save;
// PyThreadState *_save;
// _save = PyEval_SaveThread();
#endif
try {
CACHE_REGS
BACKUP_MACHINE_REGS();
Term *ts = nullptr;
if (IsStringTerm(tmod))
tmod = MkAtomTerm(Yap_LookupAtom(StringOfTerm(tmod)));
PredEntry *ap = (new YAPPredicate(t, tmod, ts, "C++"))->ap;
if (ap == nullptr || ap->OpcodeOfPred == UNDEF_OPCODE) {
ap = rewriteUndefEngineQuery(ap, t, tmod);
}
if (IsApplTerm(t)) ts = RepAppl(t)+1;
else if (IsPairTerm(t)) ts = RepPair(t);
/* legal ap */
arity_t arity = ap->ArityOfPE;
CACHE_REGS
BACKUP_MACHINE_REGS();
Term *ts = nullptr;
if (IsStringTerm(tmod))
tmod = MkAtomTerm(Yap_LookupAtom(StringOfTerm(tmod)));
PredEntry *ap = (new YAPPredicate(t, tmod, ts, "C++"))->ap;
if (ap == nullptr || ap->OpcodeOfPred == UNDEF_OPCODE) {
ap = rewriteUndefEngineQuery(ap, t, tmod);
}
if (IsApplTerm(t))
ts = RepAppl(t) + 1;
else if (IsPairTerm(t))
ts = RepPair(t);
/* legal ap */
arity_t arity = ap->ArityOfPE;
for (arity_t i = 0; i < arity; i++) {
XREGS[i + 1] = ts[i];
}
ts = nullptr;
bool result;
q.CurSlot = Yap_StartSlots();
q.p = P;
q.cp = CP;
// allow Prolog style exception handling
LOCAL_RestartEnv = &buf;
if (sigsetjmp(*LOCAL_RestartEnv, false)) {
// PyEval_RestoreThread(_save);
std::cerr << "Restart\n";
//throw new YAPError();
}
// don't forget, on success these guys may create slots
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "exec ");
result = (bool)YAP_EnterGoal(ap, nullptr, &q);
{
YAP_LeaveGoal(false, &q);
// PyEval_RestoreThread(_save);
LOCAL_RestartEnv = oldp;
RECOVER_MACHINE_REGS();
return result;
}
} catch (YAPError e) {
YAP_LeaveGoal(false, &q);
Yap_CloseHandles(q.CurSlot);
// PyEval_RestoreThread(_save);
LOCAL_RestartEnv = oldp;
return 0;
//throw e;
for (arity_t i = 0; i < arity; i++) {
XREGS[i + 1] = ts[i];
}
ts = nullptr;
bool result;
q.CurSlot = Yap_StartSlots();
q.p = P;
q.cp = CP;
// allow Prolog style exception handling
// don't forget, on success these guys may create slots
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "exec ");
result = (bool)YAP_EnterGoal(ap, nullptr, &q);
Term terr;
if ((terr = Yap_PeekException()) != 0) {
std::cerr << "Exception received by " << __func__ << "( "
<< YAPTerm(terr).text() << ").\n Forwarded...\n\n";
// Yap_PopTermFromDB(LOCAL_ActiveError->errorTerm);
// throw YAPError();
}
{
YAP_LeaveGoal(result, &q);
// PyEval_RestoreThread(_save);
RECOVER_MACHINE_REGS();
return result;
}
}
@ -521,81 +506,62 @@ void YAPEngine::release() {
Term YAPEngine::fun(Term t) {
CACHE_REGS
try {
BACKUP_MACHINE_REGS();
Term tmod = CurrentModule, *ts = nullptr;
PredEntry *ap;
arity_t arity;
Functor f;
Atom name;
BACKUP_MACHINE_REGS();
Term tmod = CurrentModule, *ts = nullptr;
PredEntry *ap;
arity_t arity;
Functor f;
Atom name;
if (IsApplTerm(t)) {
ts = RepAppl(t) + 1;
f = (Functor)ts[-1];
name = NameOfFunctor(f);
arity = ArityOfFunctor(f);
for (arity_t i = 0; i < arity; i++)
XREGS[i + 1] = ts[i];
} else if (IsAtomTerm(t)) {
name = AtomOfTerm(t);
f = nullptr;
arity = 0;
} else if (IsPairTerm(t)) {
XREGS[1] = ts[0];
XREGS[2] = ts[1];
arity = 2;
name = AtomDot;
f = FunctorDot;
} else {
Yap_ThrowError(TYPE_ERROR_CALLABLE, t, 0);
return 0L;
}
XREGS[arity + 1] = MkVarTerm();
arity++;
f = Yap_MkFunctor(name, arity);
ap = (PredEntry *)(PredPropByFunc(f, tmod));
if (ap == nullptr || ap->OpcodeOfPred == UNDEF_OPCODE) {
Term g = (Yap_MkApplTerm(f, arity, ts));
ap = rewriteUndefEngineQuery(ap, g, (ap->ModuleOfPred));
}
q.CurSlot = Yap_StartSlots();
q.p = P;
q.cp = CP;
// make sure this is safe
yhandle_t o = Yap_InitHandle(XREGS[arity]);
// allow Prolog style exception handling
sigjmp_buf buf, *oldp = LOCAL_RestartEnv;
LOCAL_RestartEnv = &buf;
if (sigsetjmp(*LOCAL_RestartEnv, false)) {
// throw new YAPError();
LOCAL_RestartEnv = oldp;
RECOVER_MACHINE_REGS();
return 0;
}
// don't forget, on success these guys may create slots
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "exec ");
if (IsApplTerm(t)) {
ts = RepAppl(t) + 1;
f = (Functor)ts[-1];
name = NameOfFunctor(f);
arity = ArityOfFunctor(f);
for (arity_t i = 0; i < arity; i++)
XREGS[i + 1] = ts[i];
} else if (IsAtomTerm(t)) {
name = AtomOfTerm(t);
f = nullptr;
arity = 0;
} else if (IsPairTerm(t)) {
XREGS[1] = ts[0];
XREGS[2] = ts[1];
arity = 2;
name = AtomDot;
f = FunctorDot;
} else {
Yap_ThrowError(TYPE_ERROR_CALLABLE, t, 0);
return 0L;
}
XREGS[arity + 1] = MkVarTerm();
arity++;
f = Yap_MkFunctor(name, arity);
ap = (PredEntry *)(PredPropByFunc(f, tmod));
if (ap == nullptr || ap->OpcodeOfPred == UNDEF_OPCODE) {
Term g = (Yap_MkApplTerm(f, arity, ts));
ap = rewriteUndefEngineQuery(ap, g, (ap->ModuleOfPred));
}
q.CurSlot = Yap_StartSlots();
q.p = P;
q.cp = CP;
// make sure this is safe
// allow Prolog style exception handling
Term terr;
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "exec ");
if (YAP_EnterGoal(ap, nullptr, &q) == 0) {
#if DEBUG
fprintf(stderr, "function call failed:\n");
#endif
LOCAL_RestartEnv = oldp;
return 0;
}
DBTerm *pt = Yap_StoreTermInDB(Yap_GetFromSlot(o), arity);
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "out %d", o);
YAP_LeaveGoal(false, &q);
Yap_CloseHandles(q.CurSlot);
Term rc = Yap_PopTermFromDB(pt);
LOCAL_RestartEnv = oldp;
RECOVER_MACHINE_REGS();
return rc;
} catch (YAPError e) {
YAP_LeaveGoal(false, &q);
Yap_CloseHandles(q.CurSlot);
bool result = (bool)YAP_EnterGoal(ap, nullptr, &q);
if ((terr = Yap_PeekException()) != 0) {
std::cerr << "Exception received by " << __func__ << "( "
<< YAPTerm(t).text() << ").\n Forwarded...";
throw e;
<< YAPTerm(terr).text() << ").\n Forwarded...\n\n";
// Yap_PopTermFromDB(LOCAL_ActiveError->errorTerm);
// throw YAPError();
}
{
YAP_LeaveGoal(result, &q);
// PyEval_RestoreThread(_save);
RECOVER_MACHINE_REGS();
return result;
}
}
@ -618,7 +584,7 @@ YAPQuery::YAPQuery(YAPFunctor f, YAPTerm mod, YAPTerm ts[])
goal = MkVarTerm();
}
openQuery();
names = YAPPairTerm(TermNil);
names = YAPPairTerm(TermNil);
RECOVER_MACHINE_REGS();
}
@ -686,60 +652,48 @@ bool YAPQuery::next() {
bool result = false;
sigjmp_buf buf, *oldp = LOCAL_RestartEnv;
Term terr;
e = nullptr;
try {
BACKUP_MACHINE_REGS();
if (!q_open)
return false;
LOCAL_RestartEnv = &buf;
if (sigsetjmp(*LOCAL_RestartEnv, false)) {
//e = new YAPError();
}
// don't forget, on success these guys may create slots
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "exec ");
e = nullptr;
BACKUP_MACHINE_REGS();
if (!q_open)
return false;
LOCAL_RestartEnv = &buf;
// don't forget, on success these guys may create slots
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "exec ");
if (q_state == 0) {
result = (bool)YAP_EnterGoal(ap, nullptr, &q_h);
} else {
LOCAL_AllowRestart = q_open;
result = (bool)YAP_RetryGoal(&q_h);
}
if (result) {
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "vnames %d %s %d",
q_state, names.text(), LOCAL_CurSlot);
} else {
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "fail");
}
q_state = 1;
if ((terr = Yap_PeekException())) {
LOCAL_RestartEnv = &buf;
if (q_state == 0) {
result = (bool)YAP_EnterGoal(ap, nullptr, &q_h);
} else {
LOCAL_AllowRestart = q_open;
result = (bool)YAP_RetryGoal(&q_h);
}
q_state = 1;
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "out %d", result);
result = false;
}
__android_log_print(ANDROID_LOG_INFO, "YAPDroid", "out %d", result);
if (!result) {
YAP_LeaveGoal(false, &q_h);
Yap_CloseHandles(q_handles);
q_open = false;
} else {
q_handles = Yap_StartSlots();
}
RECOVER_MACHINE_REGS();
LOCAL_RestartEnv = oldp;
return result;
} catch (YAPError e) {
q_open = false;
Yap_PopTermFromDB(LOCAL_ActiveError->errorTerm);
memset(LOCAL_ActiveError, 0, sizeof(*LOCAL_ActiveError));
if (!result) {
YAP_LeaveGoal(false, &q_h);
Yap_CloseHandles(q_handles);
q_open = false;
std::cerr << "Exception received by " << __func__ << "( "
<< YAPTerm(terr).text() << ").\n Forwarded...\n\n";
LOCAL_RestartEnv = oldp;
throw e;
if (Yap_HasException()) {
terr = Yap_GetException();
yap_error_descriptor_t *tp = LOCAL_ActiveError->top_error;
memset(LOCAL_ActiveError, 0, sizeof(yap_error_descriptor_t));
LOCAL_ActiveError->top_error = tp;
std::cerr << "Exception at " << __func__ << "() " << YAPTerm(terr).text()
<< ").\n\n\n";
Term es[2];
es[0] = TermError;
es[1] = terr;
Functor f = Yap_MkFunctor(Yap_LookupAtom("print_message"), 2);
YAP_RunGoalOnce(Yap_MkApplTerm(f, 2, es));
// Yap_PopTermFromDB(LOCAL_ActiveError->errorTerm);
// throw YAPError();
}
} else {
q_handles = Yap_StartSlots();
}
RECOVER_MACHINE_REGS();
LOCAL_RestartEnv = oldp;
return result;
}
PredEntry *YAPQuery::rewriteUndefQuery() {
@ -754,10 +708,9 @@ PredEntry *YAPEngine::rewriteUndefEngineQuery(PredEntry *a, Term &tgoal,
ts[0] = mod;
ts[1] = tgoal;
ARG1 = tgoal = Yap_MkApplTerm(FunctorModule, 2, ts);
//goal = YAPTerm(Yap_MkApplTerm(FunctorMetaCall, 1, &ARG1));
// goal = YAPTerm(Yap_MkApplTerm(FunctorMetaCall, 1, &ARG1));
return PredCall;
// return YAPApplTerm(FunctorUndefinedQuery, ts);
}
@ -855,9 +808,10 @@ void Yap_displayWithJava(int c) {
void YAPEngine::doInit(YAP_file_type_t BootMode, YAPEngineArgs *engineArgs) {
if (BootMode == YAP_FOUND_BOOT_ERROR) {
std::cerr << "Exception received by " << __func__ << "( "
<< "while booting" << ").\n Forwarded...\n\n";
return;
std::cerr << "Exception received by " << __func__ << "( "
<< "while booting"
<< ").\n Forwarded...\n\n";
return;
}
YAP_Init(engineArgs);
/* Begin preprocessor code */
@ -914,8 +868,8 @@ PredEntry *YAPPredicate::getPred(YAPTerm &tt, CELL *&outp) {
Yap_ThrowError(INSTANTIATION_ERROR, tt.term(), 0);
else if (IsNumTerm(t))
Yap_ThrowError(TYPE_ERROR_CALLABLE, tt.term(), 0);
std::cerr << "Exception received by " << __func__ << "( "
<< YAPTerm(tt).text() << ").\n Forwarded...\n\n";
std::cerr << "Exception received by " << __func__ << "( "
<< YAPTerm(tt).text() << ").\n Forwarded...\n\n";
}
tt.put(t);
if (IsAtomTerm(t)) {

323
H/LOCALS Executable file
View File

@ -0,0 +1,323 @@
// Stuff that must be considered local to a thread or worker
START_WORKER_LOCAL
// Streams
int c_input_stream =0
int c_output_stream =1
int c_error_stream =2
bool sockets_io =false
bool within_print_message =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
Atom AtPrompt =AtomNil
char Prompt[MAX_PROMPT+1] void
encoding_t encoding =Yap_DefaultEncoding()
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
tr_fr_ptr OldTR =NULL
CELL* OldGlobalBase =NULL
CELL* OldH =NULL
CELL* OldH0 =NULL
ADDR OldTrailBase =NULL
ADDR OldTrailTop =NULL
ADDR OldHeapBase =NULL
ADDR OldHeapTop =NULL
Int ClDiff =0L
Int GDiff =0L
Int HDiff =0L
Int GDiff0 =0L
CELL* GSplit =NULL
Int LDiff =0L
Int TrDiff =0L
Int XDiff =0L
Int DelayDiff =0L
Int BaseDiff =0L
// Reduction counters
YAP_ULONG_LONG ReductionsCounter =0L
YAP_ULONG_LONG PredEntriesCounter =0L
YAP_ULONG_LONG RetriesCounter =0L
int ReductionsCounterOn =0L
int PredEntriesCounterOn =0L
int RetriesCounterOn =0L
// support for consulting files
/* current consult stack */
union CONSULT_OBJ* ConsultSp =NULL
/* current maximum number of cells in consult stack */
UInt ConsultCapacity void
/* top of consult stack */
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
UInt GlobalArenaOverflows =0L
Int ArenaOverflows =0L
Int DepthArenas =0
struct pred_entry* LastAssertedPred =NULL
struct pred_entry* TmpPred =NULL
char* ScannerStack =NULL
struct scanner_extra_alloc* ScannerExtraBlocks =NULL
/// worker control information
/// stack limit after which the stack is managed by C-code.
Int CBorder =0
/// max number of signals (uint64_t)
UInt MaxActiveSignals =64L
/// actual life signals
uint64_t Signals =0L
/// indexing help data?
UInt IPredArity =0L
yamop* ProfEnd =NULL
int DoingUndefp =FALSE
Int StartCharCount =0L
Int StartLineCount =0L
Int StartLinePos =0L
scratch_block ScratchPad InitScratchPad(wid)
#ifdef COROUTINING
Term WokenGoals =0L TermToGlobalAdjust
Term AttsMutableList =0L TermToGlobalAdjust
#endif
// gc_stuff
Term GcGeneration =0L TermToGlobalAdjust
Term GcPhase =0L TermToGlobalAdjust
UInt GcCurrentPhase =0L
UInt GcCalls =0L
Int TotGcTime =0L
YAP_ULONG_LONG TotGcRecovered =0L
Int LastGcTime =0L
Int LastSSTime =0L
CELL* OpenArray =NULL
/* in a single gc */
Int total_marked =0L
Int total_oldies =0L
struct choicept* current_B =NULL
CELL* prev_HB =NULL
CELL* HGEN =NULL
CELL** iptop =NULL
#if defined(GC_NO_TAGS)
char* bp =NULL
#endif
tr_fr_ptr sTR =NULL
tr_fr_ptr sTR0 =NULL
tr_fr_ptr new_TR =NULL
struct gc_mark_continuation* cont_top0 =NULL
struct gc_mark_continuation* cont_top =NULL
int discard_trail_entries =0
gc_ma_hash_entry gc_ma_hash_table[GC_MAVARS_HASH_SIZE] void
gc_ma_hash_entry* gc_ma_h_top =NULL
gc_ma_hash_entry* gc_ma_h_list =NULL
UInt gc_timestamp =0L
ADDR db_vec =NULL
ADDR db_vec0 =NULL
struct RB_red_blk_node* db_root =NULL
struct RB_red_blk_node* db_nil =NULL
sigjmp_buf* gc_restore void
CELL* extra_gc_cells void
CELL* extra_gc_cells_base void
CELL* extra_gc_cells_top void
UInt extra_gc_cells_size =256
struct array_entry* DynamicArrays =NULL PtoArrayEAdjust
struct static_array_entry* StaticArrays =NULL PtoArraySAdjust
struct global_entry* GlobalVariables =NULL PtoGlobalEAdjust
int AllowRestart =FALSE
// Thread Local Area for Fast Storage of Intermediate Compiled Code
struct mem_blk* CMemFirstBlock =NULL
UInt CMemFirstBlockSz =0L
// Variable used by the compiler to store number of permanent vars in a clause
int nperm =0
int jMP =0
// Thread Local Area for Labels
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)
#ifdef THREADS
struct thandle ThreadHandle InitThreadHandle(wid)
#endif /* THREADS */
#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
struct open_query_struct* execution =NULL
#if LOW_LEVEL_TRACER
Int total_choicepoints =0
#endif
int consult_level =0
// Variables related to memory allocation
ADDR LocalBase void
ADDR GlobalBase void
ADDR TrailBase void
ADDR TrailTop void
/* error handling info, designed to be easy to pass to the foreign world */
yap_error_descriptor_t* ActiveError =calloc(sizeof(yap_error_descriptor_t),1)
/// pointer to an exception term, from throw
jmp_buf* IOBotch void
TokEntry* tokptr void
TokEntry* toktide void
VarEntry* VarTable void
VarEntry* AnonVarTable void
Term Comments void
CELL* CommentsTail void
CELL* CommentsNextChar void
wchar_t* CommentsBuff void
size_t CommentsBuffPos void
size_t CommentsBuffLim void
sigjmp_buf* RestartEnv void
char FileNameBuf[YAP_FILENAME_MAX+1] void
char FileNameBuf2[YAP_FILENAME_MAX+1] void
struct TextBuffer_manager* TextBuffer =Yap_InitTextAllocator()
// 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
YAP_ULONG_LONG opcount[_std_top+1] void
YAP_ULONG_LONG 2opcount[_std_top+1][_std_top+1] void
#endif /* ANALYST */
//dbase.c
struct db_globs* s_dbg void
//eval.c
Term mathtt void
char* mathstring =NULL
//grow.c
int heap_overflows =0
Int total_heap_overflow_time =0
int stack_overflows =0
Int total_stack_overflow_time =0
int delay_overflows =0
Int total_delay_overflow_time =0
int trail_overflows =0
Int total_trail_overflow_time =0
int atom_table_overflows =0
Int total_atom_table_overflow_time =0
//load_dyld
#ifdef LOAD_DYLD
int dl_errno =0
#endif
//tracer.c
#ifdef LOW_LEVEL_TRACER
int do_trace_primitives =TRUE
#endif
//quick loader
struct export_atom_hash_entry_struct *ExportAtomHashChain =NULL
UInt ExportAtomHashTableSize =0
UInt ExportAtomHashTableNum =0
struct export_functor_hash_entry_struct *ExportFunctorHashChain =NULL
UInt ExportFunctorHashTableSize =0
UInt ExportFunctorHashTableNum =0
struct export_pred_entry_hash_entry_struct *ExportPredEntryHashChain =NULL
UInt ExportPredEntryHashTableSize =0
UInt ExportPredEntryHashTableNum =0
struct export_dbref_hash_entry_struct *ExportDBRefHashChain =NULL
UInt ExportDBRefHashTableSize =0
UInt ExportDBRefHashTableNum =0
struct import_atom_hash_entry_struct **ImportAtomHashChain =NULL
UInt ImportAtomHashTableSize =0
UInt ImportAtomHashTableNum =0
struct import_functor_hash_entry_struct **ImportFunctorHashChain =NULL
UInt ImportFunctorHashTableSize =0
UInt ImportFunctorHashTableNum =0
struct import_opcode_hash_entry_struct **ImportOPCODEHashChain =NULL
UInt ImportOPCODEHashTableSize =0
struct import_pred_entry_hash_entry_struct **ImportPredEntryHashChain =NULL
UInt ImportPredEntryHashTableSize =0
UInt ImportPredEntryHashTableNum =0
struct import_dbref_hash_entry_struct **ImportDBRefHashChain =NULL
UInt ImportDBRefHashTableSize =0
UInt ImportDBRefHashTableNum =0
yamop *ImportFAILCODE =NULL
// exo indexing
UInt ibnds[256] void
struct index_t* exo_it =NULL
CELL* exo_base =NULL
UInt exo_arity =0
UInt exo_arg =0
// atom completion
struct scan_atoms* search_atoms void
struct pred_entry* SearchPreds void
/// Slots Status
yhandle_t CurSlot =0
yhandle_t FrozenHandles =0
yhandle_t NSlots =0
CELL* SlotBase =InitHandles(wid)
// Mutexes
struct swi_mutex* Mutexes =NULL
Term SourceModule =0
Term Including =TermNil
size_t MAX_SIZE =1024L
/* last call to walltime. */
uint64_t LastWTime =0
void* shared =NULL
END_WORKER_LOCAL

116
H/YapTerm.h Normal file
View File

@ -0,0 +1,116 @@
/*************************************************************************
* *
* YAP Prolog %W% %G% *
* Yap Prolog was developed at NCCUP - Universidade do Porto *
* *
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
* *
**************************************************************************
* *
* File: Yap.h *
* mods: *
* comments: abstract type definitions for YAP *
* version: $Id: Yap.h,v 1.38 2008-06-18 10:02:27 vsc Exp $ *
*************************************************************************/
#ifndef YAP_H
#include "YapTermConfig.h"
#include "config.h"
typedef void *Functor;
typedef void *Atom;
#endif
#if HAVE_STDINT_H
#include <stdint.h>
#endif
#if HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#define ALIGN_BY_TYPE(X, TYPE) \
(((CELL)(X) + (sizeof(TYPE) - 1)) & ~(sizeof(TYPE) - 1))
#ifndef EXTERN
#ifdef MSC_VER
#define EXTERN
#else
#define EXTERN extern
#endif
#endif
/* defines integer types Int and UInt (unsigned) with the same size as a ptr
** and integer types Short and UShort with half the size of a ptr */
#if defined(PRIdPTR)
typedef intptr_t Int;
typedef uintptr_t UInt;
#elif defined(_WIN64)
typedef int64_t Int;
typedef uint64_t UInt;
#elif defined(_WIN32)
typedef int32_t Int;
typedef uint32_t UInt;
#elif SIZEOF_LONG_INT == SIZEOF_INT_P
typedef long int Int;
typedef unsigned long int UInt;
#elif SIZEOF_INT == SIZEOF_INT_P
typedef int Int;
typedef unsigned int UInt;
#else
#error Yap require integer types of the same size as a pointer
#endif
/* */ typedef short int Short;
/* */ typedef unsigned short int UShort;
typedef UInt CELL;
typedef uint16_t BITS16;
typedef int16_t SBITS16;
typedef uint32_t BITS32;
#define WordSize sizeof(BITS16)
#define CellSize sizeof(CELL)
#define SmallSize sizeof(SMALLUNSGN)
#include "YapFormat.h"
/*************************************************************************************************
type casting macros
*************************************************************************************************/
typedef UInt Term;
typedef Int yhandle_t;
typedef double Float;
#if SIZEOF_INT < SIZEOF_INT_P
#define SHORT_INTS 1
#else
#define SHORT_INTS 0
#endif
#ifdef __GNUC__
typedef long long int YAP_LONG_LONG;
typedef unsigned long long int YAP_ULONG_LONG;
#else
typedef long int YAP_LONG_LONG;
typedef unsigned long int YAP_ULONG_LONG;
#endif
#define Unsigned(V) ((CELL)(V))
#define Signed(V) ((Int)(V))

209
Packages.cmake Normal file
View File

@ -0,0 +1,209 @@
message(STATUS "Building YAP packages version ${YAP_VERSION}")
if (NOT WIN32)
set (BUILD_SHARED_LIBS ON)
endif()
option (WITH_JIT
"just in Time Clause Compilation" OFF)
if (WITH_JIT)
add_subDIRECTORY(JIT)
endif (WITH_JIT)
add_subDIRECTORY (packages/raptor)
add_subDIRECTORY (packages/xml)
OPTION (WITH_CLPBN " Enable the CLPBN and PFL probabilistic languages" ON)
OPTION (WITH_CPLINT " Enable the cplint probabilistic language" ON)
OPTION (WITH_HORUS " Enable the CLPBN and PFL probabilistic languages" ON)
IF (WITH_CLPBN)
add_subDIRECTORY (packages/CLPBN)
ENDIF(WITH_CLPBN)
IF (WITH_CPLINT)
add_subDIRECTORY (packages/cplint)
ENDIF(WITH_CPLINT)
#must be last
add_subDIRECTORY (packages/python)
OPTION (WITH_SWIG " Enable SWIG interfaces to foreign languages" ON)
IF (WITH_SWIG)
add_subDIRECTORY (packages/swig)
ENDIF (WITH_SWIG)
# please install doxygen for prolog first
# git clone http://www.github.com/vscosta/doxygen-yap
# cd doxygen-yap
# mkdir -p build
# cd build
# make; sudo make install
option (WITH_DOCS
"generate YAP docs" OFF)
IF (WITH_DOCS)
add_subDIRECTORY (docs)
ENDIF (WITH_DOCS)
# add_subDIRECTORY (packages/cuda)
option (WITH_GECODE
"interface gecode constraint solver" ON)
if (WITH_GECODE)
add_subDIRECTORY (packages/gecode)
endif()
add_subDIRECTORY (packages/real)
add_subDIRECTORY (packages/jpl)
add_subDIRECTORY (packages/bdd)
add_subDIRECTORY (packages/ProbLog)
add_subDIRECTORY (packages/swi-minisat2)
add_subDIRECTORY (packages/clpqr)
#todo: use cmake target builds
# option (USE_MAXPERFORMANCE
# "try using the best flags for specific architecture" OFF)
# option (USE_MAXMEMORY
# "try using the best flags for using the memory to the most" ON)
#TODO: check MAXMEMORY
#TODO: use cmake target builds
# option (USE_DEBUGYAP
# "enable C-debugging for YAP" OFF)
#TODO: use cmake arch/compiler
# option (USE_CYGWIN
# "use cygwin library in WIN32" OFF)
option (WITH_PRISM
"use PRISM system in YAP" ON)
#TODO:
option (WITH_YAP_DLL
"compile YAP as a DLL" ON)
#TODO:
option (WITH_YAP_STATIC
"compile YAP statically" OFF)
#TODO:
option(WITH_YAP_CONDOR
"allow YAP to be used from condor" OFF)
if (WITH_YAP_CONDOR)
# use default allocator
set ( YAP_STATIC ON )
set ( YAP_DLL OFF )
endif()
#TODO: detect arch before allow this option
# OPTION(WIN64
# "compile YAP for win64" OFF)
# option (APRIL
# "compile Yap to support April ILP system" OFF)
# option (DLCOMPAT
# "use dlcompat library for dynamic loading on Mac OS X" OFF)
# SHARED PACKAGES with SWI
# swi packages have both Makefile.in which we will use and
# Makefile.mak, we will use the later to identify this packages
# while we keep both autotools amd cmake working side by side
# Search for available packages which all have a Makefile.mak
#file (GLOB PACKAGES packages/*/Makefile.mak)
# needed by this packages
if(WIN32)
if(MSVC)
set(MSVC_RUNTIME "dynamic")
ENDIF(MSVC)
target_link_libraries(libYap wsock32 ws2_32 Shlwapi)
endif(WIN32)
add_executable (yap-bin ${CONSOLE_SOURCES})
set_target_properties (yap-bin PROPERTIES OUTPUT_NAME yap)
target_link_libraries(yap-bin libYap )
install(TARGETS libYap yap-bin
RUNTIME DESTINATION ${bindir}
LIBRARY DESTINATION ${libdir}
ARCHIVE DESTINATION ${libdir}
)
CMAKE_DEPENDENT_OPTION (WITH_SYSTEM_MMAP "Use MMAP for shared memory allocation" ON
"NOT WITH_YAPOR_THOR" OFF)
CMAKE_DEPENDENT_OPTION (WITH_SYSTEM_SHM "Use SHM for shared memory allocation" ON
"NOT WITH_YAPOR_THOR; NOT WITH_SYSTEM_MMAP" OFF )
add_subDIRECTORY(library/lammpi)
if (MPI_C_FOUND)
CMAKE_DEPENDENT_OPTION( WITH_MPI ON "Interface to OpenMPI/MPICH"
"MPI_C_FOUND" OFF)
macro_optional_add_subDIRECTORY(library/mpi)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_C_COMPILE_FLAGS} ")
include_directories(${MPI_C_INCLUDE_PATH})
target_link_libraries(yap-bin ${MPI_C_LIBRARIES} )
if(MPI_C_COMPILE_FLAGS)
set_target_properties(yap-bin PROPERTIES
COMPILE_FLAGS "${MPI_C_COMPILE_FLAGS}")
endif(MPI_C_COMPILE_FLAGS)
if(MPI_C_LINK_FLAGS)
set_target_properties(yap-bin PROPERTIES
LINK_FLAGS "${MPI_C_LINK_FLAGS}")
endif()
endif (MPI_C_FOUND)
## add_subDIRECTORY(utils)
#
# include subdirectories configuration
## after we have all functionality in
#
# ADD_SUBDIRECTORY(console/terminal)
macro_display_feature_log()
if(POLICY CMP0058)
cmake_policy(SET CMP0058 NEW)
endif(POLICY CMP0058)

141
TAGS
View File

@ -1,141 +0,0 @@
A pl/boot.yap 307
A pl/boot.yap 307
A pl/boot.yap 307
A pl/boot.yap 1242
B pl/boot.yap 713
B pl/boot.yap 1458
BreakLevel pl/boot.yap 1641
C pl/boot.yap 611
C pl/boot.yap 879
C pl/boot.yap 884
C pl/boot.yap 895
C pl/boot.yap 900
C pl/boot.yap 1518
C pl/boot.yap 1580
CP pl/boot.yap 1198
CP0 pl/boot.yap 1568
CP1 pl/boot.yap 1570
Command pl/boot.yap 656
Command pl/boot.yap 1369
Command pl/boot.yap 1373
Command pl/boot.yap 1378
Con pl/boot.yap 611
DBON pl/boot.yap 1659
E pl/boot.yap 1585
Expanded pl/boot.yap 1483
ExpandedF pl/boot.yap 1526
First pl/boot.yap 981
First pl/boot.yap 1006
First pl/boot.yap 1012
G pl/boot.yap 992
G pl/boot.yap 1197
G0 pl/boot.yap 1205
G1 pl/boot.yap 706
GVL pl/boot.yap 1027
Goal pl/boot.yap 1390
IVs pl/boot.yap 815
LD pl/boot.yap 1656
LD pl/boot.yap 1665
LD pl/boot.yap 1668
LF pl/boot.yap 1645
LGs pl/boot.yap 817
LI pl/boot.yap 937
LP pl/boot.yap 1675
M pl/boot.yap 798
M pl/boot.yap 799
M pl/boot.yap 1018
M pl/boot.yap 1157
M pl/boot.yap 1163
M pl/boot.yap 1174
M pl/boot.yap 1175
M pl/boot.yap 1178
M pl/boot.yap 1182
M pl/boot.yap 1186
M pl/boot.yap 1214
M pl/boot.yap 1223
M pl/boot.yap 1229
M pl/boot.yap 1244
M pl/boot.yap 1252
M pl/boot.yap 1267
M pl/boot.yap 1630
MG pl/boot.yap 1569
Mod pl/boot.yap 727
NG pl/boot.yap 1289
NLAnsw pl/boot.yap 920
NVs pl/boot.yap 816
Names pl/boot.yap 936
O pl/boot.yap 662
OPT pl/boot.yap 771
OldModule pl/boot.yap 1341
OldModule pl/boot.yap 1350
OldModule pl/boot.yap 1358
OldModule pl/boot.yap 1367
Options pl/boot.yap 1412
Prolog pl/boot.yap 697
RI pl/boot.yap 726
Ref pl/boot.yap 758
S pl/boot.yap 265
Setup pl/boot.yap 1440
Source pl/boot.yap 685
Source pl/boot.yap 688
Status pl/boot.yap 1361
Task0 pl/boot.yap 1444
V pl/boot.yap 1033
VL pl/boot.yap 983
VL0 pl/boot.yap 1026
Value pl/boot.yap 943
Varnames pl/boot.yap 523
W pl/boot.yap 454
Where pl/boot.yap 718
Where pl/boot.yap 733
Written pl/boot.yap 801
X pl/boot.yap 750
X pl/boot.yap 760
Y pl/boot.yap 1225
Y pl/boot.yap 1233
_ pl/boot.yap 460
_ pl/boot.yap 546
_ pl/boot.yap 603
_ pl/boot.yap 748
_ pl/boot.yap 800
_ pl/boot.yap 1629
_R pl/boot.yap 1403
_Ref pl/boot.yap 604
ball pl/boot.yap 1534
catch pl/boot.yap 1558
consult pl/boot.yap 1321
error pl/boot.yap 430
fail pl/boot.yap 630
fail pl/boot.yap 655
fail pl/boot.yap 792
flush_output pl/boot.yap 520
flush_output pl/boot.yap 860
flush_output pl/boot.yap 917
goals pl/boot.yap 856
off pl/boot.yap 435
off pl/boot.yap 437
off pl/boot.yap 438
on pl/boot.yap 382
place pl/boot.yap 698
prolog pl/boot.yap 441
prolog pl/boot.yap 1323
repeat pl/boot.yap 1342
repeat pl/boot.yap 1351
repeat pl/boot.yap 1357
repeat pl/boot.yap 1366
start_low_level_trace pl/boot.yap 365
streams pl/boot.yap 855
support pl/boot.yap 821
top pl/boot.yap 660
top pl/boot.yap 673
true pl/boot.yap 363
true pl/boot.yap 374
true pl/boot.yap 383
true pl/boot.yap 383
true pl/boot.yap 434
true pl/boot.yap 720
true pl/boot.yap 865
true pl/boot.yap 1286
true pl/boot.yap 1481
user_error pl/boot.yap 908
user_input pl/boot.yap 874

3896
YAP.cbp Normal file

File diff suppressed because it is too large Load Diff

126
YapIOConfig.h Normal file
View File

@ -0,0 +1,126 @@
// play nice
#ifndef HAVE_PYTHON
/* #undef HAVE_PYTHON */
#endif
#if HAVE_PYTHON
#include <Python.h>
#endif
/* Define if you have libreadline */
#ifndef HAVE_LIBREADLINE
#define HAVE_LIBREADLINE CACHE;YES;BOOL;Readline works.
#endif
/* Define to 1 if you have the <readline/history.h> header file. */
#ifndef HAVE_READLINE_HISTORY_H
#define HAVE_READLINE_HISTORY_H 1
#endif
/* Define to 1 if you have the <readline/readline.h> header file. */
#ifndef HAVE_READLINE_READLINE_H
#define HAVE_READLINE_READLINE_H 1
#endif
#if defined(HAVE_READLINE_READLINE_H) && defined(HAVE_LIBREADLINE)
#define USE_READLINE 1
#endif
/* Define to 1 if you have the declaration of `rl_catch_signals ', and to 0 if
you don't. */
#ifndef HAVE_DECL_RL_CATCH_SIGNALS_
#define HAVE_DECL_RL_CATCH_SIGNALS 1
#endif
/* Define to 1 if you have the declaration of `rl_done ', and to 0 if you
don't. */
#ifndef HAVE_DECL_RL_DONE_
/* #undef HAVE_DECL_RL_DONE_ */
#endif
/* Define to 1 if you have the declaration of `rl_event_hook', and to 0 if you
don't. */
#ifndef HAVE_DECL_RL_EVENT_HOOK
/* #undef HAVE_DECL_RL_EVENT_HOOK */
#endif
/* Define to 1 if you have the declaration of `rl_readline_state', and to 0 if
you don't. */
#ifndef HAVE_DECL_RL_READLINE_STATE
/* #undef HAVE_DECL_RL_READLINE_STATE */
#endif
/* Define to 1 if you have the `rl_begin_undo_group' function. */
#ifndef HAVE_RL_BEGIN_UNDO_GROUP
#define HAVE_RL_BEGIN_UNDO_GROUP 1
#endif
/* Define to 1 if you have the `rl_clear_pending_input' function. */
#ifndef HAVE_RL_CLEAR_PENDING_INPUT
#define HAVE_RL_CLEAR_PENDING_INPUT 1
#endif
/* Define to 1 if the system has the type `rl_completion_entry_function'). */
#ifndef HAVE_RL_COMPLETION_ENTRY_FUNCTION
/* #undef HAVE_RL_COMPLETION_ENTRY_FUNCTION */
#endif
/* Define to 1 if the system has the type `rl_completion_func_t'. */
#ifndef HAVE_RL_COMPLETION_FUNC_T
/* #undef HAVE_RL_COMPLETION_FUNC_T */
#endif
/* Define to 1 if you have the `rl_completion_matches' function. */
#ifndef HAVE_RL_COMPLETION_MATCHES
/* #undef HAVE_RL_COMPLETION_MATCHES */
#endif
/* Define to 1 if you have the `rl_discard_argument' function. */
#ifndef HAVE_RL_DISCARD_ARGUMENT
#define HAVE_RL_DISCARD_ARGUMENT 1
#endif
/* Define to 1 if you have the `rl_done' variable. */
#ifndef HAVE_RL_DONE
#define HAVE_RL_DONE
#endif
/* Define to 1 if you have the `rl_filename_completion_function' function. */
#ifndef HAVE_RL_FILENAME_COMPLETION_FUNCTION
#define HAVE_RL_FILENAME_COMPLETION_FUNCTION
#endif
/* Define to 1 if you have the `rl_free_line_state' function. */
#ifndef HAVE_RL_FREE_LINE_STATE
#define HAVE_RL_FREE_LINE_STATE 1
#endif
/* Define to 1 if the system has the type `rl_hook_func_t'. */
#ifndef HAVE_RL_HOOK_FUNC_T
/* #undef HAVE_RL_HOOK_FUNC_T */
#endif
/* Define to 1 if you have the `rl_insert_close' function. */
#ifndef HAVE_RL_INSERT_CLOSE
#define HAVE_RL_INSERT_CLOSE 1
#endif
/* Define to 1 if you have the `rl_reset_after_signal' function. */
#ifndef HAVE_RL_RESET_AFTER_SIGNAL
#define HAVE_RL_RESET_AFTER_SIGNAL 1
#endif
/* Define to 1 if you have the `rl_set_keyboard_input_timeout' function. */
#ifndef HAVE_RL_SET_KEYBOARD_INPUT_TIMEOUT
#define HAVE_RL_SET_KEYBOARD_INPUT_TIMEOUT 1
#endif
/* Define to 1 if you have the `rl_set_prompt' function. */
#ifndef HAVE_RL_SET_PROMPT
#define HAVE_RL_SET_PROMPT 1
#endif
/* Define to 1 if you have the `rl_set_signals' function. */
#ifndef HAVE_RL_SET_SIGNALS
#define HAVE_RL_SET_SIGNALS 1
#endif

183
cmake/FindLibR.cmake Executable file
View File

@ -0,0 +1,183 @@
#
# FindLibR.cmake
#
# Copyright (C) 2009-11 by RStudio, Inc.
#
# This program is licensed to you under the terms of version 3 of the
# GNU Affero General Public License. This program is distributed WITHOUT
# ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
# AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
#
#
# LIBR_FOUND
# LIBR_HOME
# LIBR_INCLUDE_DIRS
# LIBR_DOC_DIR
# LIBR_LIBRARIES
# detection for OSX (look for R framework)
if(APPLE)
find_library(LIBR_LIBRARIES R)
if(LIBR_LIBRARIES)
set(LIBR_HOME "${LIBR_LIBRARIES}/Resources" CACHE PATH "R home directory")
set(LIBR_INCLUDE_DIRS "${LIBR_HOME}/include" CACHE PATH "R include directory")
set(LIBR_DOC_DIR "${LIBR_HOME}/doc" CACHE PATH "R doc directory")
set(LIBR_EXECUTABLE "${LIBR_HOME}/R" CACHE PATH "R executable")
endif()
# detection for UNIX & Win32
else()
# Find R executable and paths (UNIX)
if(UNIX)
# find executable
find_program(LIBR_EXECUTABLE R)
if(LIBR_EXECUTABLE-NOTFOUND)
message(STATUS "Unable to locate R executable")
endif()
# ask R for the home path
if(NOT LIBR_HOME)
execute_process(
COMMAND ${LIBR_EXECUTABLE} "--slave" "--vanilla" "-e" "cat(R.home())"
OUTPUT_VARIABLE LIBR_HOME
)
if(LIBR_HOME)
set(LIBR_HOME ${LIBR_HOME} CACHE PATH "R home directory")
endif()
endif()
# ask R for the include dir
if(NOT LIBR_INCLUDE_DIRS)
execute_process(
COMMAND ${LIBR_EXECUTABLE} "--slave" "--no-save" "-e" "cat(R.home('include'))"
OUTPUT_VARIABLE LIBR_INCLUDE_DIRS
)
if(LIBR_INCLUDE_DIRS)
set(LIBR_INCLUDE_DIRS ${LIBR_INCLUDE_DIRS} CACHE PATH "R include directory")
endif()
endif()
# ask R for the doc dir
if(NOT LIBR_DOC_DIR)
execute_process(
COMMAND ${LIBR_EXECUTABLE} "--slave" "--no-save" "-e" "cat(R.home('doc'))"
OUTPUT_VARIABLE LIBR_DOC_DIR
)
if(LIBR_DOC_DIR)
set(LIBR_DOC_DIR ${LIBR_DOC_DIR} CACHE PATH "R doc directory")
endif()
endif()
# ask R for the lib dir
if(NOT LIBR_LIB_DIR)
execute_process(
COMMAND ${LIBR_EXECUTABLE} "--slave" "--no-save" "-e" "cat(R.home('lib'))"
OUTPUT_VARIABLE LIBR_LIB_DIR
)
endif()
# Find R executable and paths (Win32)
else()
# find the home path
if(NOT LIBR_HOME)
# read home from the registry
get_filename_component(LIBR_HOME
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\R-core\\R;InstallPath]"
ABSOLUTE CACHE)
# print message if not found
if(NOT LIBR_HOME)
message(STATUS "Unable to locate R home (not written to registry)")
endif()
endif()
# set other R paths based on home path
set(LIBR_INCLUDE_DIRS "${LIBR_HOME}/include" CACHE PATH "R include directory")
set(LIBR_DOC_DIR "${LIBR_HOME}/doc" CACHE PATH "R doc directory")
# set library hint path based on whether we are doing a special session 64 build
if(LIBR_FIND_WINDOWS_64BIT)
set(LIBRARY_ARCH_HINT_PATH "${LIBR_HOME}/bin/x64")
else()
set(LIBRARY_ARCH_HINT_PATH "${LIBR_HOME}/bin/i386")
endif()
endif()
# look for the R executable
find_program(LIBR_EXECUTABLE R
HINTS ${LIBRARY_ARCH_HINT_PATH} ${LIBR_HOME}/bin)
if(LIBR_EXECUTABLE-NOTFOUND)
message(STATUS "Unable to locate R executable")
endif()
# look for the core R library
find_library(LIBR_CORE_LIBRARY NAMES R
HINTS ${LIBR_LIB_DIR} ${LIBRARY_ARCH_HINT_PATH} ${LIBR_HOME}/bin)
if(LIBR_CORE_LIBRARY)
set(LIBR_LIBRARIES ${LIBR_CORE_LIBRARY})
else()
message(STATUS "Could not find libR shared library.")
endif()
if(WIN32)
# look for lapack
find_library(LIBR_LAPACK_LIBRARY NAMES Rlapack
HINTS ${LIBR_LIB_DIR} ${LIBRARY_ARCH_HINT_PATH} ${LIBR_HOME}/bin)
if(LIBR_LAPACK_LIBRARY)
set(LIBR_LIBRARIES ${LIBR_LIBRARIES} ${LIBR_LAPACK_LIBRARY})
if(UNIX)
set(LIBR_LIBRARIES ${LIBR_LIBRARIES} gfortran)
endif()
endif()
# look for blas
find_library(LIBR_BLAS_LIBRARY NAMES Rblas
HINTS ${LIBR_LIB_DIR} ${LIBRARY_ARCH_HINT_PATH} ${LIBR_HOME}/bin)
if(LIBR_BLAS_LIBRARY)
set(LIBR_LIBRARIES ${LIBR_LIBRARIES} ${LIBR_BLAS_LIBRARY})
endif()
# look for rgraphapp
find_library(LIBR_GRAPHAPP_LIBRARY NAMES Rgraphapp
HINTS ${LIBR_LIB_DIR} ${LIBRARY_ARCH_HINT_PATH} ${LIBR_HOME}/bin)
if(LIBR_GRAPHAPP_LIBRARY)
set(LIBR_LIBRARIES ${LIBR_LIBRARIES} ${LIBR_GRAPHAPP_LIBRARY})
endif()
endif()
# cache LIBR_LIBRARIES
if(LIBR_LIBRARIES)
set(LIBR_LIBRARIES ${LIBR_LIBRARIES} CACHE PATH "R runtime libraries")
endif()
endif()
# define find requirements
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibR DEFAULT_MSG
LIBR_HOME
LIBR_EXECUTABLE
LIBR_INCLUDE_DIRS
LIBR_LIBRARIES
LIBR_DOC_DIR
)
if(LIBR_FOUND)
message(STATUS "Found R: ${LIBR_HOME}")
endif()
# mark low-level variables from FIND_* calls as advanced
mark_as_advanced(
LIBR_CORE_LIBRARY
LIBR_LAPACK_LIBRARY
LIBR_BLAS_LIBRARY
)

335
cmake/NewUseSWIG.cmake Normal file
View File

@ -0,0 +1,335 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# UseSWIG
# -------
#
# Defines the following macros for use with SWIG:
#
# ::
#
# SWIG_ADD_LIBRARY(<name>
# <LANGUAGE> language>
# [TYPE <SHARED|MODULE|STATIC>]
# [[SOURCES] <file>...])
# - Define swig module with given name and specified language
# SWIG_LINK_LIBRARIES(name [ libraries ])
# - Link libraries to swig module
#
# Source files properties on module files can be set before the invocation
# of the SWIG_ADD_LIBRARY macro to specify special behavior of SWIG.
#
# The source file property CPLUSPLUS calls SWIG in c++ mode, e.g.::
#
# set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON)
# swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
#
# The source file property SWIG_FLAGS adds custom flags to the SWIG executable.
#
# The source-file property SWIG_MODULE_NAME have to be provided to specify the actual
# import name of the module in the target language if it cannot be scanned automatically
# from source or different from the module file basename.::
#
# set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
#
# To get the name of the swig module target library, use: ${SWIG_MODULE_${name}_REAL_NAME}.
#
# Also some variables can be set to specify special behavior of SWIG.
#
# CMAKE_SWIG_FLAGS can be used to add special flags to all swig calls.
#
# CMAKE_SWIG_OUTDIR allows one to specify where to write
# the language specific files (swig -outdir option).
#
# SWIG_OUTFILE_DIR allows one to specify where to write the output file
# (swig -o option). If not specified, CMAKE_SWIG_OUTDIR is used.
#
# The name-specific variable SWIG_MODULE_<name>_EXTRA_DEPS may be used to specify extra
# dependencies for the generated modules.
#
# If the source file generated by swig need some special flag you can use::
#
# set_source_files_properties( ${swig_generated_file_fullname}
# PROPERTIES COMPILE_FLAGS "-bla")
set(SWIG_CXX_EXTENSION "cxx")
set(SWIG_EXTRA_LIBRARIES "")
set(SWIG_PYTHON_EXTRA_FILE_EXTENSION "py")
#
# For given swig module initialize variables associated with it
#
macro(SWIG_MODULE_INITIALIZE name language)
string(TOUPPER "${language}" swig_uppercase_language)
string(TOLOWER "${language}" swig_lowercase_language)
set(SWIG_MODULE_${name}_LANGUAGE "${swig_uppercase_language}")
set(SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG "${swig_lowercase_language}")
set(SWIG_MODULE_${name}_REAL_NAME "${name}")
if (";${CMAKE_SWIG_FLAGS};" MATCHES ";-noproxy;")
set (SWIG_MODULE_${name}_NOPROXY TRUE)
endif ()
if("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xUNKNOWN")
message(FATAL_ERROR "SWIG Error: Language \"${language}\" not found")
elseif("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xPYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY)
# swig will produce a module.py containing an 'import _modulename' statement,
# which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32),
# unless the -noproxy flag is used
set(SWIG_MODULE_${name}_REAL_NAME "_${name}")
elseif("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xPERL")
set(SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow")
elseif("x${SWIG_MODULE_${name}_LANGUAGE}" STREQUAL "xCSHARP")
# This makes sure that the name used in the generated DllImport
# matches the library name created by CMake
set(SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport;${name}")
endif()
endmacro()
#
# For a given language, input file, and output file, determine extra files that
# will be generated. This is internal swig macro.
#
macro(SWIG_GET_EXTRA_OUTPUT_FILES language outfiles generatedpath infile)
set(${outfiles} "")
get_source_file_property(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename
${infile} SWIG_MODULE_NAME)
if(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename STREQUAL "NOTFOUND")
# try to get module name from "%module foo" syntax
if ( EXISTS ${infile} )
file ( STRINGS ${infile} _MODULE_NAME REGEX "[ ]*%module[ ]*[a-zA-Z0-9_]+.*" )
endif ()
if ( _MODULE_NAME )
string ( REGEX REPLACE "[ ]*%module[ ]*([a-zA-Z0-9_]+).*" "\\1" _MODULE_NAME "${_MODULE_NAME}" )
set(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename "${_MODULE_NAME}")
else ()
# try to get module name from "%module (options=...) foo" syntax
if ( EXISTS ${infile} )
file ( STRINGS ${infile} _MODULE_NAME REGEX "[ ]*%module[ ]*\\(.*\\)[ ]*[a-zA-Z0-9_]+.*" )
endif ()
if ( _MODULE_NAME )
string ( REGEX REPLACE "[ ]*%module[ ]*\\(.*\\)[ ]*([a-zA-Z0-9_]+).*" "\\1" _MODULE_NAME "${_MODULE_NAME}" )
set(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename "${_MODULE_NAME}")
else ()
# fallback to file basename
get_filename_component(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename ${infile} NAME_WE)
endif ()
endif ()
endif()
foreach(it ${SWIG_${language}_EXTRA_FILE_EXTENSION})
set(${outfiles} ${${outfiles}}
"${generatedpath}/${SWIG_GET_EXTRA_OUTPUT_FILES_module_basename}.${it}")
endforeach()
endmacro()
#
# Take swig (*.i) file and add proper custom commands for it
#
macro(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
set(swig_full_infile ${infile})
get_filename_component(swig_source_file_name_we "${infile}" NAME_WE)
get_source_file_property(swig_source_file_generated ${infile} GENERATED)
get_source_file_property(swig_source_file_cplusplus ${infile} CPLUSPLUS)
get_source_file_property(swig_source_file_flags ${infile} SWIG_FLAGS)
if("${swig_source_file_flags}" STREQUAL "NOTFOUND")
set(swig_source_file_flags "")
endif()
get_filename_component(swig_source_file_fullname "${infile}" ABSOLUTE)
# If CMAKE_SWIG_OUTDIR was specified then pass it to -outdir
if(CMAKE_SWIG_OUTDIR)
set(swig_outdir ${CMAKE_SWIG_OUTDIR})
else()
set(swig_outdir ${CMAKE_CURRENT_BINARY_DIR})
endif()
if(SWIG_OUTFILE_DIR)
set(swig_outfile_dir ${SWIG_OUTFILE_DIR})
else()
set(swig_outfile_dir ${swig_outdir})
endif()
if (NOT SWIG_MODULE_${name}_NOPROXY)
SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE}
swig_extra_generated_files
"${swig_outdir}"
"${swig_source_file_fullname}")
endif()
set(swig_generated_file_fullname
"${swig_outfile_dir}/${swig_source_file_name_we}")
# add the language into the name of the file (i.e. TCL_wrap)
# this allows for the same .i file to be wrapped into different languages
string(APPEND swig_generated_file_fullname
"${SWIG_MODULE_${name}_LANGUAGE}_wrap")
if(swig_source_file_cplusplus)
string(APPEND swig_generated_file_fullname
".${SWIG_CXX_EXTENSION}")
else()
string(APPEND swig_generated_file_fullname
".c")
endif()
#message("Full path to source file: ${swig_source_file_fullname}")
#message("Full path to the output file: ${swig_generated_file_fullname}")
get_directory_property(cmake_include_directories INCLUDE_DIRECTORIES)
list(REMOVE_DUPLICATES cmake_include_directories)
set(swig_include_dirs)
foreach(it ${cmake_include_directories})
set(swig_include_dirs ${swig_include_dirs} "-I${it}")
endforeach()
set(swig_special_flags)
# default is c, so add c++ flag if it is c++
if(swig_source_file_cplusplus)
set(swig_special_flags ${swig_special_flags} "-c++")
endif()
set(swig_extra_flags)
if(SWIG_MODULE_${name}_EXTRA_FLAGS)
set(swig_extra_flags ${swig_extra_flags} ${SWIG_MODULE_${name}_EXTRA_FLAGS})
endif()
add_custom_command(
OUTPUT "${swig_generated_file_fullname}" ${swig_extra_generated_files}
# Let's create the ${swig_outdir} at execution time, in case dir contains $(OutDir)
COMMAND ${CMAKE_COMMAND} -E make_directory ${swig_outdir}
COMMAND "${SWIG_EXECUTABLE}"
ARGS "-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
${swig_source_file_flags}
${CMAKE_SWIG_FLAGS}
-outdir ${swig_outdir}
${swig_special_flags}
${swig_extra_flags}
${swig_include_dirs}
-o "${swig_generated_file_fullname}"
"${swig_source_file_fullname}"
MAIN_DEPENDENCY "${swig_source_file_fullname}"
DEPENDS ${SWIG_MODULE_${name}_EXTRA_DEPS}
COMMENT "Swig source")
set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files}
PROPERTIES GENERATED 1)
set(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files})
endmacro()
#
# Create Swig module
#
macro(SWIG_ADD_MODULE name language)
message(DEPRECATION "SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead.")
swig_add_library(${name}
LANGUAGE ${language}
TYPE MODULE
SOURCES ${ARGN})
endmacro()
macro(SWIG_ADD_LIBRARY name)
include(CMakeParseArguments)
set(options "")
set(oneValueArgs LANGUAGE
TYPE)
set(multiValueArgs SOURCES)
cmake_parse_arguments(_SAM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT DEFINED _SAM_LANGUAGE)
message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing LANGUAGE argument")
endif()
if(NOT DEFINED _SAM_SOURCES)
message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing SOURCES argument")
endif()
if(NOT DEFINED _SAM_TYPE)
set(_SAM_TYPE MODULE)
endif()
swig_module_initialize(${name} ${_SAM_LANGUAGE})
set(swig_dot_i_sources)
set(swig_other_sources)
foreach(it ${_SAM_SOURCES})
if(${it} MATCHES "\\.i$")
set(swig_dot_i_sources ${swig_dot_i_sources} "${it}")
else()
set(swig_other_sources ${swig_other_sources} "${it}")
endif()
endforeach()
set(swig_generated_sources)
foreach(it ${swig_dot_i_sources})
SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source ${it})
set(swig_generated_sources ${swig_generated_sources} "${swig_generated_source}")
endforeach()
get_directory_property(swig_extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
set_directory_properties(PROPERTIES
ADDITIONAL_MAKE_CLEAN_FILES "${swig_extra_clean_files};${swig_generated_sources}")
add_library(${SWIG_MODULE_${name}_REAL_NAME}
${_SAM_TYPE}
${swig_generated_sources}
${swig_other_sources})
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES NO_SONAME ON)
string(TOLOWER "${_SAM_LANGUAGE}" swig_lowercase_language)
if ("${swig_lowercase_language}" STREQUAL "octave")
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".oct")
elseif ("${swig_lowercase_language}" STREQUAL "go")
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
elseif ("${swig_lowercase_language}" STREQUAL "java")
if (APPLE)
# In java you want:
# System.loadLibrary("LIBRARY");
# then JNI will look for a library whose name is platform dependent, namely
# MacOS : libLIBRARY.jnilib
# Windows: LIBRARY.dll
# Linux : libLIBRARY.so
set_target_properties (${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".jnilib")
endif ()
elseif ("${swig_lowercase_language}" STREQUAL "lua")
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
elseif ("${swig_lowercase_language}" STREQUAL "python")
# this is only needed for the python case where a _modulename.so is generated
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
# Python extension modules on Windows must have the extension ".pyd"
# instead of ".dll" as of Python 2.5. Older python versions do support
# this suffix.
# http://docs.python.org/whatsnew/ports.html#SECTION0001510000000000000000
# <quote>
# Windows: .dll is no longer supported as a filename extension for extension modules.
# .pyd is now the only filename extension that will be searched for.
# </quote>
if(WIN32 AND NOT CYGWIN)
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".pyd")
endif()
elseif ("${swig_lowercase_language}" STREQUAL "r")
set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
elseif ("${swig_lowercase_language}" STREQUAL "ruby")
# In ruby you want:
# require 'LIBRARY'
# then ruby will look for a library whose name is platform dependent, namely
# MacOS : LIBRARY.bundle
# Windows: LIBRARY.dll
# Linux : LIBRARY.so
set_target_properties (${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
if (APPLE)
set_target_properties (${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".bundle")
endif ()
endif ()
endmacro()
#
# Like TARGET_LINK_LIBRARIES but for swig modules
#
macro(SWIG_LINK_LIBRARIES name)
if(SWIG_MODULE_${name}_REAL_NAME)
target_link_libraries(${SWIG_MODULE_${name}_REAL_NAME} ${ARGN})
else()
message(SEND_ERROR "Cannot find Swig library \"${name}\".")
endif()
endmacro()

166
cmake/Prelims.cmake Normal file
View File

@ -0,0 +1,166 @@
#begining stuff for top CMakeLists
include (MacroLogFeature)
if (POLICY CMP0042)
cmake_policy( SET CMP0042 NEW)
endif()
if (ANDROID)
macro ( MY_add_custom_target)
endmacro()
else()
macro ( MY_add_custom_target )
add_custom_target (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( add_component arg1)
foreach(item ${ARGN})
get_filename_component(i ${item} ABSOLUTE)
set( ALL_SOURCES ${ALL_SOURCES} ${i} )
endforeach()
set( ALL_SOURCES ${ALL_SOURCES} PARENT_SCOPE )
endmacro()
macro ( add_external arg1)
foreach(item ${ARGN})
get_filename_component(i ${item} ABSOLUTE)
set( ALL_SOURCES ${ALL_SOURCES} ${i} )
endforeach()
set( ALL_SOURCES ${ALL_SOURCES} PARENT_SCOPE )
endmacro()
else()
macro ( add_component arg1 )
add_library ( ${arg1} OBJECT ${ARGN})
endmacro()
macro ( add_external arg1 )
add_library ( ${arg1} SHARED ${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_add_dependencies)
endmacro()
else()
macro ( MY_add_dependencies )
add_dependencies (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_add_library)
endmacro()
else()
macro ( MY_add_library )
add_library (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_add_subdirectory)
endmacro()
else()
macro ( MY_add_subdirectory )
add_subdirectory (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_include)
endmacro()
else()
macro ( MY_include )
include (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_install)
endmacro()
else()
macro ( MY_install )
install (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_set_target_properties)
endmacro()
else()
macro ( MY_set_target_properties )
set_target_properties (${ARGN})
endmacro()
endif()
if (ANDROID)
macro ( MY_target_link_libraries)
endmacro()
else()
macro ( MY_target_link_libraries )
target_link_libraries (${ARGN})
endmacro()
endif()
# where we have most scripts
# set path to additional CMake modules
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(disallow)
disallow_intree_builds()
# set(CMAKE_BUILD_TYPE Debug)
if (APPLE)
set (MACOSX_RPATH ON)
endif (APPLE )
if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif(POLICY CMP0042)
if(POLICY CMP0043)
cmake_policy(SET CMP0043 NEW)
endif(POLICY CMP0043)
if (ANDROID)
set ( prefix ${YAP_APP_DIR}/build )
set ( datarootdir ${prefix}/assets )
else()
set ( prefix "${CMAKE_INSTALL_PREFIX}")
set ( datarootdir ${prefix}/share )
endif()
set ( libpl ${datarootdir}/Yap)
set ( includedir "${prefix}/include")
set ( exec_prefix "${prefix}")
set ( libdir "${exec_prefix}/lib")
set ( datadir "${datarootdir}")
set ( mandir "${datarootdir}/man")
set ( bindir "${exec_prefix}/bin")
set ( docdir "${datarootdir}/doc/Yap")
set ( dlls "${exec_prefix}/lib/Yap")
set(YAP_ROOTDIR ${prefix})
# erootdir -> rootdir
# bindir defined above
# libdir defined above
set(YAP_LIBDIR "${dlls}")
set(YAP_SHAREDIR "${datarootdir}")
set(YAP_BINDIR "${bindir}")
set(YAP_INCLUDEDIR "${includedir}")
set(YAP_ROOTDIR "${prefix}")
#
#
# include( Sources NO_POLICY_SCOPE )
#
# include( Model NO_POLICY_SCOPE )
include (cudd NO-POLICY-SCOPE)
include (python NO-POLICY-SCOPE)
include (java NO-POLICY-SCOPE)

View File

@ -0,0 +1,31 @@
/* Define to 1 if you have the <openssl/ripemd.h> header file. */
#ifndef HAVE_APACHE2_UTIL_MD5_H
/* #undef HAVE_APACHE2_UTIL_MD5_H */
#endif
/* Define to 1 if you have the <openssl/ripemd.h> header file. */
#ifndef HAVE_APR_1_APR_MD5_H
/* #undef HAVE_APR_1_APR_MD5_H */
#endif
/* Define to 1 if you have the <openssl/md5.h> header file. */
#ifndef HAVE_OPENSSL_MD5_H
/* #undef HAVE_OPENSSL_MD5_H */
#endif
/* Define to 1 if you have the <openssl/ripemd.h> header file. */
#ifndef HAVE_OPENSSL_RIPEMD_H
/* #undef HAVE_OPENSSL_RIPEMD_H */
#endif
/* "Define if you have the crypt function." */
#ifndef HAVE_CRYPT
/* #undef HAVE_CRYPT */
#endif
/* Define to 1 if you have the <crypt.h> header file. */
#ifndef HAVE_CRYPT_H
/* #undef HAVE_CRYPT_H */
#endif

112
cmake/os/YapIOConfig.h Normal file
View File

@ -0,0 +1,112 @@
/* Define if you have libreadline */
#ifndef HAVE_LIBREADLINE
/* #undef HAVE_LIBREADLINE */
#endif
/* Define to 1 if you have the <readline/history.h> header file. */
#ifndef HAVE_READLINE_HISTORY_H
/* #undef HAVE_READLINE_HISTORY_H */
#endif
/* Define to 1 if you have the <readline/readline.h> header file. */
#ifndef HAVE_READLINE_READLINE_H
/* #undef HAVE_READLINE_READLINE_H */
#endif
#if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H)
#define USE_READLINE 1
#endif
/* Define to 1 if you have the declaration of `rl_catch_signals ', and to 0 if
you don't. */
#ifndef HAVE_DECL_RL_CATCH_SIGNALS_
/* #undef HAVE_DECL_RL_CATCH_SIGNALS */
#endif
/* Define to 1 if you have the declaration of `rl_done ', and to 0 if you
don't. */
#ifndef HAVE_DECL_RL_DONE_
/* #undef HAVE_DECL_RL_DONE_ */
#endif
/* Define to 1 if you have the declaration of `rl_event_hook', and to 0 if you
don't. */
#ifndef HAVE_DECL_RL_EVENT_HOOK
/* #undef HAVE_DECL_RL_EVENT_HOOK */
#endif
/* Define to 1 if you have the declaration of `rl_readline_state', and to 0 if
you don't. */
#ifndef HAVE_DECL_RL_READLINE_STATE
/* #undef HAVE_DECL_RL_READLINE_STATE */
#endif
/* Define to 1 if you have the `rl_begin_undo_group' function. */
#ifndef HAVE_RL_BEGIN_UNDO_GROUP
/* #undef HAVE_RL_BEGIN_UNDO_GROUP */
#endif
/* Define to 1 if you have the `rl_clear_pending_input' function. */
#ifndef HAVE_RL_CLEAR_PENDING_INPUT
/* #undef HAVE_RL_CLEAR_PENDING_INPUT */
#endif
/* Define to 1 if the system has the type `rl_completion_func_t'). */
#ifndef HAVE_RL_COMPLETION_FUNC_T
/* #undef HAVE_RL_COMPLETION_FUNC_T */
#endif
/* Define to 1 if the system has the type `rl_completion_func_t'. */
#ifndef HAVE_RL_COMPLETION_FUNC_T
/* #undef HAVE_RL_COMPLETION_FUNC_T */
#endif
/* Define to 1 if you have the `rl_completion_matches' function. */
#ifndef HAVE_RL_COMPLETION_MATCHES
/* #undef HAVE_RL_COMPLETION_MATCHES */
#endif
/* Define to 1 if you have the `rl_discard_argument' function. */
#ifndef HAVE_RL_DISCARD_ARGUMENT
/* #undef HAVE_RL_DISCARD_ARGUMENT */
#endif
/* Define to 1 if you have the `rl_done' variable. */
#ifndef HAVE_RL_DONE
#define HAVE_RL_DONE
#endif
/* Define to 1 if you have the `rl_filename_completion_function' function. */
#ifndef HAVE_RL_FILENAME_COMPLETION_FUNCTION
#define HAVE_RL_FILENAME_COMPLETION_FUNCTION
#endif
/* Define to 1 if you have the `rl_free_line_state' function. */
#ifndef HAVE_RL_FREE_LINE_STATE
/* #undef HAVE_RL_FREE_LINE_STATE */
#endif
/* Define to 1 if the system has the type `rl_hook_func_t'. */
#ifndef HAVE_RL_HOOK_FUNC_T
/* #undef HAVE_RL_HOOK_FUNC_T */
#endif
/* Define to 1 if you have the `rl_insert_close' function. */
#ifndef HAVE_RL_INSERT_CLOSE
/* #undef HAVE_RL_INSERT_CLOSE */
#endif
/* Define to 1 if you have the `rl_reset_after_signal' function. */
#ifndef HAVE_RL_RESET_AFTER_SIGNAL
/* #undef HAVE_RL_RESET_AFTER_SIGNAL */
#endif
/* Define to 1 if you have the `rl_set_keyboard_input_timeout' function. */
#ifndef HAVE_RL_SET_KEYBOARD_INPUT_TIMEOUT
/* #undef HAVE_RL_SET_KEYBOARD_INPUT_TIMEOUT */
#endif
/* Define to 1 if you have the `rl_set_prompt' function. */
#ifndef HAVE_RL_SET_PROMPT
/* #undef HAVE_RL_SET_PROMPT */
#endif

View File

@ -46,3 +46,7 @@ endif()
IF (PYTHONLIBS_FOUND)
add_subDIRECTORY (packages/python)
ENDIF()
IF (CMAKE_INSTALL_PREFIX MATCHES $ENV{HOME}.* )
set (PYTHON_USER_INSTALL --user)
ENDIF()

File diff suppressed because it is too large Load Diff

8
configure vendored
View File

@ -291,12 +291,10 @@ while [ $# != 0 ]; do
"--docdir")
CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_INSTALL_DOCDIR=$(quote "$2")"; shift;;
"-G=|--generator="*)
GENERATOR="$CMAKE_ARGS -G $(1#*=)";;
"-G="|"--generator="*)
CMAKE_ARGS+="-G"${1#*=};;
"-G"|"--generator")
GENERATOR="$CMAKE_ARGS -G$(quote "$2")";
shift;;
CMAKE_ARGS+="-G$"$2; shift;;
"CC="*)
CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_C_COMPILER=$(quote "${1#*=}")";;

45
console/terminal/main.cpp Normal file
View File

@ -0,0 +1,45 @@
/****************************************************************************
**
** Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>
** Copyright (C) 2012 Laszlo Papp <lpapp@kde.org>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtSerialPort module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}

43
cudd_config.h Normal file
View File

@ -0,0 +1,43 @@
// cmake template file
/* Define to 1 if you have the <cuddInt.h> header file. */
#ifndef HAVE_CUDD_H
/* #undef HAVE_CUDD_H */
#endif
/* Define to 1 if you have the <cudd/cuddInt.h> header file. */
#ifndef HAVE_CUDD_CUDD_H
#define HAVE_CUDD_CUDD_H 1
#endif
/* Define to 1 if you have the <cuddInt.h> header file. */
#ifndef HAVE_CUDDINT_H
#define HAVE_CUDDINT_H 1
#endif
/* Define to 1 if you have the <cudd/cuddInt.h> header file. */
#ifndef HAVE_CUDD_CUDDINT_H
/* #undef HAVE_CUDD_CUDDINT_H */
#endif
/* Define to 1 if you have the <cuddObj.hh> header file. */
#ifndef HAVE_CUDDOBJ_HH
/* #undef HAVE_CUDDOBJ_HH */
#endif
/* Define to 1 if you have the <cudd/cuddObj.hh> header file. */
#ifndef HAVE_CUDD_CUDDOBJ_HH
/* #undef HAVE_CUDD_CUDDOBJ_HH */
#endif
/* Define to 1 if you have the <dddmpInt.h> header file. */
#ifndef HAVE_DDDMPINT_H
/* #undef HAVE_DDDMPINT_H */
#endif
/* Define to 1 if you have the <cudd/dddmpInt.h> header file. */
#ifndef HAVE_CUDD_CUDDINT_H
/* #undef HAVE_CUDD_DDDMPINT_H */
#endif

View File

@ -1,5 +1,5 @@
// Stuff that must be considered local to a thread or worker
// Streams
/// Thread Local Variables. This file now follows C syntax.
// Macro support
#ifndef LOCAL
#include "Yap.h"
#include "heap.h"
@ -11,6 +11,7 @@
#define LOCAL_INITF(A, B, C) A B C
#define LOCAL_INIT_RESTORE(A,B,C,D) A B C D
#endif
/// Current bindings for std streams, includes default s
#define LOCAL_c_input_stream (Yap_local.c_input_stream)
#define REMOTE_c_input_stream(wid) (REMOTE(wid)->c_input_stream)

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "YAP"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 6.3.4
PROJECT_NUMBER = 6.3.5
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@ -51,14 +51,14 @@ PROJECT_BRIEF = "The YAP Prolog Compiler Manual"
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
PROJECT_LOGO = /Users/vsc/git/yap-6.3/docs/icons/yap_96x96x32.png
PROJECT_LOGO = /home/vsc/github/yap-6.3/docs/icons/yap_96x96x32.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY = /Users/vsc/git/yap-6.3/Docs
OUTPUT_DIRECTORY = /home/vsc/github/yap-6.3/docs
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@ -152,8 +152,8 @@ FULL_PATH_NAMES = YES
# will be relative from the directory where doxygen is started.
# This tag requires that the tag FULL_PATH_NAMES is set to YES.
STRIP_FROM_PATH = /Users/vsc/git/yap-6.3 \
/Users/vsc/git/yap-6.3
STRIP_FROM_PATH = /home/vsc/github/yap-6.3 \
/home/vsc/github/yap-6.3
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
# path mentioned in the documentation of a class, which tells the reader which
@ -378,13 +378,13 @@ SUBGROUPING = YES
# SEPARATE_MEMBER_PAGES.
# The default value is: NO.
INLINE_GROUPED_CLASSES = NO
INLINE_GROUPED_CLASSES = YES
# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
# with only public data fields or simple typedef fields will be shown inline in
# the documentation of the scope in which they are defined (i.e. file,
# namespace, or group documentation), provided this scope is documented. If set
v# to NO, structs, classes, and unions are shown on a separate page (for HTML and
# to NO, structs, classes, and unions are shown on a separate page (for HTML and
# Man pages) or section (for LaTeX and RTF).
# The default value is: NO.
@ -522,14 +522,14 @@ CASE_SENSE_NAMES = NO
# scope will be hidden.
# The default value is: NO.
HIDE_SCOPE_NAMES = NO
HIDE_SCOPE_NAMES = YES
# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
# append additional text to a page's title, such as Class Reference. If set to
# YES the compound reference will be hidden.
# The default value is: NO.
HIDE_COMPOUND_REFERENCE= NO
HIDE_COMPOUND_REFERENCE= YES
# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
# the files that are included by a file in the documentation of that file.
@ -775,20 +775,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = /Users/vsc/git/yap-6.3/pl \
/Users/vsc/git/yap-6.3/CXX \
/Users/vsc/git/yap-6.3/OPTYap \
/Users/vsc/git/yap-6.3/C \
/Users/vsc/git/yap-6.3/H \
/Users/vsc/git/yap-6.3/include \
/Users/vsc/git/yap-6.3/os \
/Users/vsc/git/yap-6.3/library \
/Users/vsc/git/yap-6.3/packages \
/Users/vsc/git/yap-6.3/swi/library
#\
# /Users/vsc/git/yap-6.3/docs/md \
# /Users/vsc/git/yap-6.3/INSTALL.md \
INPUT = /home/vsc/github/yap-6.3/INSTALL.md /home/vsc/github/yap-6.3/pl /home/vsc/github/yap-6.3/CXX /home/vsc/github/yap-6.3/OPTYap /home/vsc/github/yap-6.3/C /home/vsc/github/yap-6.3/H /home/vsc/github/yap-6.3/include /home/vsc/github/yap-6.3/os /home/vsc/github/yap-6.3/library /home/vsc/github/yap-6.3/swi/library /home/vsc/github/yap-6.3/docs/md
# This tag can be used to specify the character encoding of the source files
@ -829,7 +816,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE = *pltotex.pl
EXCLUDE = /home/vsc/github/yap-6.3/packages/jpl /home/vsc/github/yap-6.3/packages/swig /home/vsc/github/yap-6.3/packages/myddas/sqlite3/src /home/vsc/github/yap-6.3/packages/gecode/4.4.0 /home/vsc/github/yap-6.3/packages/gecode/4.2.1 /home/vsc/github/yap-6.3/packages/gecode/4.2.0 /home/vsc/github/yap-6.3/packages/gecode/4.0.0 /home/vsc/github/yap-6.3/packages/gecode/3.7.3 /home/vsc/github/yap-6.3/packages/gecode/3.7.2 /home/vsc/github/yap-6.3/packages/gecode/3.7.1 /home/vsc/github/yap-6.3/packages/gecode/3.7.0 /home/vsc/github/yap-6.3/packages/gecode/3.6.0 /home/vsc/github/yap-6.3/packages/gecode/dev /home/vsc/github/yap-6.3/C/traced_absmi_insts.h /home/vsc/github/yap-6.3/H/locals.h /home/vsc/github/yap-6.3/H/globals.h /home/vsc/github/yap-6.3/packages/cplint /home/vsc/github/yap-6.3/packages/CLPBN/examples /home/vsc/github/yap-6.3/packages/CLPBN/horus /home/vsc/github/yap-6.3/packages/prosqlite /home/vsc/github/yap-6.3/packages/pyswip /home/vsc/github/yap-6.3/packages/yap-lbfgs/liblbfgs-1.10 /home/vsc/github/yap-6.3/library/dialect/swi/os /home/vsc/github/yap-6.3/packages/gecode/gecode3_yap.cc /home/vsc/github/yap-6.3/packages/gecode/gecode4_yap.cc /home/vsc/github/yap-6.3/packages/gecode/gecode3.yap /home/vsc/github/yap-6.3/packages/gecode/gecode4.yap /home/vsc/github/yap-6.3/packages/gecode/gecode3_yap_hand_written.yap /home/vsc/github/yap-6.3/packages/gecode/gecode4_yap_hand_written.yap */CMakeFiles/* *~ */
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@ -845,7 +832,13 @@ EXCLUDE_SYMLINKS = NO
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS = */CMakeFiles/* *~
EXCLUDE_PATTERNS = \
/home/vsc/github/yap-6.3/packages/gecode/gecode3_yap.cc \
/home/vsc/github/yap-6.3/packages/gecode/gecode4_yap.cc \
/home/vsc/github/yap-6.3/packages/gecode/gecode3.yap \
/home/vsc/github/yap-6.3/packages/gecode/gecode4.yap \
/home/vsc/github/yap-6.3/packages/gecode/gecode3_yap_hand_written.yap \ /home/vsc/github/yap-6.3/packages/gecode/gecode4_yap_hand_written.yap
*/CMakeFiles/* *~ */\#* \
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@ -882,7 +875,7 @@ EXAMPLE_RECURSIVE = NO
# that contain images that are to be included in the documentation (see the
# \image command).
IMAGE_PATH = /Users/vsc/git/yap-6.3/docs/icons
IMAGE_PATH = /home/vsc/github/yap-6.3/docs/icons
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
@ -938,7 +931,7 @@ FILTER_SOURCE_PATTERNS =
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.
USE_MDFILE_AS_MAINPAGE =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# Configuration options related to source browsing
@ -1094,9 +1087,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_HEADER =
#/Users/vsc/git/yap-6.3/docs/web/bootstrap/header.html
HTML_HEADER = /home/vsc/github/yap-6.3/docs/custom/header.html
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
@ -1106,9 +1097,7 @@ HTML_HEADER =
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FOOTER =
#/Users/vsc/git/yap-6.3/docs/web/bootstrap/footer.html
HTML_FOOTER = /home/vsc/github/yap-6.3/docs/custom/footer.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
@ -1122,8 +1111,6 @@ HTML_FOOTER =
HTML_STYLESHEET =
#/Users/vsc/git/yap-6.3/docs/web/bootstrap/customdoxygen.css
# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
# created by doxygen. Using this option one can overrule certain style aspects.
@ -1135,9 +1122,9 @@ HTML_STYLESHEET =
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET =
# /Users/vsc/git/yap-6.3/docs/solarized-light.css
HTML_EXTRA_STYLESHEET = \
/home/vsc/github/yap-6.3/docs/custom/customdoxygen.css \
/home/vsc/github/yap-6.3/docs/custom/solarized-light.css \
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@ -1147,9 +1134,7 @@ HTML_EXTRA_STYLESHEET =
# files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_FILES =
#/Users/vsc/git/yap-6.3/docs/web/bootstrap/doxy-boot.js
HTML_EXTRA_FILES = /home/vsc/github/yap-6.3/docs/custom/application.js /home/vsc/github/yap-6.3/docs/custom/assets /home/vsc/github/yap-6.3/docs/custom/bootstrap.min.css /home/vsc/github/yap-6.3/docs/custom/bootstrap.min.js /home/vsc/github/yap-6.3/docs/custom/customdoxygen.css /home/vsc/github/yap-6.3/docs/custom/default /home/vsc/github/yap-6.3/docs/custom/doxy-boot.js /home/vsc/github/yap-6.3/docs/custom/font-awesome.min.css /home/vsc/github/yap-6.3/docs/custom/footer.html /home/vsc/github/yap-6.3/docs/custom/header.html /home/vsc/github/yap-6.3/docs/custom/jquery-3.2.1.min.js /home/vsc/github/yap-6.3/docs/custom/offcanvas.css /home/vsc/github/yap-6.3/docs/custom/offcanvas.js /home/vsc/github/yap-6.3/docs/custom/solarized-light.css /home/vsc/github/yap-6.3/docs/custom/theme.css /home/vsc/github/yap-6.3/docs/custom/yap.css
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
@ -1314,7 +1299,7 @@ BINARY_TOC = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
TOC_EXPAND = NO
TOC_EXPAND = YES
# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
@ -1551,7 +1536,7 @@ SEARCHENGINE = YES
# The default value is: NO.
# This tag requires that the tag SEARCHENGINE is set to YES.
SERVER_BASED_SEARCH = NO
SERVER_BASED_SEARCH = YES
# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
# script for searching. Instead the search results are written to an XML file
@ -1594,7 +1579,7 @@ SEARCHDATA_FILE = searchdata.xml
# projects and redirect the results back to the right project.
# This tag requires that the tag SEARCHENGINE is set to YES.
EXTERNAL_SEARCH_ID =
EXTERNAL_SEARCH_ID = YAP
# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
# projects other than the one defined by this configuration file, but that are
@ -1883,7 +1868,7 @@ MAN_SUBDIR =
# The default value is: NO.
# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_LINKS = NO
MAN_LINKS = NOoi9 0
#---------------------------------------------------------------------------
# Configuration options related to the XML output
@ -2028,7 +2013,12 @@ SEARCH_INCLUDES = YES
# preprocessor.
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH =
INCLUDE_PATH = /home/vsc/github/yap-6.3 \
/home/vsc/github/yap-6.3/H \
/home/vsc/github/yap-6.3/H/generated \
/home/vsc/github/yap-6.3/include \
/home/vsc/github/yap-6.3/os \
/home/vsc/github/yap-6.3/OPTYap \
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
@ -2203,7 +2193,7 @@ DOT_FONTPATH =
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YES
CLASS_GRAPH = NO
# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
# graph for each documented class showing the direct and indirect implementation
@ -2257,7 +2247,7 @@ TEMPLATE_RELATIONS = NO
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDE_GRAPH = YES
INCLUDE_GRAPH = NO
# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
# set to YES then doxygen will generate a graph for each documented file showing
@ -2266,7 +2256,7 @@ INCLUDE_GRAPH = YES
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDED_BY_GRAPH = YES
INCLUDED_BY_GRAPH = NO
# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
# dependency graph for every global function or class method.

4
docs/application.js Normal file
View File

@ -0,0 +1,4 @@
$(function () {
$('a').tooltip();
});

7
docs/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

7
docs/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

121
docs/doxy-boot.js Normal file
View File

@ -0,0 +1,121 @@
$( document ).ready(function() {
$("div.headertitle").addClass("page-header");
$("div.title").addClass("h1");
$('li > a[href="index.html"] > span').before("<i class='fa fa-cog'></i> ");
$('li > a[href="index.html"] > span').text("BioGears");
$('li > a[href="modules.html"] > span').before("<i class='fa fa-square'></i> ");
$('li > a[href="namespaces.html"] > span').before("<i class='fa fa-bars'></i> ");
$('li > a[href="annotated.html"] > span').before("<i class='fa fa-list-ul'></i> ");
$('li > a[href="classes.html"] > span').before("<i class='fa fa-book'></i> ");
$('li > a[href="inherits.html"] > span').before("<i class='fa fa-sitemap'></i> ");
$('li > a[href="functions.html"] > span').before("<i class='fa fa-list'></i> ");
$('li > a[href="functions_func.html"] > span').before("<i class='fa fa-list'></i> ");
$('li > a[href="functions_vars.html"] > span').before("<i class='fa fa-list'></i> ");
$('li > a[href="functions_enum.html"] > span').before("<i class='fa fa-list'></i> ");
$('li > a[href="functions_YapEval.html"] > span').before("<i class='fa fa-list'></i> ");
$('img[src="ftv2ns.png"]').replaceWith('<span class="label label-danger">N</span> ');
$('img[src="ftv2cl.png"]').replaceWith('<span class="label label-danger">C</span> ');
$("ul.tablist").addClass("nav nav-pills nav-justified");
$("ul.tablist").css("margin-top", "0.5em");
$("ul.tablist").css("margin-bottom", "0.5em");
$("li.current").addClass("active");
$("iframe").attr("scrolling", "yes");
$("#nav-path > ul").addClass("breadcrumb");
$("table.params").addClass("table");
$("div.ingroups").wrapInner("<small></small>");
$("div.levels").css("margin", "0.5em");
$("div.levels > span").addClass("btn btn-default btn-xs");
$("div.levels > span").css("margin-right", "0.25em");
$("table.directory").addClass("table table-striped");
$("div.summary > a").addClass("btn btn-default btn-xs");
$("table.fieldtable").addClass("table");
$(".fragment").addClass("well");
$(".memitem").addClass("panel panel-default");
$(".memproto").addClass("panel-heading");
$(".memdoc").addClass("panel-body");
$("span.mlabel").addClass("label label-info");
$("table.memberdecls").addClass("table");
$("[class^=memitem]").addClass("active");
$("div.ah").addClass("btn btn-default");
$("span.mlabels").addClass("pull-right");
$("table.mlabels").css("width", "100%")
$("td.mlabels-right").addClass("pull-right");
$("div.ttc").addClass("panel panel-primary");
$("div.ttname").addClass("panel-heading");
$("div.ttname a").css("color", 'white');
$("div.ttdef,div.ttdoc,div.ttdeci").addClass("panel-body");
$('#MSearchBox').parent().remove();
$('div.fragment.well div.line:first').css('margin-top', '15px');
$('div.fragment.well div.line:last').css('margin-bottom', '15px');
$('table.doxtable').removeClass('doxtable').addClass('table table-striped table-bordered').each(function(){
$(this).prepend('<thead></thead>');
$(this).find('tbody > tr:first').prependTo($(this).find('thead'));
$(this).find('td > span.success').parent().addClass('success');
$(this).find('td > span.warning').parent().addClass('warning');
$(this).find('td > span.danger').parent().addClass('danger');
});
if($('div.fragment.well div.ttc').length > 0)
{
$('div.fragment.well div.line:first').parent().removeClass('fragment well');
}
$('table.memberdecls').find('.memItemRight').each(function(){
$(this).contents().appendTo($(this).siblings('.memItemLeft'));
$(this).siblings('.memItemLeft').attr('align', 'left');
});
function getOriginalWidthOfImg(img_element) {
var t = new Image();
t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src;
return t.width;
}
$('div.dyncontent').find('img').each(function(){
if(getOriginalWidthOfImg($(this)[0]) > $('#content>div.container').width())
$(this).css('width', '100%');
});
$(".memitem").removeClass('memitem');
$(".memproto").removeClass('memproto');
$(".memdoc").removeClass('memdoc');
$("span.mlabel").removeClass('mlabel');
$("table.memberdecls").removeClass('memberdecls');
$("[class^=memitem]").removeClass('memitem');
$("span.mlabels").removeClass('mlabels');
$("table.mlabels").removeClass('mlabels');
$("td.mlabels-right").removeClass('mlabels-right');
$(".navpath").removeClass('navpath');
$("li.navelem").removeClass('navelem');
$("a.el").removeClass('el');
$("div.ah").removeClass('ah');
$("div.header").removeClass("header");
$('.mdescLeft').each(function(){
if($(this).html()=="&nbsp;") {
$(this).siblings('.mdescRight').attr('colspan', 2);
$(this).remove();
}
});
$('td.memItemLeft').each(function(){
if($(this).siblings('.memItemRight').html()=="") {
$(this).attr('colspan', 2);
$(this).siblings('.memItemRight').remove();
}
});
});

4
docs/font-awesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

392
docs/md/attributes.md Normal file
View File

@ -0,0 +1,392 @@
Attributed Variables and Co-Routining {#attributes}
=======================================
@ingroup extensions
YAP supports attributed variables, originally developed at OFAI by
Christian Holzbaur. Attributes are a means of declaring that an
arbitrary term is a property for a variable. These properties can be
updated during forward execution. Moreover, the unification algorithm is
aware of attributed variables and will call user defined handlers when
trying to unify these variables.
Attributed variables provide an elegant abstraction over which one can
extend Prolog systems. Their main application so far has been in
implementing constraint handlers, such as Holzbaur's CLPQR, Fruewirth
and Holzbaur's CHR, and CLP(BN).
Different Prolog systems implement attributed variables in different
ways. Originally, YAP used the interface designed by SICStus
Prolog. This interface is still
available through the <tt>atts</tt> library, and is used by CLPBN.
From YAP-6.0.3 onwards we recommend using the hProlog, SWI style
interface. We believe that this design is easier to understand and
work with. Most packages included in YAP that use attributed
variables, such as CHR, CLP(FD), and CLP(QR), rely on the SWI-Prolog
interface.
+ @ref SICS_attributes
+ @ref New_Style_Attribute_Declarations
+ @ref CohYroutining
+ @ref AttributeVariables_Builtins
@section SICS_attributes SICStus Style attribute declarations.
The YAP library `atts` implements attribute variables in the style of
SICStus Prolog. Attributed variables work as follows:
+ Each attribute must be declared beforehand. Attributes are described
as a functor with name and arity and are local to a module. Each
Prolog module declares its own sets of attributes. Different modules
may have attributes with the same name and arity.
+ The built-in put_atts/2 adds or deletes attributes to a
variable. The variable may be unbound or may be an attributed
variable. In the latter case, YAP discards previous values for the
attributes.
+ The built-in get_atts/2 can be used to check the values of
an attribute associated with a variable.
+ The unification algorithm calls the user-defined predicate
verify_attributes/3 before trying to bind an attributed
variable. Unification will resume after this call.
+ The user-defined predicate
<tt>attribute_goal/2</tt> converts from an attribute to a goal.
+ The user-defined predicate
<tt>project_attributes/2</tt> is used from a set of variables into a set of
constraints or goals. One application of <tt>project_attributes/2</tt> is in
the top-level, where it is used to output the set of
floundered constraints at the end of a query.
Attributes are compound terms associated with a variable. Each attribute
has a <em>name</em> which is <em>private</em> to the module in which the
attribute was defined. Variables may have at most one attribute with a
name. Attribute names are defined through the following declaration:
~~~~~
:- attribute AttributeSpec, ..., AttributeSpec.
~~~~~
where each _AttributeSpec_ has the form ( _Name_/ _Arity_).
One single such declaration is allowed per module _Module_.
Although the YAP module system is predicate based, attributes are local
to modules. This is implemented by rewriting all calls to the
built-ins that manipulate attributes so that attribute names are
preprocessed depending on the module. The `user:goal_expansion/3`
mechanism is used for this purpose.
The attribute manipulation predicates always work as follows:
+ The first argument is the unbound variable associated with
attributes,
+ The second argument is a list of attributes. Each attribute will
be a Prolog term or a constant, prefixed with the <tt>+</tt> and <tt>-</tt> unary
operators. The prefix <tt>+</tt> may be dropped for convenience.
The following three procedures are available to the user. Notice that
these built-ins are rewritten by the system into internal built-ins, and
that the rewriting process <em>depends</em> on the module on which the
built-ins have been invoked.
The user-predicate predicate verify_attributes/3 is called when
attempting to unify an attributed variable which might have attributes
in some _Module_.
Attributes are usually presented as goals. The following routines are
used by built-in predicates such as call_residue/2 and by the
Prolog top-level to display attributes:
Constraint solvers must be able to project a set of constraints to a set
of variables. This is useful when displaying the solution to a goal, but
may also be used to manipulate computations. The user-defined
project_attributes/2 is responsible for implementing this
projection.
The following examples are taken from the SICStus Prolog
manual. The sketches the implementation of a simple finite domain
`solver`. Note that an industrial strength solver would have to
provide a wider range of functionality and that it quite likely would
utilize a more efficient representation for the domains proper. The
module exports a single predicate `domain( _-Var_, _?Domain_)` which
associates _Domain_ (a list of terms) with _Var_. A variable can be
queried for its domain by leaving _Domain_ unbound.
We do not present here a definition for project_attributes/2.
Projecting finite domain constraints happens to be difficult.
~~~~~
:- module(domain, [domain/2]).
:- use_module(library(atts)).
:- use_module(library(ordsets), [
ord_intersection/3,
ord_intersect/2,
list_to_ord_set/2
]).
:- attribute dom/1.
verify_attributes(Var, Other, Goals) :-
get_atts(Var, dom(Da)), !, % are we involved?
( var(Other) -> % must be attributed then
( get_atts(Other, dom(Db)) -> % has a domain?
ord_intersection(Da, Db, Dc),
Dc = [El|Els], % at least one element
( Els = [] -> % exactly one element
Goals = [Other=El] % implied binding
; Goals = [],
put_atts(Other, dom(Dc))% rescue intersection
)
; Goals = [],
put_atts(Other, dom(Da)) % rescue the domain
)
; Goals = [],
ord_intersect([Other], Da) % value in domain?
).
verify_attributes(_, _, []). % unification triggered
% because of attributes
% in other modules
attribute_goal(Var, domain(Var,Dom)) :- % interpretation as goal
get_atts(Var, dom(Dom)).
domain(X, Dom) :-
var(Dom), !,
get_atts(X, dom(Dom)).
domain(X, List) :-
list_to_ord_set(List, Set),
Set = [El|Els], % at least one element
( Els = [] -> % exactly one element
X = El % implied binding
; put_atts(Fresh, dom(Set)),
X = Fresh % may call
% verify_attributes/3
).
~~~~~
Note that the _implied binding_ `Other=El` was deferred until after
the completion of `verify_attribute/3`. Otherwise, there might be a
danger of recursively invoking `verify_attribute/3`, which might bind
`Var`, which is not allowed inside the scope of `verify_attribute/3`.
Deferring unifications into the third argument of `verify_attribute/3`
effectively serializes the calls to `verify_attribute/3`.
Assuming that the code resides in the file domain.yap, we
can use it via:
~~~~~
| ?- use_module(domain).
~~~~~
Let's test it:
~~~~~
| ?- domain(X,[5,6,7,1]), domain(Y,[3,4,5,6]), domain(Z,[1,6,7,8]).
domain(X,[1,5,6,7]),
domain(Y,[3,4,5,6]),
domain(Z,[1,6,7,8]) ?
yes
| ?- domain(X,[5,6,7,1]), domain(Y,[3,4,5,6]), domain(Z,[1,6,7,8]),
X=Y.
Y = X,
domain(X,[5,6]),
domain(Z,[1,6,7,8]) ?
yes
| ?- domain(X,[5,6,7,1]), domain(Y,[3,4,5,6]), domain(Z,[1,6,7,8]),
X=Y, Y=Z.
X = 6,
Y = 6,
Z = 6
~~~~~
To demonstrate the use of the _Goals_ argument of
verify_attributes/3, we give an implementation of
freeze/2. We have to name it `myfreeze/2` in order to
avoid a name clash with the built-in predicate of the same name.
~~~~~
:- module(myfreeze, [myfreeze/2]).
:- use_module(library(atts)).
:- attribute frozen/1.
verify_attributes(Var, Other, Goals) :-
get_atts(Var, frozen(Fa)), !, % are we involved?
( var(Other) -> % must be attributed then
( get_atts(Other, frozen(Fb)) % has a pending goal?
-> put_atts(Other, frozen((Fa,Fb))) % rescue conjunction
; put_atts(Other, frozen(Fa)) % rescue the pending goal
),
Goals = []
; Goals = [Fa]
).
verify_attributes(_, _, []).
attribute_goal(Var, Goal) :- % interpretation as goal
get_atts(Var, frozen(Goal)).
myfreeze(X, Goal) :- put_atts(Fresh, frozen(Goal)), Fresh = X. ~~~~~
Assuming that this code lives in file myfreeze.yap,
we would use it via:
~~~~~
| ?- use_module(myfreeze).
| ?- myfreeze(X,print(bound(x,X))), X=2.
bound(x,2) % side effect
X = 2 % bindings
~~~~~
The two solvers even work together:
~~~~~
| ?- myfreeze(X,print(bound(x,X))), domain(X,[1,2,3]),
domain(Y,[2,10]), X=Y.
bound(x,2) % side effect
X = 2, % bindings
Y = 2
~~~~~
The two example solvers interact via bindings to shared attributed
variables only. More complicated interactions are likely to be found
in more sophisticated solvers. The corresponding
verify_attributes/3 predicates would typically refer to the
attributes from other known solvers/modules via the module prefix in
Module:get_atts/2`.
@}
@{
@defgroup New_Style_Attribute_Declarations hProlog and SWI-Prolog style Attribute Declarations
The following documentation is taken from the SWI-Prolog manual.
Binding an attributed variable schedules a goal to be executed at the
first possible opportunity. In the current implementation the hooks are
executed immediately after a successful unification of the clause-head
or successful completion of a foreign language (built-in) predicate. Each
attribute is associated to a module and the hook attr_unify_hook/2 is
executed in this module. The example below realises a very simple and
incomplete finite domain reasoner.
~~~~~
:- module(domain,
[ domain/2 % Var, ?Domain %
]).
:- use_module(library(ordsets)).
domain(X, Dom) :-
var(Dom), !,
get_attr(X, domain, Dom).
domain(X, List) :-
list_to_ord_set(List, Domain),
v put_attr(Y, domain, Domain),
X = Y.
% An attributed variable with attribute value Domain has been %
% assigned the value Y %
attr_unify_hook(Domain, Y) :-
( get_attr(Y, domain, Dom2)
-> ord_intersection(Domain, Dom2, NewDomain),
( NewDomain == []
-> fail
; NewDomain = [Value]
-> Y = Value
; put_attr(Y, domain, NewDomain)
)
; var(Y)
-> put_attr( Y, domain, Domain )
; ord_memberchk(Y, Domain)
).
% Translate attributes from this module to residual goals %
attribute_goals(X) -->
{ get_attr(X, domain, List) },
[domain(X, List)].
~~~~~
Before explaining the code we give some example queries:
The predicate `domain/2` fetches (first clause) or assigns
(second clause) the variable a <em>domain</em>, a set of values it can
be unified with. In the second clause first associates the domain
with a fresh variable and then unifies X to this variable to deal
with the possibility that X already has a domain. The
predicate attr_unify_hook/2 is a hook called after a variable with
a domain is assigned a value. In the simple case where the variable
is bound to a concrete value we simply check whether this value is in
the domain. Otherwise we take the intersection of the domains and either
fail if the intersection is empty (first example), simply assign the
value if there is only one value in the intersection (second example) or
assign the intersection as the new domain of the variable (third
example). The nonterminal `attribute_goals/3` is used to translate
remaining attributes to user-readable goals that, when executed, reinstate
these attributes.
@}
@{
@defgroup CohYroutining Co-routining
Prolog uses a simple left-to-right flow of control. It is sometimes
convenient to change this control so that goals will only execute when
sufficiently instantiated. This may result in a more "data-driven"
execution, or may be necessary to correctly implement extensions such
as negation by failure.
Initially, YAP used a separate mechanism for co-routining. Nowadays, YAP uses
attributed variables to implement co-routining.
Two declarations are supported:
+ block/1
The argument to `block/1` is a condition on a goal or a conjunction
of conditions, with each element separated by commas. Each condition is
of the form `predname( _C1_,..., _CN_)`, where _N_ is the
arity of the goal, and each _CI_ is of the form `-`, if the
argument must suspend until the first such variable is bound, or
`?`, otherwise.
+ wait/1
The argument to `wait/1` is a predicate descriptor or a conjunction
of these predicates. These predicates will suspend until their first
argument is bound.
The following primitives can be used:
- freeze/2
- dif/2
- when/2
- frozen/2
@}
@}

14
docs/md/download.md Normal file
View File

@ -0,0 +1,14 @@
Downloading YAP {#download}
==============
The latest development version of Yap-6 is yap-6.3.5 and can be
obtained from the repositories
+ [https://github.com/vscosta/yap-6.3]{github}
and an older version at:
+ [http://sourceforge.net/p/yap/yap-6.3]{sourceforge}
YAP-6.3.5 does not use git submodules. Please just use `git clone` to obtain the distribution.

337
docs/md/modules.md Normal file
View File

@ -0,0 +1,337 @@
The YAP Module system {#YAPModules}
=====================
The YAP module system is based on the Quintus/SISCtus module
system ˜\cite quintus . In this design, modules are named collections of predicates,
and all predicates belong to a single module. By default, predicates are only
visible within a module, or _private_ to that module. The module
may also define a list of predicates that are
_exported_, that is, visible to other modules.
The main predicates in the module system are:
* module/2 associates a source file to a module. It has two arguments: the name of the new module, and a list of predicates exported by the module.
* use_module/1 and use_module/2 can be used to load a module. They take as first argument the source file for the module. Whereas use_module/1 loads all exported predicates, use_module/2 only takes the ones given by the second argument.
YAP pre-defines a number of modules. Most system predicates belong to
the module `prolog`. Predicates from the module `prolog` are
automatically visible to every module. The `system` module was
introduced for SWI-Prolog compatibility, and in YAP mostly acts as an
alias to `prolog`. The `user` module is also visible to all other modules.
The YAP engine is always associated to a module, the current <em>source
module</em> or <em>type-in module</em>. By default, all predicates
read-in and all calls to a goal will be made to predicates visible to
the current source module, Initially, the source module for YAP is the
module `user`. Thus Prolog programs that do not define modules will
operate within the `user` module. In this case, all predicates will be
visible to all source files.
YAP includes a number of libraries and packages, most of them
defining their own modules. Note that there is no system mechanism to
avoid clashes between module names, so it is up to the programmer to
carefully choose the names for her own program modules.
The main mechanism to change the current type-in module is by using
the module/2 declaration.This declaration sets the source module when
it starts consulting a file, and resets it at the end. One can set
the type-in module permanently by using the built-in `module/1`.
#### Explicit Naming {#ExplicitNaming}
The module system allows one to _explicitly_ specify the source mode for
a clause by prefixing a clause with its module, say:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
user:(a :- b).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
it is also possible to type
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
user:a :- user:b.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
both formulations describe the same clause, independently of the
current type-in module.
In fact, it is sufficient to specify the source mode for the clause's
head:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
user:a :- b.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if the current type-in module is `m`, the clause could also be written as:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
user:a :- m:b.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The compiler rewrites the source clauses to ensure that explicit calls
are respected, and that implicit calls are made to the current source
module.
A goal should refer to a predicate visible within the current type-in
module. Thus, if a goal appears in a text file with a module
declaration, the goal refers to that module's context (but see the
initialization/1 directive for more details).
Again, one can override this rule by prefixing a goal with a module to
be consulted. The following query:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
?- nasa:launch(apollo,13).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
invokes the goal `launch(apollo,13)` as if the current source
module was `nasa`.
YAP and other Prolog systems allow the module prefix to see all
predicates visible in the module, including predicates private to the
module. This rule allows maximum flexibility, but it also breaks
encapsulation and should be used with care. The ciao language proposes
a different approach to this problem, see \cite DBLP:conf/cl/GrasH00 .
Modules are not always associated with a source-file. They
may range over several files, by using the
`include`directive. Moreover, they may not be associated to any source
file. As an example,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
?- assert( nasa:launch(apollo,13) ).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
will create a module `nasa`, if does not already exist. In fact it is
sufficient to call a predicate from a module to implicitly create the
module. Hence after this call:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
?- nasa:launch(apollo,13).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
there will be a `nasa`module in the system, even if nasa:launch/2 is
not at all defined.
\pred use_module( +Files ) is directive
loads a module file
This predicate loads the file specified by _Files_, importing all
their public predicates into the current type-in module. It is
implemented as if by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
use_module(F) :-
load_files(F, [if(not_loaded),must_be_module(true)]).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Notice that _Files_ may be a single file, or a list with a number
files. The _Files_ are loaded in YAP only once, even if they have been
updated meanwhile. YAP should also verify whether the files actually
define modules. Please consult load_files/3 for other options when
loading a file.
Predicate name clashes between two different modules may arise, either
when trying to import predicates that are also defined in the current
type-in module, or by trying to import the same predicate from two
different modules.
In the first case, the local predicate is considered to have priority
and use_module/1 simply gives a warning. As an example, if the file
`a.pl` contains:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
:- module( a, [a/1] ).
:- use_module(b).
a(1).
a(X) :- b(X).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
and the file `b.pl` contains:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
:- module( b, [a/1,b/1] ).
a(2).
b(1).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
YAP will execute as follows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
?- [a].
% consulting .../a.pl...
% consulting .../b.pl...
% consulted .../b.pl in module b, 0 msec 0 bytes
% consulted .../a.pl in module a, 1 msec 0 bytes
true.
?- a(X).
X = 1 ? ;
X = 1.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The example shows that the query `a(X)`has a single answer, the one
defined in `a.pl`. Calls to `a(X)`succeed in the top-level, because
the module `a` was loaded into `user`. On the other hand, `b(X)`is not
exported by `a.pl`, and is not available to calls, although it can be
accessed as a predicate in the module 'a' by using the `:` operator.
Next, consider the three files `c.pl`, `d1.pl`, and `d2.pl`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
% c.pl
:- module( c, [a/1] ).
:- use_module([d1, d2]).
a(X) :-
b(X).
a(X) :-
c(X).
a(X) :-
d(X).
% d1.pl
:- module( d1, [b/1,c/1] ).
b(2).
c(3).
% d2.pl
:- module( d2, [b/1,d/1] ).
b(1).
d(4).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The result is as follows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
./yap -l c
YAP 6.3.4 (x86_64-darwin13.3.0): Tue Jul 15 10:42:11 CDT 2014
ERROR!!
at line 3 in o/d2.pl,
PERMISSION ERROR- loading .../c.pl: modules d1 and d2 both define b/1
?- a(X).
X = 2 ? ;
ERROR!!
EXISTENCE ERROR- procedure c/1 is undefined, called from context prolog:$user_call/2
Goal was c:c(_131290)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The state of the module system after this error is undefined.
### BuiltIn predicates {#ModuleBuiltins)
@\pred module(+ M:atom,+ L:list ) is directive
the current file defines module _M_ with exports _L_. The list may include
+ predicate indicators
+ operator definitions that look like calls to op/3.
The list _L_ may include predicates imported from other modules. If
you want to fully reexport a module, or a sub-set, also consider reexport/1.
Similar to module/2, this directive defines the file where it
appears in as a module file; it must be the first declaration in the file.
_M_ must be an atom specifying the module name; _L_ must be a
list containing the module's public predicates specification, in the
form `[predicate_name/arity,...]`.
The last argument _Options_ must be a list of options, which can be:
+ <b>filename</b>
the filename for a module to import into the current module.
+ <b>library( +File )</b>
a library file to import into the current module.
+ <b>hide( +Opt)</b>
if _Opt_ is `false`, keep source code for current module, if `true`, disable.
+ <b>export(+PredicateIndicator )</b>
Add predicates to the public list of the context module. This implies
the predicate will be imported into another module if this module
is imported with use_module/1 and use_module/2.
+ <b>export_list(? _Mod_,? _ListOfPredicateIndicator_)</b>
The list _ListOfPredicateIndicator_ contains all predicates
exported by module _Mod_
Note that predicates are normally exported using the directive
`module/2`. The `export/1` argumwnt is meant to allow export from
dynamically created modules. The directive argument may also be a list
of predicates.
@pred use_module(+Files, +Imports)
loads a module file but only imports the named predicates
This predicate loads the file specified by _Files_, importing their
public predicates specified by _Imports_ into the current type-in
module. It is implemented as if by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
use_module(Files, Imports) :-
load_files(Files, [if(not_loaded),must_be_module(true),imports(Imports)]).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The _Imports_ argument may be use to specify which predicates one
wants to load. It can also be used to give the predicates a different name. As an example,
the graphs library is implemented on top of the red-black trees library, and some predicates are just aliases:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.prolog}
:- use_module(library(rbtrees), [
rb_min/3 as min_assoc,
rb_max/3 as max_assoc,
...]).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unfortunately it is still not possible to change argument order.
\pred module(+ M:atom,+ L:list ) is directive
the current file defines module _M_ with exports _L_. The list may include
+ predicate indicators
+ operator definitions that look like calls to op/3.
The list _L_ may include predicates imported from other modules. If
you want to fully reexport a module, or a sub-set, also consider reexport/1.
Similar to module/2, this directive defines the file where it
appears in as a module file; it must be the first declaration in the file.
_M_ must be an atom specifying the module name; _L_ must be a
list containing the module's public predicates specification, in the
form `[predicate_name/arity,...]`.
The last argument _Options_ must be a list of options, which can be:
+<b>filename</b>
the filename for a module to import into the current module.
+ <b>library( +File )</b>
a library file to import into the current module.
+ <b>hide( +Opt)</b>
if _Opt_ is `false`, keep source code for current module, if `true`, disable.
+ <b>export(+PredicateIndicator )</b>
Add predicates to the public list of the context module. This implies
the predicate will be imported into another module if this module
is imported with use_module/1 and use_module/2.
+ <b>export_list(? _Mod_,? _ListOfPredicateIndicator_)</b>
The list _ListOfPredicateIndicator_ contains all predicates
exported by module _Mod_
Note that predicates are normally exported using the directive
`module/2`. The `export/1` argument is meant to allow export from
dynamically created modules. The directive argument may also be a list
of predicates.

565
docs/md/syntax.md Normal file
View File

@ -0,0 +1,565 @@
YAP Syntax {#YAPSyntax}
============
@ingroup YAPProgrammming
We will describe the syntax of YAP at two levels. We first will
describe the syntax for Prolog terms. In a second level we describe
the tokens from which Prolog terms are
built.
@defgroup Formal_Syntax Syntax of Terms
@ingroup YAPSyntax
Below, we describe the syntax of YAP terms from the different
classes of tokens defined above. The formalism used will be <em>BNF</em>,
extended where necessary with attributes denoting integer precedence or
operator type.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
term ----> subterm(1200) end_of_term_marker
subterm(N) ----> term(M) [M <= N]
term(N) ----> op(N, fx) subterm(N-1)
| op(N, fy) subterm(N)
| subterm(N-1) op(N, xfx) subterm(N-1)
| subterm(N-1) op(N, xfy) subterm(N)
| subterm(N) op(N, yfx) subterm(N-1)
| subterm(N-1) op(N, xf)
| subterm(N) op(N, yf)
term(0) ----> atom '(' arguments ')'
| '(' subterm(1200) ')'
| '{' subterm(1200) '}'
| list
| string
| number
| atom
| variable
arguments ----> subterm(999)
| subterm(999) ',' arguments
list ----> '[]'
| '[' list_expr ']'
list_expr ----> subterm(999)
| subterm(999) list_tail
list_tail ----> ',' list_expr
| ',..' subterm(999)
| '|' subterm(999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Notes:
+ \a op(N,T) denotes an atom which has been previously declared with type
\a T and base precedence \a N.
+ Since ',' is itself a pre-declared operator with type \a xfy and
precedence 1000, is \a subterm starts with a '(', \a op must be
followed by a space to avoid ambiguity with the case of a functor
followed by arguments, e.g.:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ (a,b) [the same as '+'(','(a,b)) of arity one]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
versus
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+(a,b) [the same as '+'(a,b) of arity two]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
In the first rule for term(0) no blank space should exist between
\a atom and '('.
+
Each term to be read by the YAP parser must end with a single
dot, followed by a blank (in the sense mentioned in the previous
paragraph). When a name consisting of a single dot could be taken for
the end of term marker, the ambiguity should be avoided by surrounding the
dot with single quotes.
# @defgroup Tokens Prolog Tokens
@ingroup YAPSyntax
Prolog tokens are grouped into the following categories:
## @defgroup Numbers Numbers
@ingroup Tokens
Numbers can be further subdivided into integer and floating-point numbers.
### @defgroup Integers Integers
@ingroup Numbers
Integer numbers
are described by the following regular expression:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<integer> := {<digit>+<single-quote>|0{xXo}}<alpha_numeric_char>+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
where {...} stands for optionality, \a + optional repetition (one or
more times), \a \\\<digit\\\> denotes one of the characters 0 ... 9, \a |
denotes or, and \a \\\<single-quote\\\> denotes the character "'". The digits
before the \a \\\<single-quote\\\> character, when present, form the number
basis, that can go from 0, 1 and up to 36. Letters from `A` to
`Z` are used when the basis is larger than 10.
Note that if no basis is specified then base 10 is assumed. Note also
that the last digit of an integer token can not be immediately followed
by one of the characters 'e', 'E', or '.'.
Following the ISO standard, YAP also accepts directives of the
form `0x` to represent numbers in hexadecimal base and of the form
`0o` to represent numbers in octal base. For usefulness,
YAP also accepts directives of the form `0X` to represent
numbers in hexadecimal base.
Example:
the following tokens all denote the same integer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 2'1010 3'101 8'12 16'a 36'a 0xa 0o12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Numbers of the form `0'a` are used to represent character
constants. So, the following tokens denote the same integer:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0'd 100
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
YAP (version 6.3.4) supports integers that can fit
the word size of the machine. This is 32 bits in most current machines,
but 64 in some others, such as the Alpha running Linux or Digital
Unix. The scanner will read larger or smaller integers erroneously.
### @defgroup Floats Floats
@ingroup Numbers
Floating-point numbers are described by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<float> := <digit>+{<dot><digit>+}
<exponent-marker>{<sign>}<digit>+
|<digit>+<dot><digit>+
{<exponent-marker>{<sign>}<digit>+}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
where \a \\\<dot\\\> denotes the decimal-point character '.',
\a \\\<exponent-marker\\\> denotes one of 'e' or 'E', and \a \\\<sign\\\> denotes
one of '+' or '-'.
Examples:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10.0 10e3 10e-3 3.1415e+3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Floating-point numbers are represented as a double in the target
machine. This is usually a 64-bit number.
## Strings @defgroup Strings Character Strings
Strings are described by the following rules:
~~~~
string --> " string_quoted_characters "
string --> ` string_quoted_characters `
string_quoted_characters --> '"' '"' string_quoted_characters
string_quoted_characters --> '\'
escape_sequence string_quoted_characters
string_quoted_characters -->
string_character string_quoted_characters
escape_sequence --> 'a' | 'b' | 'r' | 'f' | 't' | 'n' | 'v'
escape_sequence --> '\' | '"' | ''' | '`'
escape_sequence --> at_most_3_octal_digit_seq_char '\'
escape_sequence --> 'x' at_most_2_hexa_digit_seq_char '\'
~~~~
where `string_character` is any character except the double quote (back quote)
and escape characters.
YAP supports four different textual elements:
+ Atoms, mentioned above, are textual representations of symbols, that are interned in the
data-base. They are stored either in ISO-LATIN-1 (first 256 code points), or as UTF-32.
+ Strings are atomic representations of text. The back-quote character is used to identify these objects in the program. Strings exist as stack objects, in the same way as other Prolog terms. As Prolog unification cannot be used to manipulate strings, YAP includes built-ins such as string_arg/3, sub_string/5, or string_concat to manipulate them efficiently. Strings are stored as opaque objects containing a
+ Lists of codes represent text as a list of numbers, where each number is a character code. A string of _N_ bytes requires _N_ pairs, that is _2N_ cells, leading to a total of 16 bytes per character on 64 byte machines. Thus, they are a very expensive, but very flexible representation, as one can use unification to construct and access string elements.
+ Lists of atoms represent text as a list of atoms, where each number has a single character code. A string of _N_ bytes also requires _2N_ pairs. They have similar properties to lists of codes.
The flags `double_quotes` and `backquoted_string` change the interpretation of text strings, they can take the
values `atom`, `string`, `codes`, and `chars`.
Examples:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"" "a string" "a double-quote:"""
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The first string is an empty string, the last string shows the use of
double-quoting.
Escape sequences can be used to include the non-printable characters
`a` (alert), `b` (backspace), `r` (carriage return),
`f` (form feed), `t` (horizontal tabulation), `n` (new
line), and `v` (vertical tabulation). Escape sequences also be
include the meta-characters `\\`, `"`, `'`, and
```. Last, one can use escape sequences to include the characters
either as an octal or hexadecimal number.
The next examples demonstrates the use of escape sequences in YAP:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"\x0c\" "\01\" "\f" "\\"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The first three examples return a list including only character 12 (form
feed). The last example escapes the escape character.
Escape sequences were not available in C-Prolog and in original
versions of YAP up to 4.2.0. Escape sequences can be disabled by using:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:- yap_flag(character_escapes,false).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## @addgroup Atoms Atoms
@ingroup Tokens
Atoms are defined by one of the following rules:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
atom --> solo-character
atom --> lower-case-letter name-character*
atom --> symbol-character+
atom --> single-quote single-quote
atom --> ''' atom_quoted_characters '''
atom_quoted_characters --> ''' ''' atom_quoted_characters
atom_quoted_characters --> '\' atom_sequence string_quoted_characters
atom_quoted_characters --> character string_quoted_characters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
where:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<solo-character> denotes one of: ! ;
<symbol-character> denotes one of: # & * + - . / : <
= > ? @ \ ^ ~ `
<lower-case-letter> denotes one of: a...z
<name-character> denotes one of: _ a...z A...Z 0....9
<single-quote> denotes: '
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
and `string_character` denotes any character except the double quote
and escape characters. Note that escape sequences in strings and atoms
follow the same rules.
Examples:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a a12x '$a' ! => '1 2'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Version `4.2.0` of YAP removed the previous limit of 256
characters on an atom. Size of an atom is now only limited by the space
available in the system.
## @addgroup Variables Variables
@ingroup Tokens
Variables are described by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<variable-starter><variable-character>+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
where
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<variable-starter> denotes one of: _ A...Z
<variable-character> denotes one of: _ a...z A...Z
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If a variable is referred only once in a term, it needs not to be named
and one can use the character `_` to represent the variable. These
variables are known as anonymous variables. Note that different
occurrences of `_` on the same term represent <em>different</em>
anonymous variables.
## @addgroup Punctuation_Tokens Punctuation Tokens
@ingroup Tokens
Punctuation tokens consist of one of the following characters:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
( ) , [ ] { } |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These characters are used to group terms.
@subsection Layout Layout
Any characters with ASCII code less than or equal to 32 appearing before
a token are ignored.
All the text appearing in a line after the character \a % is taken to
be a comment and ignored (including \a %). Comments can also be
inserted by using the sequence `/\*` to start the comment and
`\*` followed by `/` to finish it. In the presence of any sequence of comments or
layout characters, the YAP parser behaves as if it had found a
single blank character. The end of a file also counts as a blank
character for this purpose.
## @addgroup WideChars Encoding Wide Character Support
@ingroup YAPSyntax
YAP now implements a SWI-Prolog compatible interface to wide
characters and the Universal Character Set (UCS). The following text
was adapted from the SWI-Prolog manual.
YAP now supports wide characters, characters with character
codes above 255 that cannot be represented in a single byte.
<em>Universal Character Set</em> (UCS) is the ISO/IEC 10646 standard
that specifies a unique 31-bits unsigned integer for any character in
any language. It is a superset of 16-bit Unicode, which in turn is
a superset of ISO 8859-1 (ISO Latin-1), a superset of US-ASCII. UCS
can handle strings holding characters from multiple languages and
character classification (uppercase, lowercase, digit, etc.) and
operations such as case-conversion are unambiguously defined.
For this reason YAP, following SWI-Prolog, has two representations for
atoms. If the text fits in ISO Latin-1, it is represented as an array
of 8-bit characters. Otherwise the text is represented as an array of
wide chars, which may take 16 or 32 bits. This representational issue
is completely transparent to the Prolog user. Users of the foreign
language interface sometimes need to be aware of these issues though. Notice that this will likely
change in the future, we probably will use an UTF-8 based representation.
Character coding comes into view when characters of strings need to be
read from or written to file or when they have to be communicated to
other software components using the foreign language interface. In this
section we only deal with I/O through streams, which includes file I/O
as well as I/O through network sockets.
== @addgroup Stream_Encoding Wide character encodings on streams
@ingroup WideChars
The UCS standard describes all possible characters (or code points, as they include
ideograms, ligatures, and other symbols). The current version, Unicode 8.0, allows
code points up to 0x10FFFF, and thus allows for 1,114,112 code points. See [Unicode Charts](http://unicode.org/charts/) for the supported languages.
Notice that most symbols are rarely used. Encodings represent the Unicode characters in a way
that is more suited for communication. The most popular encoding, especially in the context of the web and in the Unix/Linux/BSD/Mac communities, is
UTF-8. UTF-8 is compact and as it uses bytes, does not have different endianesses.
Bytes 0...127 represent simply the corresponding US-ASCII
character, while bytes 128...255 are used for multi-byte
encoding of characters placed higher in the UCS space.
Especially on
MS-Windows and Java the 16-bit Unicode standard, represented by pairs of bytes is
also popular. Originally, Microsoft supported a UCS-2 with 16 bits that
could represent only up to 64k characters. This was later extended to support the full
Unicode, we will call the latter version UTF-16. The extension uses a hole in the first 64K code points. Characters above 0xFFFF are divided into two 2-byte words, each one in that hole. There are two versions of UTF-16: big and low
endian. By default, UTF-16 is big endian, in practice most often it is used on Intel
hardware that is naturally little endian.
UTF-32, often called UCS-4, provides a natural interface where a code point is coded as
four octets. Unfortunately, it is also more expensive, so it is not as widely used.
Last, other encodings are also commonly used. One such legacy encoding is ISO-LATIN-1, that
supported latin based languages in western europe. YAP currently uses either ISO-LATIN-1 or UTF-32
internally.
Prolog supports the default encoding used by the Operating System,
Namely, YAP checks the variables LANG, LC_ALL and LC_TYPE. Say, if at boot YAP detects that the
environment variable `LANG` ends in "UTF-8", this encoding is
assumed. Otherwise, the default is `text` and the translation is
left to the wide-character functions of the C-library (note that the
Prolog native UTF-8 mode is considerably faster than the generic
`mbrtowc()` one).
Prolog allows the encoding to be specified explicitly in
load_files/2 for loading Prolog source with an alternative
encoding, `open/4` when opening files or using `set_stream/2` on
any open stream (not yet implemented). For Prolog source files we also
provide the `encoding/1` directive that can be used to switch
between encodings that are compatible to US-ASCII (`ascii`,
`iso_latin_1`, `utf8` and many locales).
For
additional information and Unicode resources, please visit the
[unicode](http://www.unicode.org/) organization web page.
YAP currently defines and supports the following encodings:
+ `octet`
Default encoding for <em>binary</em> streams. This causes
the stream to be read and written fully untranslated.
+ `ascii` or `US_ASCII`
7-bit encoding in 8-bit bytes. Equivalent to `iso_latin_1`,
but generates errors and warnings on encountering values above
127.
+ `iso_latin_1` or `ISO-8859-1`
8-bit encoding supporting many western languages. This causes
the stream to be read and written fully untranslated.
+ `text`
C-library default locale encoding for text files. Files are read and
written using the C-library functions `mbrtowc()` and
`wcrtomb()`. This may be the same as one of the other locales,
notably it may be the same as `iso_latin_1` for western
languages and `utf8` in a UTF-8 context.
+ `utf8`, `iso_utf8`, or `UTF-8``
Multi-byte encoding of the full Unicode 8, compatible to `ascii` .
See above.
+ `unicode_be` or `UCS-2BE`
Unicode Big Endian. Reads input in pairs of bytes, most
significant byte first. Can only represent 16-bit characters.
+ `unicode_le` or `UCS-2LE`
Unicode Little Endian. Reads input in pairs of bytes, least
significant byte first. Can only represent 16-bit characters.
+ `utf16_le` or `UTF-16LE` (experimental)
UTF-16 Little Endian. Reads input in pairs of bytes, least
significant byte first. Can represent the full Unicode.
+ `utf16_le` or `UTF-16BE` (experimental)
Unicode Big Endian. Reads input in pairs of bytes, least
significant byte first. Can represent the full Unicode.
+ `utf32_le` or `UTF-32LE` (experimental)
UTF-16 Little Endian. Reads input in pairs of bytes, least
significant byte first. Can represent the full Unicode.
+ `utf32_le` or `UTF-32BE` (experimental)
Unicode Big Endian. Reads input in pairs of bytes, least
significant byte first. Can only represent 16-bit characters.
Note that not all encodings can represent all characters. This implies
that writing text to a stream may cause errors because the stream
cannot represent these characters. The behaviour of a stream on these
errors can be controlled using `open/4` or `set_stream/2` (not
implemented). Initially the terminal stream write the characters using
Prolog escape sequences while other streams generate an I/O exception.
=== @addgroup BOM BOM: Byte Order Mark
@ingroup WideChars
From Stream Encoding, you may have got the impression that
text-files are complicated. This section deals with a related topic,
making live often easier for the user, but providing another worry to
the programmer. *BOM* or <em>Byte Order Marker</em> is a technique
for identifying Unicode text-files as well as the encoding they
use. Please read the [W3C](https://www.w3.org/International/questions/qa-byte-order-mark.en.php]
page for a detailed explanation of byte-order marks.
BOMa are necessary on multi-byte encodings, such as UTF-16 and UTF-32. There is a BOM for UTF-8, but it is rarely used.
The BOM is handled by the open/4 predicate. By default, text-files are
probed for the BOM when opened for reading. If a BOM is found, the
encoding is set accordingly and the property `bom(true)` is
available through stream_property/2. When opening a file for
writing, writing a BOM can be requested using the option
`bom(true)` with `open/4`. YAP will parse an UTF-8 file for a BOM only if explicitly required to do so. Do notice that YAP will write a BOM by default on UTF-16 (including UCS-2) and
UTF-32; otherwise the default is not to write a BOM. BOMs are not avaliable for ASCII and
ISO-LATIN-1.
= @addgroup Operators Summary of YAP Predefined Operators
@ingroup YapSyntax
The Prolog syntax caters for operators of three main kinds:
+ prefix;
+ infix;
+ postfix.
Each operator has precedence in the range 1 to 1200, and this
precedence is used to disambiguate expressions where the structure of the
term denoted is not made explicit using brackets. The operator of higher
precedence is the main functor.
If there are two operators with the highest precedence, the ambiguity
is solved analyzing the types of the operators. The possible infix types are:
_xfx_, _xfy_, and _yfx_.
With an operator of type _xfx_ both sub-expressions must have lower
precedence than the operator itself, unless they are bracketed (which
assigns to them zero precedence). With an operator type _xfy_ only the
left-hand sub-expression must have lower precedence. The opposite happens
for _yfx_ type.
A prefix operator can be of type _fx_ or _fy_.
A postfix operator can be of type _xf_ or _yf_.
The meaning of the notation is analogous to the above.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a + b * c
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
means
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a + (b * c)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
as + and \* have the following types and precedences:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:-op(500,yfx,'+').
:-op(400,yfx,'*').
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now defining
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:-op(700,xfy,'++').
:-op(700,xfx,'=:=').
a ++ b =:= c
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
means
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a ++ (b =:= c)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following is the list of the declarations of the predefined operators:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:-op(1200,fx,['?-', ':-']).
:-op(1200,xfx,[':-','-->']).
:-op(1150,fx,[block,dynamic,mode,public,multifile,meta_predicate,
sequential,table,initialization]).
:-op(1100,xfy,[';','|']).
:-op(1050,xfy,->).
:-op(1000,xfy,',').
:-op(999,xfy,'.').
:-op(900,fy,['\+', not]).
:-op(900,fx,[nospy, spy]).
:-op(700,xfx,[@>=,@=<,@<,@>,<,=,>,=:=,=\=,\==,>=,=<,==,\=,=..,is]).
:-op(500,yfx,['\/','/\','+','-']).
:-op(500,fx,['+','-']).
:-op(400,yfx,['<<','>>','//','*','/']).
:-op(300,xfx,mod).
:-op(200,xfy,['^','**']).
:-op(50,xfx,same).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@}

59
docs/offcanvas.css Normal file
View File

@ -0,0 +1,59 @@
/*
* Style tweaks
* --------------------------------------------------
*/
html,
body {
overflow-x: hidden; /* Prevent scroll on narrow devices */
}
body {
padding-top: 70px;
}
footer {
padding: 30px 0;
}
/*
* Off Canvas
* --------------------------------------------------
*/
@media screen and (max-width: 767px) {
.row-offcanvas {
position: relative;
-webkit-transition: all .25s ease-out;
-o-transition: all .25s ease-out;
transition: all .25s ease-out;
}
.row-offcanvas-right {
right: 0;
}
.row-offcanvas-left {
left: 0;
}
.row-offcanvas-right
.sidebar-offcanvas {
right: -50%; /* 6 columns */
}
.row-offcanvas-left
.sidebar-offcanvas {
left: -50%; /* 6 columns */
}
.row-offcanvas-right.active {
right: 50%; /* 6 columns */
}
.row-offcanvas-left.active {
left: 50%; /* 6 columns */
}
.sidebar-offcanvas {
position: absolute;
top: 0;
width: 50%; /* 6 columns */
}
}

5
docs/offcanvas.js Normal file
View File

@ -0,0 +1,5 @@
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
$('.row-offcanvas').toggleClass('active')
});
});

62
docs/pygments.css Normal file
View File

@ -0,0 +1,62 @@
.hll { background-color: #ffffcc }
.c { color: #0099FF; font-style: italic } /* Comment */
.err { color: #AA0000; background-color: #FFAAAA } /* Error */
.k { color: #006699; font-weight: bold } /* Keyword */
.o { color: #555555 } /* Operator */
.cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
.cp { color: #009999 } /* Comment.Preproc */
.c1 { color: #0099FF; font-style: italic } /* Comment.Single */
.cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
.gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.gr { color: #FF0000 } /* Generic.Error */
.gh { color: #003300; font-weight: bold } /* Generic.Heading */
.gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
.go { color: #AAAAAA } /* Generic.Output */
.gp { color: #000099; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #003300; font-weight: bold } /* Generic.Subheading */
.gt { color: #99CC66 } /* Generic.Traceback */
.kc { color: #006699; font-weight: bold } /* Keyword.Constant */
.kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
.kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
.kp { color: #006699 } /* Keyword.Pseudo */
.kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
.kt { color: #007788; font-weight: bold } /* Keyword.Type */
.m { color: #FF6600 } /* Literal.Number */
.s { color: #CC3300 } /* Literal.String */
.na { color: #330099 } /* Name.Attribute */
.nb { color: #336666 } /* Name.Builtin */
.nc { color: #00AA88; font-weight: bold } /* Name.Class */
.no { color: #336600 } /* Name.Constant */
.nd { color: #9999FF } /* Name.Decorator */
.ni { color: #999999; font-weight: bold } /* Name.Entity */
.ne { color: #CC0000; font-weight: bold } /* Name.Exception */
.nf { color: #CC00FF } /* Name.Function */
.nl { color: #9999FF } /* Name.Label */
.nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
.nt { color: #330099; font-weight: bold } /* Name.Tag */
.nv { color: #003333 } /* Name.Variable */
.ow { color: #000000; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */
.mb { color: #FF6600 } /* Literal.Number.Bin */
.mf { color: #FF6600 } /* Literal.Number.Float */
.mh { color: #FF6600 } /* Literal.Number.Hex */
.mi { color: #FF6600 } /* Literal.Number.Integer */
.mo { color: #FF6600 } /* Literal.Number.Oct */
.sb { color: #CC3300 } /* Literal.String.Backtick */
.sc { color: #CC3300 } /* Literal.String.Char */
.sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
.s2 { color: #CC3300 } /* Literal.String.Double */
.se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
.sh { color: #CC3300 } /* Literal.String.Heredoc */
.si { color: #AA0000 } /* Literal.String.Interpol */
.sx { color: #CC3300 } /* Literal.String.Other */
.sr { color: #33AAAA } /* Literal.String.Regex */
.s1 { color: #CC3300 } /* Literal.String.Single */
.ss { color: #FFCC33 } /* Literal.String.Symbol */
.bp { color: #336666 } /* Name.Builtin.Pseudo */
.vc { color: #003333 } /* Name.Variable.Class */
.vg { color: #003333 } /* Name.Variable.Global */
.vi { color: #003333 } /* Name.Variable.Instance */
.il { color: #FF6600 } /* Literal.Number.Integer.Long */

View File

@ -33,18 +33,18 @@ from recommonmark.parser import CommonMarkParser
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
'breathe'
]
breathe_projects = { "yap": "../../build/docs/xml" }
breathe_projects = { "yap": "/home/vsc/github/yap-6.3/docs/xml" }
breathe_default_project = "yap"
# Add any paths that contain templates here, relative to this directory.
@ -92,7 +92,7 @@ pygments_style = 'sphinx'
todo_include_todos = True
source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser',
'.md': 'recommonmark.parser.CommonMarkParser',
}
# -- Options for HTML output ----------------------------------------------

18
docs/theme.css Normal file
View File

@ -0,0 +1,18 @@
body {
padding-top: 70px;
padding-bottom: 30px;
}
.theme-dropdown .dropdown-menu {
position: static;
display: block;
margin-bottom: 20px;
}
.theme-showcase > p > .btn {
margin: 5px 0;
}
.theme-showcase .navbar .container {
width: auto;
}

9
docs/yap.css Normal file
View File

@ -0,0 +1,9 @@
body { padding-top: 100px; }
/* set a max-width for horizontal fluid layout and make it centered */
.container-fluid {
margin-right: auto;
margin-left: auto;
max-width: 1600px; /* or 950px */
}

2
end Normal file
View File

@ -0,0 +1,2 @@
/** @} */

46
gtags.conf Normal file
View File

@ -0,0 +1,46 @@
#
# Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2010, 2011, 2013,
# 2015, 2016
# Tama Communications Corporation
#
# This file is part of GNU GLOBAL.
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# *
# Configuration file for GNU GLOBAL source code tag system.
#
# Basically, GLOBAL doesn't need this file ('gtags.conf'), because it has
# default values in itsself. If you have the file as '/etc/gtags.conf' or
# "$HOME/.globalrc" in your system then GLOBAL overwrite the default values
# with the values in the file.
#
# The format is similar to termcap(5). You can specify a target with
# GTAGSLABEL environment variable. Default target is 'default'.
#
# If you want to have a common record for yourself, it is recommended to
# use the following method:
#
common:
:skip=Debug/,Release/,Threads/,mxe/,xcode/,codeblocks/,Qt/,xcode/,android/,compile_commands.json,xml/,YAPDroid/app/build/,YAPDroid/lib/build/:HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake:
#
# A common map for both Exuberant Ctags and Universal Ctags.
# Don't include definitions of ctagscom and ctagslib in this entry.
#
default:\
yap:native:user:
yap:\
:tc=common:\
:langmap=Prolog\:.pl.yap.ypp.P.prolog:\
:gtags_parser=Prolog\:$ctagslib:

983
include/dswiatoms.h Normal file
View File

@ -0,0 +1,983 @@
/* This file, dswiatoms.h, was generated automatically
by calling "yap -L misc/buildswiatoms"
and is based on SWIATOMS, copied from the SWI-Prolog distribution
please do not update */
#define ATOM_abort ((atom_t)(0*2+1))
#define ATOM_aborted ((atom_t)(1*2+1))
#define ATOM_abs ((atom_t)(2*2+1))
#define ATOM_access ((atom_t)(3*2+1))
#define ATOM_access_level ((atom_t)(4*2+1))
#define ATOM_acos ((atom_t)(5*2+1))
#define ATOM_acosh ((atom_t)(6*2+1))
#define ATOM_acyclic_term ((atom_t)(7*2+1))
#define ATOM_add_import ((atom_t)(8*2+1))
#define ATOM_address ((atom_t)(9*2+1))
#define ATOM_agc ((atom_t)(10*2+1))
#define ATOM_agc_gained ((atom_t)(11*2+1))
#define ATOM_agc_margin ((atom_t)(12*2+1))
#define ATOM_agc_time ((atom_t)(13*2+1))
#define ATOM_alias ((atom_t)(14*2+1))
#define ATOM_allow_variable_name_as_functor ((atom_t)(15*2+1))
#define ATOM_alnum ((atom_t)(16*2+1))
#define ATOM_alpha ((atom_t)(17*2+1))
#define ATOM_alternative ((atom_t)(18*2+1))
#define ATOM_and ((atom_t)(19*2+1))
#define ATOM_anonvar ((atom_t)(20*2+1))
#define ATOM_append ((atom_t)(21*2+1))
#define ATOM_ar_equals ((atom_t)(22*2+1))
#define ATOM_ar_not_equal ((atom_t)(23*2+1))
#define ATOM_argument ((atom_t)(24*2+1))
#define ATOM_argumentlimit ((atom_t)(25*2+1))
#define ATOM_arity ((atom_t)(26*2+1))
#define ATOM_as ((atom_t)(27*2+1))
#define ATOM_ascii ((atom_t)(28*2+1))
#define ATOM_asin ((atom_t)(29*2+1))
#define ATOM_asinh ((atom_t)(30*2+1))
#define ATOM_assert ((atom_t)(31*2+1))
#define ATOM_asserta ((atom_t)(32*2+1))
#define ATOM_at ((atom_t)(33*2+1))
#define ATOM_at_equals ((atom_t)(34*2+1))
#define ATOM_at_exit ((atom_t)(35*2+1))
#define ATOM_at_larger ((atom_t)(36*2+1))
#define ATOM_at_larger_eq ((atom_t)(37*2+1))
#define ATOM_at_not_equals ((atom_t)(38*2+1))
#define ATOM_at_smaller ((atom_t)(39*2+1))
#define ATOM_at_smaller_eq ((atom_t)(40*2+1))
#define ATOM_atan ((atom_t)(41*2+1))
#define ATOM_atan2 ((atom_t)(42*2+1))
#define ATOM_atanh ((atom_t)(43*2+1))
#define ATOM_atom ((atom_t)(44*2+1))
#define ATOM_atom_garbage_collection ((atom_t)(45*2+1))
#define ATOM_atomic ((atom_t)(46*2+1))
#define ATOM_atoms ((atom_t)(47*2+1))
#define ATOM_att ((atom_t)(48*2+1))
#define ATOM_attributes ((atom_t)(49*2+1))
#define ATOM_attvar ((atom_t)(50*2+1))
#define ATOM_autoload ((atom_t)(51*2+1))
#define ATOM_back_quotes ((atom_t)(52*2+1))
#define ATOM_backslash ((atom_t)(53*2+1))
#define ATOM_backtrace ((atom_t)(54*2+1))
#define ATOM_backquoted_string ((atom_t)(55*2+1))
#define ATOM_bar ((atom_t)(56*2+1))
#define ATOM_base ((atom_t)(57*2+1))
#define ATOM_begin ((atom_t)(58*2+1))
#define ATOM_binary ((atom_t)(59*2+1))
#define ATOM_binary_stream ((atom_t)(60*2+1))
#define ATOM_bind ((atom_t)(61*2+1))
#define ATOM_bitor ((atom_t)(62*2+1))
#define ATOM_blobs ((atom_t)(63*2+1))
#define ATOM_bof ((atom_t)(64*2+1))
#define ATOM_bom ((atom_t)(65*2+1))
#define ATOM_bool ((atom_t)(66*2+1))
#define ATOM_boolean ((atom_t)(67*2+1))
#define ATOM_brace_term_position ((atom_t)(68*2+1))
#define ATOM_brace_terms ((atom_t)(69*2+1))
#define ATOM_break ((atom_t)(70*2+1))
#define ATOM_break_level ((atom_t)(71*2+1))
#define ATOM_btree ((atom_t)(72*2+1))
#define ATOM_buffer ((atom_t)(73*2+1))
#define ATOM_buffer_size ((atom_t)(74*2+1))
#define ATOM_built_in_procedure ((atom_t)(75*2+1))
#define ATOM_busy ((atom_t)(76*2+1))
#define ATOM_byte ((atom_t)(77*2+1))
#define ATOM_c_stack ((atom_t)(78*2+1))
#define ATOM_call ((atom_t)(79*2+1))
#define ATOM_callable ((atom_t)(80*2+1))
#define ATOM_canceled ((atom_t)(81*2+1))
#define ATOM_case_sensitive_file_names ((atom_t)(82*2+1))
#define ATOM_catch ((atom_t)(83*2+1))
#define ATOM_category ((atom_t)(84*2+1))
#define ATOM_ceil ((atom_t)(85*2+1))
#define ATOM_ceiling ((atom_t)(86*2+1))
#define ATOM_char_type ((atom_t)(87*2+1))
#define ATOM_character ((atom_t)(88*2+1))
#define ATOM_character_code ((atom_t)(89*2+1))
#define ATOM_character_escapes ((atom_t)(90*2+1))
#define ATOM_chars ((atom_t)(91*2+1))
#define ATOM_chdir ((atom_t)(92*2+1))
#define ATOM_chmod ((atom_t)(93*2+1))
#define ATOM_choice ((atom_t)(94*2+1))
#define ATOM_class ((atom_t)(95*2+1))
#define ATOM_clause ((atom_t)(96*2+1))
#define ATOM_clause_reference ((atom_t)(97*2+1))
#define ATOM_clauses ((atom_t)(98*2+1))
#define ATOM_close ((atom_t)(99*2+1))
#define ATOM_close_on_abort ((atom_t)(100*2+1))
#define ATOM_close_on_exec ((atom_t)(101*2+1))
#define ATOM_close_option ((atom_t)(102*2+1))
#define ATOM_cm ((atom_t)(103*2+1))
#define ATOM_cntrl ((atom_t)(104*2+1))
#define ATOM_co ((atom_t)(105*2+1))
#define ATOM_codes ((atom_t)(106*2+1))
#define ATOM_collected ((atom_t)(107*2+1))
#define ATOM_collections ((atom_t)(108*2+1))
#define ATOM_colon ((atom_t)(109*2+1))
#define ATOM_colon_eq ((atom_t)(110*2+1))
#define ATOM_comma ((atom_t)(111*2+1))
#define ATOM_comments ((atom_t)(112*2+1))
#define ATOM_compound ((atom_t)(113*2+1))
#define ATOM_context ((atom_t)(114*2+1))
#define ATOM_context_module ((atom_t)(115*2+1))
#define ATOM_continue ((atom_t)(116*2+1))
#define ATOM_copysign ((atom_t)(117*2+1))
#define ATOM_core ((atom_t)(118*2+1))
#define ATOM_core_left ((atom_t)(119*2+1))
#define ATOM_cos ((atom_t)(120*2+1))
#define ATOM_cosh ((atom_t)(121*2+1))
#define ATOM_cputime ((atom_t)(122*2+1))
#define ATOM_create ((atom_t)(123*2+1))
#define ATOM_csym ((atom_t)(124*2+1))
#define ATOM_csymf ((atom_t)(125*2+1))
#define ATOM_cumulative ((atom_t)(126*2+1))
#define ATOM_curl ((atom_t)(127*2+1))
#define ATOM_current ((atom_t)(128*2+1))
#define ATOM_current_input ((atom_t)(129*2+1))
#define ATOM_current_locale ((atom_t)(130*2+1))
#define ATOM_current_output ((atom_t)(131*2+1))
#define ATOM_cut ((atom_t)(132*2+1))
#define ATOM_cut_call ((atom_t)(133*2+1))
#define ATOM_cut_exit ((atom_t)(134*2+1))
#define ATOM_cut_parent ((atom_t)(135*2+1))
#define ATOM_cutted ((atom_t)(136*2+1))
#define ATOM_cycles ((atom_t)(137*2+1))
#define ATOM_cyclic_term ((atom_t)(138*2+1))
#define ATOM_dand ((atom_t)(139*2+1))
#define ATOM_date ((atom_t)(140*2+1))
#define ATOM_db_reference ((atom_t)(141*2+1))
#define ATOM_dc_call_prolog ((atom_t)(142*2+1))
#define ATOM_dcall ((atom_t)(143*2+1))
#define ATOM_dcall_cleanup ((atom_t)(144*2+1))
#define ATOM_dcatch ((atom_t)(145*2+1))
#define ATOM_dcut ((atom_t)(146*2+1))
#define ATOM_dde_error ((atom_t)(147*2+1))
#define ATOM_dde_handle ((atom_t)(148*2+1))
#define ATOM_deadline ((atom_t)(149*2+1))
#define ATOM_debug ((atom_t)(150*2+1))
#define ATOM_debug_on_error ((atom_t)(151*2+1))
#define ATOM_debug_topic ((atom_t)(152*2+1))
#define ATOM_debugger_print_options ((atom_t)(153*2+1))
#define ATOM_debugger_show_context ((atom_t)(154*2+1))
#define ATOM_debugging ((atom_t)(155*2+1))
#define ATOM_dec10 ((atom_t)(156*2+1))
#define ATOM_decimal_point ((atom_t)(157*2+1))
#define ATOM_default ((atom_t)(158*2+1))
#define ATOM_defined ((atom_t)(159*2+1))
#define ATOM_delete ((atom_t)(160*2+1))
#define ATOM_depth_limit_exceeded ((atom_t)(161*2+1))
#define ATOM_destroy ((atom_t)(162*2+1))
#define ATOM_detached ((atom_t)(163*2+1))
#define ATOM_detect ((atom_t)(164*2+1))
#define ATOM_development ((atom_t)(165*2+1))
#define ATOM_dexit ((atom_t)(166*2+1))
#define ATOM_dforeign_registered ((atom_t)(167*2+1))
#define ATOM_dgarbage_collect ((atom_t)(168*2+1))
#define ATOM_digit ((atom_t)(169*2+1))
#define ATOM_directory ((atom_t)(170*2+1))
#define ATOM_discontiguous ((atom_t)(171*2+1))
#define ATOM_div ((atom_t)(172*2+1))
#define ATOM_divide ((atom_t)(173*2+1))
#define ATOM_dload ((atom_t)(174*2+1))
#define ATOM_dmessage_queue ((atom_t)(175*2+1))
#define ATOM_dmutex ((atom_t)(176*2+1))
#define ATOM_domain_error ((atom_t)(177*2+1))
#define ATOM_dos ((atom_t)(178*2+1))
#define ATOM_dot ((atom_t)(179*2+1))
#define ATOM_dot_lists ((atom_t)(180*2+1))
#define ATOM_dots ((atom_t)(181*2+1))
#define ATOM_double_quotes ((atom_t)(182*2+1))
#define ATOM_doublestar ((atom_t)(183*2+1))
#define ATOM_dparse_quasi_quotations ((atom_t)(184*2+1))
#define ATOM_dprof_node ((atom_t)(185*2+1))
#define ATOM_dquasi_quotation ((atom_t)(186*2+1))
#define ATOM_dquery_loop ((atom_t)(187*2+1))
#define ATOM_drecover_and_rethrow ((atom_t)(188*2+1))
#define ATOM_dstream ((atom_t)(189*2+1))
#define ATOM_dthread_init ((atom_t)(190*2+1))
#define ATOM_dthrow ((atom_t)(191*2+1))
#define ATOM_dtime ((atom_t)(192*2+1))
#define ATOM_dtoplevel ((atom_t)(193*2+1))
#define ATOM_duplicate_key ((atom_t)(194*2+1))
#define ATOM_dvard ((atom_t)(195*2+1))
#define ATOM_dvariable_names ((atom_t)(196*2+1))
#define ATOM_dwakeup ((atom_t)(197*2+1))
#define ATOM_dynamic ((atom_t)(198*2+1))
#define ATOM_e ((atom_t)(199*2+1))
#define ATOM_encoding ((atom_t)(200*2+1))
#define ATOM_end ((atom_t)(201*2+1))
#define ATOM_end_of_file ((atom_t)(202*2+1))
#define ATOM_end_of_line ((atom_t)(203*2+1))
#define ATOM_end_of_stream ((atom_t)(204*2+1))
#define ATOM_environment ((atom_t)(205*2+1))
#define ATOM_eof ((atom_t)(206*2+1))
#define ATOM_eof_action ((atom_t)(207*2+1))
#define ATOM_eof_code ((atom_t)(208*2+1))
#define ATOM_epsilon ((atom_t)(209*2+1))
#define ATOM_equal ((atom_t)(210*2+1))
#define ATOM_equals ((atom_t)(211*2+1))
#define ATOM_erase ((atom_t)(212*2+1))
#define ATOM_erased ((atom_t)(213*2+1))
#define ATOM_erf ((atom_t)(214*2+1))
#define ATOM_erfc ((atom_t)(215*2+1))
#define ATOM_error ((atom_t)(216*2+1))
#define ATOM_eval ((atom_t)(217*2+1))
#define ATOM_evaluable ((atom_t)(218*2+1))
#define ATOM_evaluation_error ((atom_t)(219*2+1))
#define ATOM_exception ((atom_t)(220*2+1))
#define ATOM_exclusive ((atom_t)(221*2+1))
#define ATOM_execute ((atom_t)(222*2+1))
#define ATOM_exist ((atom_t)(223*2+1))
#define ATOM_existence_error ((atom_t)(224*2+1))
#define ATOM_exit ((atom_t)(225*2+1))
#define ATOM_exited ((atom_t)(226*2+1))
#define ATOM_exp ((atom_t)(227*2+1))
#define ATOM_export ((atom_t)(228*2+1))
#define ATOM_exported ((atom_t)(229*2+1))
#define ATOM_exports ((atom_t)(230*2+1))
#define ATOM_expression ((atom_t)(231*2+1))
#define ATOM_external_exception ((atom_t)(232*2+1))
#define ATOM_externals ((atom_t)(233*2+1))
#define ATOM_fact ((atom_t)(234*2+1))
#define ATOM_factor ((atom_t)(235*2+1))
#define ATOM_fail ((atom_t)(236*2+1))
#define ATOM_failure_error ((atom_t)(237*2+1))
#define ATOM_false ((atom_t)(238*2+1))
#define ATOM_feature ((atom_t)(239*2+1))
#define ATOM_file ((atom_t)(240*2+1))
#define ATOM_file_name ((atom_t)(241*2+1))
#define ATOM_file_name_variables ((atom_t)(242*2+1))
#define ATOM_file_no ((atom_t)(243*2+1))
#define ATOM_flag ((atom_t)(244*2+1))
#define ATOM_flag_value ((atom_t)(245*2+1))
#define ATOM_float ((atom_t)(246*2+1))
#define ATOM_float_format ((atom_t)(247*2+1))
#define ATOM_float_fractional_part ((atom_t)(248*2+1))
#define ATOM_float_integer_part ((atom_t)(249*2+1))
#define ATOM_float_overflow ((atom_t)(250*2+1))
#define ATOM_float_underflow ((atom_t)(251*2+1))
#define ATOM_floor ((atom_t)(252*2+1))
#define ATOM_force ((atom_t)(253*2+1))
#define ATOM_foreign ((atom_t)(254*2+1))
#define ATOM_foreign_function ((atom_t)(255*2+1))
#define ATOM_foreign_return_value ((atom_t)(256*2+1))
#define ATOM_fork ((atom_t)(257*2+1))
#define ATOM_frame ((atom_t)(258*2+1))
#define ATOM_frame_attribute ((atom_t)(259*2+1))
#define ATOM_frame_finished ((atom_t)(260*2+1))
#define ATOM_frame_reference ((atom_t)(261*2+1))
#define ATOM_free_of_attvar ((atom_t)(262*2+1))
#define ATOM_freeze ((atom_t)(263*2+1))
#define ATOM_full ((atom_t)(264*2+1))
#define ATOM_fullstop ((atom_t)(265*2+1))
#define ATOM_functor_name ((atom_t)(266*2+1))
#define ATOM_functors ((atom_t)(267*2+1))
#define ATOM_fx ((atom_t)(268*2+1))
#define ATOM_fy ((atom_t)(269*2+1))
#define ATOM_garbage_collected ((atom_t)(270*2+1))
#define ATOM_garbage_collection ((atom_t)(271*2+1))
#define ATOM_gc ((atom_t)(272*2+1))
#define ATOM_gcd ((atom_t)(273*2+1))
#define ATOM_gctime ((atom_t)(274*2+1))
#define ATOM_gdiv ((atom_t)(275*2+1))
#define ATOM_getcwd ((atom_t)(276*2+1))
#define ATOM_global ((atom_t)(277*2+1))
#define ATOM_global_shifts ((atom_t)(278*2+1))
#define ATOM_global_stack ((atom_t)(279*2+1))
#define ATOM_globallimit ((atom_t)(280*2+1))
#define ATOM_globalused ((atom_t)(281*2+1))
#define ATOM_goal ((atom_t)(282*2+1))
#define ATOM_goal_expansion ((atom_t)(283*2+1))
#define ATOM_grammar ((atom_t)(284*2+1))
#define ATOM_graph ((atom_t)(285*2+1))
#define ATOM_ground ((atom_t)(286*2+1))
#define ATOM_grouping ((atom_t)(287*2+1))
#define ATOM_gvar ((atom_t)(288*2+1))
#define ATOM_halt ((atom_t)(289*2+1))
#define ATOM_has_alternatives ((atom_t)(290*2+1))
#define ATOM_hash ((atom_t)(291*2+1))
#define ATOM_hashed ((atom_t)(292*2+1))
#define ATOM_hat ((atom_t)(293*2+1))
#define ATOM_heap_gc ((atom_t)(294*2+1))
#define ATOM_heapused ((atom_t)(295*2+1))
#define ATOM_help ((atom_t)(296*2+1))
#define ATOM_hidden ((atom_t)(297*2+1))
#define ATOM_hide_childs ((atom_t)(298*2+1))
#define ATOM_history_depth ((atom_t)(299*2+1))
#define ATOM_ifthen ((atom_t)(300*2+1))
#define ATOM_ignore ((atom_t)(301*2+1))
#define ATOM_ignore_ops ((atom_t)(302*2+1))
#define ATOM_import_into ((atom_t)(303*2+1))
#define ATOM_import_type ((atom_t)(304*2+1))
#define ATOM_imported ((atom_t)(305*2+1))
#define ATOM_imported_procedure ((atom_t)(306*2+1))
#define ATOM_index ((atom_t)(307*2+1))
#define ATOM_indexed ((atom_t)(308*2+1))
#define ATOM_inf ((atom_t)(309*2+1))
#define ATOM_inferences ((atom_t)(310*2+1))
#define ATOM_infinite ((atom_t)(311*2+1))
#define ATOM_informational ((atom_t)(312*2+1))
#define ATOM_init_file ((atom_t)(313*2+1))
#define ATOM_initialization ((atom_t)(314*2+1))
#define ATOM_input ((atom_t)(315*2+1))
#define ATOM_inserted_char ((atom_t)(316*2+1))
#define ATOM_instantiation_error ((atom_t)(317*2+1))
#define ATOM_int ((atom_t)(318*2+1))
#define ATOM_int64_t ((atom_t)(319*2+1))
#define ATOM_int_overflow ((atom_t)(320*2+1))
#define ATOM_integer ((atom_t)(321*2+1))
#define ATOM_integer_expression ((atom_t)(322*2+1))
#define ATOM_interrupt ((atom_t)(323*2+1))
#define ATOM_io_error ((atom_t)(324*2+1))
#define ATOM_io_mode ((atom_t)(325*2+1))
#define ATOM_ioctl ((atom_t)(326*2+1))
#define ATOM_is ((atom_t)(327*2+1))
#define ATOM_iso ((atom_t)(328*2+1))
#define ATOM_iso_latin_1 ((atom_t)(329*2+1))
#define ATOM_isovar ((atom_t)(330*2+1))
#define ATOM_join ((atom_t)(331*2+1))
#define ATOM_jump ((atom_t)(332*2+1))
#define ATOM_kernel ((atom_t)(333*2+1))
#define ATOM_key ((atom_t)(334*2+1))
#define ATOM_key_value_position ((atom_t)(335*2+1))
#define ATOM_larger ((atom_t)(336*2+1))
#define ATOM_larger_equal ((atom_t)(337*2+1))
#define ATOM_level ((atom_t)(338*2+1))
#define ATOM_lgamma ((atom_t)(339*2+1))
#define ATOM_li ((atom_t)(340*2+1))
#define ATOM_library ((atom_t)(341*2+1))
#define ATOM_limit ((atom_t)(342*2+1))
#define ATOM_line ((atom_t)(343*2+1))
#define ATOM_line_count ((atom_t)(344*2+1))
#define ATOM_line_position ((atom_t)(345*2+1))
#define ATOM_list ((atom_t)(346*2+1))
#define ATOM_list_position ((atom_t)(347*2+1))
#define ATOM_listing ((atom_t)(348*2+1))
#define ATOM_local ((atom_t)(349*2+1))
#define ATOM_local_shifts ((atom_t)(350*2+1))
#define ATOM_local_stack ((atom_t)(351*2+1))
#define ATOM_locale ((atom_t)(352*2+1))
#define ATOM_locale_property ((atom_t)(353*2+1))
#define ATOM_locallimit ((atom_t)(354*2+1))
#define ATOM_localused ((atom_t)(355*2+1))
#define ATOM_lock ((atom_t)(356*2+1))
#define ATOM_locked ((atom_t)(357*2+1))
#define ATOM_log ((atom_t)(358*2+1))
#define ATOM_log10 ((atom_t)(359*2+1))
#define ATOM_long ((atom_t)(360*2+1))
#define ATOM_loose ((atom_t)(361*2+1))
#define ATOM_low ((atom_t)(362*2+1))
#define ATOM_lower ((atom_t)(363*2+1))
#define ATOM_lsb ((atom_t)(364*2+1))
#define ATOM_lshift ((atom_t)(365*2+1))
#define ATOM_main ((atom_t)(366*2+1))
#define ATOM_map ((atom_t)(367*2+1))
#define ATOM_map_position ((atom_t)(368*2+1))
#define ATOM_map_punify ((atom_t)(369*2+1))
#define ATOM_map_select ((atom_t)(370*2+1))
#define ATOM_mark ((atom_t)(371*2+1))
#define ATOM_matches ((atom_t)(372*2+1))
#define ATOM_max ((atom_t)(373*2+1))
#define ATOM_max_arity ((atom_t)(374*2+1))
#define ATOM_max_dde_handles ((atom_t)(375*2+1))
#define ATOM_max_depth ((atom_t)(376*2+1))
#define ATOM_max_files ((atom_t)(377*2+1))
#define ATOM_max_frame_size ((atom_t)(378*2+1))
#define ATOM_max_length ((atom_t)(379*2+1))
#define ATOM_max_path_length ((atom_t)(380*2+1))
#define ATOM_max_size ((atom_t)(381*2+1))
#define ATOM_max_variable_length ((atom_t)(382*2+1))
#define ATOM_memory ((atom_t)(383*2+1))
#define ATOM_message ((atom_t)(384*2+1))
#define ATOM_message_lines ((atom_t)(385*2+1))
#define ATOM_message_queue ((atom_t)(386*2+1))
#define ATOM_message_queue_property ((atom_t)(387*2+1))
#define ATOM_meta_argument ((atom_t)(388*2+1))
#define ATOM_meta_argument_specifier ((atom_t)(389*2+1))
#define ATOM_meta_atom ((atom_t)(390*2+1))
#define ATOM_meta_predicate ((atom_t)(391*2+1))
#define ATOM_min ((atom_t)(392*2+1))
#define ATOM_min_free ((atom_t)(393*2+1))
#define ATOM_minus ((atom_t)(394*2+1))
#define ATOM_mismatched_char ((atom_t)(395*2+1))
#define ATOM_mod ((atom_t)(396*2+1))
#define ATOM_mode ((atom_t)(397*2+1))
#define ATOM_modify ((atom_t)(398*2+1))
#define ATOM_module ((atom_t)(399*2+1))
#define ATOM_module_class ((atom_t)(400*2+1))
#define ATOM_module_property ((atom_t)(401*2+1))
#define ATOM_module_transparent ((atom_t)(402*2+1))
#define ATOM_modules ((atom_t)(403*2+1))
#define ATOM_msb ((atom_t)(404*2+1))
#define ATOM_multifile ((atom_t)(405*2+1))
#define ATOM_mutex ((atom_t)(406*2+1))
#define ATOM_mutex_option ((atom_t)(407*2+1))
#define ATOM_mutex_property ((atom_t)(408*2+1))
#define ATOM_natural ((atom_t)(409*2+1))
#define ATOM_newline ((atom_t)(410*2+1))
#define ATOM_next_argument ((atom_t)(411*2+1))
#define ATOM_nil ((atom_t)(412*2+1))
#define ATOM_nl ((atom_t)(413*2+1))
#define ATOM_nlink ((atom_t)(414*2+1))
#define ATOM_no_memory ((atom_t)(415*2+1))
#define ATOM_nodebug ((atom_t)(416*2+1))
#define ATOM_non_empty_list ((atom_t)(417*2+1))
#define ATOM_non_terminal ((atom_t)(418*2+1))
#define ATOM_none ((atom_t)(419*2+1))
#define ATOM_nonvar ((atom_t)(420*2+1))
#define ATOM_noprofile ((atom_t)(421*2+1))
#define ATOM_normal ((atom_t)(422*2+1))
#define ATOM_not ((atom_t)(423*2+1))
#define ATOM_not_equals ((atom_t)(424*2+1))
#define ATOM_not_implemented ((atom_t)(425*2+1))
#define ATOM_not_less_than_one ((atom_t)(426*2+1))
#define ATOM_not_less_than_zero ((atom_t)(427*2+1))
#define ATOM_not_provable ((atom_t)(428*2+1))
#define ATOM_not_strict_equal ((atom_t)(429*2+1))
#define ATOM_not_unique ((atom_t)(430*2+1))
#define ATOM_number ((atom_t)(431*2+1))
#define ATOM_number_of_clauses ((atom_t)(432*2+1))
#define ATOM_number_of_rules ((atom_t)(433*2+1))
#define ATOM_numbervar_option ((atom_t)(434*2+1))
#define ATOM_numbervars ((atom_t)(435*2+1))
#define ATOM_occurs_check ((atom_t)(436*2+1))
#define ATOM_octet ((atom_t)(437*2+1))
#define ATOM_off ((atom_t)(438*2+1))
#define ATOM_on ((atom_t)(439*2+1))
#define ATOM_open ((atom_t)(440*2+1))
#define ATOM_operator ((atom_t)(441*2+1))
#define ATOM_operator_priority ((atom_t)(442*2+1))
#define ATOM_operator_specifier ((atom_t)(443*2+1))
#define ATOM_optimise ((atom_t)(444*2+1))
#define ATOM_or ((atom_t)(445*2+1))
#define ATOM_order ((atom_t)(446*2+1))
#define ATOM_output ((atom_t)(447*2+1))
#define ATOM_owner ((atom_t)(448*2+1))
#define ATOM_pair ((atom_t)(449*2+1))
#define ATOM_paren ((atom_t)(450*2+1))
#define ATOM_parent ((atom_t)(451*2+1))
#define ATOM_parent_goal ((atom_t)(452*2+1))
#define ATOM_partial ((atom_t)(453*2+1))
#define ATOM_past ((atom_t)(454*2+1))
#define ATOM_past_end_of_stream ((atom_t)(455*2+1))
#define ATOM_pattern ((atom_t)(456*2+1))
#define ATOM_pc ((atom_t)(457*2+1))
#define ATOM_peek ((atom_t)(458*2+1))
#define ATOM_period ((atom_t)(459*2+1))
#define ATOM_permission_error ((atom_t)(460*2+1))
#define ATOM_pi ((atom_t)(461*2+1))
#define ATOM_pipe ((atom_t)(462*2+1))
#define ATOM_plain ((atom_t)(463*2+1))
#define ATOM_plus ((atom_t)(464*2+1))
#define ATOM_popcount ((atom_t)(465*2+1))
#define ATOM_portray ((atom_t)(466*2+1))
#define ATOM_portray_goal ((atom_t)(467*2+1))
#define ATOM_position ((atom_t)(468*2+1))
#define ATOM_posix ((atom_t)(469*2+1))
#define ATOM_powm ((atom_t)(470*2+1))
#define ATOM_predicate_indicator ((atom_t)(471*2+1))
#define ATOM_predicates ((atom_t)(472*2+1))
#define ATOM_print ((atom_t)(473*2+1))
#define ATOM_print_message ((atom_t)(474*2+1))
#define ATOM_priority ((atom_t)(475*2+1))
#define ATOM_private_procedure ((atom_t)(476*2+1))
#define ATOM_procedure ((atom_t)(477*2+1))
#define ATOM_process_comment ((atom_t)(478*2+1))
#define ATOM_process_cputime ((atom_t)(479*2+1))
#define ATOM_profile_mode ((atom_t)(480*2+1))
#define ATOM_profile_no_cpu_time ((atom_t)(481*2+1))
#define ATOM_profile_node ((atom_t)(482*2+1))
#define ATOM_program ((atom_t)(483*2+1))
#define ATOM_program_counter ((atom_t)(484*2+1))
#define ATOM_prolog ((atom_t)(485*2+1))
#define ATOM_prolog_atom_start ((atom_t)(486*2+1))
#define ATOM_prolog_flag ((atom_t)(487*2+1))
#define ATOM_prolog_flag_access ((atom_t)(488*2+1))
#define ATOM_prolog_flag_option ((atom_t)(489*2+1))
#define ATOM_prolog_flag_type ((atom_t)(490*2+1))
#define ATOM_prolog_identifier_continue ((atom_t)(491*2+1))
#define ATOM_prolog_symbol ((atom_t)(492*2+1))
#define ATOM_prolog_var_start ((atom_t)(493*2+1))
#define ATOM_prompt ((atom_t)(494*2+1))
#define ATOM_property ((atom_t)(495*2+1))
#define ATOM_protocol ((atom_t)(496*2+1))
#define ATOM_prove ((atom_t)(497*2+1))
#define ATOM_public ((atom_t)(498*2+1))
#define ATOM_punct ((atom_t)(499*2+1))
#define ATOM_quasi_quotation ((atom_t)(500*2+1))
#define ATOM_quasi_quotation_position ((atom_t)(501*2+1))
#define ATOM_quasi_quotation_syntax ((atom_t)(502*2+1))
#define ATOM_quasi_quotations ((atom_t)(503*2+1))
#define ATOM_query ((atom_t)(504*2+1))
#define ATOM_question_mark ((atom_t)(505*2+1))
#define ATOM_queue_option ((atom_t)(506*2+1))
#define ATOM_quiet ((atom_t)(507*2+1))
#define ATOM_quote ((atom_t)(508*2+1))
#define ATOM_quoted ((atom_t)(509*2+1))
#define ATOM_radix ((atom_t)(510*2+1))
#define ATOM_random ((atom_t)(511*2+1))
#define ATOM_random_float ((atom_t)(512*2+1))
#define ATOM_random_option ((atom_t)(513*2+1))
#define ATOM_rational ((atom_t)(514*2+1))
#define ATOM_rationalize ((atom_t)(515*2+1))
#define ATOM_rdiv ((atom_t)(516*2+1))
#define ATOM_read ((atom_t)(517*2+1))
#define ATOM_read_only ((atom_t)(518*2+1))
#define ATOM_read_option ((atom_t)(519*2+1))
#define ATOM_read_write ((atom_t)(520*2+1))
#define ATOM_readline ((atom_t)(521*2+1))
#define ATOM_real_time ((atom_t)(522*2+1))
#define ATOM_receiver ((atom_t)(523*2+1))
#define ATOM_record ((atom_t)(524*2+1))
#define ATOM_record_position ((atom_t)(525*2+1))
#define ATOM_redefine ((atom_t)(526*2+1))
#define ATOM_redo ((atom_t)(527*2+1))
#define ATOM_redo_in_skip ((atom_t)(528*2+1))
#define ATOM_references ((atom_t)(529*2+1))
#define ATOM_rem ((atom_t)(530*2+1))
#define ATOM_rename ((atom_t)(531*2+1))
#define ATOM_repeat ((atom_t)(532*2+1))
#define ATOM_report_error ((atom_t)(533*2+1))
#define ATOM_reposition ((atom_t)(534*2+1))
#define ATOM_representation_error ((atom_t)(535*2+1))
#define ATOM_representation_errors ((atom_t)(536*2+1))
#define ATOM_reset ((atom_t)(537*2+1))
#define ATOM_resource_error ((atom_t)(538*2+1))
#define ATOM_resource_handle ((atom_t)(539*2+1))
#define ATOM_retry ((atom_t)(540*2+1))
#define ATOM_round ((atom_t)(541*2+1))
#define ATOM_rshift ((atom_t)(542*2+1))
#define ATOM_running ((atom_t)(543*2+1))
#define ATOM_runtime ((atom_t)(544*2+1))
#define ATOM_save_class ((atom_t)(545*2+1))
#define ATOM_save_option ((atom_t)(546*2+1))
#define ATOM_scripting ((atom_t)(547*2+1))
#define ATOM_see ((atom_t)(548*2+1))
#define ATOM_seed ((atom_t)(549*2+1))
#define ATOM_seek_method ((atom_t)(550*2+1))
#define ATOM_select ((atom_t)(551*2+1))
#define ATOM_semicolon ((atom_t)(552*2+1))
#define ATOM_separated ((atom_t)(553*2+1))
#define ATOM_set ((atom_t)(554*2+1))
#define ATOM_set_end_of_stream ((atom_t)(555*2+1))
#define ATOM_setup_call_catcher_cleanup ((atom_t)(556*2+1))
#define ATOM_shared ((atom_t)(557*2+1))
#define ATOM_shared_object ((atom_t)(558*2+1))
#define ATOM_shared_object_handle ((atom_t)(559*2+1))
#define ATOM_shell ((atom_t)(560*2+1))
#define ATOM_shift_time ((atom_t)(561*2+1))
#define ATOM_sign ((atom_t)(562*2+1))
#define ATOM_signal ((atom_t)(563*2+1))
#define ATOM_signal_handler ((atom_t)(564*2+1))
#define ATOM_silent ((atom_t)(565*2+1))
#define ATOM_sin ((atom_t)(566*2+1))
#define ATOM_singletons ((atom_t)(567*2+1))
#define ATOM_sinh ((atom_t)(568*2+1))
#define ATOM_size ((atom_t)(569*2+1))
#define ATOM_size_t ((atom_t)(570*2+1))
#define ATOM_skip ((atom_t)(571*2+1))
#define ATOM_skipped ((atom_t)(572*2+1))
#define ATOM_smaller ((atom_t)(573*2+1))
#define ATOM_smaller_equal ((atom_t)(574*2+1))
#define ATOM_softcut ((atom_t)(575*2+1))
#define ATOM_source_sink ((atom_t)(576*2+1))
#define ATOM_space ((atom_t)(577*2+1))
#define ATOM_spacing ((atom_t)(578*2+1))
#define ATOM_spare ((atom_t)(579*2+1))
#define ATOM_spy ((atom_t)(580*2+1))
#define ATOM_sqrt ((atom_t)(581*2+1))
#define ATOM_stack ((atom_t)(582*2+1))
#define ATOM_stack_parameter ((atom_t)(583*2+1))
#define ATOM_stack_shifts ((atom_t)(584*2+1))
#define ATOM_stacks ((atom_t)(585*2+1))
#define ATOM_stand_alone ((atom_t)(586*2+1))
#define ATOM_standard ((atom_t)(587*2+1))
#define ATOM_star ((atom_t)(588*2+1))
#define ATOM_start ((atom_t)(589*2+1))
#define ATOM_stat ((atom_t)(590*2+1))
#define ATOM_state ((atom_t)(591*2+1))
#define ATOM_static_procedure ((atom_t)(592*2+1))
#define ATOM_statistics ((atom_t)(593*2+1))
#define ATOM_status ((atom_t)(594*2+1))
#define ATOM_stderr ((atom_t)(595*2+1))
#define ATOM_stream ((atom_t)(596*2+1))
#define ATOM_stream_option ((atom_t)(597*2+1))
#define ATOM_stream_or_alias ((atom_t)(598*2+1))
#define ATOM_stream_pair ((atom_t)(599*2+1))
#define ATOM_stream_position ((atom_t)(600*2+1))
#define ATOM_stream_property ((atom_t)(601*2+1))
#define ATOM_stream_type_check ((atom_t)(602*2+1))
#define ATOM_strict_equal ((atom_t)(603*2+1))
#define ATOM_string ((atom_t)(604*2+1))
#define ATOM_string_position ((atom_t)(605*2+1))
#define ATOM_strong ((atom_t)(606*2+1))
#define ATOM_subterm_positions ((atom_t)(607*2+1))
#define ATOM_suffix ((atom_t)(608*2+1))
#define ATOM_symbol_char ((atom_t)(609*2+1))
#define ATOM_syntax_error ((atom_t)(610*2+1))
#define ATOM_syntax_errors ((atom_t)(611*2+1))
#define ATOM_system ((atom_t)(612*2+1))
#define ATOM_SYSTEM_ERROR_INTERNAL ((atom_t)(613*2+1))
#define ATOM_system_init_file ((atom_t)(614*2+1))
#define ATOM_system_thread_id ((atom_t)(615*2+1))
#define ATOM_system_time ((atom_t)(616*2+1))
#define ATOM_tan ((atom_t)(617*2+1))
#define ATOM_tanh ((atom_t)(618*2+1))
#define ATOM_temporary_files ((atom_t)(619*2+1))
#define ATOM_term ((atom_t)(620*2+1))
#define ATOM_term_expansion ((atom_t)(621*2+1))
#define ATOM_term_position ((atom_t)(622*2+1))
#define ATOM_terminal ((atom_t)(623*2+1))
#define ATOM_terminal_capability ((atom_t)(624*2+1))
#define ATOM_test ((atom_t)(625*2+1))
#define ATOM_text ((atom_t)(626*2+1))
#define ATOM_text_stream ((atom_t)(627*2+1))
#define ATOM_thousands_sep ((atom_t)(628*2+1))
#define ATOM_thread ((atom_t)(629*2+1))
#define ATOM_thread_cputime ((atom_t)(630*2+1))
#define ATOM_thread_get_message_option ((atom_t)(631*2+1))
#define ATOM_thread_initialization ((atom_t)(632*2+1))
#define ATOM_thread_local ((atom_t)(633*2+1))
#define ATOM_thread_local_procedure ((atom_t)(634*2+1))
#define ATOM_thread_option ((atom_t)(635*2+1))
#define ATOM_thread_property ((atom_t)(636*2+1))
#define ATOM_threads ((atom_t)(637*2+1))
#define ATOM_threads_created ((atom_t)(638*2+1))
#define ATOM_throw ((atom_t)(639*2+1))
#define ATOM_tilde ((atom_t)(640*2+1))
#define ATOM_time ((atom_t)(641*2+1))
#define ATOM_time_stamp ((atom_t)(642*2+1))
#define ATOM_timeout ((atom_t)(643*2+1))
#define ATOM_timeout_error ((atom_t)(644*2+1))
#define ATOM_timezone ((atom_t)(645*2+1))
#define ATOM_to_lower ((atom_t)(646*2+1))
#define ATOM_to_upper ((atom_t)(647*2+1))
#define ATOM_top ((atom_t)(648*2+1))
#define ATOM_top_level ((atom_t)(649*2+1))
#define ATOM_toplevel ((atom_t)(650*2+1))
#define ATOM_trace ((atom_t)(651*2+1))
#define ATOM_trace_any ((atom_t)(652*2+1))
#define ATOM_trace_call ((atom_t)(653*2+1))
#define ATOM_trace_exit ((atom_t)(654*2+1))
#define ATOM_trace_fail ((atom_t)(655*2+1))
#define ATOM_trace_gc ((atom_t)(656*2+1))
#define ATOM_trace_redo ((atom_t)(657*2+1))
#define ATOM_traceinterc ((atom_t)(658*2+1))
#define ATOM_tracing ((atom_t)(659*2+1))
#define ATOM_trail ((atom_t)(660*2+1))
#define ATOM_trail_shifts ((atom_t)(661*2+1))
#define ATOM_traillimit ((atom_t)(662*2+1))
#define ATOM_trailused ((atom_t)(663*2+1))
#define ATOM_transparent ((atom_t)(664*2+1))
#define ATOM_transposed_char ((atom_t)(665*2+1))
#define ATOM_transposed_word ((atom_t)(666*2+1))
#define ATOM_true ((atom_t)(667*2+1))
#define ATOM_truncate ((atom_t)(668*2+1))
#define ATOM_tty ((atom_t)(669*2+1))
#define ATOM_tty_control ((atom_t)(670*2+1))
#define ATOM_type ((atom_t)(671*2+1))
#define ATOM_type_error ((atom_t)(672*2+1))
#define ATOM_undefined ((atom_t)(673*2+1))
#define ATOM_undefined_global_variable ((atom_t)(674*2+1))
#define ATOM_undefinterc ((atom_t)(675*2+1))
#define ATOM_unicode_be ((atom_t)(676*2+1))
#define ATOM_unicode_le ((atom_t)(677*2+1))
#define ATOM_unify ((atom_t)(678*2+1))
#define ATOM_unify_determined ((atom_t)(679*2+1))
#define ATOM_uninstantiation_error ((atom_t)(680*2+1))
#define ATOM_unique ((atom_t)(681*2+1))
#define ATOM_univ ((atom_t)(682*2+1))
#define ATOM_unknown ((atom_t)(683*2+1))
#define ATOM_unlimited ((atom_t)(684*2+1))
#define ATOM_unload ((atom_t)(685*2+1))
#define ATOM_unlock ((atom_t)(686*2+1))
#define ATOM_unlocked ((atom_t)(687*2+1))
#define ATOM_update ((atom_t)(688*2+1))
#define ATOM_upper ((atom_t)(689*2+1))
#define ATOM_user ((atom_t)(690*2+1))
#define ATOM_user_error ((atom_t)(691*2+1))
#define ATOM_user_flags ((atom_t)(692*2+1))
#define ATOM_user_input ((atom_t)(693*2+1))
#define ATOM_user_output ((atom_t)(694*2+1))
#define ATOM_utc ((atom_t)(695*2+1))
#define ATOM_utf8 ((atom_t)(696*2+1))
#define ATOM_v ((atom_t)(697*2+1))
#define ATOM_var ((atom_t)(698*2+1))
#define ATOM_variable ((atom_t)(699*2+1))
#define ATOM_variable_names ((atom_t)(700*2+1))
#define ATOM_variables ((atom_t)(701*2+1))
#define ATOM_very_deep ((atom_t)(702*2+1))
#define ATOM_vmi ((atom_t)(703*2+1))
#define ATOM_volatile ((atom_t)(704*2+1))
#define ATOM_wait ((atom_t)(705*2+1))
#define ATOM_wakeup ((atom_t)(706*2+1))
#define ATOM_walltime ((atom_t)(707*2+1))
#define ATOM_warning ((atom_t)(708*2+1))
#define ATOM_wchar_t ((atom_t)(709*2+1))
#define ATOM_weak ((atom_t)(710*2+1))
#define ATOM_when_condition ((atom_t)(711*2+1))
#define ATOM_white ((atom_t)(712*2+1))
#define ATOM_write ((atom_t)(713*2+1))
#define ATOM_write_attributes ((atom_t)(714*2+1))
#define ATOM_write_option ((atom_t)(715*2+1))
#define ATOM_xdigit ((atom_t)(716*2+1))
#define ATOM_xf ((atom_t)(717*2+1))
#define ATOM_xfx ((atom_t)(718*2+1))
#define ATOM_xfy ((atom_t)(719*2+1))
#define ATOM_xml ((atom_t)(720*2+1))
#define ATOM_xor ((atom_t)(721*2+1))
#define ATOM_xpceref ((atom_t)(722*2+1))
#define ATOM_yf ((atom_t)(723*2+1))
#define ATOM_yfx ((atom_t)(724*2+1))
#define ATOM_zero_divisor ((atom_t)(725*2+1))
#define FUNCTOR_abs1 ((functor_t)(0*4+2))
#define FUNCTOR_access1 ((functor_t)(1*4+2))
#define FUNCTOR_acos1 ((functor_t)(2*4+2))
#define FUNCTOR_acosh1 ((functor_t)(3*4+2))
#define FUNCTOR_alias1 ((functor_t)(4*4+2))
#define FUNCTOR_and2 ((functor_t)(5*4+2))
#define FUNCTOR_ar_equals2 ((functor_t)(6*4+2))
#define FUNCTOR_ar_not_equal2 ((functor_t)(7*4+2))
#define FUNCTOR_asin1 ((functor_t)(8*4+2))
#define FUNCTOR_asinh1 ((functor_t)(9*4+2))
#define FUNCTOR_assert1 ((functor_t)(10*4+2))
#define FUNCTOR_asserta1 ((functor_t)(11*4+2))
#define FUNCTOR_atan1 ((functor_t)(12*4+2))
#define FUNCTOR_atan2 ((functor_t)(13*4+2))
#define FUNCTOR_atanh1 ((functor_t)(14*4+2))
#define FUNCTOR_atan22 ((functor_t)(15*4+2))
#define FUNCTOR_atom1 ((functor_t)(16*4+2))
#define FUNCTOR_att3 ((functor_t)(17*4+2))
#define FUNCTOR_backslash1 ((functor_t)(18*4+2))
#define FUNCTOR_bar2 ((functor_t)(19*4+2))
#define FUNCTOR_bitor2 ((functor_t)(20*4+2))
#define FUNCTOR_bom1 ((functor_t)(21*4+2))
#define FUNCTOR_brace_term_position3 ((functor_t)(22*4+2))
#define FUNCTOR_break1 ((functor_t)(23*4+2))
#define FUNCTOR_break2 ((functor_t)(24*4+2))
#define FUNCTOR_break3 ((functor_t)(25*4+2))
#define FUNCTOR_buffer1 ((functor_t)(26*4+2))
#define FUNCTOR_buffer_size1 ((functor_t)(27*4+2))
#define FUNCTOR_busy2 ((functor_t)(28*4+2))
#define FUNCTOR_call1 ((functor_t)(29*4+2))
#define FUNCTOR_catch3 ((functor_t)(30*4+2))
#define FUNCTOR_ceil1 ((functor_t)(31*4+2))
#define FUNCTOR_ceiling1 ((functor_t)(32*4+2))
#define FUNCTOR_chars1 ((functor_t)(33*4+2))
#define FUNCTOR_chars2 ((functor_t)(34*4+2))
#define FUNCTOR_class1 ((functor_t)(35*4+2))
#define FUNCTOR_clause1 ((functor_t)(36*4+2))
#define FUNCTOR_close_on_abort1 ((functor_t)(37*4+2))
#define FUNCTOR_close_on_exec1 ((functor_t)(38*4+2))
#define FUNCTOR_codes1 ((functor_t)(39*4+2))
#define FUNCTOR_codes2 ((functor_t)(40*4+2))
#define FUNCTOR_colon2 ((functor_t)(41*4+2))
#define FUNCTOR_comma2 ((functor_t)(42*4+2))
#define FUNCTOR_context2 ((functor_t)(43*4+2))
#define FUNCTOR_copysign2 ((functor_t)(44*4+2))
#define FUNCTOR_cos1 ((functor_t)(45*4+2))
#define FUNCTOR_cosh1 ((functor_t)(46*4+2))
#define FUNCTOR_cputime0 ((functor_t)(47*4+2))
#define FUNCTOR_curl1 ((functor_t)(48*4+2))
#define FUNCTOR_cut_call1 ((functor_t)(49*4+2))
#define FUNCTOR_cut_exit1 ((functor_t)(50*4+2))
#define FUNCTOR_dand2 ((functor_t)(51*4+2))
#define FUNCTOR_date3 ((functor_t)(52*4+2))
#define FUNCTOR_date9 ((functor_t)(53*4+2))
#define FUNCTOR_dc_call_prolog0 ((functor_t)(54*4+2))
#define FUNCTOR_dcall1 ((functor_t)(55*4+2))
#define FUNCTOR_dcut1 ((functor_t)(56*4+2))
#define FUNCTOR_dde_error2 ((functor_t)(57*4+2))
#define FUNCTOR_debugging1 ((functor_t)(58*4+2))
#define FUNCTOR_decimal_point1 ((functor_t)(59*4+2))
#define FUNCTOR_detached1 ((functor_t)(60*4+2))
#define FUNCTOR_dexit2 ((functor_t)(61*4+2))
#define FUNCTOR_dforeign_registered2 ((functor_t)(62*4+2))
#define FUNCTOR_dgarbage_collect1 ((functor_t)(63*4+2))
#define FUNCTOR_div2 ((functor_t)(64*4+2))
#define FUNCTOR_gdiv2 ((functor_t)(65*4+2))
#define FUNCTOR_divide2 ((functor_t)(66*4+2))
#define FUNCTOR_dmessage_queue1 ((functor_t)(67*4+2))
#define FUNCTOR_dmutex1 ((functor_t)(68*4+2))
#define FUNCTOR_domain_error2 ((functor_t)(69*4+2))
#define FUNCTOR_dot2 ((functor_t)(70*4+2))
#define FUNCTOR_doublestar2 ((functor_t)(71*4+2))
#define FUNCTOR_dparse_quasi_quotations2 ((functor_t)(72*4+2))
#define FUNCTOR_dprof_node1 ((functor_t)(73*4+2))
#define FUNCTOR_dquasi_quotation3 ((functor_t)(74*4+2))
#define FUNCTOR_drecover_and_rethrow2 ((functor_t)(75*4+2))
#define FUNCTOR_dstream1 ((functor_t)(76*4+2))
#define FUNCTOR_dthread_init0 ((functor_t)(77*4+2))
#define FUNCTOR_dthrow1 ((functor_t)(78*4+2))
#define FUNCTOR_dtime2 ((functor_t)(79*4+2))
#define FUNCTOR_duplicate_key1 ((functor_t)(80*4+2))
#define FUNCTOR_dvard1 ((functor_t)(81*4+2))
#define FUNCTOR_dwakeup1 ((functor_t)(82*4+2))
#define FUNCTOR_e0 ((functor_t)(83*4+2))
#define FUNCTOR_encoding1 ((functor_t)(84*4+2))
#define FUNCTOR_end_of_stream1 ((functor_t)(85*4+2))
#define FUNCTOR_eof_action1 ((functor_t)(86*4+2))
#define FUNCTOR_epsilon0 ((functor_t)(87*4+2))
#define FUNCTOR_equals2 ((functor_t)(88*4+2))
#define FUNCTOR_erased1 ((functor_t)(89*4+2))
#define FUNCTOR_erf1 ((functor_t)(90*4+2))
#define FUNCTOR_erfc1 ((functor_t)(91*4+2))
#define FUNCTOR_error2 ((functor_t)(92*4+2))
#define FUNCTOR_eval1 ((functor_t)(93*4+2))
#define FUNCTOR_evaluation_error1 ((functor_t)(94*4+2))
#define FUNCTOR_exception1 ((functor_t)(95*4+2))
#define FUNCTOR_exception3 ((functor_t)(96*4+2))
#define FUNCTOR_existence_error2 ((functor_t)(97*4+2))
#define FUNCTOR_existence_error3 ((functor_t)(98*4+2))
#define FUNCTOR_exited1 ((functor_t)(99*4+2))
#define FUNCTOR_exp1 ((functor_t)(100*4+2))
#define FUNCTOR_exports1 ((functor_t)(101*4+2))
#define FUNCTOR_external_exception1 ((functor_t)(102*4+2))
#define FUNCTOR_fail0 ((functor_t)(103*4+2))
#define FUNCTOR_failure_error1 ((functor_t)(104*4+2))
#define FUNCTOR_file1 ((functor_t)(105*4+2))
#define FUNCTOR_file4 ((functor_t)(106*4+2))
#define FUNCTOR_file_name1 ((functor_t)(107*4+2))
#define FUNCTOR_file_no1 ((functor_t)(108*4+2))
#define FUNCTOR_float1 ((functor_t)(109*4+2))
#define FUNCTOR_float_fractional_part1 ((functor_t)(110*4+2))
#define FUNCTOR_float_integer_part1 ((functor_t)(111*4+2))
#define FUNCTOR_floor1 ((functor_t)(112*4+2))
#define FUNCTOR_foreign_function1 ((functor_t)(113*4+2))
#define FUNCTOR_frame3 ((functor_t)(114*4+2))
#define FUNCTOR_frame_finished1 ((functor_t)(115*4+2))
#define FUNCTOR_gcd2 ((functor_t)(116*4+2))
#define FUNCTOR_goal_expansion2 ((functor_t)(117*4+2))
#define FUNCTOR_ground1 ((functor_t)(118*4+2))
#define FUNCTOR_grouping1 ((functor_t)(119*4+2))
#define FUNCTOR_hat2 ((functor_t)(120*4+2))
#define FUNCTOR_ifthen2 ((functor_t)(121*4+2))
#define FUNCTOR_import_into1 ((functor_t)(122*4+2))
#define FUNCTOR_input0 ((functor_t)(123*4+2))
#define FUNCTOR_input4 ((functor_t)(124*4+2))
#define FUNCTOR_integer1 ((functor_t)(125*4+2))
#define FUNCTOR_interrupt1 ((functor_t)(126*4+2))
#define FUNCTOR_io_error2 ((functor_t)(127*4+2))
#define FUNCTOR_is2 ((functor_t)(128*4+2))
#define FUNCTOR_isovar1 ((functor_t)(129*4+2))
#define FUNCTOR_key_value_position7 ((functor_t)(130*4+2))
#define FUNCTOR_larger2 ((functor_t)(131*4+2))
#define FUNCTOR_larger_equal2 ((functor_t)(132*4+2))
#define FUNCTOR_lgamma1 ((functor_t)(133*4+2))
#define FUNCTOR_line_count1 ((functor_t)(134*4+2))
#define FUNCTOR_list_position4 ((functor_t)(135*4+2))
#define FUNCTOR_listing1 ((functor_t)(136*4+2))
#define FUNCTOR_locale1 ((functor_t)(137*4+2))
#define FUNCTOR_locked2 ((functor_t)(138*4+2))
#define FUNCTOR_log1 ((functor_t)(139*4+2))
#define FUNCTOR_log101 ((functor_t)(140*4+2))
#define FUNCTOR_lsb1 ((functor_t)(141*4+2))
#define FUNCTOR_lshift2 ((functor_t)(142*4+2))
#define FUNCTOR_map_position5 ((functor_t)(143*4+2))
#define FUNCTOR_max2 ((functor_t)(144*4+2))
#define FUNCTOR_max_size1 ((functor_t)(145*4+2))
#define FUNCTOR_message_lines1 ((functor_t)(146*4+2))
#define FUNCTOR_min2 ((functor_t)(147*4+2))
#define FUNCTOR_minus1 ((functor_t)(148*4+2))
#define FUNCTOR_minus2 ((functor_t)(149*4+2))
#define FUNCTOR_mod2 ((functor_t)(150*4+2))
#define FUNCTOR_mode1 ((functor_t)(151*4+2))
#define FUNCTOR_msb1 ((functor_t)(152*4+2))
#define FUNCTOR_newline1 ((functor_t)(153*4+2))
#define FUNCTOR_nlink1 ((functor_t)(154*4+2))
#define FUNCTOR_nonvar1 ((functor_t)(155*4+2))
#define FUNCTOR_not_implemented2 ((functor_t)(156*4+2))
#define FUNCTOR_not_provable1 ((functor_t)(157*4+2))
#define FUNCTOR_not_strict_equal2 ((functor_t)(158*4+2))
#define FUNCTOR_occurs_check2 ((functor_t)(159*4+2))
#define FUNCTOR_or1 ((functor_t)(160*4+2))
#define FUNCTOR_output0 ((functor_t)(161*4+2))
#define FUNCTOR_permission_error3 ((functor_t)(162*4+2))
#define FUNCTOR_pi0 ((functor_t)(163*4+2))
#define FUNCTOR_pipe1 ((functor_t)(164*4+2))
#define FUNCTOR_plus1 ((functor_t)(165*4+2))
#define FUNCTOR_plus2 ((functor_t)(166*4+2))
#define FUNCTOR_popcount1 ((functor_t)(167*4+2))
#define FUNCTOR_portray1 ((functor_t)(168*4+2))
#define FUNCTOR_position1 ((functor_t)(169*4+2))
#define FUNCTOR_powm3 ((functor_t)(170*4+2))
#define FUNCTOR_print1 ((functor_t)(171*4+2))
#define FUNCTOR_print_message2 ((functor_t)(172*4+2))
#define FUNCTOR_priority1 ((functor_t)(173*4+2))
#define FUNCTOR_procedure2 ((functor_t)(174*4+2))
#define FUNCTOR_prove1 ((functor_t)(175*4+2))
#define FUNCTOR_prove2 ((functor_t)(176*4+2))
#define FUNCTOR_punct2 ((functor_t)(177*4+2))
#define FUNCTOR_quasi_quotation4 ((functor_t)(178*4+2))
#define FUNCTOR_quasi_quotation_position5 ((functor_t)(179*4+2))
#define FUNCTOR_random1 ((functor_t)(180*4+2))
#define FUNCTOR_random_float0 ((functor_t)(181*4+2))
#define FUNCTOR_rational1 ((functor_t)(182*4+2))
#define FUNCTOR_rationalize1 ((functor_t)(183*4+2))
#define FUNCTOR_rdiv2 ((functor_t)(184*4+2))
#define FUNCTOR_redo1 ((functor_t)(185*4+2))
#define FUNCTOR_rem2 ((functor_t)(186*4+2))
#define FUNCTOR_repeat1 ((functor_t)(187*4+2))
#define FUNCTOR_reposition1 ((functor_t)(188*4+2))
#define FUNCTOR_representation_error1 ((functor_t)(189*4+2))
#define FUNCTOR_representation_errors1 ((functor_t)(190*4+2))
#define FUNCTOR_resource_error1 ((functor_t)(191*4+2))
#define FUNCTOR_retry1 ((functor_t)(192*4+2))
#define FUNCTOR_round1 ((functor_t)(193*4+2))
#define FUNCTOR_rshift2 ((functor_t)(194*4+2))
#define FUNCTOR_semicolon2 ((functor_t)(195*4+2))
#define FUNCTOR_setup_call_catcher_cleanup4 ((functor_t)(196*4+2))
#define FUNCTOR_shared_object2 ((functor_t)(197*4+2))
#define FUNCTOR_shell2 ((functor_t)(198*4+2))
#define FUNCTOR_sign1 ((functor_t)(199*4+2))
#define FUNCTOR_signal1 ((functor_t)(200*4+2))
#define FUNCTOR_signal2 ((functor_t)(201*4+2))
#define FUNCTOR_sin1 ((functor_t)(202*4+2))
#define FUNCTOR_singletons1 ((functor_t)(203*4+2))
#define FUNCTOR_sinh1 ((functor_t)(204*4+2))
#define FUNCTOR_size1 ((functor_t)(205*4+2))
#define FUNCTOR_smaller2 ((functor_t)(206*4+2))
#define FUNCTOR_smaller_equal2 ((functor_t)(207*4+2))
#define FUNCTOR_softcut2 ((functor_t)(208*4+2))
#define FUNCTOR_spy1 ((functor_t)(209*4+2))
#define FUNCTOR_sqrt1 ((functor_t)(210*4+2))
#define FUNCTOR_star2 ((functor_t)(211*4+2))
#define FUNCTOR_status1 ((functor_t)(212*4+2))
#define FUNCTOR_stream4 ((functor_t)(213*4+2))
#define FUNCTOR_stream_position4 ((functor_t)(214*4+2))
#define FUNCTOR_strict_equal2 ((functor_t)(215*4+2))
#define FUNCTOR_string1 ((functor_t)(216*4+2))
#define FUNCTOR_string2 ((functor_t)(217*4+2))
#define FUNCTOR_string_position2 ((functor_t)(218*4+2))
#define FUNCTOR_syntax_error1 ((functor_t)(219*4+2))
#define FUNCTOR_syntax_error3 ((functor_t)(220*4+2))
#define FUNCTOR_tan1 ((functor_t)(221*4+2))
#define FUNCTOR_tanh1 ((functor_t)(222*4+2))
#define FUNCTOR_term_expansion2 ((functor_t)(223*4+2))
#define FUNCTOR_term_position5 ((functor_t)(224*4+2))
#define FUNCTOR_thousands_sep1 ((functor_t)(225*4+2))
#define FUNCTOR_timeout1 ((functor_t)(226*4+2))
#define FUNCTOR_timeout_error2 ((functor_t)(227*4+2))
#define FUNCTOR_trace1 ((functor_t)(228*4+2))
#define FUNCTOR_traceinterc3 ((functor_t)(229*4+2))
#define FUNCTOR_tracing1 ((functor_t)(230*4+2))
#define FUNCTOR_true0 ((functor_t)(231*4+2))
#define FUNCTOR_truncate1 ((functor_t)(232*4+2))
#define FUNCTOR_tty1 ((functor_t)(233*4+2))
#define FUNCTOR_type1 ((functor_t)(234*4+2))
#define FUNCTOR_type_error2 ((functor_t)(235*4+2))
#define FUNCTOR_undefinterc4 ((functor_t)(236*4+2))
#define FUNCTOR_unify_determined2 ((functor_t)(237*4+2))
#define FUNCTOR_uninstantiation_error1 ((functor_t)(238*4+2))
#define FUNCTOR_var1 ((functor_t)(239*4+2))
#define FUNCTOR_wakeup3 ((functor_t)(240*4+2))
#define FUNCTOR_warning3 ((functor_t)(241*4+2))
#define FUNCTOR_xor2 ((functor_t)(242*4+2))
#define FUNCTOR_xpceref1 ((functor_t)(243*4+2))
#define FUNCTOR_xpceref2 ((functor_t)(244*4+2))
#define N_SWI_ATOMS 726
#define N_SWI_FUNCTORS 245
#define N_SWI_HASH_BITS 11
#define N_SWI_HASH 2048

3322
interactiveshell.py Normal file

File diff suppressed because it is too large Load Diff

112
libYap.cmake Normal file
View File

@ -0,0 +1,112 @@
include (Sources)
set(YAP_STARTUP startup.yss)
## define system
# Optional libraries that affect compilation
#
set(CMAKE_TOP_BINARY_DIR ${CMAKE_BINARY_DIR})
set(YAP_PL_SRCDIR ${CMAKE_SOURCE_DIR}/pl)
set(YAP_YAPLIB libYap${CMAKE_SHARED_LIBRARY_SUFFIX})
string(TIMESTAMP YAP_TIMESTAMP)
string( SUBSTRING ${CMAKE_SHARED_LIBRARY_SUFFIX} 1 -1 SO_EXT )
set_property(DIRECTORY PROPERTY CXX_STANDARD 11)
# rpath stuff, hopefully it works
# use, i.e. don't skip the full RPATH for the build tree
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
# when building, don't use the install RPATH already
# (but later on when installing)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
SET(CMAKE_INSTALL_RPATH "${libdir};${dlls}:")
# add the automatically determined parts of the RPATH
# which point to directories outside the build tree to the install RPATH
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set_target_properties(libYap
PROPERTIES OUTPUT_NAME Yap
)
MY_set_target_properties(libYap
PROPERTIES VERSION ${YAP_FULL_VERSION}
SOVERSION ${YAP_MAJOR_VERSION}.${YAP_MINOR_VERSION}
)
if (READLINE_LIBRARIES)
MY_target_link_libraries(libYap READLINE_LIBRARIES)
endif()
# the RPATH to be used when installing, but only if it's not a system directory
LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${libdir};${dlls}" isSystemDir)
IF("${isSystemDir}" STREQUAL "-1")
SET(CMAKE_INSTALL_RPATH "${libdir};${dlls}")
ENDIF("${isSystemDir}" STREQUAL "-1")
include_directories (H
H/generated
include os OPTYap utf8proc JIT/HPP)
include_directories (BEFORE ${CMAKE_BINARY_DIR} ${CMAKE_TOP_BINARY_DIR})
if (ANDROID)
include_directories (CXX ${CMAKE_SOURCE_DIR}/../generated/src/jni)
endif()
find_package (GMP)
macro_log_feature (GMP_FOUND
"GNU libgmp (in some cases MPIR"
"GNU big integers and rationals"
"http://gmplib.org")
list(APPEND YAP_SYSTEM_OPTIONS big_numbers)
if (GMP_FOUND)
# GMP_FOUND - true if GMP/MPIR was found
# GMP_INCLUDE_DIRS - include search path
# GMP_LIBRARIES - libraries to link with
# GMP_LIBRARY_ #add_executable(test ${SOURCES})
#config.h needs this (TODO: change in code latter)
include_directories( ${GMP_INCLUDE_DIRS} )
target_link_libraries(libYap ${GMP_LIBRARIES} )
endif (GMP_FOUND)
include( Threads )
#
# include OS and I/o stuff
#
# convenience libraries
# OPTYap exports important flags
#
list(APPEND YAP_SYSTEM_OPTIONS "thread support")
#utf-8 is not an option
# we use the nice UTF-8 package
#available at the Julia project
MY_ADD_SUBDIRECTORY ( os )
MY_ADD_SUBDIRECTORY ( OPTYap )
MY_ADD_SUBDIRECTORY ( packages/myddas )
MY_ADD_SUBDIRECTORY ( utf8proc )
MY_ADD_SUBDIRECTORY ( library/dialect/swi/fli )
MY_ADD_SUBDIRECTORY ( CXX )
if (READLINE_LIBS)
target_link_libraries(libYap ${READLINE_LIBS} )
endif (READLINE_LIBS)
#bootstrap and saved state
add_subDIRECTORY ( pl )
ADD_SUBDIRECTORY( library)
ADD_SUBDIRECTORY( swi/library "swiLibrary" )

13
library/clp/CMakeList.txt Normal file
View File

@ -0,0 +1,13 @@
set (LIBRARY_PL_VLP
clpfd.pl
clp_distinct.pl
simplex.pl
)
install(FILES ${LIBRARY_PL_CLP}
DESTINATION ${libpl}
)

1283
misc/editors/prolog.js Normal file

File diff suppressed because it is too large Load Diff

79
os/stream.h Normal file
View File

@ -0,0 +1,79 @@
/**************************************************************************
* *
* File: stream.h *
* Last rev: 5/2/88 *
* mods: *
* comments: Stream core routunes *
* *
*************************************************************************/
#ifdef SCCS
static char SccsId[] = "%W% %G%";
#endif
#if __ANDROID__
#undef HAVE_FMEMOPEN
#undef HAVE_OPEN_MEMSTREAM
#endif
#if _WIN32
#undef MAY_WRITE
#undef MAY_READ
#endif
typedef struct mem_desc {
char *buf; /* where the file is being read from/written to */
int src; /* where the space comes from, 0 code space, 1 malloc */
Int max_size; /* maximum buffer size (may be changed dynamically) */
UInt pos; /* cursor */
volatile void *error_handler;
} memHandle;
typedef struct stream_desc {
Atom name;
Term user_name;
FILE *file;
// useful in memory streams
char *nbuf;
size_t nsize;
union {
struct {
#define PLGETC_BUF_SIZE 4096
unsigned char *buf, *ptr;
int left;
} file;
memHandle mem_string;
struct {
int fd;
} pipe;
#if HAVE_SOCKET
struct {
socket_domain domain;
socket_info flags;
int fd;
} socket;
#endif
struct {
const unsigned char *buf, *ptr;
} irl;
} u;
Int charcount, linecount, linepos;
stream_flags_t status;
#if defined(YAPOR) || defined(THREADS)
lockvar streamlock; /* protect stream access */
#endif
int (*stream_putc)(
int, int); /** function the stream uses for writing a single octet */
int (*stream_wputc)(
int, wchar_t); /** function the stream uses for writing a character */
int (*stream_getc)(int); /** function the stream uses for reading an octet. */
int (*stream_wgetc)(
int); /** function the stream uses for reading a character. */
struct vfs *vfs; /** stream belongs to a space */
void *vfs_handle; /** direct handle to stream in that space. */
int (*stream_wgetc_for_read)(
int); /* function the stream uses for parser. It may be different
from above if the ISO character conversion is on */
encoding_t encoding; /** current encoding for stream */
} StreamDesc;

View File

@ -0,0 +1,617 @@
<?xml version="1.0" encoding="UTF-8"?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6"/>
<Project>
<Option title="YAP_CLPBN"/>
<Option makefile_is_custom="1"/>
<Option compiler="clang"/>
<Option virtualFolders="CMake Files\;CMake Files\cmake\;CMake Files\.git\;CMake Files\.git\refs\;CMake Files\.git\refs\heads\;CMake Files\os\;CMake Files\packages\;CMake Files\packages\python\;CMake Files\packages\python\swig\;CMake Files\packages\python\swig\yap4py\;CMake Files\packages\python\yap_kernel\;CMake Files\packages\myddas\;CMake Files\packages\myddas\sqlite3\;CMake Files\packages\myddas\mysql\;CMake Files\packages\myddas\odbc\;CMake Files\packages\myddas\postgres\;CMake Files\packages\myddas\pl\;CMake Files\packages\raptor\;CMake Files\packages\raptor\cmake\;CMake Files\packages\raptor\doc\;CMake Files\packages\xml\;CMake Files\packages\CLPBN\;CMake Files\packages\CLPBN\horus\;CMake Files\packages\cplint\;CMake Files\packages\cplint\approx\;CMake Files\packages\cplint\approx\simplecuddLPADs\;CMake Files\packages\gecode\;CMake Files\packages\real\;CMake Files\packages\jpl\;CMake Files\packages\jpl\src\;CMake Files\packages\jpl\src\c\;CMake Files\packages\jpl\src\java\;CMake Files\packages\bdd\;CMake Files\packages\bdd\simplecudd\;CMake Files\packages\bdd\simplecudd_lfi\;CMake Files\packages\ProbLog\;CMake Files\packages\swi-minisat2\;CMake Files\packages\swi-minisat2\C\;CMake Files\packages\clpqr\;CMake Files\OPTYap\;CMake Files\utf8proc\;CMake Files\library\;CMake Files\library\dialect\;CMake Files\library\dialect\swi\;CMake Files\library\dialect\swi\fli\;CMake Files\library\clp\;CMake Files\library\matlab\;CMake Files\library\matrix\;CMake Files\library\random\;CMake Files\library\regex\;CMake Files\library\rltree\;CMake Files\library\system\;CMake Files\library\tries\;CMake Files\library\ytest\;CMake Files\library\lammpi\;CMake Files\CXX\;CMake Files\H\;CMake Files\pl\;CMake Files\swi\;CMake Files\swi\library\;CMake Files\docs\;CMake Files\docs\source\;"/>
<Build>
<Target title="all">
<Option working_dir="/home/vsc/github/yap-6.3/packages/CLPBN"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/Makefile&quot; VERBOSE=1 all"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="HorusCli">
<Option output="/home/vsc/github/yap-6.3/packages/CLPBN/horus/hcli" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 HorusCli"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="HorusCli/fast">
<Option output="/home/vsc/github/yap-6.3/packages/CLPBN/horus/hcli" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 HorusCli/fast"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="horus">
<Option output="/home/vsc/github/yap-6.3/packages/CLPBN/horus/libhorus.so" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
<Option object_output="./"/>
<Option type="3"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 horus"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="horus/fast">
<Option output="/home/vsc/github/yap-6.3/packages/CLPBN/horus/libhorus.so" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
<Option object_output="./"/>
<Option type="3"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/home/vsc/github/yap-6.3/packages/CLPBN/horus"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 horus/fast"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/CLPBN/horus/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
</Build>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/BayesBall.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/BayesBall.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/BayesBallGraph.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/BayesBallGraph.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/BeliefProp.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/BeliefProp.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ConstraintTree.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ConstraintTree.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/CountingBp.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/CountingBp.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ElimGraph.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ElimGraph.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Factor.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Factor.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/FactorGraph.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/FactorGraph.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/GenericFactor.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/GenericFactor.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/GroundSolver.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/GroundSolver.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Histogram.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Histogram.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/HorusCli.cpp">
<Option target="HorusCli"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/HorusYap.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Indexer.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Indexer.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedBp.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedBp.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedKc.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedKc.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedOperations.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedOperations.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedUtils.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedUtils.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedVe.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedVe.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedWCNF.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/LiftedWCNF.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Parfactor.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Parfactor.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ParfactorList.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ParfactorList.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ProbFormula.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/ProbFormula.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Util.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Util.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Var.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/Var.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/VarElim.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/VarElim.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/WeightedBp.cpp">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/WeightedBp.h">
<Option target="horus"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/CMakeLists.txt">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/GitSHA1.c.in">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/Threads.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/YapTermConfig.h.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/config.h.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/CheckPrototypeExists.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/Config.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindCUDD.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindGMP.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindGecode.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindMySQL.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindODBC.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindPythonModule.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindR.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindReadline.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/GetGitRevisionDescription.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/GetGitRevisionDescription.cmake.in">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroLogFeature.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroOptionalAddSubdirectory.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroOptionalFindPackage.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/PackageDocs.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/Sources.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/TestForHighBitCharacters.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/TestSTDC.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/UseSWIG.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/cudd.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/cudd_config.h.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/disallow.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/java.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/python.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/.git/HEAD">
<Option virtualFolder="CMake Files\.git\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/.git/refs/heads/master">
<Option virtualFolder="CMake Files\.git\refs\heads\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/os/CMakeLists.txt">
<Option virtualFolder="CMake Files\os\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/os/YapIOConfig.h.cmake">
<Option virtualFolder="CMake Files\os\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/MANIFEST.in">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/YAP4PY.md">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/setup.py.in">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/yap4py/__init__.py.in">
<Option virtualFolder="CMake Files\packages\python\swig\yap4py\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/yap_kernel/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\yap_kernel\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\sqlite3\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/mysql/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\mysql\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/odbc/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\odbc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/postgres/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\postgres\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/pl/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\pl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\raptor\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/cmake/FindRAPTOR.cmake">
<Option virtualFolder="CMake Files\packages\raptor\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/doc/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\raptor\doc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/xml/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\xml\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\CLPBN\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\CLPBN\horus\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/cplint/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\cplint\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/cplint/approx/simplecuddLPADs/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\cplint\approx\simplecuddLPADs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/gecode/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\gecode\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/real/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\real\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/real/rconfig.h.cmake">
<Option virtualFolder="CMake Files\packages\real\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/src/c/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\src\c\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/src/java/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\src\java\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\simplecudd\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\simplecudd_lfi\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/ProbLog/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\ProbLog\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/swi-minisat2/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\swi-minisat2\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/swi-minisat2/C/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\swi-minisat2\C\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/clpqr/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\clpqr\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/OPTYap/CMakeLists.txt">
<Option virtualFolder="CMake Files\OPTYap\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/utf8proc/CMakeLists.txt">
<Option virtualFolder="CMake Files\utf8proc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/utf8proc/utils.cmake">
<Option virtualFolder="CMake Files\utf8proc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/dialect/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\dialect\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/dialect/swi/fli/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\dialect\swi\fli\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/clp/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\clp\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/matlab/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\matlab\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/matrix/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\matrix\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/random/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\random\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/regex/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\regex\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/rltree/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\rltree\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/system/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\system\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/system/sys_config.h.cmake">
<Option virtualFolder="CMake Files\library\system\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/tries/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\tries\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/ytest/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\ytest\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/lammpi/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\lammpi\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/CXX/CMakeLists.txt">
<Option virtualFolder="CMake Files\CXX\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/H/CMakeLists.txt">
<Option virtualFolder="CMake Files\H\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/pl/CMakeLists.txt">
<Option virtualFolder="CMake Files\pl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/swi/library/CMakeLists.txt">
<Option virtualFolder="CMake Files\swi\library\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/CMakeLists.txt">
<Option virtualFolder="CMake Files\docs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/Doxyfile.in">
<Option virtualFolder="CMake Files\docs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/source/conf.py.in">
<Option virtualFolder="CMake Files\docs\source\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/source/index.rst">
<Option virtualFolder="CMake Files\docs\source\"/>
</Unit>
</Project>
</CodeBlocks_project_file>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,3 @@
CMAKE_MINIMUM_REQUIRED ( VERSION 2.8 )
PROJECT ( YAP_BDD C )

620
packages/bdd/YAP_BDD.cbp Normal file
View File

@ -0,0 +1,620 @@
<?xml version="1.0" encoding="UTF-8"?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6"/>
<Project>
<Option title="YAP_BDD"/>
<Option makefile_is_custom="1"/>
<Option compiler="clang"/>
<Option virtualFolders="CMake Files\;CMake Files\cmake\;CMake Files\.git\;CMake Files\.git\refs\;CMake Files\.git\refs\heads\;CMake Files\os\;CMake Files\packages\;CMake Files\packages\python\;CMake Files\packages\python\swig\;CMake Files\packages\python\swig\yap4py\;CMake Files\packages\python\yap_kernel\;CMake Files\packages\myddas\;CMake Files\packages\myddas\sqlite3\;CMake Files\packages\myddas\mysql\;CMake Files\packages\myddas\odbc\;CMake Files\packages\myddas\postgres\;CMake Files\packages\myddas\pl\;CMake Files\packages\raptor\;CMake Files\packages\raptor\cmake\;CMake Files\packages\raptor\doc\;CMake Files\packages\xml\;CMake Files\packages\CLPBN\;CMake Files\packages\CLPBN\horus\;CMake Files\packages\cplint\;CMake Files\packages\cplint\approx\;CMake Files\packages\cplint\approx\simplecuddLPADs\;CMake Files\packages\gecode\;CMake Files\packages\real\;CMake Files\packages\jpl\;CMake Files\packages\jpl\src\;CMake Files\packages\jpl\src\c\;CMake Files\packages\jpl\src\java\;CMake Files\packages\bdd\;CMake Files\packages\bdd\simplecudd\;CMake Files\packages\bdd\simplecudd_lfi\;CMake Files\packages\ProbLog\;CMake Files\packages\swi-minisat2\;CMake Files\packages\swi-minisat2\C\;CMake Files\packages\clpqr\;CMake Files\OPTYap\;CMake Files\utf8proc\;CMake Files\library\;CMake Files\library\dialect\;CMake Files\library\dialect\swi\;CMake Files\library\dialect\swi\fli\;CMake Files\library\clp\;CMake Files\library\matlab\;CMake Files\library\matrix\;CMake Files\library\random\;CMake Files\library\regex\;CMake Files\library\rltree\;CMake Files\library\system\;CMake Files\library\tries\;CMake Files\library\ytest\;CMake Files\library\lammpi\;CMake Files\CXX\;CMake Files\H\;CMake Files\pl\;CMake Files\swi\;CMake Files\swi\library\;CMake Files\docs\;CMake Files\docs\source\;"/>
<Build>
<Target title="all">
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 all"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="cudd">
<Option output="/home/vsc/github/yap-6.3/packages/bdd/libcudd.so" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd"/>
<Option object_output="./"/>
<Option type="3"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/usr/local/include"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 cudd"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="cudd/fast">
<Option output="/home/vsc/github/yap-6.3/packages/bdd/libcudd.so" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd"/>
<Option object_output="./"/>
<Option type="3"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/usr/local/include"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 cudd/fast"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="Problogbdd">
<Option output="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/simplecudd" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd/simplecudd"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/usr/local/include"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd/simplecudd"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 Problogbdd"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="Problogbdd/fast">
<Option output="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/simplecudd" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd/simplecudd"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/usr/local/include"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd/simplecudd"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 Problogbdd/fast"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="Problogbdd-Lfi">
<Option output="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/simplecudd_lfi" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/usr/local/include"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 Problogbdd-Lfi"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="Problogbdd-Lfi/fast">
<Option output="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/simplecudd_lfi" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add option="-DDEPTH_LIMIT=1"/>
<Add option="-DCOROUTINING=1"/>
<Add option="-DRATIONAL_TREES=1"/>
<Add option="-D_YAP_NOT_INSTALLED_=1"/>
<Add option="-DHAVE_CONFIG_H=1"/>
<Add option="-D_GNU_SOURCE"/>
<Add option="-DDEBUG=1"/>
<Add option="-DTHREADED_CODE=1"/>
<Add option="-DLOW_LEVEL_TRACER=1"/>
<Add option="-DUTF8PROC=1"/>
<Add option="-DUSE_MYDDAS=1"/>
<Add option="-DMYDDAS_SQLITE3=1"/>
<Add option="-DTABLING=1"/>
<Add directory="/home/vsc/github/yap-6.3"/>
<Add directory="/usr/include/x86_64-linux-gnu"/>
<Add directory="/home/vsc/github/yap-6.3/utf8proc"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas"/>
<Add directory="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/src"/>
<Add directory="/home/vsc/github/yap-6.3/H"/>
<Add directory="/home/vsc/github/yap-6.3/H/generated"/>
<Add directory="/home/vsc/github/yap-6.3/include"/>
<Add directory="/home/vsc/github/yap-6.3/os"/>
<Add directory="/home/vsc/github/yap-6.3/OPTYap"/>
<Add directory="/home/vsc/github/yap-6.3/JIT/HPP"/>
<Add directory="/usr/local/include"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd"/>
<Add directory="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 Problogbdd-Lfi/fast"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
</Build>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/cudd.c">
<Option target="cudd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/general.c">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/general.h">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/problogbdd.c">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/problogmath.c">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/problogmath.h">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/simplecudd.c">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/simplecudd.h">
<Option target="Problogbdd"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/adterror.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/adterror.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/allocate.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/allocate.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/general.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/general.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/iqueue.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/iqueue.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/pqueue.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/pqueue.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/problogbdd_lfi.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/problogmath.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/problogmath.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/simplecudd.c">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/simplecudd.h">
<Option target="Problogbdd-Lfi"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/CMakeLists.txt">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/GitSHA1.c.in">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/Threads.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/YapTermConfig.h.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/config.h.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/CheckPrototypeExists.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/Config.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindCUDD.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindGMP.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindGecode.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindMySQL.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindODBC.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindPythonModule.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindR.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindReadline.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/GetGitRevisionDescription.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/GetGitRevisionDescription.cmake.in">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroLogFeature.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroOptionalAddSubdirectory.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroOptionalFindPackage.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/PackageDocs.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/Sources.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/TestForHighBitCharacters.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/TestSTDC.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/UseSWIG.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/cudd.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/cudd_config.h.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/disallow.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/java.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/python.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/.git/HEAD">
<Option virtualFolder="CMake Files\.git\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/.git/refs/heads/master">
<Option virtualFolder="CMake Files\.git\refs\heads\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/os/CMakeLists.txt">
<Option virtualFolder="CMake Files\os\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/os/YapIOConfig.h.cmake">
<Option virtualFolder="CMake Files\os\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/MANIFEST.in">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/YAP4PY.md">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/setup.py.in">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/yap4py/__init__.py.in">
<Option virtualFolder="CMake Files\packages\python\swig\yap4py\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/yap_kernel/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\yap_kernel\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\sqlite3\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/mysql/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\mysql\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/odbc/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\odbc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/postgres/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\postgres\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/pl/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\pl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\raptor\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/cmake/FindRAPTOR.cmake">
<Option virtualFolder="CMake Files\packages\raptor\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/doc/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\raptor\doc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/xml/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\xml\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\CLPBN\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\CLPBN\horus\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/cplint/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\cplint\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/cplint/approx/simplecuddLPADs/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\cplint\approx\simplecuddLPADs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/gecode/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\gecode\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/real/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\real\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/real/rconfig.h.cmake">
<Option virtualFolder="CMake Files\packages\real\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/src/c/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\src\c\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/src/java/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\src\java\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\simplecudd\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\simplecudd_lfi\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/ProbLog/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\ProbLog\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/swi-minisat2/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\swi-minisat2\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/swi-minisat2/C/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\swi-minisat2\C\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/clpqr/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\clpqr\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/OPTYap/CMakeLists.txt">
<Option virtualFolder="CMake Files\OPTYap\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/utf8proc/CMakeLists.txt">
<Option virtualFolder="CMake Files\utf8proc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/utf8proc/utils.cmake">
<Option virtualFolder="CMake Files\utf8proc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/dialect/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\dialect\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/dialect/swi/fli/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\dialect\swi\fli\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/clp/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\clp\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/matlab/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\matlab\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/matrix/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\matrix\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/random/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\random\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/regex/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\regex\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/rltree/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\rltree\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/system/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\system\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/system/sys_config.h.cmake">
<Option virtualFolder="CMake Files\library\system\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/tries/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\tries\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/ytest/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\ytest\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/lammpi/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\lammpi\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/CXX/CMakeLists.txt">
<Option virtualFolder="CMake Files\CXX\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/H/CMakeLists.txt">
<Option virtualFolder="CMake Files\H\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/pl/CMakeLists.txt">
<Option virtualFolder="CMake Files\pl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/swi/library/CMakeLists.txt">
<Option virtualFolder="CMake Files\swi\library\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/CMakeLists.txt">
<Option virtualFolder="CMake Files\docs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/Doxyfile.in">
<Option virtualFolder="CMake Files\docs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/source/conf.py.in">
<Option virtualFolder="CMake Files\docs\source\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/source/index.rst">
<Option virtualFolder="CMake Files\docs\source\"/>
</Unit>
</Project>
</CodeBlocks_project_file>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
// -*- c++ -*-
//=============================================================================
// Copyright (C) 2011 by Denys Duchier
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation, either version 3 of the License, or (at your
// option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//=============================================================================
static RestartMode gecode_RestartMode_from_term(YAP_Term);
static FloatRelType gecode_FloatRelType_from_term(YAP_Term);
static ReifyMode gecode_ReifyMode_from_term(YAP_Term);
static IntRelType gecode_IntRelType_from_term(YAP_Term);
static BoolOpType gecode_BoolOpType_from_term(YAP_Term);
static IntPropLevel gecode_IntPropLevel_from_term(YAP_Term);
static TaskType gecode_TaskType_from_term(YAP_Term);
static TraceEvent gecode_TraceEvent_from_term(YAP_Term);
static SetRelType gecode_SetRelType_from_term(YAP_Term);
static SetOpType gecode_SetOpType_from_term(YAP_Term);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,681 @@
// -*- c++ -*-
//=============================================================================
// Copyright (C) 2011 by Denys Duchier
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation, either version 3 of the License, or (at your
// option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//=============================================================================
{ YAP_Atom X= YAP_LookupAtom("RM_NONE");
gecode_RM_NONE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_CONSTANT");
gecode_RM_CONSTANT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_LINEAR");
gecode_RM_LINEAR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_LUBY");
gecode_RM_LUBY = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_GEOMETRIC");
gecode_RM_GEOMETRIC = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_EQ");
gecode_FRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_NQ");
gecode_FRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_LQ");
gecode_FRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_LE");
gecode_FRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_GQ");
gecode_FRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_GR");
gecode_FRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_EQV");
gecode_RM_EQV = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_IMP");
gecode_RM_IMP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_PMI");
gecode_RM_PMI = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_EQ");
gecode_IRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_NQ");
gecode_IRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_LQ");
gecode_IRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_LE");
gecode_IRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_GQ");
gecode_IRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_GR");
gecode_IRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_AND");
gecode_BOT_AND = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_OR");
gecode_BOT_OR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_IMP");
gecode_BOT_IMP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_EQV");
gecode_BOT_EQV = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_XOR");
gecode_BOT_XOR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_DEF");
gecode_IPL_DEF = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_VAL");
gecode_IPL_VAL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BND");
gecode_IPL_BND = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_DOM");
gecode_IPL_DOM = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_SPEED");
gecode_IPL_SPEED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_MEMORY");
gecode_IPL_MEMORY = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BASIC");
gecode_IPL_BASIC = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_ADVANCED");
gecode_IPL_ADVANCED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BASIC_ADVANCED");
gecode_IPL_BASIC_ADVANCED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TT_FIXP");
gecode_TT_FIXP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TT_FIXS");
gecode_TT_FIXS = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TT_FIXE");
gecode_TT_FIXE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_INIT");
gecode_TE_INIT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_PRUNE");
gecode_TE_PRUNE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_FIX");
gecode_TE_FIX = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_FAIL");
gecode_TE_FAIL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_DONE");
gecode_TE_DONE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_PROPAGATE");
gecode_TE_PROPAGATE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_COMMIT");
gecode_TE_COMMIT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_EQ");
gecode_SRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_NQ");
gecode_SRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_SUB");
gecode_SRT_SUB = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_SUP");
gecode_SRT_SUP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_DISJ");
gecode_SRT_DISJ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_CMPL");
gecode_SRT_CMPL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_LQ");
gecode_SRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_LE");
gecode_SRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_GQ");
gecode_SRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_GR");
gecode_SRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_UNION");
gecode_SOT_UNION = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_DUNION");
gecode_SOT_DUNION = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_INTER");
gecode_SOT_INTER = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_MINUS");
gecode_SOT_MINUS = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
YAP_UserCPredicate("gecode_constraint_branch_1", gecode_constraint_branch_1, 2);
YAP_UserCPredicate("gecode_constraint_convex_2", gecode_constraint_convex_2, 2);
YAP_UserCPredicate("gecode_constraint_convex_3", gecode_constraint_convex_3, 3);
YAP_UserCPredicate("gecode_constraint_abs_4", gecode_constraint_abs_4, 3);
YAP_UserCPredicate("gecode_constraint_abs_5", gecode_constraint_abs_5, 3);
YAP_UserCPredicate("gecode_constraint_abs_6", gecode_constraint_abs_6, 4);
YAP_UserCPredicate("gecode_constraint_argmax_7", gecode_constraint_argmax_7, 4);
YAP_UserCPredicate("gecode_constraint_argmax_11", gecode_constraint_argmax_11, 4);
YAP_UserCPredicate("gecode_constraint_argmax_8", gecode_constraint_argmax_8, 5);
YAP_UserCPredicate("gecode_constraint_argmax_12", gecode_constraint_argmax_12, 5);
YAP_UserCPredicate("gecode_constraint_argmax_9", gecode_constraint_argmax_9, 6);
YAP_UserCPredicate("gecode_constraint_argmax_10", gecode_constraint_argmax_10, 3);
YAP_UserCPredicate("gecode_constraint_argmin_13", gecode_constraint_argmin_13, 4);
YAP_UserCPredicate("gecode_constraint_argmin_17", gecode_constraint_argmin_17, 4);
YAP_UserCPredicate("gecode_constraint_argmin_14", gecode_constraint_argmin_14, 5);
YAP_UserCPredicate("gecode_constraint_argmin_18", gecode_constraint_argmin_18, 5);
YAP_UserCPredicate("gecode_constraint_argmin_15", gecode_constraint_argmin_15, 6);
YAP_UserCPredicate("gecode_constraint_argmin_16", gecode_constraint_argmin_16, 3);
YAP_UserCPredicate("gecode_constraint_assign_19", gecode_constraint_assign_19, 3);
YAP_UserCPredicate("gecode_constraint_assign_21", gecode_constraint_assign_21, 3);
YAP_UserCPredicate("gecode_constraint_assign_24", gecode_constraint_assign_24, 3);
YAP_UserCPredicate("gecode_constraint_assign_27", gecode_constraint_assign_27, 3);
YAP_UserCPredicate("gecode_constraint_assign_30", gecode_constraint_assign_30, 3);
YAP_UserCPredicate("gecode_constraint_assign_33", gecode_constraint_assign_33, 3);
YAP_UserCPredicate("gecode_constraint_assign_35", gecode_constraint_assign_35, 3);
YAP_UserCPredicate("gecode_constraint_assign_37", gecode_constraint_assign_37, 3);
YAP_UserCPredicate("gecode_constraint_assign_20", gecode_constraint_assign_20, 4);
YAP_UserCPredicate("gecode_constraint_assign_22", gecode_constraint_assign_22, 4);
YAP_UserCPredicate("gecode_constraint_assign_25", gecode_constraint_assign_25, 4);
YAP_UserCPredicate("gecode_constraint_assign_28", gecode_constraint_assign_28, 4);
YAP_UserCPredicate("gecode_constraint_assign_31", gecode_constraint_assign_31, 4);
YAP_UserCPredicate("gecode_constraint_assign_34", gecode_constraint_assign_34, 4);
YAP_UserCPredicate("gecode_constraint_assign_36", gecode_constraint_assign_36, 4);
YAP_UserCPredicate("gecode_constraint_assign_38", gecode_constraint_assign_38, 4);
YAP_UserCPredicate("gecode_constraint_assign_23", gecode_constraint_assign_23, 5);
YAP_UserCPredicate("gecode_constraint_assign_26", gecode_constraint_assign_26, 5);
YAP_UserCPredicate("gecode_constraint_assign_29", gecode_constraint_assign_29, 5);
YAP_UserCPredicate("gecode_constraint_assign_32", gecode_constraint_assign_32, 5);
YAP_UserCPredicate("gecode_constraint_binpacking_39", gecode_constraint_binpacking_39, 4);
YAP_UserCPredicate("gecode_constraint_binpacking_40", gecode_constraint_binpacking_40, 5);
YAP_UserCPredicate("gecode_constraint_branch_41", gecode_constraint_branch_41, 3);
YAP_UserCPredicate("gecode_constraint_branch_85", gecode_constraint_branch_85, 3);
YAP_UserCPredicate("gecode_constraint_branch_87", gecode_constraint_branch_87, 3);
YAP_UserCPredicate("gecode_constraint_branch_89", gecode_constraint_branch_89, 3);
YAP_UserCPredicate("gecode_constraint_branch_42", gecode_constraint_branch_42, 4);
YAP_UserCPredicate("gecode_constraint_branch_43", gecode_constraint_branch_43, 4);
YAP_UserCPredicate("gecode_constraint_branch_49", gecode_constraint_branch_49, 4);
YAP_UserCPredicate("gecode_constraint_branch_55", gecode_constraint_branch_55, 4);
YAP_UserCPredicate("gecode_constraint_branch_58", gecode_constraint_branch_58, 4);
YAP_UserCPredicate("gecode_constraint_branch_64", gecode_constraint_branch_64, 4);
YAP_UserCPredicate("gecode_constraint_branch_70", gecode_constraint_branch_70, 4);
YAP_UserCPredicate("gecode_constraint_branch_76", gecode_constraint_branch_76, 4);
YAP_UserCPredicate("gecode_constraint_branch_82", gecode_constraint_branch_82, 4);
YAP_UserCPredicate("gecode_constraint_branch_86", gecode_constraint_branch_86, 4);
YAP_UserCPredicate("gecode_constraint_branch_88", gecode_constraint_branch_88, 4);
YAP_UserCPredicate("gecode_constraint_branch_90", gecode_constraint_branch_90, 4);
YAP_UserCPredicate("gecode_constraint_branch_44", gecode_constraint_branch_44, 5);
YAP_UserCPredicate("gecode_constraint_branch_46", gecode_constraint_branch_46, 5);
YAP_UserCPredicate("gecode_constraint_branch_50", gecode_constraint_branch_50, 5);
YAP_UserCPredicate("gecode_constraint_branch_52", gecode_constraint_branch_52, 5);
YAP_UserCPredicate("gecode_constraint_branch_56", gecode_constraint_branch_56, 5);
YAP_UserCPredicate("gecode_constraint_branch_59", gecode_constraint_branch_59, 5);
YAP_UserCPredicate("gecode_constraint_branch_61", gecode_constraint_branch_61, 5);
YAP_UserCPredicate("gecode_constraint_branch_65", gecode_constraint_branch_65, 5);
YAP_UserCPredicate("gecode_constraint_branch_67", gecode_constraint_branch_67, 5);
YAP_UserCPredicate("gecode_constraint_branch_71", gecode_constraint_branch_71, 5);
YAP_UserCPredicate("gecode_constraint_branch_73", gecode_constraint_branch_73, 5);
YAP_UserCPredicate("gecode_constraint_branch_77", gecode_constraint_branch_77, 5);
YAP_UserCPredicate("gecode_constraint_branch_79", gecode_constraint_branch_79, 5);
YAP_UserCPredicate("gecode_constraint_branch_83", gecode_constraint_branch_83, 5);
YAP_UserCPredicate("gecode_constraint_branch_45", gecode_constraint_branch_45, 6);
YAP_UserCPredicate("gecode_constraint_branch_47", gecode_constraint_branch_47, 6);
YAP_UserCPredicate("gecode_constraint_branch_51", gecode_constraint_branch_51, 6);
YAP_UserCPredicate("gecode_constraint_branch_53", gecode_constraint_branch_53, 6);
YAP_UserCPredicate("gecode_constraint_branch_57", gecode_constraint_branch_57, 6);
YAP_UserCPredicate("gecode_constraint_branch_60", gecode_constraint_branch_60, 6);
YAP_UserCPredicate("gecode_constraint_branch_62", gecode_constraint_branch_62, 6);
YAP_UserCPredicate("gecode_constraint_branch_66", gecode_constraint_branch_66, 6);
YAP_UserCPredicate("gecode_constraint_branch_68", gecode_constraint_branch_68, 6);
YAP_UserCPredicate("gecode_constraint_branch_72", gecode_constraint_branch_72, 6);
YAP_UserCPredicate("gecode_constraint_branch_74", gecode_constraint_branch_74, 6);
YAP_UserCPredicate("gecode_constraint_branch_78", gecode_constraint_branch_78, 6);
YAP_UserCPredicate("gecode_constraint_branch_80", gecode_constraint_branch_80, 6);
YAP_UserCPredicate("gecode_constraint_branch_84", gecode_constraint_branch_84, 6);
YAP_UserCPredicate("gecode_constraint_branch_48", gecode_constraint_branch_48, 7);
YAP_UserCPredicate("gecode_constraint_branch_54", gecode_constraint_branch_54, 7);
YAP_UserCPredicate("gecode_constraint_branch_63", gecode_constraint_branch_63, 7);
YAP_UserCPredicate("gecode_constraint_branch_69", gecode_constraint_branch_69, 7);
YAP_UserCPredicate("gecode_constraint_branch_75", gecode_constraint_branch_75, 7);
YAP_UserCPredicate("gecode_constraint_branch_81", gecode_constraint_branch_81, 7);
YAP_UserCPredicate("gecode_constraint_cardinality_91", gecode_constraint_cardinality_91, 4);
YAP_UserCPredicate("gecode_constraint_cardinality_92", gecode_constraint_cardinality_92, 4);
YAP_UserCPredicate("gecode_constraint_channel_93", gecode_constraint_channel_93, 3);
YAP_UserCPredicate("gecode_constraint_channel_95", gecode_constraint_channel_95, 3);
YAP_UserCPredicate("gecode_constraint_channel_98", gecode_constraint_channel_98, 3);
YAP_UserCPredicate("gecode_constraint_channel_102", gecode_constraint_channel_102, 3);
YAP_UserCPredicate("gecode_constraint_channel_103", gecode_constraint_channel_103, 3);
YAP_UserCPredicate("gecode_constraint_channel_94", gecode_constraint_channel_94, 4);
YAP_UserCPredicate("gecode_constraint_channel_96", gecode_constraint_channel_96, 4);
YAP_UserCPredicate("gecode_constraint_channel_99", gecode_constraint_channel_99, 4);
YAP_UserCPredicate("gecode_constraint_channel_97", gecode_constraint_channel_97, 5);
YAP_UserCPredicate("gecode_constraint_channel_100", gecode_constraint_channel_100, 5);
YAP_UserCPredicate("gecode_constraint_channel_101", gecode_constraint_channel_101, 6);
YAP_UserCPredicate("gecode_constraint_circuit_104", gecode_constraint_circuit_104, 5);
YAP_UserCPredicate("gecode_constraint_circuit_107", gecode_constraint_circuit_107, 5);
YAP_UserCPredicate("gecode_constraint_circuit_110", gecode_constraint_circuit_110, 5);
YAP_UserCPredicate("gecode_constraint_circuit_105", gecode_constraint_circuit_105, 6);
YAP_UserCPredicate("gecode_constraint_circuit_108", gecode_constraint_circuit_108, 6);
YAP_UserCPredicate("gecode_constraint_circuit_111", gecode_constraint_circuit_111, 6);
YAP_UserCPredicate("gecode_constraint_circuit_106", gecode_constraint_circuit_106, 4);
YAP_UserCPredicate("gecode_constraint_circuit_115", gecode_constraint_circuit_115, 4);
YAP_UserCPredicate("gecode_constraint_circuit_109", gecode_constraint_circuit_109, 7);
YAP_UserCPredicate("gecode_constraint_circuit_112", gecode_constraint_circuit_112, 2);
YAP_UserCPredicate("gecode_constraint_circuit_113", gecode_constraint_circuit_113, 3);
YAP_UserCPredicate("gecode_constraint_circuit_114", gecode_constraint_circuit_114, 3);
YAP_UserCPredicate("gecode_constraint_clause_116", gecode_constraint_clause_116, 5);
YAP_UserCPredicate("gecode_constraint_clause_118", gecode_constraint_clause_118, 5);
YAP_UserCPredicate("gecode_constraint_clause_117", gecode_constraint_clause_117, 6);
YAP_UserCPredicate("gecode_constraint_clause_119", gecode_constraint_clause_119, 6);
YAP_UserCPredicate("gecode_constraint_count_120", gecode_constraint_count_120, 5);
YAP_UserCPredicate("gecode_constraint_count_122", gecode_constraint_count_122, 5);
YAP_UserCPredicate("gecode_constraint_count_125", gecode_constraint_count_125, 5);
YAP_UserCPredicate("gecode_constraint_count_129", gecode_constraint_count_129, 5);
YAP_UserCPredicate("gecode_constraint_count_130", gecode_constraint_count_130, 5);
YAP_UserCPredicate("gecode_constraint_count_132", gecode_constraint_count_132, 5);
YAP_UserCPredicate("gecode_constraint_count_135", gecode_constraint_count_135, 5);
YAP_UserCPredicate("gecode_constraint_count_138", gecode_constraint_count_138, 5);
YAP_UserCPredicate("gecode_constraint_count_140", gecode_constraint_count_140, 5);
YAP_UserCPredicate("gecode_constraint_count_142", gecode_constraint_count_142, 5);
YAP_UserCPredicate("gecode_constraint_count_144", gecode_constraint_count_144, 5);
YAP_UserCPredicate("gecode_constraint_count_121", gecode_constraint_count_121, 6);
YAP_UserCPredicate("gecode_constraint_count_123", gecode_constraint_count_123, 6);
YAP_UserCPredicate("gecode_constraint_count_131", gecode_constraint_count_131, 6);
YAP_UserCPredicate("gecode_constraint_count_133", gecode_constraint_count_133, 6);
YAP_UserCPredicate("gecode_constraint_count_139", gecode_constraint_count_139, 6);
YAP_UserCPredicate("gecode_constraint_count_141", gecode_constraint_count_141, 6);
YAP_UserCPredicate("gecode_constraint_count_143", gecode_constraint_count_143, 6);
YAP_UserCPredicate("gecode_constraint_count_145", gecode_constraint_count_145, 6);
YAP_UserCPredicate("gecode_constraint_count_124", gecode_constraint_count_124, 4);
YAP_UserCPredicate("gecode_constraint_count_127", gecode_constraint_count_127, 4);
YAP_UserCPredicate("gecode_constraint_count_128", gecode_constraint_count_128, 4);
YAP_UserCPredicate("gecode_constraint_count_134", gecode_constraint_count_134, 4);
YAP_UserCPredicate("gecode_constraint_count_137", gecode_constraint_count_137, 4);
YAP_UserCPredicate("gecode_constraint_count_126", gecode_constraint_count_126, 3);
YAP_UserCPredicate("gecode_constraint_count_136", gecode_constraint_count_136, 3);
YAP_UserCPredicate("gecode_constraint_cumulative_146", gecode_constraint_cumulative_146, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_149", gecode_constraint_cumulative_149, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_152", gecode_constraint_cumulative_152, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_156", gecode_constraint_cumulative_156, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_158", gecode_constraint_cumulative_158, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_161", gecode_constraint_cumulative_161, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_164", gecode_constraint_cumulative_164, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_168", gecode_constraint_cumulative_168, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_147", gecode_constraint_cumulative_147, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_150", gecode_constraint_cumulative_150, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_153", gecode_constraint_cumulative_153, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_154", gecode_constraint_cumulative_154, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_157", gecode_constraint_cumulative_157, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_159", gecode_constraint_cumulative_159, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_162", gecode_constraint_cumulative_162, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_165", gecode_constraint_cumulative_165, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_166", gecode_constraint_cumulative_166, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_169", gecode_constraint_cumulative_169, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_148", gecode_constraint_cumulative_148, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_160", gecode_constraint_cumulative_160, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_151", gecode_constraint_cumulative_151, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_155", gecode_constraint_cumulative_155, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_163", gecode_constraint_cumulative_163, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_167", gecode_constraint_cumulative_167, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_170", gecode_constraint_cumulatives_170, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_172", gecode_constraint_cumulatives_172, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_174", gecode_constraint_cumulatives_174, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_176", gecode_constraint_cumulatives_176, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_178", gecode_constraint_cumulatives_178, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_180", gecode_constraint_cumulatives_180, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_182", gecode_constraint_cumulatives_182, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_184", gecode_constraint_cumulatives_184, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_171", gecode_constraint_cumulatives_171, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_173", gecode_constraint_cumulatives_173, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_175", gecode_constraint_cumulatives_175, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_177", gecode_constraint_cumulatives_177, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_179", gecode_constraint_cumulatives_179, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_181", gecode_constraint_cumulatives_181, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_183", gecode_constraint_cumulatives_183, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_185", gecode_constraint_cumulatives_185, 9);
YAP_UserCPredicate("gecode_constraint_distinct_186", gecode_constraint_distinct_186, 3);
YAP_UserCPredicate("gecode_constraint_distinct_188", gecode_constraint_distinct_188, 3);
YAP_UserCPredicate("gecode_constraint_distinct_190", gecode_constraint_distinct_190, 3);
YAP_UserCPredicate("gecode_constraint_distinct_193", gecode_constraint_distinct_193, 3);
YAP_UserCPredicate("gecode_constraint_distinct_187", gecode_constraint_distinct_187, 4);
YAP_UserCPredicate("gecode_constraint_distinct_189", gecode_constraint_distinct_189, 4);
YAP_UserCPredicate("gecode_constraint_distinct_191", gecode_constraint_distinct_191, 4);
YAP_UserCPredicate("gecode_constraint_distinct_192", gecode_constraint_distinct_192, 2);
YAP_UserCPredicate("gecode_constraint_div_194", gecode_constraint_div_194, 4);
YAP_UserCPredicate("gecode_constraint_div_195", gecode_constraint_div_195, 4);
YAP_UserCPredicate("gecode_constraint_div_196", gecode_constraint_div_196, 5);
YAP_UserCPredicate("gecode_constraint_divmod_197", gecode_constraint_divmod_197, 5);
YAP_UserCPredicate("gecode_constraint_divmod_198", gecode_constraint_divmod_198, 6);
YAP_UserCPredicate("gecode_constraint_dom_199", gecode_constraint_dom_199, 3);
YAP_UserCPredicate("gecode_constraint_dom_201", gecode_constraint_dom_201, 3);
YAP_UserCPredicate("gecode_constraint_dom_203", gecode_constraint_dom_203, 3);
YAP_UserCPredicate("gecode_constraint_dom_205", gecode_constraint_dom_205, 3);
YAP_UserCPredicate("gecode_constraint_dom_206", gecode_constraint_dom_206, 3);
YAP_UserCPredicate("gecode_constraint_dom_208", gecode_constraint_dom_208, 3);
YAP_UserCPredicate("gecode_constraint_dom_212", gecode_constraint_dom_212, 3);
YAP_UserCPredicate("gecode_constraint_dom_214", gecode_constraint_dom_214, 3);
YAP_UserCPredicate("gecode_constraint_dom_220", gecode_constraint_dom_220, 3);
YAP_UserCPredicate("gecode_constraint_dom_222", gecode_constraint_dom_222, 3);
YAP_UserCPredicate("gecode_constraint_dom_223", gecode_constraint_dom_223, 3);
YAP_UserCPredicate("gecode_constraint_dom_229", gecode_constraint_dom_229, 3);
YAP_UserCPredicate("gecode_constraint_dom_235", gecode_constraint_dom_235, 3);
YAP_UserCPredicate("gecode_constraint_dom_243", gecode_constraint_dom_243, 3);
YAP_UserCPredicate("gecode_constraint_dom_200", gecode_constraint_dom_200, 4);
YAP_UserCPredicate("gecode_constraint_dom_202", gecode_constraint_dom_202, 4);
YAP_UserCPredicate("gecode_constraint_dom_204", gecode_constraint_dom_204, 4);
YAP_UserCPredicate("gecode_constraint_dom_207", gecode_constraint_dom_207, 4);
YAP_UserCPredicate("gecode_constraint_dom_209", gecode_constraint_dom_209, 4);
YAP_UserCPredicate("gecode_constraint_dom_210", gecode_constraint_dom_210, 4);
YAP_UserCPredicate("gecode_constraint_dom_213", gecode_constraint_dom_213, 4);
YAP_UserCPredicate("gecode_constraint_dom_215", gecode_constraint_dom_215, 4);
YAP_UserCPredicate("gecode_constraint_dom_216", gecode_constraint_dom_216, 4);
YAP_UserCPredicate("gecode_constraint_dom_218", gecode_constraint_dom_218, 4);
YAP_UserCPredicate("gecode_constraint_dom_221", gecode_constraint_dom_221, 4);
YAP_UserCPredicate("gecode_constraint_dom_224", gecode_constraint_dom_224, 4);
YAP_UserCPredicate("gecode_constraint_dom_225", gecode_constraint_dom_225, 4);
YAP_UserCPredicate("gecode_constraint_dom_227", gecode_constraint_dom_227, 4);
YAP_UserCPredicate("gecode_constraint_dom_230", gecode_constraint_dom_230, 4);
YAP_UserCPredicate("gecode_constraint_dom_233", gecode_constraint_dom_233, 4);
YAP_UserCPredicate("gecode_constraint_dom_236", gecode_constraint_dom_236, 4);
YAP_UserCPredicate("gecode_constraint_dom_237", gecode_constraint_dom_237, 4);
YAP_UserCPredicate("gecode_constraint_dom_239", gecode_constraint_dom_239, 4);
YAP_UserCPredicate("gecode_constraint_dom_211", gecode_constraint_dom_211, 5);
YAP_UserCPredicate("gecode_constraint_dom_217", gecode_constraint_dom_217, 5);
YAP_UserCPredicate("gecode_constraint_dom_219", gecode_constraint_dom_219, 5);
YAP_UserCPredicate("gecode_constraint_dom_226", gecode_constraint_dom_226, 5);
YAP_UserCPredicate("gecode_constraint_dom_228", gecode_constraint_dom_228, 5);
YAP_UserCPredicate("gecode_constraint_dom_231", gecode_constraint_dom_231, 5);
YAP_UserCPredicate("gecode_constraint_dom_234", gecode_constraint_dom_234, 5);
YAP_UserCPredicate("gecode_constraint_dom_238", gecode_constraint_dom_238, 5);
YAP_UserCPredicate("gecode_constraint_dom_240", gecode_constraint_dom_240, 5);
YAP_UserCPredicate("gecode_constraint_dom_242", gecode_constraint_dom_242, 5);
YAP_UserCPredicate("gecode_constraint_dom_232", gecode_constraint_dom_232, 6);
YAP_UserCPredicate("gecode_constraint_dom_241", gecode_constraint_dom_241, 6);
YAP_UserCPredicate("gecode_constraint_element_244", gecode_constraint_element_244, 4);
YAP_UserCPredicate("gecode_constraint_element_246", gecode_constraint_element_246, 4);
YAP_UserCPredicate("gecode_constraint_element_250", gecode_constraint_element_250, 4);
YAP_UserCPredicate("gecode_constraint_element_254", gecode_constraint_element_254, 4);
YAP_UserCPredicate("gecode_constraint_element_256", gecode_constraint_element_256, 4);
YAP_UserCPredicate("gecode_constraint_element_258", gecode_constraint_element_258, 4);
YAP_UserCPredicate("gecode_constraint_element_264", gecode_constraint_element_264, 4);
YAP_UserCPredicate("gecode_constraint_element_245", gecode_constraint_element_245, 5);
YAP_UserCPredicate("gecode_constraint_element_247", gecode_constraint_element_247, 5);
YAP_UserCPredicate("gecode_constraint_element_251", gecode_constraint_element_251, 5);
YAP_UserCPredicate("gecode_constraint_element_255", gecode_constraint_element_255, 5);
YAP_UserCPredicate("gecode_constraint_element_257", gecode_constraint_element_257, 5);
YAP_UserCPredicate("gecode_constraint_element_259", gecode_constraint_element_259, 5);
YAP_UserCPredicate("gecode_constraint_element_265", gecode_constraint_element_265, 5);
YAP_UserCPredicate("gecode_constraint_element_248", gecode_constraint_element_248, 7);
YAP_UserCPredicate("gecode_constraint_element_252", gecode_constraint_element_252, 7);
YAP_UserCPredicate("gecode_constraint_element_260", gecode_constraint_element_260, 7);
YAP_UserCPredicate("gecode_constraint_element_262", gecode_constraint_element_262, 7);
YAP_UserCPredicate("gecode_constraint_element_249", gecode_constraint_element_249, 8);
YAP_UserCPredicate("gecode_constraint_element_253", gecode_constraint_element_253, 8);
YAP_UserCPredicate("gecode_constraint_element_261", gecode_constraint_element_261, 8);
YAP_UserCPredicate("gecode_constraint_element_263", gecode_constraint_element_263, 8);
YAP_UserCPredicate("gecode_constraint_extensional_266", gecode_constraint_extensional_266, 3);
YAP_UserCPredicate("gecode_constraint_extensional_268", gecode_constraint_extensional_268, 3);
YAP_UserCPredicate("gecode_constraint_extensional_270", gecode_constraint_extensional_270, 3);
YAP_UserCPredicate("gecode_constraint_extensional_272", gecode_constraint_extensional_272, 3);
YAP_UserCPredicate("gecode_constraint_extensional_267", gecode_constraint_extensional_267, 4);
YAP_UserCPredicate("gecode_constraint_extensional_269", gecode_constraint_extensional_269, 4);
YAP_UserCPredicate("gecode_constraint_extensional_271", gecode_constraint_extensional_271, 4);
YAP_UserCPredicate("gecode_constraint_extensional_273", gecode_constraint_extensional_273, 4);
YAP_UserCPredicate("gecode_constraint_ite_274", gecode_constraint_ite_274, 5);
YAP_UserCPredicate("gecode_constraint_ite_276", gecode_constraint_ite_276, 5);
YAP_UserCPredicate("gecode_constraint_ite_277", gecode_constraint_ite_277, 5);
YAP_UserCPredicate("gecode_constraint_ite_279", gecode_constraint_ite_279, 5);
YAP_UserCPredicate("gecode_constraint_ite_275", gecode_constraint_ite_275, 6);
YAP_UserCPredicate("gecode_constraint_ite_278", gecode_constraint_ite_278, 6);
YAP_UserCPredicate("gecode_constraint_linear_280", gecode_constraint_linear_280, 4);
YAP_UserCPredicate("gecode_constraint_linear_284", gecode_constraint_linear_284, 4);
YAP_UserCPredicate("gecode_constraint_linear_292", gecode_constraint_linear_292, 4);
YAP_UserCPredicate("gecode_constraint_linear_294", gecode_constraint_linear_294, 4);
YAP_UserCPredicate("gecode_constraint_linear_312", gecode_constraint_linear_312, 4);
YAP_UserCPredicate("gecode_constraint_linear_316", gecode_constraint_linear_316, 4);
YAP_UserCPredicate("gecode_constraint_linear_281", gecode_constraint_linear_281, 5);
YAP_UserCPredicate("gecode_constraint_linear_282", gecode_constraint_linear_282, 5);
YAP_UserCPredicate("gecode_constraint_linear_285", gecode_constraint_linear_285, 5);
YAP_UserCPredicate("gecode_constraint_linear_286", gecode_constraint_linear_286, 5);
YAP_UserCPredicate("gecode_constraint_linear_288", gecode_constraint_linear_288, 5);
YAP_UserCPredicate("gecode_constraint_linear_290", gecode_constraint_linear_290, 5);
YAP_UserCPredicate("gecode_constraint_linear_293", gecode_constraint_linear_293, 5);
YAP_UserCPredicate("gecode_constraint_linear_295", gecode_constraint_linear_295, 5);
YAP_UserCPredicate("gecode_constraint_linear_296", gecode_constraint_linear_296, 5);
YAP_UserCPredicate("gecode_constraint_linear_300", gecode_constraint_linear_300, 5);
YAP_UserCPredicate("gecode_constraint_linear_304", gecode_constraint_linear_304, 5);
YAP_UserCPredicate("gecode_constraint_linear_308", gecode_constraint_linear_308, 5);
YAP_UserCPredicate("gecode_constraint_linear_313", gecode_constraint_linear_313, 5);
YAP_UserCPredicate("gecode_constraint_linear_314", gecode_constraint_linear_314, 5);
YAP_UserCPredicate("gecode_constraint_linear_317", gecode_constraint_linear_317, 5);
YAP_UserCPredicate("gecode_constraint_linear_318", gecode_constraint_linear_318, 5);
YAP_UserCPredicate("gecode_constraint_linear_283", gecode_constraint_linear_283, 6);
YAP_UserCPredicate("gecode_constraint_linear_287", gecode_constraint_linear_287, 6);
YAP_UserCPredicate("gecode_constraint_linear_289", gecode_constraint_linear_289, 6);
YAP_UserCPredicate("gecode_constraint_linear_291", gecode_constraint_linear_291, 6);
YAP_UserCPredicate("gecode_constraint_linear_297", gecode_constraint_linear_297, 6);
YAP_UserCPredicate("gecode_constraint_linear_298", gecode_constraint_linear_298, 6);
YAP_UserCPredicate("gecode_constraint_linear_301", gecode_constraint_linear_301, 6);
YAP_UserCPredicate("gecode_constraint_linear_302", gecode_constraint_linear_302, 6);
YAP_UserCPredicate("gecode_constraint_linear_305", gecode_constraint_linear_305, 6);
YAP_UserCPredicate("gecode_constraint_linear_306", gecode_constraint_linear_306, 6);
YAP_UserCPredicate("gecode_constraint_linear_309", gecode_constraint_linear_309, 6);
YAP_UserCPredicate("gecode_constraint_linear_310", gecode_constraint_linear_310, 6);
YAP_UserCPredicate("gecode_constraint_linear_315", gecode_constraint_linear_315, 6);
YAP_UserCPredicate("gecode_constraint_linear_319", gecode_constraint_linear_319, 6);
YAP_UserCPredicate("gecode_constraint_linear_299", gecode_constraint_linear_299, 7);
YAP_UserCPredicate("gecode_constraint_linear_303", gecode_constraint_linear_303, 7);
YAP_UserCPredicate("gecode_constraint_linear_307", gecode_constraint_linear_307, 7);
YAP_UserCPredicate("gecode_constraint_linear_311", gecode_constraint_linear_311, 7);
YAP_UserCPredicate("gecode_constraint_max_320", gecode_constraint_max_320, 3);
YAP_UserCPredicate("gecode_constraint_max_321", gecode_constraint_max_321, 3);
YAP_UserCPredicate("gecode_constraint_max_322", gecode_constraint_max_322, 4);
YAP_UserCPredicate("gecode_constraint_max_323", gecode_constraint_max_323, 4);
YAP_UserCPredicate("gecode_constraint_max_324", gecode_constraint_max_324, 4);
YAP_UserCPredicate("gecode_constraint_max_325", gecode_constraint_max_325, 5);
YAP_UserCPredicate("gecode_constraint_member_326", gecode_constraint_member_326, 3);
YAP_UserCPredicate("gecode_constraint_member_330", gecode_constraint_member_330, 3);
YAP_UserCPredicate("gecode_constraint_member_327", gecode_constraint_member_327, 4);
YAP_UserCPredicate("gecode_constraint_member_328", gecode_constraint_member_328, 4);
YAP_UserCPredicate("gecode_constraint_member_331", gecode_constraint_member_331, 4);
YAP_UserCPredicate("gecode_constraint_member_332", gecode_constraint_member_332, 4);
YAP_UserCPredicate("gecode_constraint_member_329", gecode_constraint_member_329, 5);
YAP_UserCPredicate("gecode_constraint_member_333", gecode_constraint_member_333, 5);
YAP_UserCPredicate("gecode_constraint_min_334", gecode_constraint_min_334, 3);
YAP_UserCPredicate("gecode_constraint_min_335", gecode_constraint_min_335, 3);
YAP_UserCPredicate("gecode_constraint_min_336", gecode_constraint_min_336, 4);
YAP_UserCPredicate("gecode_constraint_min_337", gecode_constraint_min_337, 4);
YAP_UserCPredicate("gecode_constraint_min_338", gecode_constraint_min_338, 4);
YAP_UserCPredicate("gecode_constraint_min_339", gecode_constraint_min_339, 5);
YAP_UserCPredicate("gecode_constraint_mod_340", gecode_constraint_mod_340, 4);
YAP_UserCPredicate("gecode_constraint_mod_341", gecode_constraint_mod_341, 5);
YAP_UserCPredicate("gecode_constraint_mult_342", gecode_constraint_mult_342, 4);
YAP_UserCPredicate("gecode_constraint_mult_343", gecode_constraint_mult_343, 4);
YAP_UserCPredicate("gecode_constraint_mult_344", gecode_constraint_mult_344, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_345", gecode_constraint_nooverlap_345, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_348", gecode_constraint_nooverlap_348, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_346", gecode_constraint_nooverlap_346, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_351", gecode_constraint_nooverlap_351, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_347", gecode_constraint_nooverlap_347, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_349", gecode_constraint_nooverlap_349, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_352", gecode_constraint_nooverlap_352, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_350", gecode_constraint_nooverlap_350, 9);
YAP_UserCPredicate("gecode_constraint_nroot_353", gecode_constraint_nroot_353, 4);
YAP_UserCPredicate("gecode_constraint_nroot_354", gecode_constraint_nroot_354, 4);
YAP_UserCPredicate("gecode_constraint_nroot_355", gecode_constraint_nroot_355, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_356", gecode_constraint_nvalues_356, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_358", gecode_constraint_nvalues_358, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_360", gecode_constraint_nvalues_360, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_362", gecode_constraint_nvalues_362, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_357", gecode_constraint_nvalues_357, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_359", gecode_constraint_nvalues_359, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_361", gecode_constraint_nvalues_361, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_363", gecode_constraint_nvalues_363, 5);
YAP_UserCPredicate("gecode_constraint_path_364", gecode_constraint_path_364, 7);
YAP_UserCPredicate("gecode_constraint_path_367", gecode_constraint_path_367, 7);
YAP_UserCPredicate("gecode_constraint_path_370", gecode_constraint_path_370, 7);
YAP_UserCPredicate("gecode_constraint_path_365", gecode_constraint_path_365, 8);
YAP_UserCPredicate("gecode_constraint_path_368", gecode_constraint_path_368, 8);
YAP_UserCPredicate("gecode_constraint_path_371", gecode_constraint_path_371, 8);
YAP_UserCPredicate("gecode_constraint_path_366", gecode_constraint_path_366, 6);
YAP_UserCPredicate("gecode_constraint_path_375", gecode_constraint_path_375, 6);
YAP_UserCPredicate("gecode_constraint_path_369", gecode_constraint_path_369, 9);
YAP_UserCPredicate("gecode_constraint_path_372", gecode_constraint_path_372, 4);
YAP_UserCPredicate("gecode_constraint_path_373", gecode_constraint_path_373, 5);
YAP_UserCPredicate("gecode_constraint_path_374", gecode_constraint_path_374, 5);
YAP_UserCPredicate("gecode_constraint_pow_376", gecode_constraint_pow_376, 4);
YAP_UserCPredicate("gecode_constraint_pow_377", gecode_constraint_pow_377, 4);
YAP_UserCPredicate("gecode_constraint_pow_378", gecode_constraint_pow_378, 5);
YAP_UserCPredicate("gecode_constraint_precede_379", gecode_constraint_precede_379, 3);
YAP_UserCPredicate("gecode_constraint_precede_380", gecode_constraint_precede_380, 4);
YAP_UserCPredicate("gecode_constraint_precede_381", gecode_constraint_precede_381, 4);
YAP_UserCPredicate("gecode_constraint_precede_382", gecode_constraint_precede_382, 5);
YAP_UserCPredicate("gecode_constraint_relax_383", gecode_constraint_relax_383, 5);
YAP_UserCPredicate("gecode_constraint_rel_384", gecode_constraint_rel_384, 4);
YAP_UserCPredicate("gecode_constraint_rel_386", gecode_constraint_rel_386, 4);
YAP_UserCPredicate("gecode_constraint_rel_392", gecode_constraint_rel_392, 4);
YAP_UserCPredicate("gecode_constraint_rel_396", gecode_constraint_rel_396, 4);
YAP_UserCPredicate("gecode_constraint_rel_400", gecode_constraint_rel_400, 4);
YAP_UserCPredicate("gecode_constraint_rel_402", gecode_constraint_rel_402, 4);
YAP_UserCPredicate("gecode_constraint_rel_404", gecode_constraint_rel_404, 4);
YAP_UserCPredicate("gecode_constraint_rel_406", gecode_constraint_rel_406, 4);
YAP_UserCPredicate("gecode_constraint_rel_409", gecode_constraint_rel_409, 4);
YAP_UserCPredicate("gecode_constraint_rel_410", gecode_constraint_rel_410, 4);
YAP_UserCPredicate("gecode_constraint_rel_411", gecode_constraint_rel_411, 4);
YAP_UserCPredicate("gecode_constraint_rel_412", gecode_constraint_rel_412, 4);
YAP_UserCPredicate("gecode_constraint_rel_414", gecode_constraint_rel_414, 4);
YAP_UserCPredicate("gecode_constraint_rel_416", gecode_constraint_rel_416, 4);
YAP_UserCPredicate("gecode_constraint_rel_418", gecode_constraint_rel_418, 4);
YAP_UserCPredicate("gecode_constraint_rel_420", gecode_constraint_rel_420, 4);
YAP_UserCPredicate("gecode_constraint_rel_423", gecode_constraint_rel_423, 4);
YAP_UserCPredicate("gecode_constraint_rel_424", gecode_constraint_rel_424, 4);
YAP_UserCPredicate("gecode_constraint_rel_426", gecode_constraint_rel_426, 4);
YAP_UserCPredicate("gecode_constraint_rel_428", gecode_constraint_rel_428, 4);
YAP_UserCPredicate("gecode_constraint_rel_430", gecode_constraint_rel_430, 4);
YAP_UserCPredicate("gecode_constraint_rel_434", gecode_constraint_rel_434, 4);
YAP_UserCPredicate("gecode_constraint_rel_438", gecode_constraint_rel_438, 4);
YAP_UserCPredicate("gecode_constraint_rel_440", gecode_constraint_rel_440, 4);
YAP_UserCPredicate("gecode_constraint_rel_442", gecode_constraint_rel_442, 4);
YAP_UserCPredicate("gecode_constraint_rel_444", gecode_constraint_rel_444, 4);
YAP_UserCPredicate("gecode_constraint_rel_385", gecode_constraint_rel_385, 5);
YAP_UserCPredicate("gecode_constraint_rel_387", gecode_constraint_rel_387, 5);
YAP_UserCPredicate("gecode_constraint_rel_388", gecode_constraint_rel_388, 5);
YAP_UserCPredicate("gecode_constraint_rel_390", gecode_constraint_rel_390, 5);
YAP_UserCPredicate("gecode_constraint_rel_393", gecode_constraint_rel_393, 5);
YAP_UserCPredicate("gecode_constraint_rel_394", gecode_constraint_rel_394, 5);
YAP_UserCPredicate("gecode_constraint_rel_397", gecode_constraint_rel_397, 5);
YAP_UserCPredicate("gecode_constraint_rel_398", gecode_constraint_rel_398, 5);
YAP_UserCPredicate("gecode_constraint_rel_401", gecode_constraint_rel_401, 5);
YAP_UserCPredicate("gecode_constraint_rel_403", gecode_constraint_rel_403, 5);
YAP_UserCPredicate("gecode_constraint_rel_405", gecode_constraint_rel_405, 5);
YAP_UserCPredicate("gecode_constraint_rel_407", gecode_constraint_rel_407, 5);
YAP_UserCPredicate("gecode_constraint_rel_413", gecode_constraint_rel_413, 5);
YAP_UserCPredicate("gecode_constraint_rel_415", gecode_constraint_rel_415, 5);
YAP_UserCPredicate("gecode_constraint_rel_417", gecode_constraint_rel_417, 5);
YAP_UserCPredicate("gecode_constraint_rel_419", gecode_constraint_rel_419, 5);
YAP_UserCPredicate("gecode_constraint_rel_421", gecode_constraint_rel_421, 5);
YAP_UserCPredicate("gecode_constraint_rel_425", gecode_constraint_rel_425, 5);
YAP_UserCPredicate("gecode_constraint_rel_427", gecode_constraint_rel_427, 5);
YAP_UserCPredicate("gecode_constraint_rel_429", gecode_constraint_rel_429, 5);
YAP_UserCPredicate("gecode_constraint_rel_431", gecode_constraint_rel_431, 5);
YAP_UserCPredicate("gecode_constraint_rel_432", gecode_constraint_rel_432, 5);
YAP_UserCPredicate("gecode_constraint_rel_435", gecode_constraint_rel_435, 5);
YAP_UserCPredicate("gecode_constraint_rel_436", gecode_constraint_rel_436, 5);
YAP_UserCPredicate("gecode_constraint_rel_439", gecode_constraint_rel_439, 5);
YAP_UserCPredicate("gecode_constraint_rel_441", gecode_constraint_rel_441, 5);
YAP_UserCPredicate("gecode_constraint_rel_443", gecode_constraint_rel_443, 5);
YAP_UserCPredicate("gecode_constraint_rel_445", gecode_constraint_rel_445, 5);
YAP_UserCPredicate("gecode_constraint_rel_389", gecode_constraint_rel_389, 6);
YAP_UserCPredicate("gecode_constraint_rel_391", gecode_constraint_rel_391, 6);
YAP_UserCPredicate("gecode_constraint_rel_395", gecode_constraint_rel_395, 6);
YAP_UserCPredicate("gecode_constraint_rel_399", gecode_constraint_rel_399, 6);
YAP_UserCPredicate("gecode_constraint_rel_433", gecode_constraint_rel_433, 6);
YAP_UserCPredicate("gecode_constraint_rel_437", gecode_constraint_rel_437, 6);
YAP_UserCPredicate("gecode_constraint_rel_408", gecode_constraint_rel_408, 3);
YAP_UserCPredicate("gecode_constraint_rel_422", gecode_constraint_rel_422, 3);
YAP_UserCPredicate("gecode_constraint_sequence_446", gecode_constraint_sequence_446, 6);
YAP_UserCPredicate("gecode_constraint_sequence_448", gecode_constraint_sequence_448, 6);
YAP_UserCPredicate("gecode_constraint_sequence_447", gecode_constraint_sequence_447, 7);
YAP_UserCPredicate("gecode_constraint_sequence_449", gecode_constraint_sequence_449, 7);
YAP_UserCPredicate("gecode_constraint_sorted_450", gecode_constraint_sorted_450, 4);
YAP_UserCPredicate("gecode_constraint_sorted_453", gecode_constraint_sorted_453, 4);
YAP_UserCPredicate("gecode_constraint_sorted_451", gecode_constraint_sorted_451, 5);
YAP_UserCPredicate("gecode_constraint_sorted_452", gecode_constraint_sorted_452, 3);
YAP_UserCPredicate("gecode_constraint_sqr_454", gecode_constraint_sqr_454, 3);
YAP_UserCPredicate("gecode_constraint_sqr_455", gecode_constraint_sqr_455, 3);
YAP_UserCPredicate("gecode_constraint_sqr_456", gecode_constraint_sqr_456, 4);
YAP_UserCPredicate("gecode_constraint_sqrt_457", gecode_constraint_sqrt_457, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_458", gecode_constraint_sqrt_458, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_459", gecode_constraint_sqrt_459, 4);
YAP_UserCPredicate("gecode_constraint_unary_460", gecode_constraint_unary_460, 4);
YAP_UserCPredicate("gecode_constraint_unary_463", gecode_constraint_unary_463, 4);
YAP_UserCPredicate("gecode_constraint_unary_466", gecode_constraint_unary_466, 4);
YAP_UserCPredicate("gecode_constraint_unary_470", gecode_constraint_unary_470, 4);
YAP_UserCPredicate("gecode_constraint_unary_461", gecode_constraint_unary_461, 5);
YAP_UserCPredicate("gecode_constraint_unary_464", gecode_constraint_unary_464, 5);
YAP_UserCPredicate("gecode_constraint_unary_467", gecode_constraint_unary_467, 5);
YAP_UserCPredicate("gecode_constraint_unary_468", gecode_constraint_unary_468, 5);
YAP_UserCPredicate("gecode_constraint_unary_471", gecode_constraint_unary_471, 5);
YAP_UserCPredicate("gecode_constraint_unary_462", gecode_constraint_unary_462, 3);
YAP_UserCPredicate("gecode_constraint_unary_465", gecode_constraint_unary_465, 6);
YAP_UserCPredicate("gecode_constraint_unary_469", gecode_constraint_unary_469, 6);
YAP_UserCPredicate("gecode_constraint_unshare_472", gecode_constraint_unshare_472, 2);
YAP_UserCPredicate("gecode_constraint_unshare_474", gecode_constraint_unshare_474, 2);
YAP_UserCPredicate("gecode_constraint_unshare_473", gecode_constraint_unshare_473, 3);
YAP_UserCPredicate("gecode_constraint_unshare_475", gecode_constraint_unshare_475, 3);
YAP_UserCPredicate("gecode_constraint_when_476", gecode_constraint_when_476, 3);
YAP_UserCPredicate("gecode_constraint_when_477", gecode_constraint_when_477, 4);
YAP_UserCPredicate("gecode_constraint_when_478", gecode_constraint_when_478, 4);
YAP_UserCPredicate("gecode_constraint_when_479", gecode_constraint_when_479, 5);

View File

@ -4506,7 +4506,7 @@ location(java_root, _, JRE) :-
member(Root, [ '/usr/lib',
'/usr/local/lib',
'/opt/lib',
'/Library/Java/JavaVirtual hines',
'/Library/Java/JavaVirtualMachines',
'/System/Library/Frameworks'
]),
exists_directory(Root),

193
packages/python/python.h Normal file
View File

@ -0,0 +1,193 @@
//@{
/** @brief Prolog to Python library
*
*
* Please look at python.pl for more information, and to real.pl and real.c
* for related work.
*/
#ifdef _XOPEN_SOURCE
#undef _XOPEN_SOURCE // python does its own thing
#endif
#include <Python.h>
#include <SWI-Prolog.h>
#ifdef HAVE_STAT
#undef HAVE_STATa
#endif
#include <assert.h>
#include <string.h>
#define EXTRA_MESSSAGES 1
#ifndef PYTHON_H
#define PYTHON_H 1
PyObject *find_obj(PyObject *ob, term_t lhs, bool eval);
#if DEBUG_MEMORY
#define DebugPrintf(s, op) fprintf(stderr, "%s:%d: " s, __FILE__, __LINE__, op)
#else
#define DebugPrintf(s, op)
#endif
/**
* @brief A module is store as an objet plus a list of paths.
*/
#define PY_MAX_MODLEN 16
typedef struct s_mod_t {
PyObject *mod;
int length;
YAP_Term names[PY_MAX_MODLEN];
} Py_mod;
extern X_API YAP_Term pythonToYAP(PyObject *pVal);
extern X_API PyObject *yap_to_python(YAP_Term t, bool eval, PyObject *o);
typedef YAP_Arity arity_t;
extern atom_t ATOM_true, ATOM_false, ATOM_colon, ATOM_dot, ATOM_none, ATOM_t,
ATOM_comma, ATOM_builtin, ATOM_V, ATOM_A, ATOM_self;
extern functor_t FUNCTOR_dollar1, FUNCTOR_abs1, FUNCTOR_all1, FUNCTOR_any1,
FUNCTOR_bin1, FUNCTOR_brackets1, FUNCTOR_comma2, FUNCTOR_dir1,
FUNCTOR_float1, FUNCTOR_int1, FUNCTOR_iter1, FUNCTOR_iter2, FUNCTOR_long1,
FUNCTOR_len1, FUNCTOR_curly1, FUNCTOR_ord1, FUNCTOR_range1, FUNCTOR_range2,
FUNCTOR_range3, FUNCTOR_sum1, FUNCTOR_pointer1, FUNCTOR_complex2,
FUNCTOR_plus2, FUNCTOR_sub2, FUNCTOR_mul2, FUNCTOR_div2, FUNCTOR_hat2,
FUNCTOR_colon2, FUNCTOR_comma2, FUNCTOR_equal2, FUNCTOR_sqbrackets2,
FUNCTOR_dot2;
extern X_API PyObject *py_Main;
extern X_API PyObject *py_Builtin;
extern X_API PyObject *py_Yapex;
extern X_API PyObject *py_Local;
extern X_API PyObject *py_Global;
extern X_API PyObject *py_Context;
extern PyObject *py_F2P;
extern PyObject *py_Sys;
extern PyObject *py_ModDict;
extern bool python_in_python;
extern bool python_release_GIL(term_t state);
extern term_t python_acquire_GIL(void);
static inline Py_ssize_t get_p_int(PyObject *o, Py_ssize_t def) {
if (o == NULL)
return def;
if (PyLong_Check(o)) {
return PyLong_AsLong(o);
#if PY_MAJOR_VERSION < 3
} else if (PyInt_Check(o)) {
return PyInt_AsLong(o);
#endif
}
return def;
}
static inline foreign_t address_to_term(PyObject *pVal, term_t t) {
term_t to = PL_new_term_ref(), t1 = PL_new_term_ref();
PL_put_pointer(t1, (void *)pVal);
PL_cons_functor(to, FUNCTOR_pointer1, t1);
Py_INCREF(pVal);
foreign_t rc = PL_unify(t, to);
PL_reset_term_refs(to);
return rc;
}
static inline int proper_ascii_string(const char *s) {
unsigned char c;
while ((c = *s++)) {
if (c > 127)
return FALSE;
}
return TRUE;
}
static inline PyObject *atom_to_python_string(term_t t) {
// Yap_DebugPlWrite(YAP_GetFromSlot(t)); fprintf(stderr, " here I
// am\n");
char *s = NULL;
if (!PL_get_atom_chars(t, &s))
return NULL;
/* return __main__,s */
#if PY_MAJOR_VERSION < 3
if (proper_ascii_string(s)) {
return PyString_FromStringAndSize(s, strlen(s));
} else
#endif
{
PyObject *pobj = PyUnicode_DecodeUTF8(s, strlen(s), NULL);
// fprintf(stderr, "%s\n", s);
return pobj;
}
}
#define CHECK_CALL(rc, t, call) \
PyErr_Clear();\
rc = call; \
if (rc == NULL || PyErr_Occurred()) {\
YE(t,__LINE__,__FILE__,__FUNCTION__);\
PyErr_Print(); PyErr_Clear();\
}
#define CHECKNULL(t,rc) (rc != NULL ? rc : YE(t,__LINE__,__FILE__,__FUNCTION__) )
#define AOK(rc, err) { if (!rc) YEM( #rc ,__LINE__,__FILE__,__FUNCTION__); }
extern PyObject *YE(term_t t, int line, const char *file, const char *code);
extern void YEM( const char *ex, int line, const char *file, const char *code);
extern void pyErrorHandler__(int line, const char *file, const char *code);
#define pyErrorHandler() \
{ \
if (PyErr_Occurred()) { \
pyErrorHandler__(__LINE__, __FILE__, __FUNCTION__); \
} \
}
#define pyErrorAndReturn(x, y) \
{ \
if (PyErr_Occurred()) { \
pyErrorHandler__(__LINE__, __FILE__, __FUNCTION__); \
return (x); \
} else { \
return (x); \
} \
}
// #define pyErrorAndReturn( x, y ) return x
extern PyObject *compound_to_pyeval(term_t t, PyObject *context);
extern PyObject *compound_to_pytree(term_t t, PyObject *context);
extern PyObject *term_to_python(term_t t, bool eval, PyObject *contextxs);
extern PyObject *term_to_nametuple(const char *s, int arity, term_t t);
extern foreign_t python_to_term(PyObject *pVal, term_t t);
extern bool python_assign(term_t t, PyObject *exp, PyObject *context);
extern foreign_t assign_to_symbol(term_t t, PyObject *e);
extern bool python_asign(term_t t, PyObject *exp, PyObject *context);
extern foreign_t python_builtin(term_t out);
extern int lookupPyModule(Py_mod *q);
extern PyObject *lookupPySymbol(const char *s, PyObject *q, PyObject **d);
extern install_t install_pypreds(void);
extern install_t install_pl2pl(void);
X_API extern bool init_python(void);
extern bool do_init_python(void);
extern PyObject PyInit_yap(void);
extern PyObject *PythonLookup(const char *s, PyObject *o);
extern PyObject *PythonLookupSpecial(const char *s);
#endif

View File

@ -70,7 +70,7 @@ endif()
DEPENDS ${PYTHON_SOURCES}
)
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip install --ignore-installed .
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip install ${PYTHON_USER_INSTALL} --ignore-installed .
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})"
DEPENDS Py4YAP ${CMAKE_BINARY_DIR}/${YAP_STARTUP} ${YAP_INSTALL_DLLDIR} )

View File

@ -0,0 +1,93 @@
<center>
![The YAP Logo](docs/icons/yap_128x128x32.png)
</center>
NOTE: this version of YAP is still experimental, documentation may be out of date.
## Introduction
This document provides User information on version 6.3.4 of
YAP (<em>Yet Another Prolog</em>). The YAP Prolog System is a
high-performance Prolog compiler developed at Universidade do
Porto. YAP supports stream Input/Output, sockets, modules,
exceptions, Prolog debugger, C-interface, dynamic code, internal
database, DCGs, saved states, co-routining, arrays, threads.
We explicitly allow both commercial and non-commercial use of YAP.
YAP is based on the David H. D. Warren's WAM (Warren Abstract Machine),
with several optimizations for better performance. YAP follows the
Edinburgh tradition, and was originally designed to be largely
compatible with DEC-10 Prolog, Quintus Prolog, and especially with
C-Prolog. More recently, we have worked on being compatible with SICStus Prolog and with SWI-Prolog.
YAP implements most of the ISO-Prolog standard. We are striving at
full compatibility, and the manual describes what is still
missing.
The document is intended neither as an introduction to Prolog nor to the
implementation aspects of the compiler. A good introduction to
programming in Prolog is the book @cite TheArtOfProlog , by
L. Sterling and E. Shapiro, published by "The MIT Press, Cambridge
MA". Other references should include the classical @cite ProgrammingInProlog , by W.F. Clocksin and C.S. Mellish, published by
Springer-Verlag.
YAP 6.3.4 has been built with the gcc and clang compilers on Linux and OSX machines. We expect to recover support for WIN32 machines and
Android next.
We are happy to include in YAP several excellent packages developed
under separate licenses. Our thanks to the authors for their kind
authorization to include these packages.
The overall copyright and permission notice for YAP4.3 can be found in
the Artistic file in this directory. YAP follows the Perl Artistic
license, and it is thus non-copylefted freeware. Some components of YAP have been obtained from SWI Prolog and ciao, and have
different licenses.
If you have a question about this software, desire to add code, found a
bug, want to request a feature, or wonder how to get further assistance,
please send e-mail to <yap-users AT lists.sourceforge.net>. To
subscribe to the mailing list, visit the page
<https://lists.sourceforge.net/lists/listinfo/yap-users>.
On-line documentation is available for [YAP](http://www.dcc.fp.pt/~vsc/yap/)
The packages are, in alphabetical order:
+ The CHR package developed by Tom Schrijvers,
Christian Holzbaur, and Jan Wielemaker.
+ The CLP(BN) package and Horus toolkit developed by Tiago Gomes, and Vítor Santos Costa.
+ The CLP(R) package developed by Leslie De Koninck, Bart Demoen, Tom
Schrijvers, and Jan Wielemaker, based on the CLP(Q,R) implementation
by Christian Holzbaur.
+ The CPLint package developed by Fabrizio Riguzzi's research
laboratory at the [University of Ferrara](http://www.ing.unife.it/Docenti/FabrizioRiguzzi/)
+ The CUDA interface package developed by Carlos Martínez, Jorge
Buenabad, Inês Dutra and Vítor Santos Costa.
+ The [GECODE](http://www.gecode.org) interface package developed by Denys Duchier and Vítor Santos Costa.
+ The [JPL](http://www.swi-prolog.org/packages/jpl/) (Java-Prolog Library) package developed by .
The minisat SAT solver interface developed by Michael Codish,
Vitaly Lagoon, and Peter J. Stuckey.
+ The MYDDAS relational data-base interface developed at the
Universidade do Porto by Tiago Soares, Michel Ferreira, and Ricardo Rocha.
+ The [PRISM](http://rjida.meijo-u.ac.jp/prism/) logic-based
programming system for statistical modeling developed at the Sato
Research Laboratory, TITECH, Japan.
+ The ProbLog 1 system developed by the [ProbLog](https://dtai.cs.kuleuven.be/problog) team in the
DTAI group of KULeuven.
+ The [R](http://stoics.org.uk/~nicos/sware/packs/real/) interface package developed by Nicos Angelopoulos,
Vítor Santos Costa, João Azevedo, Jan Wielemaker, and Rui Camacho.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,33 @@
import imp
import os
import ctypes
import glob
import os.path
import platform
import sys
global yap_lib_path
yap_lib_path = "/home/vsc/anaconda3/conda-bld/yap4py_1522052049872/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib"
if platform.system() == 'Windows':
def load( dll ):
dll = glob.glob(os.path.join(yap_lib_path,dll))[0]
dll = os.path.abspath(dll)
ctypes.WinDLL(dll)
elif platform.system() == 'Darwin':
def load( dll ):
dll = glob.glob(os.path.join(os.path.dirname(__file__),dll))[0]
dll = os.path.abspath(dll)
ctypes.CDLL(dll)
print('loaded ',dll)
# try:
# load( '_yap*.so' )
# except:
# load( '_yap*.dylib' )
else:
def load( dll ):
dll = glob.glob(os.path.join(os.path.dirname(__file__),dll))[0]
dll = os.path.abspath(dll)
ctypes.CDLL(dll)
#load('_yap*.so')

View File

@ -67,7 +67,6 @@ class Query:
return self
def __next__(self):
print(self)
if not self.q:
raise StopIteration()
if self.q.next():
@ -144,39 +143,41 @@ class YAPShell:
# if not isinstance(eq[0],str):
# print( "Error: Variable Name matches a Python Symbol")
# return
self.do_ask = True
engine = self.engine
bindings = []
g = python_query(self, query)
if not self.q:
try:
engine = self.engine
bindings = []
loop = False
g = python_query(self, query)
self.q = Query( engine, g )
for bind in self.q:
bindings += [bind]
if self.do_ask:
print(bindings)
bindings = []
for bind in self.q:
bindings += [bind]
if loop:
continue
if not self.q.port == "exit":
break
s = input("more(;), all(*), no(\\n), python(#) ?").lstrip()
else:
s = ";"
if s.startswith(';') or s.startswith('y'):
continue
elif s.startswith('#'):
try:
exec(s.lstrip('#'))
except:
raise
elif s.startswith('*') or s.startswith('a'):
self.do_ask = False
continue
else:
break
if self.q:
self.os = query
if bindings:
return True,bindings
print("No (more) answers")
return False, None
if s.startswith(';') or s.startswith('y'):
continue
elif s.startswith('#'):
try:
exec(s.lstrip('#'))
except:
raise
elif s.startswith('*') or s.startswith('a'):
loop = True
continue
else:
break
if self.q:
self.os = query
if bindings:
return True,bindings
print("No (more) answers")
return False, None
except Exception as e:
print("Exception")
print(dir(e))
return False, None
def live(self, engine, **kwargs):
loop = True

BIN
packages/python/yap_.tgz Normal file

Binary file not shown.

View File

@ -0,0 +1,25 @@
define("codemirror/lib/codemirror" ]
pecs/yap_kernel/prolog"
],
function(CodeMirror){
var onload =
function(CodeMirror){
console.log("I am being loaded");
editor = CodeMirror.fromTextArea(document.getElementById("code"), {
parserfile: "kernelspecs/yap_kernel/prolog.js"
lineNumbers: true,
mode: "text/x-prolog"
});
return {onload:onload}
}
}
);

View File

@ -0,0 +1,16 @@
"""Entry point for launching an YAP kernel.
This is separate from the yap_kernel package so we can avoid doing imports until
after removing the cwd from sys.path.
"""
import sys
if __name__ == '__main__':
# Remove the CWD from sys.path while we load stuff.
# This is added back by InteractiveShellApp.init_path()
if sys.path[0] == '':
del sys.path[0]
from yap_kernel import kernelapp as app
app.launch_new_instance()

View File

@ -1,5 +1,6 @@
set (PYTHON_SOURCES
backcall.py
yap_kernel_launcher.py
docs/conf.py
yap_kernel/codeutil.py
@ -463,7 +464,7 @@ yap.tgz ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/kernel.js ${CMAKE_CURRE
install(CODE "execute_process(
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} build sdist bdist
COMMAND ${PYTHON_EXECUTABLE} -m pip install --ignore-installed --no-deps .
COMMAND ${PYTHON_EXECUTABLE} -m pip install ${PYTHON_USER_INSTALL} --ignore-installed --no-deps .
COMMAND ${PYTHON_EXECUTABLE} -m yap_kernel.kernelspec
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")

View File

@ -8,7 +8,7 @@ include yap_kernel/resources/kernel.json
# Documentation
graft
# graft
# Patterns to exclude from any directory
global-exclude *~
global-exclude *.pyc

View File

@ -0,0 +1,4 @@
if __name__ == '__main__':
import yap_kernel.kernelapp
yap_kernel.kernelapp.launch_new_instance()

View File

@ -0,0 +1,5 @@
version_info = (4, 4, 1)
__version__ = '.'.join(map(str, version_info))
kernel_protocol_version_info = (5, 0)
kernel_protocol_version = '%s.%s' % kernel_protocol_version_info

View File

@ -0,0 +1,109 @@
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 13 18:17:15 2014
@author: takluyver
"""
import sys
PY3 = (sys.version_info[0] >= 3)
try:
from inspect import signature, Parameter # Python >= 3.3
except ImportError:
from ._signatures import signature, Parameter
if PY3:
from functools import wraps
else:
from functools import wraps as _wraps
def wraps(f):
def dec(func):
_wraps(f)(func)
func.__wrapped__ = f
return func
return dec
def callback_prototype(prototype):
"""Decorator to process a callback prototype.
A callback prototype is a function whose signature includes all the values
that will be passed by the callback API in question.
The original function will be returned, with a ``prototype.adapt`` attribute
which can be used to prepare third party callbacks.
"""
protosig = signature(prototype)
positional, keyword = [], []
for name, param in protosig.parameters.items():
if param.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD):
raise TypeError("*args/**kwargs not supported in prototypes")
if (param.default is not Parameter.empty) \
or (param.kind == Parameter.KEYWORD_ONLY):
keyword.append(name)
else:
positional.append(name)
kwargs = dict.fromkeys(keyword)
def adapt(callback):
"""Introspect and prepare a third party callback."""
sig = signature(callback)
try:
# XXX: callback can have extra optional parameters - OK?
sig.bind(*positional, **kwargs)
return callback
except TypeError:
pass
# Match up arguments
unmatched_pos = positional[:]
unmatched_kw = kwargs.copy()
unrecognised = []
# TODO: unrecognised parameters with default values - OK?
for name, param in sig.parameters.items():
# print(name, param.kind) #DBG
if param.kind == Parameter.POSITIONAL_ONLY:
if len(unmatched_pos) > 0:
unmatched_pos.pop(0)
else:
unrecognised.append(name)
elif param.kind == Parameter.POSITIONAL_OR_KEYWORD:
if (param.default is not Parameter.empty) and (name in unmatched_kw):
unmatched_kw.pop(name)
elif len(unmatched_pos) > 0:
unmatched_pos.pop(0)
else:
unrecognised.append(name)
elif param.kind == Parameter.VAR_POSITIONAL:
unmatched_pos = []
elif param.kind == Parameter.KEYWORD_ONLY:
if name in unmatched_kw:
unmatched_kw.pop(name)
else:
unrecognised.append(name)
else: # VAR_KEYWORD
unmatched_kw = {}
# print(unmatched_pos, unmatched_kw, unrecognised) #DBG
if unrecognised:
raise TypeError("Function {!r} had unmatched arguments: {}".format(callback, unrecognised))
n_positional = len(positional) - len(unmatched_pos)
@wraps(callback)
def adapted(*args, **kwargs):
"""Wrapper for third party callbacks that discards excess arguments"""
# print(args, kwargs)
args = args[:n_positional]
for name in unmatched_kw:
# XXX: Could name not be in kwargs?
kwargs.pop(name)
# print(args, kwargs, unmatched_pos, cut_positional, unmatched_kw)
return callback(*args, **kwargs)
return adapted
prototype.adapt = adapt
return prototype

View File

@ -0,0 +1,209 @@
# -*- coding: utf-8 -*-
"""YAP Stuff for Main IPython class."""
#-----------------------------------------------------------------------------
# Copyright (C) 2001 Janko Hauser <jhauser@zscout.de>
# Copyright (C) 2001-2007 Fernando Perez. <fperez@colorado.edu>
# Copyright (C) 2008-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
from __future__ import absolute_import, print_function
import __future__
import abc
import ast
import atexit
import functools
import os
import re
import runpy
import signal
import sys
import tempfile
import traceback
import types
import subprocess
import warnings
import yap
from io import open as io_open
from pickleshare import PickleShareDB
from traitlets.config.configurable import SingletonConfigurable
from IPython.core import oinspect
from IPython.core import magic
from IPython.core import page
from IPython.core import prefilter
from IPython.core import shadowns
from IPython.core import ultratb
from IPython.core import interactiveshell
from IPython.core.alias import Alias, AliasManager
from IPython.core.autocall import ExitAutocall
from IPython.core.builtin_trap import BuiltinTrap
from IPython.core.events import EventManager, available_events
from IPython.core.compilerop import CachingCompiler, check_linecache_ipython
from IPython.core.debugger import Pdb
from IPython.core.display_trap import DisplayTrap
from IPython.core.displayhook import DisplayHook
from IPython.core.displaypub import DisplayPublisher
from IPython.core.error import InputRejected, UsageError
from IPython.core.extensions import ExtensionManager
from IPython.core.formatters import DisplayFormatter
from IPython.core.history import HistoryManager
from IPython.core.inputsplitter import ESC_MAGIC, ESC_MAGIC2
from IPython.core.logger import Logger
from IPython.core.macro import Macro
from IPython.core.payload import PayloadManager
from IPython.core.prefilter import PrefilterManager
from IPython.core.profiledir import ProfileDir
from IPython.core.usage import default_banner
from IPython.core.interactiveshell import InteractiveShellABC, InteractiveShell, ExecutionResult
from IPython.testing.skipdoctest import skip_doctest_py2, skip_doctest
from IPython.utils import PyColorize
from IPython.utils import io
from IPython.utils import py3compat
from IPython.utils import openpy
from IPython.utils.decorators import undoc
from IPython.utils.io import ask_yes_no
from IPython.utils.ipstruct import Struct
from IPython.paths import get_ipython_dir
from IPython.utils.path import get_home_dir, get_py_filename, ensure_dir_exists
from IPython.utils.process import system, getoutput
from IPython.utils.py3compat import (builtin_mod, unicode_type, string_types,
with_metaclass, iteritems)
from IPython.utils.strdispatch import StrDispatch
from IPython.utils.syspathcontext import prepended_to_syspath
from IPython.utils.text import format_screen, LSString, SList, DollarFormatter
from IPython.utils.tempdir import TemporaryDirectory
from traitlets import (
Integer, Bool, CaselessStrEnum, Enum, List, Dict, Unicode, Instance, Type,
observe, default,
)
from warnings import warn
from logging import error
class YAPInteractiveShell:
"""An enhanced, interactive shell for YAP."""
def __init__(self, kernel):
self.yapeng = yap.YAPEngine()
self.q = None
self.shell = kernel.shell
self.shell.run_cell = self.run_cell
def closeq(self):
if self.q:
self.q.close()
self.q = None
def run_cell(self, s, store_history=True, silent=False, shell_futures=True):
"""Run a complete IPython cell.
Parameters
----------
raw_cell : str
The code (including IPython code such as %magic functions) to run.
store_history : bool
If True, the raw and translated cell will be stored in IPython's
history. For user code calling back into IPython's machinery, this
should be set to False.
silent : bool
If True, avoid side-effects, such as implicit displayhooks and
and logging. silent=True forces store_history=False.
shell_futures : bool
If True, the code will share future statements with the interactive
shell. It will both be affected by previous __future__ imports, and
any __future__ imports in the code will affect the shell. If False,
__future__ imports are not shared in either direction.
Returns
-------
result : :class:`ExecutionResult`
"""
result = ExecutionResult()
if (not s) or s.isspace():
self.shell.last_execution_succeeded = True
return result
if store_history:
result.execution_count = self.shell.execution_count
def error_before_exec(value):
result.error_before_exec = value
self.shell.last_execution_succeeded = False
return result
if not self.q:
try:
self.q = self.yapeng.query(s)
except SyntaxError:
return error_before_exec( sys.exc_info()[1])
cell = s # cell has to exist so it can be stored/logged
# Store raw and processed history
# if not silent:
# self.shell..logger.log(cell, s)
has_raised = False
try:
#f = io.StringIO()
# with redirect_stdout(f):
run = self.q.next()
# print('{0}'.format(f.getvalue()))
# Execute the user code
if run:
myvs = self.q.namedVarsCopy()
if myvs:
i = 0
for peq in myvs:
name = peq[0]
bind = peq[1]
if bind.isVar():
var = yap.YAPAtom('$VAR')
f = yap.YAPFunctor(var, 1)
bind.unify(yap.YAPApplTerm(f, (name)))
else:
i = bind.numberVars(i, True)
print(name.text() + " = " + bind.text())
else:
print("yes")
if self.q.deterministic():
self.closeq()
else:
print("No (more) answers")
self.closeq()
except:
result.error_in_exec = sys.exc_info()[1]
# self.showtraceback()
has_raised = True
self.closeq()
self.shell.last_execution_succeeded = not has_raised
result.result = self.shell.last_execution_succeeded
print( self.q )
# Reset this so later displayed values do not modify the
# ExecutionResult
# self.displayhook.exec_result = None
#self.events.trigger('post_execute')
#if not silent:
# self.events.trigger('post_run_cell')
if store_history:
# Write output to the database. Does nothing unless
# history output logging is enabled.
# self.history_manager.store_output(self.execution_count)
# Each cell is a *single* input, regardless of how many lines it has
self.shell.execution_count += 1
return result

View File

@ -0,0 +1,18 @@
:- use_module(library(python)).
:- if( current_prolog_flag(apple, true) ).
:- putenv( 'LC_CTYPE', 'en_us:UTF-8').
plot_inline :-
X := self.inline_plotting,
nb_setval(inline, X ),
X = true,
!,
:= (
import( matplotlib ),
matplotlib.use( `nbagg` )
).
:- endif.

View File

@ -0,0 +1,488 @@
"""An Application for launching a kernel"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
from __future__ import print_function
import atexit
import os
import sys
import signal
import traceback
import logging
from tornado import ioloop
import zmq
from zmq.eventloop import ioloop as zmq_ioloop
from zmq.eventloop.zmqstream import ZMQStream
from ipykernel.zmqshell import ZMQInteractiveShell
from IPython.core.application import (
BaseIPythonApplication, base_flags, base_aliases, catch_config_error
)
from IPython.core.profiledir import ProfileDir
from IPython.core.shellapp import (
InteractiveShellApp, shell_flags, shell_aliases
)
from IPython.utils import io
from ipython_genutils.path import filefind, ensure_dir_exists
from traitlets import (
Any, Instance, Dict, Unicode, Integer, Bool, DottedObjectName, Type, default
)
from ipython_genutils.importstring import import_item
from jupyter_core.paths import jupyter_runtime_dir
from jupyter_client import write_connection_file
from jupyter_client.connect import ConnectionFileMixin
# local imports
from ipykernel.iostream import IOPubThread
from ipykernel.heartbeat import Heartbeat
from .yap_kernel import YAPKernel
from ipykernel.parentpoller import ParentPollerUnix, ParentPollerWindows
from jupyter_client.session import (
Session, session_flags, session_aliases,
)
#-----------------------------------------------------------------------------
# Flags and Aliases
#-----------------------------------------------------------------------------
kernel_aliases = dict(base_aliases)
kernel_aliases.update({
'ip' : 'YAPKernelApp.ip',
'hb' : 'YAPKernelApp.hb_port',
'shell' : 'YAPKernelApp.shell_port',
'iopub' : 'YAPKernelApp.iopub_port',
'stdin' : 'YAPKernelApp.stdin_port',
'control' : 'YAPKernelApp.control_port',
'f' : 'YAPKernelApp.connection_file',
'transport': 'YAPKernelApp.transport',
})
kernel_flags = dict(base_flags)
kernel_flags.update({
'no-stdout' : (
{'YAPKernelApp' : {'no_stdout' : True}},
"redirect stdout to the null device"),
'no-stderr' : (
{'YAPKernelApp' : {'no_stderr' : True}},
"redirect stderr to the null device"),
'pylab' : (
{'YAPKernelApp' : {'pylab' : 'auto'}},
"""Pre-load matplotlib and numpy for interactive use with
the default matplotlib backend."""),
})
# inherit flags&aliases for any IPython shell apps
kernel_aliases.update(shell_aliases)
kernel_flags.update(shell_flags)
# inherit flags&aliases for Sessions
kernel_aliases.update(session_aliases)
kernel_flags.update(session_flags)
_ctrl_c_message = """\
NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.
To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\\ in UNIX-like environments.
To read more about this, see https://github.com/ipython/ipython/issues/2049
"""
#-----------------------------------------------------------------------------
# Application class for starting an IPython Kernel
#-----------------------------------------------------------------------------
class YAPKernelApp(BaseIPythonApplication, InteractiveShellApp,
ConnectionFileMixin):
name='YAP-kernel'
aliases = Dict(kernel_aliases)
flags = Dict(kernel_flags)
classes = [YAPKernel, ZMQInteractiveShell, ProfileDir, Session]
# the kernel class, as an importstring
kernel_class = Type('yap_kernel.yap_kernel.YAPKernel',
klass='ipykernel.kernelbase.Kernel',
help="""The Kernel subclass to be used.
This should allow easy re-use of the YAPKernelApp entry point
to configure and launch kernels other than IPython's own.
""").tag(config=True)
kernel = Any()
poller = Any() # don't restrict this even though current pollers are all Threads
heartbeat = Instance(Heartbeat, allow_none=True)
ports = Dict()
subcommands = {
'install': (
'yap_kernel.kernelspec.InstallYAPKernelSpecApp',
'Install the YAP kernel'
),
}
# connection info:
connection_dir = Unicode()
@default('connection_dir')
def _default_connection_dir(self):
return jupyter_runtime_dir()
@property
def abs_connection_file(self):
if os.path.basename(self.connection_file) == self.connection_file:
return os.path.join(self.connection_dir, self.connection_file)
else:
return self.connection_file
# streams, etc.
no_stdout = Bool(False, help="redirect stdout to the null device").tag(config=True)
no_stderr = Bool(False, help="redirect stderr to the null device").tag(config=True)
outstream_class = DottedObjectName('ipykernel.iostream.OutStream',
help="The importstring for the OutStream factory").tag(config=True)
displayhook_class = DottedObjectName('ipykernel.displayhook.ZMQDisplayHook',
help="The importstring for the DisplayHook factory").tag(config=True)
# polling
parent_handle = Integer(int(os.environ.get('JPY_PARENT_PID') or 0),
help="""kill this process if its parent dies. On Windows, the argument
specifies the HANDLE of the parent process, otherwise it is simply boolean.
""").tag(config=True)
interrupt = Integer(int(os.environ.get('JPY_INTERRUPT_EVENT') or 0),
help="""ONLY USED ON WINDOWS
Interrupt this process when the parent is signaled.
""").tag(config=True)
def init_crash_handler(self):
sys.excepthook = self.excepthook
def excepthook(self, etype, evalue, tb):
# write uncaught traceback to 'real' stderr, not zmq-forwarder
traceback.print_exception(etype, evalue, tb, file=sys.__stderr__)
def init_poller(self):
if sys.platform == 'win32':
if self.interrupt or self.parent_handle:
self.poller = ParentPollerWindows(self.interrupt, self.parent_handle)
elif self.parent_handle:
self.poller = ParentPollerUnix()
def _bind_socket(self, s, port):
iface = '%s://%s' % (self.transport, self.ip)
if self.transport == 'tcp':
if port <= 0:
port = s.bind_to_random_port(iface)
else:
s.bind("tcp://%s:%i" % (self.ip, port))
elif self.transport == 'ipc':
if port <= 0:
port = 1
path = "%s-%i" % (self.ip, port)
while os.path.exists(path):
port = port + 1
path = "%s-%i" % (self.ip, port)
else:
path = "%s-%i" % (self.ip, port)
s.bind("ipc://%s" % path)
return port
def write_connection_file(self):
"""write connection info to JSON file"""
cf = self.abs_connection_file
self.log.debug("Writing connection file: %s", cf)
write_connection_file(cf, ip=self.ip, key=self.session.key, transport=self.transport,
shell_port=self.shell_port, stdin_port=self.stdin_port, hb_port=self.hb_port,
iopub_port=self.iopub_port, control_port=self.control_port)
def cleanup_connection_file(self):
cf = self.abs_connection_file
self.log.debug("Cleaning up connection file: %s", cf)
try:
os.remove(cf)
except (IOError, OSError):
pass
self.cleanup_ipc_files()
def init_connection_file(self):
if not self.connection_file:
self.connection_file = "kernel-%s.json"%os.getpid()
try:
self.connection_file = filefind(self.connection_file, ['.',self.connection_dir])
except IOError:
self.log.debug("Connection file not found: %s", self.connection_file)
# This means I own it, and I'll create it in this directory:
ensure_dir_exists(os.path.dirname(self.abs_connection_file), 0o700)
# Also, I will clean it up:
atexit.register(self.cleanup_connection_file)
return
try:
self.load_connection_file()
except Exception:
self.log.error("Failed to load connection file: %r", self.connection_file, exc_info=True)
self.exit(1)
def init_sockets(self):
# Create a context, a session, and the kernel sockets.
self.log.info("Starting the kernel at pid: %i", os.getpid())
context = zmq.Context.instance()
# Uncomment this to try closing the context.
# atexit.register(context.term)
self.shell_socket = context.socket(zmq.ROUTER)
self.shell_socket.linger = 1000
self.shell_port = self._bind_socket(self.shell_socket, self.shell_port)
self.log.debug("shell ROUTER Channel on port: %i" % self.shell_port)
self.stdin_socket = context.socket(zmq.ROUTER)
self.stdin_socket.linger = 1000
self.stdin_port = self._bind_socket(self.stdin_socket, self.stdin_port)
self.log.debug("stdin ROUTER Channel on port: %i" % self.stdin_port)
self.control_socket = context.socket(zmq.ROUTER)
self.control_socket.linger = 1000
self.control_port = self._bind_socket(self.control_socket, self.control_port)
self.log.debug("control ROUTER Channel on port: %i" % self.control_port)
self.init_iopub(context)
def init_iopub(self, context):
self.iopub_socket = context.socket(zmq.PUB)
self.iopub_socket.linger = 1000
self.iopub_port = self._bind_socket(self.iopub_socket, self.iopub_port)
self.log.debug("iopub PUB Channel on port: %i" % self.iopub_port)
self.configure_tornado_logger()
self.iopub_thread = IOPubThread(self.iopub_socket, pipe=True)
self.iopub_thread.start()
# backward-compat: wrap iopub socket API in background thread
self.iopub_socket = self.iopub_thread.background_socket
def init_heartbeat(self):
"""start the heart beating"""
# heartbeat doesn't share context, because it mustn't be blocked
# by the GIL, which is accessed by libzmq when freeing zero-copy messages
hb_ctx = zmq.Context()
self.heartbeat = Heartbeat(hb_ctx, (self.transport, self.ip, self.hb_port))
self.hb_port = self.heartbeat.port
self.log.debug("Heartbeat REP Channel on port: %i" % self.hb_port)
self.heartbeat.start()
def log_connection_info(self):
"""display connection info, and store ports"""
basename = os.path.basename(self.connection_file)
if basename == self.connection_file or \
os.path.dirname(self.connection_file) == self.connection_dir:
# use shortname
tail = basename
else:
tail = self.connection_file
lines = [
"To connect another client to this kernel, use:",
" --existing %s" % tail,
]
# log connection info
# info-level, so often not shown.
# frontends should use the %connect_info magic
# to see the connection info
for line in lines:
self.log.info(line)
# also raw print to the terminal if no parent_handle (`ipython kernel`)
# unless log-level is CRITICAL (--quiet)
if not self.parent_handle and self.log_level < logging.CRITICAL:
io.rprint(_ctrl_c_message)
for line in lines:
io.rprint(line)
self.ports = dict(shell=self.shell_port, iopub=self.iopub_port,
stdin=self.stdin_port, hb=self.hb_port,
control=self.control_port)
def init_blackhole(self):
"""redirects stdout/stderr to devnull if necessary"""
if self.no_stdout or self.no_stderr:
blackhole = open(os.devnull, 'w')
if self.no_stdout:
sys.stdout = sys.__stdout__ = blackhole
if self.no_stderr:
sys.stderr = sys.__stderr__ = blackhole
def init_io(self):
"""Redirect input streams and set a display hook."""
if self.outstream_class:
outstream_factory = import_item(str(self.outstream_class))
sys.stdout = outstream_factory(self.session, self.iopub_thread, u'stdout')
sys.stderr = outstream_factory(self.session, self.iopub_thread, u'stderr')
if self.displayhook_class:
displayhook_factory = import_item(str(self.displayhook_class))
self.displayhook = displayhook_factory(self.session, self.iopub_socket)
sys.displayhook = self.displayhook
self.patch_io()
def patch_io(self):
"""Patch important libraries that can't handle sys.stdout forwarding"""
try:
import faulthandler
except ImportError:
pass
else:
# Warning: this is a monkeypatch of `faulthandler.enable`, watch for possible
# updates to the upstream API and update accordingly (up-to-date as of Python 3.5):
# https://docs.python.org/3/library/faulthandler.html#faulthandler.enable
# change default file to __stderr__ from forwarded stderr
faulthandler_enable = faulthandler.enable
def enable(file=sys.__stderr__, all_threads=True, **kwargs):
return faulthandler_enable(file=file, all_threads=all_threads, **kwargs)
faulthandler.enable = enable
if hasattr(faulthandler, 'register'):
faulthandler_register = faulthandler.register
def register(signum, file=sys.__stderr__, all_threads=True, chain=False, **kwargs):
return faulthandler_register(signum, file=file, all_threads=all_threads,
chain=chain, **kwargs)
faulthandler.register = register
def init_signal(self):
signal.signal(signal.SIGINT, signal.SIG_IGN)
def init_kernel(self):
"""Create the Kernel object itself"""
shell_stream = ZMQStream(self.shell_socket)
control_stream = ZMQStream(self.control_socket)
kernel_factory = self.kernel_class.instance
kernel = kernel_factory(parent=self, session=self.session,
shell_streams=[shell_stream, control_stream],
iopub_thread=self.iopub_thread,
iopub_socket=self.iopub_socket,
stdin_socket=self.stdin_socket,
log=self.log,
profile_dir=self.profile_dir,
user_ns=self.user_ns,
)
kernel.record_ports({
name + '_port': port for name, port in self.ports.items()
})
self.kernel = kernel
# Allow the displayhook to get the execution count
self.displayhook.get_execution_count = lambda: kernel.execution_count
def init_gui_pylab(self):
"""Enable GUI event loop integration, taking pylab into account."""
# Register inline backend as default
# this is higher priority than matplotlibrc,
# but lower priority than anything else (mpl.use() for instance).
# This only affects matplotlib >= 1.5
if not os.environ.get('MPLBACKEND'):
os.environ['MPLBACKEND'] = 'module://ipykernel.pylab.backend_inline'
# Provide a wrapper for :meth:`YAPInteractiveShellApp.init_gui_pylab`
# to ensure that any exception is printed straight to stderr.
# Normally _showtraceback associates the reply with an execution,
# which means frontends will never draw it, as this exception
# is not associated with any execute request.
shell = self.shell
_showtraceback = shell._showtraceback
try:
# replace error-sending traceback with stderr
def print_tb(etype, evalue, stb):
print ("GUI event loop or pylab initialization failed",
file=sys.stderr)
print (shell.InteractiveTB.stb2text(stb), file=sys.stderr)
shell._showtraceback = print_tb
InteractiveShellApp.init_gui_pylab(self)
finally:
shell._showtraceback = _showtraceback
def init_shell(self):
self.shell = getattr(self.kernel, 'shell', None)
if self.shell:
self.shell.configurables.append(self)
def init_extensions(self):
super(YAPKernelApp, self).init_extensions()
# BEGIN HARDCODED WIDGETS HACK
# Ensure ipywidgets extension is loaded if available
extension_man = self.shell.extension_manager
if 'ipywidgets' not in extension_man.loaded:
try:
extension_man.load_extension('ipywidgets')
except ImportError as e:
self.log.debug('ipywidgets package not installed. Widgets will not be available.')
# END HARDCODED WIDGETS HACK
def configure_tornado_logger(self):
""" Configure the tornado logging.Logger.
Must set up the tornado logger or else tornado will call
basicConfig for the root logger which makes the root logger
go to the real sys.stderr instead of the capture streams.
This function mimics the setup of logging.basicConfig.
"""
logger = logging.getLogger('tornado')
handler = logging.StreamHandler()
formatter = logging.Formatter(logging.BASIC_FORMAT)
handler.setFormatter(formatter)
logger.addHandler(handler)
@catch_config_error
def initialize(self, argv=None):
super(YAPKernelApp, self).initialize(argv)
if self.subapp is not None:
return
# register zmq IOLoop with tornado
zmq_ioloop.install()
self.init_blackhole()
self.init_connection_file()
self.init_poller()
self.init_sockets()
self.init_heartbeat()
# writing/displaying connection info must be *after* init_sockets/heartbeat
self.write_connection_file()
# Log connection info after writing connection file, so that the connection
# file is definitely available at the time someone reads the log.
self.log_connection_info()
self.init_io()
self.init_signal()
self.init_kernel()
# shell init steps
self.init_path()
self.init_shell()
if self.shell:
self.init_gui_pylab()
self.init_extensions()
self.init_code()
# flush stdout/stderr, so that anything written to these streams during
# initialization do not get associated with the first execution request
sys.stdout.flush()
sys.stderr.flush()
def start(self):
if self.subapp is not None:
return self.subapp.start()
if self.poller is not None:
self.poller.start()
self.kernel.start()
try:
ioloop.IOLoop.instance().start()
except KeyboardInterrupt:
pass
launch_new_instance = YAPKernelApp.launch_instance
def main():
"""Run an YAPKernel as an application"""
app = YAPKernelApp.instance()
app.initialize()
app.start()
if __name__ == '__main__':
main()

View File

@ -0,0 +1,490 @@
"""An Application for launching a kernel"""
# Copyright (c) YAP Development Team.
# Distributed under the terms of the Modified BSD License.
from __future__ import print_function
import atexit
import os
import sys
import signal
import traceback
import logging
from tornado import ioloop
import zmq
from zmq.eventloop import ioloop as zmq_ioloop
from zmq.eventloop.zmqstream import ZMQStream
from IPython.core.application import (
BaseIPythonApplication, base_flags, base_aliases, catch_config_error
)
from IPython.core.profiledir import ProfileDir
from IPython.core.shellapp import (
InteractiveShellApp, shell_flags, shell_aliases
)
from IPython.utils import io
from ipython_genutils.path import filefind, ensure_dir_exists
from traitlets import (
Any, Instance, Dict, Unicode, Integer, Bool, DottedObjectName, Type, default
)
from ipython_genutils.importstring import import_item
from jupyter_core.paths import jupyter_runtime_dir
from jupyter_client import write_connection_file
from jupyter_client.connect import ConnectionFileMixin
# local imports
from ipykernel.iostream import IOPubThread
from ipykernel.heartbeat import Heartbeat
from .yap_kernel import YAPKernel
from ipykernel.parentpoller import ParentPollerUnix, ParentPollerWindows
from jupyter_client.session import (
Session, session_flags, session_aliases,
)
from ipykernel.zmqshell import ZMQInteractiveShell
#-----------------------------------------------------------------------------
# Flags and Aliases
#-----------------------------------------------------------------------------
kernel_aliases = dict(base_aliases)
kernel_aliases.update({
'ip' : 'YAPKernelApp.ip',
'hb' : 'YAPKernelApp.hb_port',
'shell' : 'YAPKernelApp.shell_port',
'iopub' : 'YAPKernelApp.iopub_port',
'stdin' : 'YAPKernelApp.stdin_port',
'control' : 'YAPKernelApp.control_port',
'f' : 'YAPKernelApp.connection_file',
'transport': 'YAPKernelApp.transport',
})
kernel_flags = dict(base_flags)
kernel_flags.update({
'no-stdout' : (
{'YAPKernelApp' : {'no_stdout' : True}},
"redirect stdout to the null device"),
'no-stderr' : (
{'YAPKernelApp' : {'no_stderr' : True}},
"redirect stderr to the null device"),
'pylab' : (
{'YAPKernelApp' : {'pylab' : 'auto'}},
"""Pre-load matplotlib and numpy for interactive use with
the default matplotlib backend."""),
})
# inherit flags&aliases for any IPython shell apps
kernel_aliases.update(shell_aliases)
kernel_flags.update(shell_flags)
# inherit flags&aliases for Sessions
kernel_aliases.update(session_aliases)
kernel_flags.update(session_flags)
_ctrl_c_message = """\
NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.
To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\\ in UNIX-like environments.
To read more about this, see https://github.com/ipython/ipython/issues/2049
"""
#-----------------------------------------------------------------------------
# Application class for starting an YAP Kernel
#-----------------------------------------------------------------------------
class YAPKernelApp(BaseIPythonApplication, InteractiveShellApp,
ConnectionFileMixin):
name='YAP-kernel'
aliases = Dict(kernel_aliases)
flags = Dict(kernel_flags)
classes = [YAPKernel, ZMQInteractiveShell, ProfileDir, Session]
# the kernel class, as an importstring
kernel_class = Type('yap_kernel.yap_kernel.YAPKernel',
klass='ipykernel.kernelbase.Kernel',
help="""The Kernel subclass to be used.
This should allow easy re-use of the YAPKernelApp entry point
to configure and launch kernels other than YAP's own.
""").tag(config=True)
kernel = Any()
poller = Any() # don't restrict this even though current pollers are all Threads
heartbeat = Instance(Heartbeat, allow_none=True)
ports = Dict()
subcommands = {
'install': (
'yap_kernel.kernelspec.InstallYAPKernelSpecApp',
'Install the YAP kernel'
),
}
# connection info:
connection_dir = Unicode()
@default('connection_dir')
def _default_connection_dir(self):
return jupyter_runtime_dir()
@property
def abs_connection_file(self):
if os.path.basename(self.connection_file) == self.connection_file:
return os.path.join(self.connection_dir, self.connection_file)
else:
return self.connection_file
# streams, etc.
no_stdout = Bool(False, help="redirect stdout to the null device").tag(config=True)
no_stderr = Bool(False, help="redirect stderr to the null device").tag(config=True)
outstream_class = DottedObjectName('ipykernel.iostream.OutStream',
help="The importstring for the OutStream factory").tag(config=True)
displayhook_class = DottedObjectName('ipykernel.displayhook.ZMQDisplayHook',
help="The importstring for the DisplayHook factory").tag(config=True)
# polling
parent_handle = Integer(int(os.environ.get('JPY_PARENT_PID') or 0),
help="""kill this process if its parent dies. On Windows, the argument
specifies the HANDLE of the parent process, otherwise it is simply boolean.
""").tag(config=True)
interrupt = Integer(int(os.environ.get('JPY_INTERRUPT_EVENT') or 0),
help="""ONLY USED ON WINDOWS
Interrupt this process when the parent is signaled.
""").tag(config=True)
def init_crash_handler(self):
sys.excepthook = self.excepthook
def excepthook(self, etype, evalue, tb):
# write uncaught traceback to 'real' stderr, not zmq-forwarder
traceback.print_exception(etype, evalue, tb, file=sys.__stderr__)
def init_poller(self):
if sys.platform == 'win32':
if self.interrupt or self.parent_handle:
self.poller = ParentPollerWindows(self.interrupt, self.parent_handle)
elif self.parent_handle:
self.poller = ParentPollerUnix()
def _bind_socket(self, s, port):
iface = '%s://%s' % (self.transport, self.ip)
if self.transport == 'tcp':
if port <= 0:
port = s.bind_to_random_port(iface)
else:
s.bind("tcp://%s:%i" % (self.ip, port))
elif self.transport == 'ipc':
if port <= 0:
port = 1
path = "%s-%i" % (self.ip, port)
while os.path.exists(path):
port = port + 1
path = "%s-%i" % (self.ip, port)
else:
path = "%s-%i" % (self.ip, port)
s.bind("ipc://%s" % path)
return port
def write_connection_file(self):
"""write connection info to JSON file"""
cf = self.abs_connection_file
self.log.debug("Writing connection file: %s", cf)
write_connection_file(cf, ip=self.ip, key=self.session.key, transport=self.transport,
shell_port=self.shell_port, stdin_port=self.stdin_port, hb_port=self.hb_port,
iopub_port=self.iopub_port, control_port=self.control_port)
def cleanup_connection_file(self):
cf = self.abs_connection_file
self.log.debug("Cleaning up connection file: %s", cf)
try:
os.remove(cf)
except (IOError, OSError):
pass
self.cleanup_ipc_files()
def init_connection_file(self):
if not self.connection_file:
self.connection_file = "kernel-%s.json"%os.getpid()
try:
self.connection_file = filefind(self.connection_file, ['.', self.connection_dir])
except IOError:
self.log.debug("Connection file not found: %s", self.connection_file)
# This means I own it, and I'll create it in this directory:
ensure_dir_exists(os.path.dirname(self.abs_connection_file), 0o700)
# Also, I will clean it up:
atexit.register(self.cleanup_connection_file)
return
try:
self.load_connection_file()
except Exception:
self.log.error("Failed to load connection file: %r", self.connection_file, exc_info=True)
self.exit(1)
def init_sockets(self):
# Create a context, a session, and the kernel sockets.
self.log.info("Starting the kernel at pid: %i", os.getpid())
context = zmq.Context.instance()
# Uncomment this to try closing the context.
# atexit.register(context.term)
self.shell_socket = context.socket(zmq.ROUTER)
self.shell_socket.linger = 1000
self.shell_port = self._bind_socket(self.shell_socket, self.shell_port)
self.log.debug("shell ROUTER Channel on port: %i" % self.shell_port)
self.stdin_socket = context.socket(zmq.ROUTER)
self.stdin_socket.linger = 1000
self.stdin_port = self._bind_socket(self.stdin_socket, self.stdin_port)
self.log.debug("stdin ROUTER Channel on port: %i" % self.stdin_port)
self.control_socket = context.socket(zmq.ROUTER)
self.control_socket.linger = 1000
self.control_port = self._bind_socket(self.control_socket, self.control_port)
self.log.debug("control ROUTER Channel on port: %i" % self.control_port)
self.init_iopub(context)
def init_iopub(self, context):
self.iopub_socket = context.socket(zmq.PUB)
self.iopub_socket.linger = 1000
self.iopub_port = self._bind_socket(self.iopub_socket, self.iopub_port)
self.log.debug("iopub PUB Channel on port: %i" % self.iopub_port)
self.configure_tornado_logger()
self.iopub_thread = IOPubThread(self.iopub_socket, pipe=True)
self.iopub_thread.start()
# backward-compat: wrap iopub socket API in background thread
self.iopub_socket = self.iopub_thread.background_socket
def init_heartbeat(self):
"""start the heart beating"""
# heartbeat doesn't share context, because it mustn't be blocked
# by the GIL, which is accessed by libzmq when freeing zero-copy messages
hb_ctx = zmq.Context()
self.heartbeat = Heartbeat(hb_ctx, (self.transport, self.ip, self.hb_port))
self.hb_port = self.heartbeat.port
self.log.debug("Heartbeat REP Channel on port: %i" % self.hb_port)
self.heartbeat.start()
def log_connection_info(self):
"""display connection info, and store ports"""
basename = os.path.basename(self.connection_file)
if basename == self.connection_file or \
os.path.dirname(self.connection_file) == self.connection_dir:
# use shortname
tail = basename
else:
tail = self.connection_file
lines = [
"To connect another client to this kernel, use:",
" --existing %s" % tail,
]
# log connection info
# info-level, so often not shown.
# frontends should use the %connect_info magic
# to see the connection info
for line in lines:
self.log.info(line)
# also raw print to the terminal if no parent_handle (`ipython kernel`)
# unless log-level is CRITICAL (--quiet)
if not self.parent_handle and self.log_level < logging.CRITICAL:
io.rprint(_ctrl_c_message)
for line in lines:
io.rprint(line)
self.ports = dict(shell=self.shell_port, iopub=self.iopub_port,
stdin=self.stdin_port, hb=self.hb_port,
control=self.control_port)
def init_blackhole(self):
"""redirects stdout/stderr to devnull if necessary"""
if self.no_stdout or self.no_stderr:
blackhole = open(os.devnull, 'w')
if self.no_stdout:
sys.stdout = sys.__stdout__ = blackhole
if self.no_stderr:
sys.stderr = sys.__stderr__ = blackhole
def init_io(self):
"""Redirect input streams and set a display hook."""
if self.outstream_class:
outstream_factory = import_item(str(self.outstream_class))
sys.stdout = outstream_factory(self.session, self.iopub_thread, u'stdout')
sys.stderr = outstream_factory(self.session, self.iopub_thread, u'stderr')
if self.displayhook_class:
displayhook_factory = import_item(str(self.displayhook_class))
self.displayhook = displayhook_factory(self.session, self.iopub_socket)
sys.displayhook = self.displayhook
self.patch_io()
def patch_io(self):
"""Patch important libraries that can't handle sys.stdout forwarding"""
try:
import faulthandler
except ImportError:
pass
else:
# Warning: this is a monkeypatch of `faulthandler.enable`, watch for possible
# updates to the upstream API and update accordingly (up-to-date as of Python 3.5):
# https://docs.python.org/3/library/faulthandler.html#faulthandler.enable
# change default file to __stderr__ from forwarded stderr
faulthandler_enable = faulthandler.enable
def enable(file=sys.__stderr__, all_threads=True, **kwargs):
return faulthandler_enable(file=file, all_threads=all_threads, **kwargs)
faulthandler.enable = enable
if hasattr(faulthandler, 'register'):
faulthandler_register = faulthandler.register
def register(signum, file=sys.__stderr__, all_threads=True, chain=False, **kwargs):
return faulthandler_register(signum, file=file, all_threads=all_threads,
chain=chain, **kwargs)
faulthandler.register = register
def init_signal(self):
signal.signal(signal.SIGINT, signal.SIG_IGN)
def init_kernel(self):
"""Create the Kernel object itself"""
shell_stream = ZMQStream(self.shell_socket)
control_stream = ZMQStream(self.control_socket)
kernel_factory = self.kernel_class.instance
kernel = kernel_factory(parent=self, session=self.session,
shell_streams=[shell_stream, control_stream],
iopub_thread=self.iopub_thread,
iopub_socket=self.iopub_socket,
stdin_socket=self.stdin_socket,
log=self.log,
profile_dir=self.profile_dir,
user_ns=self.user_ns,
)
kernel.record_ports({
name + '_port': port for name, port in self.ports.items()
})
self.kernel = kernel
# Allow the displayhook to get the execution count
self.displayhook.get_execution_count = lambda: kernel.execution_count
def init_gui_pylab(self):
"""Enable GUI event loop integration, taking pylab into account."""
# Register inline backend as default
# this is higher priority than matplotlibrc,
# but lower priority than anything else (mpl.use() for instance).
# This only affects matplotlib >= 1.5
if not os.environ.get('MPLBACKEND'):
os.environ['MPLBACKEND'] = 'module://ipykernel.pylab.backend_inline'
# Provide a wrapper for :meth:`InteractiveShellApp.init_gui_pylab`
# to ensure that any exception is printed straight to stderr.
# Normally _showtraceback associates the reply with an execution,
# which means frontends will never draw it, as this exception
# is not associated with any execute request.
shell = self.shell
_showtraceback = shell._showtraceback
try:
# replace error-sending traceback with stderr
def print_tb(etype, evalue, stb):
print ("GUI event loop or pylab initialization failed",
file=sys.stderr)
print (shell.InteractiveTB.stb2text(stb), file=sys.stderr)
shell._showtraceback = print_tb
InteractiveShellApp.init_gui_pylab(self)
finally:
shell._showtraceback = _showtraceback
def init_shell(self):
self.shell = getattr(self.kernel, 'shell', None)
if self.shell:
self.shell.configurables.append(self)
def init_extensions(self):
super(YAPKernelApp, self).init_extensions()
# BEGIN HARDCODED WIDGETS HACK
# Ensure ipywidgets extension is loaded if available
extension_man = self.shell.extension_manager
if 'ipywidgets' not in extension_man.loaded:
try:
extension_man.load_extension('ipywidgets')
except ImportError as e:
self.log.debug('ipywidgets package not installed. Widgets will not be available.')
# END HARDCODED WIDGETS HACK
def configure_tornado_logger(self):
""" Configure the tornado logging.Logger.
Must set up the tornado logger or else tornado will call
basicConfig for the root logger which makes the root logger
go to the real sys.stderr instead of the capture streams.
This function mimics the setup of logging.basicConfig.
"""
logger = logging.getLogger('tornado')
handler = logging.StreamHandler()
formatter = logging.Formatter(logging.BASIC_FORMAT)
handler.setFormatter(formatter)
logger.addHandler(handler)
@catch_config_error
def initialize(self, argv=None):
super(YAPKernelApp, self).initialize(argv)
if self.subapp is not None:
return
# register zmq IOLoop with tornado
zmq_ioloop.install()
self.init_blackhole()
self.init_connection_file()
self.init_poller()
self.init_sockets()
self.init_heartbeat()
# writing/displaying connection info must be *after* init_sockets/heartbeat
self.write_connection_file()
# Log connection info after writing connection file, so that the connection
# file is definitely available at the time someone reads the log.
self.log_connection_info()
self.init_io()
self.init_signal()
self.init_kernel()
# shell init steps
self.init_path()
self.init_shell()
if self.shell:
self.init_gui_pylab()
self.init_extensions()
self.init_code()
# flush stdout/stderr, so that anything written to these streams during
# initialization do not get associated with the first execution request
sys.stdout.flush()
sys.stderr.flush()
def start(self):
if self.subapp is not None:
return self.subapp.start()
if self.poller is not None:
self.poller.start()
self.kernel.start()
try:
ioloop.IOLoop.instance().start()
except KeyboardInterrupt:
pass
launch_new_instance = YAPKernelApp.launch_instance
def main():
"""Run an IPKernel as an application"""
app = YAPKernelApp.instance()
app.initialize()
app.start()
if __name__ == '__main__':
main()

View File

@ -0,0 +1,82 @@
#!/usr/bin/env python
# coding: utf-8
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
from __future__ import print_function
# the name of the package
name = 'yap_kernel'
#-----------------------------------------------------------------------------
# Minimal Python version sanity check
#-----------------------------------------------------------------------------
import sys
v = sys.version_info
if v[:2] < (2,7) or (v[0] >= 3 and v[:2] < (3,3)):
error = "ERROR: %s requires Python version 2.7 or 3.3 or above." % name
print(error, file=sys.stderr)
sys.exit(1)
PY3 = (sys.version_info[0] >= 3)
#-----------------------------------------------------------------------------
# get on with it
#-----------------------------------------------------------------------------
import os
from glob import glob
from distutils.core import setup
packages = ["${CMAKE_CURRENT_SOURCE_DIR}"]
version_ns = {}
setup_args = dict(
name = 'yap_kernel',
version = '0.0.1',
packages = ["yap_kernel"],
package_dir = {'': '${CMAKE_SOURCE_DIR}/packages/python' },
description = "YAP Kernel for Jupyter",
long_description="A simple YAP kernel for Jupyter/IPython",
url="https://github.com/vscosta/yap-6.3",
author='Vitor Santos Costa, based on the the IPython',
author_email='vsc@dcc.fc.up.pt',
license = 'BSD',
platforms = "Linux, Mac OS X, Windows",
keywords = ['Interactive', 'Interpreter', 'Shell', 'Web'],
data_files=[('share/Yap/js', ['${CMAKE_SOURCE_DIR}/misc/editors/prolog.js'])],
classifiers = [
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: BSD License',
'Programming Language :: Prolog',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
],
)
if 'develop' in sys.argv or any(a.startswith('bdist') for a in sys.argv):
import setuptools
setuptools_args = {}
install_requires = setuptools_args['install_requires'] = [
'ipython>=4.0.0',
'traitlets>=4.1.0',
'jupyter_client',
'tornado>=4.0',
]
extras_require = setuptools_args['extras_require'] = {
'test:python_version=="2.7"': ['mock', 'nose_warnings_filters'],
}
if 'setuptools' in sys.modules:
setup_args.update(setuptools_args)
if __name__ == '__main__':
setup(**setup_args)

View File

@ -0,0 +1,109 @@
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 13 18:17:15 2014
@author: takluyver
"""
import sys
PY3 = (sys.version_info[0] >= 3)
try:
from inspect import signature, Parameter # Python >= 3.3
except ImportError:
from ._signatures import signature, Parameter
if PY3:
from functools import wraps
else:
from functools import wraps as _wraps
def wraps(f):
def dec(func):
_wraps(f)(func)
func.__wrapped__ = f
return func
return dec
def callback_prototype(prototype):
"""Decorator to process a callback prototype.
A callback prototype is a function whose signature includes all the values
that will be passed by the callback API in question.
The original function will be returned, with a ``prototype.adapt`` attribute
which can be used to prepare third party callbacks.
"""
protosig = signature(prototype)
positional, keyword = [], []
for name, param in protosig.parameters.items():
if param.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD):
raise TypeError("*args/**kwargs not supported in prototypes")
if (param.default is not Parameter.empty) \
or (param.kind == Parameter.KEYWORD_ONLY):
keyword.append(name)
else:
positional.append(name)
kwargs = dict.fromkeys(keyword)
def adapt(callback):
"""Introspect and prepare a third party callback."""
sig = signature(callback)
try:
# XXX: callback can have extra optional parameters - OK?
sig.bind(*positional, **kwargs)
return callback
except TypeError:
pass
# Match up arguments
unmatched_pos = positional[:]
unmatched_kw = kwargs.copy()
unrecognised = []
# TODO: unrecognised parameters with default values - OK?
for name, param in sig.parameters.items():
# print(name, param.kind) #DBG
if param.kind == Parameter.POSITIONAL_ONLY:
if len(unmatched_pos) > 0:
unmatched_pos.pop(0)
else:
unrecognised.append(name)
elif param.kind == Parameter.POSITIONAL_OR_KEYWORD:
if (param.default is not Parameter.empty) and (name in unmatched_kw):
unmatched_kw.pop(name)
elif len(unmatched_pos) > 0:
unmatched_pos.pop(0)
else:
unrecognised.append(name)
elif param.kind == Parameter.VAR_POSITIONAL:
unmatched_pos = []
elif param.kind == Parameter.KEYWORD_ONLY:
if name in unmatched_kw:
unmatched_kw.pop(name)
else:
unrecognised.append(name)
else: # VAR_KEYWORD
unmatched_kw = {}
# print(unmatched_pos, unmatched_kw, unrecognised) #DBG
if unrecognised:
raise TypeError("Function {!r} had unmatched arguments: {}".format(callback, unrecognised))
n_positional = len(positional) - len(unmatched_pos)
@wraps(callback)
def adapted(*args, **kwargs):
"""Wrapper for third party callbacks that discards excess arguments"""
# print(args, kwargs)
args = args[:n_positional]
for name in unmatched_kw:
# XXX: Could name not be in kwargs?
kwargs.pop(name)
# print(args, kwargs, unmatched_pos, cut_positional, unmatched_kw)
return callback(*args, **kwargs)
return adapted
prototype.adapt = adapt
return prototype

View File

@ -13,7 +13,7 @@ events and the arguments which will be passed to them.
This API is experimental in yap_ipython 2.0, and may be revised in future versions.
"""
from backcall import callback_prototype
from yap_ipython.core.backcall import callback_prototype
class EventManager(object):

View File

@ -1,4 +1,4 @@
from backcall import callback_prototype
from yap_ipython.core.backcall import callback_prototype
import unittest
from unittest.mock import Mock
import nose.tools as nt

View File

@ -0,0 +1,258 @@
/**
* @file jupyter.yap
*
* @brief allow interaction between Jupyter and YAP.
*
* @long The code in here:
* - establishes communication between Prolog and Python Streams
* - inputs Prolog code and queries
* - supports completion of Prolog programs.
* -
*/
%% :- module( jupyter,
%% [jupyter_query/3,
%% errors/2,
%% ready/2,
%% completion/2,
%% ]
%% ).
:- reexport(library(yapi)).
:- use_module(library(lists)).
:- use_module(library(maplist)).
:- use_module(library(python)).
:- python_import(sys).
jupyter_query(Self, Cell, Line ) :-
setup_call_cleanup(
enter_cell(Self),
jupyter_cell(Self, Cell, Line),
exit_cell(Self)
).
jupyter_cell(_Self, Cell, _) :-
jupyter_consult(Cell),
fail.
jupyter_cell( _Self, _, Line ) :-
blank( Line ),
!.
jupyter_cell( _Self, _, [] ) :- !.
jupyter_cell( Self, _, Line ) :-
python_query( Self, Line ).
jupyter_consult(Text) :-
blank( Text ),
!.
jupyter_consult(Cell) :-
open_mem_read_stream( Cell, Stream),
load_files(user:'jupyter cell',[stream(Stream)]).
%should load_files close?
blank(Text) :-
atom_codes(Text, L),
maplist( blankc, L).
blankc(' ').
blankc('\n').
blankc('\t').
enter_cell(_Self) :-
%open('//python/input', read, _Input, []),
open('//python/sys.stdout', append, _Output, []),
open('//python/sys.stdout', append, _Error, []),
%set_prolog_flag(user_input, _Input),
set_prolog_flag(user_output, _Output),
set_prolog_flag(user_error, _Error).
exit_cell(_Self) :-
%close( user_input),
close( user_output),
close( user_error).
completions(S, Self) :-
open_mem_read_stream(S, St),
scan_to_list(St, Tokens),
close(St),
reverse(Tokens, RTokens),
strip_final_tokens(RTokens, MyTokens),
setof( Completion, complete(MyTokens, Completion), Cs),
Self.matches := Cs.
strip_final_tokens(['EOT'|Ts], Ts) :- !.
strip_final_tokens( Ts, Ts ).
complete([E,l,C,l,A|More],
isconsult(A),
%B = l,
library(C,Lib),
%D=l,
E=atom(Prefix),
\+ arg( Rest ),
check_library( Prefix, Lib, C).
complete([E,l,C,l,-,'['|More],
isconsult(A),
%B = l,
library(C,Lib),
%D=l,
E=atom(Prefix),
\+ arg( Rest ),
check_library( Prefix, Lib, C).
complete([C,l,A|More],
isconsult(A),
%B = l,
C=atom(Prefix),
\+ arg( Rest ),
file_or_library( Prefix, C).
complete([C,l,-,'['|More],
isconsult(A),
%B = l,
C=atom(Prefix),
\+ arg( Rest ),
file_or_library( Prefix, C).
complete( [atom(F)|Rest], C) :-
\+ arg( Rest ),
predicate( F, Pred, Arity ),
cont( Arity, F, Pred, C).
isconsult( atom(use_module) ).
isconsult( atom(ensure_loaded) ).
isconsult( atom(compile) ).
isconsult( atom(consult) ).
isconsult( atom(reconsult) ).
isconsult( atom(load_files) ).
isconsult( '[' ).
arg([']'|_]).
arg([l|_]).
file_or_library(F,C) :-
libsym(C0),
atom_cooncat(F,C,C0).
file_or_library(F,C) :-
check_file(F,C).
check_file(F0,C) :-
atom_concat('\'',F,F0),
!,
absolute_file_name( F, FF, [access(none)] ),
atom_concat( FF, '*' , Pat),
absolute_file_name( Pat, C0, [glob(true)] ),
atom_concat(Pat,C00,C0),
atom_conct(C00,'\'',C).
check_file(F0,C) :-
atom_concat( F0, '*' , Pat),
absolute_file_name( Pat, C0, [glob(true)] ),
atom_concat(Pat,C,C0).
check_library( Lib, F, C) :-
atom_concat( F, '*' , Pat),
LibF =.. [Lib(Pat)],
absolute_file_name( LibF, Lib, [glob(true)] ),
file_directory_name( Lib, Name),
( atom_concat(C, '.yap', Name) -> true ;
atom_concat(C, '.ypp', Name) -> true ;
atom_concat(C, '.prolog', Name) -> true
).
predicate(N,P,A) :-
system_predicate(P0/A),
atom_concat(N,P,P0).
predicate(N,P,A) :-
current_predicate(P0/A),
atom_concat(N,P,P0).
cont(0, F, P, P0) :-
atom_concat( F, P, P0 ).
cont( _, F, P, PB ):-
atom_concat( [F, P, '('], PB ).
ready(_Self, Line ) :-
blank( Line ),
!.
ready(Self, Line ) :-
errors( Self, Line ),
\+ syntax_error(_,_).
errors( Self, Text ) :-
setup_call_cleanup(
open_events( Self, Text, Stream),
clauses(Self, Stream),
close_events( Self )
).
clauses(Self, Stream) :-
repeat,
read_clause(Stream, Cl, [term_position(_Pos), syntax_errors(fail)] ),
command( Self, Cl ),
Cl == end_of_file,
!.
command(_, end_of_file) :- !.
command( _Self, ( :- op(Prio,Assoc,Name) ) ) :-
addop(Prio,Assoc,Name).
command( _Self, ( :- module(Name, Exports) )) :-
retract( active_module( M0 ) ),
atom_concat( '__m0_', Name, M ),
assert( active_module(M) ),
assert( undo( active_module(M0) ) ),
maplist( addop2(M), Exports).
addop(Prio,Assoc,Name) :-
(
current_op(OPrio, SimilarAssoc, Name),
op(Prio, Assoc, Name),
matched_op(Assoc, SimilarAssoc)
->
assertz( undo(op( OPrio, Assoc, Name ) ) )
;
assertz( undo(op( 0, Assoc, Name ) ) )
).
addop2(M, op(Prio, Assoc, Name)) :-
addop( Prio, Assoc, M:Name ).
matched_op(A, B) :-
optype( A, T),
optype( B, T).
optype(fx,pre).
optype(fy,pre).
optype(xfx,in).
optype(xfy,in).
optype(yfx,in).
optype(yfy,in).
optype(xf,pos).
optype(yf,pos).
:- dynamic user:portray_message/2.
:- multifile user:portray_message/2.
:- dynamic syntax_error/4, undo/1.
open_events(Self, Text, Stream) :-
Self.errors := [],
open_mem_read_stream( Text, Stream ),
assert((user:portray_message(_Severity, error(syntax_error(Cause),info(between(_,LN,_), _FileName, CharPos, Details))) :-
assert( syntax_error(Cause,LN,CharPos,Details) )
)).
close_events( _Self ) :-
retract( undo(G) ),
call(G),
fail.
close_events( Self ) :-
retract( syntax_error( C, L, N, A )),
Self.errors := [t(C,L,N,A)] + Self.errors,
fail.
close_events( _ ).

View File

@ -0,0 +1,161 @@
"""prompt-toolkit utilities
Everything in this module is a private API,
not to be used outside yap_ipython.
"""
# Copyright (c) yap_ipython Development Team.
# Distributed under the terms of the Modified BSD License.
import unicodedata
from wcwidth import wcwidth
from yap_ipython.core.completer import (
provisionalcompleter, cursor_to_position,
_deduplicate_completions)
from prompt_toolkit.completion import Completer, Completion
from prompt_toolkit.layout.lexers import Lexer
from prompt_toolkit.layout.lexers import PygmentsLexer
import pygments.lexers as pygments_lexers
_completion_sentinel = object()
def _elide(string, *, min_elide=30):
"""
If a string is long enough, and has at least 2 dots,
replace the middle part with ellipses.
If three consecutive dots, or two consecutive dots are encountered these are
replaced by the equivalents HORIZONTAL ELLIPSIS or TWO DOT LEADER unicode
equivalents
"""
string = string.replace('...','\N{HORIZONTAL ELLIPSIS}')
string = string.replace('..','\N{TWO DOT LEADER}')
if len(string) < min_elide:
return string
parts = string.split('.')
if len(parts) <= 3:
return string
return '{}.{}\N{HORIZONTAL ELLIPSIS}{}.{}'.format(parts[0], parts[1][0], parts[-2][-1], parts[-1])
def _adjust_completion_text_based_on_context(text, body, offset):
if text.endswith('=') and len(body) > offset and body[offset] is '=':
return text[:-1]
else:
return text
class IPythonPTCompleter(Completer):
"""Adaptor to provide yap_ipython completions to prompt_toolkit"""
def __init__(self, ipy_completer=None, shell=None, patch_stdout=None):
if shell is None and ipy_completer is None:
raise TypeError("Please pass shell=an InteractiveShell instance.")
self._ipy_completer = ipy_completer
self.shell = shell
if patch_stdout is None:
raise TypeError("Please pass patch_stdout")
self.patch_stdout = patch_stdout
@property
def ipy_completer(self):
if self._ipy_completer:
return self._ipy_completer
else:
return self.shell.Completer
def get_completions(self, document, complete_event):
if not document.current_line.strip():
return
# Some bits of our completion system may print stuff (e.g. if a module
# is imported). This context manager ensures that doesn't interfere with
# the prompt.
with self.patch_stdout(), provisionalcompleter():
body = document.text
cursor_row = document.cursor_position_row
cursor_col = document.cursor_position_col
cursor_position = document.cursor_position
offset = cursor_to_position(body, cursor_row, cursor_col)
yield from self._get_completions(body, offset, cursor_position, self.ipy_completer)
@staticmethod
def _get_completions(body, offset, cursor_position, ipyc):
"""
Private equivalent of get_completions() use only for unit_testing.
"""
debug = getattr(ipyc, 'debug', False)
completions = _deduplicate_completions(
body, ipyc.completions(body, offset))
for c in completions:
if not c.text:
# Guard against completion machinery giving us an empty string.
continue
text = unicodedata.normalize('NFC', c.text)
# When the first character of the completion has a zero length,
# then it's probably a decomposed unicode character. E.g. caused by
# the "\dot" completion. Try to compose again with the previous
# character.
if wcwidth(text[0]) == 0:
if cursor_position + c.start > 0:
char_before = body[c.start - 1]
fixed_text = unicodedata.normalize(
'NFC', char_before + text)
# Yield the modified completion instead, if this worked.
if wcwidth(text[0:1]) == 1:
yield Completion(fixed_text, start_position=c.start - offset - 1)
continue
# TODO: Use Jedi to determine meta_text
# (Jedi currently has a bug that results in incorrect information.)
# meta_text = ''
# yield Completion(m, start_position=start_pos,
# display_meta=meta_text)
display_text = c.text
adjusted_text = _adjust_completion_text_based_on_context(c.text, body, offset)
if c.type == 'function':
yield Completion(adjusted_text, start_position=c.start - offset, display=_elide(display_text+'()'), display_meta=c.type+c.signature)
else:
yield Completion(adjusted_text, start_position=c.start - offset, display=_elide(display_text), display_meta=c.type)
class IPythonPTLexer(Lexer):
"""
Wrapper around PythonLexer and BashLexer.
"""
def __init__(self):
l = pygments_lexers
self.python_lexer = PygmentsLexer(l.Python3Lexer)
self.shell_lexer = PygmentsLexer(l.BashLexer)
self.magic_lexers = {
'HTML': PygmentsLexer(l.HtmlLexer),
'html': PygmentsLexer(l.HtmlLexer),
'javascript': PygmentsLexer(l.JavascriptLexer),
'js': PygmentsLexer(l.JavascriptLexer),
'perl': PygmentsLexer(l.PerlLexer),
'ruby': PygmentsLexer(l.RubyLexer),
'latex': PygmentsLexer(l.TexLexer),
'prolog': PygmentsLexer(l.PrologLexer),
}
def lex_document(self, cli, document):
text = document.text.lstrip()
lexer = self.python_lexer
if text.startswith('!') or text.startswith('%%bash'):
lexer = self.shell_lexer
elif text.startswith('%%'):
for magic, l in self.magic_lexers.items():
if text.startswith('%%' + magic):
lexer = l
break
return lexer.lex_document(cli, document)

View File

@ -562,7 +562,7 @@ class YAPRun:
self.os = None
sys.stderr.writeln('Done, with', self.bindings)
return True,self.bindings
if self.bindings:
if found:
sys.stderr.write('Done, with', self.bindings, '\n')
else:
self.query.close()
@ -571,8 +571,9 @@ class YAPRun:
sys.stderr.write('Fail\n')
return True,{}
except Exception as e:
sys.stderr.write('Exception after', self.bindings, '\n')
has_raised = True
self.result.result = False
return False,{}
def _yrun_cell(self, raw_cell, store_history=True, silent=False,

View File

@ -0,0 +1,21 @@
Metadata-Version: 1.1
Name: yap-kernel
Version: 6.3.4.dev0
Summary: YAP Kernel for Jupyter
Home-page: http://ipython.org
Author: YAP Development Team
Author-email: YAP-dev@scipy.org
License: BSD
Description-Content-Type: UNKNOWN
Description: UNKNOWN
Keywords: Interactive,Interpreter,Shell,Web
Platform: Linux
Platform: Mac OS X
Platform: Windows
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Prolog
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3

View File

@ -0,0 +1,271 @@
MANIFEST.in
README.md
setup.cfg
setup.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel_launcher.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/core/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/core/yap_kernel/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/core/yap_kernel/getipython.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/__main__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/config.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/consoleapp.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/display.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/frontend.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/html.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/nbconvert.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/nbformat.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/parallel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/paths.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/qt.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/yapi.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/core/getipython.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/core/interactiveshell.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/core/oinspect.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/core/pylabtools.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/core/release.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/core/shellapp.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/autoreload.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/cythonmagic.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/rmagic.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/storemagic.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/sympyprinting.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/tests/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/tests/test_autoreload.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/extensions/tests/test_storemagic.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/mathjax.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/qt_for_kernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/qt_loaders.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/decorators/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/decorators/_decorators.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/external/decorators/_numpy_testing_noseclasses.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/__main__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/adapter.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/channels.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/channelsabc.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/client.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/clientabc.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/connect.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/kernelspec.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/kernelspecapp.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/launcher.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/manager.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/managerabc.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/multikernelmanager.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/restarter.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/kernel/threaded.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/backgroundjobs.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/clipboard.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/deepreload.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/demo.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/display.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/editorhooks.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/guisupport.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhook.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhookglut.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhookgtk.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhookgtk3.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhookpyglet.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhookqt4.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/inputhookwx.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/kernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/latextools.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/lexers.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/pretty.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/security.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_backgroundjobs.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_clipboard.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_deepreload.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_display.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_editorhooks.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_imports.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_latextools.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_lexers.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_pretty.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/lib/tests/test_security.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/prolog/jupyter.yap
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/sphinxext/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/sphinxext/custom_doctests.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/sphinxext/ipython_console_highlighting.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/sphinxext/ipython_directive.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/console.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/debugger.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/embed.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/interactiveshell.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/ipapp.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/magics.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/prompts.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/ptshell.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/ptutils.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/shortcuts.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/glut.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/gtk.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/gtk3.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/osx.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/pyglet.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/qt.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/tk.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/pt_inputhooks/wx.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/tests/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/tests/test_embed.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/tests/test_help.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/terminal/tests/test_interactivshell.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/__main__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/decorators.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/globalipapp.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/iptest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/iptestcontroller.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/ipunittest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/skipdoctest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/tools.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/dtexample.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/ipdoctest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/iptest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/setup.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/show_refs.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/simple.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/simplevars.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/test_ipdoctest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/plugin/test_refs.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/tests/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/tests/test_decorators.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/tests/test_ipunittest.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/testing/tests/test_tools.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/PyColorize.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/_process_cli.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/_process_common.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/_process_posix.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/_process_win32.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/_process_win32_controller.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/_sysinfo.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/capture.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/colorable.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/coloransi.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/contexts.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/daemonize.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/data.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/decorators.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/dir2.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/encoding.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/eventful.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/frame.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/generics.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/importstring.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/io.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/ipstruct.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/jsonutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/localinterfaces.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/log.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/module_paths.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/openpy.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/path.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/pickleutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/process.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/py3compat.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/sentinel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/shimmodule.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/signatures.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/strdispatch.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/sysinfo.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/syspathcontext.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tempdir.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/terminal.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/text.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/timing.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tokenize2.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tokenutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/traitlets.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tz.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/ulinecache.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/version.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/wildcard.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_capture.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_decorators.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_dir2.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_imports.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_importstring.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_io.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_module_paths.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_openpy.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_path.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_process.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_pycolorize.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_shimmodule.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_sysinfo.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_tempdir.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_text.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_tokenutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_ipython/utils/tests/test_wildcard.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/__main__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/_eventloop_macos.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/_version.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/codeutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/connect.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/datapub.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/displayhook.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/embed.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/eventloops.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/heartbeat.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/iostream.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/ipkernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/jsonutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/kernelapp.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/kernelbase.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/kernelspec.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/log.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/parentpoller.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/pickleutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/serialize.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/zmqshell.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel.egg-info/PKG-INFO
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel.egg-info/SOURCES.txt
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel.egg-info/dependency_links.txt
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel.egg-info/requires.txt
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel.egg-info/top_level.txt
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/comm/comm.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/comm/manager.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/gui/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/gui/gtk3embed.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/gui/gtkembed.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/blocking.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/channels.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/client.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/ipkernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/manager.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/socket.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/tests/test_kernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/inprocess/tests/test_kernelmanager.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/pylab/backend_inline.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/pylab/config.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/resources/logo-32x32.png
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/resources/logo-64x64.png
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/__init__.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/_asyncio.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_connect.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_embed_kernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_eventloop.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_io.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_jsonutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_kernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_kernelspec.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_message_spec.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_pickleutil.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_serialize.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_start_kernel.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/test_zmq_shell.py
/home/vsc/github/yap-6.3/packages/python/yap_kernel/yap_kernel/tests/utils.py
yap_kernel/resources/kernel.js
yap_kernel/resources/logo-32x32.png
yap_kernel/resources/logo-64x64.png

View File

@ -0,0 +1,7 @@
[test]
nose_warnings_filters
nose-timer
[test:python_version=="2.7"]
mock

View File

@ -0,0 +1,4 @@
core
yap_ipython
yap_kernel
yap_kernel_launcher

View File

@ -0,0 +1,417 @@
from __future__ import print_function
import signal
import yap
import io
import getpass
import sys
import traceback
from IPython.core import release
from ipython_genutils.py3compat import builtin_mod, PY3, unicode_type, safe_unicode
from IPython.utils.tokenutil import token_at_cursor, line_at_cursor
from traitlets import Instance, Type, Any, List
from ipykernel.comm import CommManager
from ipykernel.kernelbase import Kernel as KernelBase
from ipykernel.zmqshell import ZMQInteractiveShell
from .interactiveshell import YAPInteractiveShell
from IPython.core.interactiveshell import InteractiveShellABC, InteractiveShell
from contextlib import redirect_stdout
kernel_json = {
"argv": [sys.executable,
"-m", "yap_kernel",
"-f", "{connection_file}"],
"display_name": " YAP-6.3",
"language": "prolog",
"name": "yap_kernel",
}
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
class YAPKernel(KernelBase):
shell = Instance('IPython.core.interactiveshell.InteractiveShellABC',
allow_none=True)
shell_class = Type(ZMQInteractiveShell )
user_ns = Instance(dict, args=None, allow_none=True)
def _user_ns_changed(self, name, old, new):
if self.shell is not None:
self.shell.user_ns = new
self.shell.init_user_ns()
# A reference to the Python builtin 'raw_input' function.
# (i.e., __builtin__.raw_input for Python 2.7, builtins.input for Python 3)
_sys_raw_input = Any()
_sys_eval_input = Any()
implementation = 'YAP Kernel'
implementation_version = '1.0'
language = 'text'
language_version = '6.3'
banner = "YAP-6.3"
language_info = {
'mimetype': 'text/prolog',
'name': 'text',
# ------ If different from 'language':
'codemirror_mode': {
"version": 2,
"name": "prolog"
},
'pygments_lexer': 'prolog',
'version': "0.0.1",
'file_extension': '.yap',
}
#-------------------------------------------------------------------------
# Things related to history management
#-------------------------------------------------------------------------
def __init__(self, **kwargs):
# sp = super(YAPKernel, self)
super(YAPKernel, self).__init__(**kwargs)
# Initialize the InteractiveShell subclass
self.shell = self.shell_class.instance(parent=self,
profile_dir = self.profile_dir,
user_ns = self.user_ns,
kernel = self,
)
self.shell.displayhook.session = self.session
self.shell.displayhook.pub_socket = self.iopub_socket
self.shell.displayhook.topic = self._topic('execute_result')
self.shell.display_pub.session = self.session
self.shell.display_pub.pub_socket = self.iopub_socket
self.comm_manager = CommManager(parent=self, kernel=self)
# self.shell._last_traceback = None
self.shell.configurables.append(self.comm_manager)
comm_msg_types = [ 'comm_open', 'comm_msg', 'comm_close' ]
for msg_type in comm_msg_types:
self.shell_handlers[msg_type] = getattr(self.comm_manager, msg_type)
self.yap_shell = YAPInteractiveShell( self )
def get_usage(self):
return "This is the YAP kernel."
help_links = List([
{
'text': "Python",
'url': "http://docs.python.org/%i.%i" % sys.version_info[:2],
},
{
'text': "YAP",
'url': "http://YAP.org/documentation.html",
},
{
'text': "NumPy",
'url': "http://docs.scipy.org/doc/numpy/reference/",
},
{
'text': "SciPy",
'url': "http://docs.scipy.org/doc/scipy/reference/",
},
{
'text': "Matplotlib",
'url': "http://matplotlib.org/contents.html",
},
{
'text': "SymPy",
'url': "http://docs.sympy.org/latest/index.html",
},
{
'text': "pandas",
'url': "http://pandas.pydata.org/pandas-docs/stable/",
},
]).tag(config=True)
# Kernel info fields
implementation = 'YAP'
implementation_version = release.version
language_info = {
'name': 'python',
'version': sys.version.split()[0],
'mimetype': 'text/x-python',
'codemirror_mode': {
'name': 'prolog',
'version': sys.version_info[0]
},
'pygments_lexer': 'prolog',
'nbconvert_exporter': 'python',
'file_extension': '.yap'
}
@property
def banner(self):
return self.shell.banner
def start(self):
self.shell.exit_now = False
super(YAPKernel, self).start()
def set_parent(self, ident, parent):
"""Overridden from parent to tell the display hook and output streams
about the parent message.
"""
super(YAPKernel, self).set_parent(ident, parent)
self.shell.set_parent(parent)
def init_metadata(self, parent):
"""Initialize metadata.
Run at the beginning of each execution request.
"""
md = super(YAPKernel, self).init_metadata(parent)
# FIXME: remove deprecated ipyparallel-specific code
# This is required for ipyparallel < 5.0
md.update({
'dependencies_met' : True,
'engine' : self.ident,
})
return md
def finish_metadata(self, parent, metadata, reply_content):
"""Finish populating metadata.
Run after completing an execution request.
"""
# FIXME: remove deprecated ipyparallel-specific code
# This is required by ipyparallel < 5.0
metadata['status'] = reply_content['status']
if reply_content['status'] == 'error' and reply_content['ename'] == 'UnmetDependency':
metadata['dependencies_met'] = False
return metadata
def _forward_input(self, allow_stdin=False):
"""Forward raw_input and getpass to the current frontend.
via input_request
"""
self._allow_stdin = allow_stdin
if PY3:
self._sys_raw_input = builtin_mod.input
builtin_mod.input = self.raw_input
else:
self._sys_raw_input = builtin_mod.raw_input
self._sys_eval_input = builtin_mod.input
builtin_mod.raw_input = self.raw_input
builtin_mod.input = lambda prompt='': eval(self.raw_input(prompt))
self._save_getpass = getpass.getpass
getpass.getpass = self.getpass
def _restore_input(self):
"""Restore raw_input, getpass"""
if PY3:
builtin_mod.input = self._sys_raw_input
else:
builtin_mod.raw_input = self._sys_raw_input
builtin_mod.input = self._sys_eval_input
getpass.getpass = self._save_getpass
@property
def execution_count(self):
return self.shell.execution_count
@execution_count.setter
def execution_count(self, value):
# Ignore the incrememnting done by KernelBase, in favour of our shell's
# execution counter.
pass
def do_execute(self, code, silent, store_history=True,
user_expressions=None, allow_stdin=False):
shell = self.shell # we'll need this a lot here
self._forward_input(allow_stdin)
reply_content = {}
try:
res = shell.run_cell(code, store_history=store_history, silent=silent)
finally:
self._restore_input()
if res.error_before_exec is not None:
err = res.error_before_exec
else:
err = res.error_in_exec
if res.success:
reply_content[u'status'] = u'ok'
elif isinstance(err, KeyboardInterrupt):
reply_content[u'status'] = u'aborted'
else:
reply_content[u'status'] = u'error'
reply_content.update({
# u'traceback': shell._last_traceback or [],
u'ename': unicode_type(type(err).__name__),
u'evalue': safe_unicode(err),
})
# FIXME: deprecate piece for ipyparallel:
e_info = dict(engine_uuid=self.ident, engine_id=self.int_id,
method='execute')
reply_content['engine_info'] = e_info
# Return the execution counter so clients can display prompts
reply_content['execution_count'] = shell.execution_count - 1
if 'traceback' in reply_content:
self.log.info("Exception in execute request:\n%s", '\n'.join(reply_content['traceback']))
# At this point, we can tell whether the main code execution succeeded
# or not. If it did, we proceed to evaluate user_expressions
if reply_content['status'] == 'ok':
reply_content[u'user_expressions'] = \
shell.user_expressions(user_expressions or {})
else:
# If there was an error, don't even try to compute expressions
reply_content[u'user_expressions'] = {}
# Payloads should be retrieved regardless of outcome, so we can both
# recover partial output (that could have been generated early in a
# block, before an error) and always clear the payload system.
reply_content[u'payload'] = shell.payload_manager.read_payload()
# Be aggressive about clearing the payload because we don't want
# it to sit in memory until the next execute_request comes in.
shell.payload_manager.clear_payload()
return reply_content
def do_complete(self, code, cursor_pos):
# FIXME: YAP completers currently assume single line,
# but completion messages give multi-line context
# For now, extract line from cell, based on cursor_pos:
if cursor_pos is None:
cursor_pos = len(code)
line, offset = line_at_cursor(code, cursor_pos)
line_cursor = cursor_pos - offset
txt, matches = self.shell.complete('', line, line_cursor)
return {'matches' : matches,
'cursor_end' : cursor_pos,
'cursor_start' : cursor_pos - len(txt),
'metadata' : {},
'status' : 'ok'}
def do_inspect(self, code, cursor_pos, detail_level=0):
name = token_at_cursor(code, cursor_pos)
info = self.shell.object_inspect(name)
reply_content = {'status' : 'ok'}
reply_content['data'] = data = {}
reply_content['metadata'] = {}
reply_content['found'] = info['found']
if info['found']:
info_text = self.shell.object_inspect_text(
name,
detail_level=detail_level,
)
data['text/plain'] = info_text
return reply_content
def do_history(self, hist_access_type, output, raw, session=0, start=0,
stop=None, n=None, pattern=None, unique=False):
if hist_access_type == 'tail':
hist = self.shell.history_manager.get_tail(n, raw=raw, output=output,
include_latest=True)
elif hist_access_type == 'range':
hist = self.shell.history_manager.get_range(session, start, stop,
raw=raw, output=output)
elif hist_access_type == 'search':
hist = self.shell.history_manager.search(
pattern, raw=raw, output=output, n=n, unique=unique)
else:
hist = []
return {
'status': 'ok',
'history' : list(hist),
}
def do_shutdown(self, restart):
self.shell.exit_now = True
return dict(status='ok', restart=restart)
def do_is_complete(self, code):
status, indent_spaces = self.shell.input_transformer_manager.check_complete(code)
r = {'status': status}
if status == 'incomplete':
r['indent'] = ' ' * indent_spaces
return r
def do_apply(self, content, bufs, msg_id, reply_metadata):
from .serialize import serialize_object, unpack_apply_message
shell = self.shell
try:
working = shell.user_ns
prefix = "_"+str(msg_id).replace("-","")+"_"
f,args,kwargs = unpack_apply_message(bufs, working, copy=False)
fname = getattr(f, '__name__', 'f')
fname = prefix+"f"
argname = prefix+"args"
kwargname = prefix+"kwargs"
resultname = prefix+"result"
ns = { fname : f, argname : args, kwargname : kwargs , resultname : None }
# print ns
working.update(ns)
code = "%s = %s(*%s,**%s)" % (resultname, fname, argname, kwargname)
try:
exec(code, shell.user_global_ns, shell.user_ns)
result = working.get(resultname)
finally:
for key in ns:
working.pop(key)
result_buf = serialize_object(result,
buffer_threshold=self.session.buffer_threshold,
item_threshold=self.session.item_threshold,
)
except BaseException as e:
# invoke YAP traceback formatting
shell.showtraceback()
reply_content = {
u'traceback': shell._last_traceback or [],
u'ename': unicode_type(type(e).__name__),
u'evalue': safe_unicode(e),
}
# FIXME: deprecate piece for ipyparallel:
e_info = dict(engine_uuid=self.ident, engine_id=self.int_id, method='apply')
reply_content['engine_info'] = e_info
self.send_response(self.iopub_socket, u'error', reply_content,
ident=self._topic('error'))
self.log.info("Exception in apply request:\n%s", '\n'.join(reply_content['traceback']))
result_buf = []
reply_content['status'] = 'error'
else:
reply_content = {'status' : 'ok'}
return reply_content, result_buf
def do_clear(self):
self.shell.reset(False)
return dict(status='ok')

View File

@ -0,0 +1,10 @@
Metadata-Version: 1.0
Name: yapex
Version: 0.1
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN

View File

@ -0,0 +1,11 @@
setup.py
/Users/vsc/Yap/yap-6.3/packages/python/yapex.py
/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/PKG-INFO
/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/SOURCES.txt
/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/dependency_links.txt
/Users/vsc/Yap/yap-6.3/packages/python/yapex.egg-info/top_level.txt
/Users/vsc/github/yap-6.3/packages/python/yapex.py
/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/PKG-INFO
/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/SOURCES.txt
/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/dependency_links.txt
/Users/vsc/github/yap-6.3/packages/python/yapex.egg-info/top_level.txt

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@
yapex

101
packages/python/yapex.py Normal file
View File

@ -0,0 +1,101 @@
import yap
import sys
# debugging support.
import pdb
def query_prolog(engine, s):
def answer(q):
try:
return q.next()
except Exception as e:
print(e.args[1])
return False
#
#construct a query from a one-line string
# q is opaque to Python
q = engine.query(s)
# vs is the list of variables
# you can print it out, the left-side is the variable name,
# the right side wraps a handle to a variable
vs = q.namedVars()
# atom match either symbols, or if no symbol exists, sttrings, In this case
# variable names should match strings
for eq in vs:
if not isinstance(eq[0],str):
print( "Error: Variable Name matches a Python Symbol")
return
ask = True
# launch the query
while answer(q):
# this new vs should contain bindings to vars
vs= q.namedVars()
#numbervars
i=0
# iteratw
for eq in vs:
name = eq[0]
# this is tricky, we're going to bind the variables in the term so thay we can
# output X=Y. The Python way is to use dictionares.
#Instead, we use the T function to tranform the Python term back to Prolog
binding = yap.T(eq[1])
if binding.isVar():
binding.unify(name)
else:
i = binding.numberVars(i, True)
print(name + " = " + binding.text())
#ok, that was Prolog code
print("yes")
# deterministic = one solution
if q.deterministic():
# done
q.close()
return
if ask:
s = input("more(;), all(*), no(\\n), python(#) ?").lstrip()
if s.startswith(';') or s.startswith('y'):
continue
elif s.startswith('#'):
try:
exec(s.lstrip('#'))
except:
raise
elif s.startswith('*') or s.startswith('a'):
ask = False
continue
else:
break
print("No (more) answers")
q.close()
return
def live():
engine = yap.YAPEngine()
loop = True
pdb.set_trace()
while loop:
try:
s = input("?- ")
if not s:
loop = False
query_prolog(engine, s)
except SyntaxError as err:
print("Syntax Error error: {0}".format(err))
except EOFError:
return
except RuntimeError as err:
print("YAP Execution Error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
except:
print("Unexpected error:", sys.exc_info()[0])
raise
engine.close()
#
# initialize engine
# engine = yap.YAPEngine();
# engine = yap.YAPEngine(yap.YAPParams());
#live()

View File

@ -0,0 +1,301 @@
<?xml version="1.0" encoding="UTF-8"?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6"/>
<Project>
<Option title="YAP_RAPTOR"/>
<Option makefile_is_custom="1"/>
<Option compiler="clang"/>
<Option virtualFolders="CMake Files\;CMake Files\cmake\;CMake Files\.git\;CMake Files\.git\refs\;CMake Files\.git\refs\heads\;CMake Files\os\;CMake Files\packages\;CMake Files\packages\python\;CMake Files\packages\python\swig\;CMake Files\packages\python\swig\yap4py\;CMake Files\packages\python\yap_kernel\;CMake Files\packages\myddas\;CMake Files\packages\myddas\sqlite3\;CMake Files\packages\myddas\mysql\;CMake Files\packages\myddas\odbc\;CMake Files\packages\myddas\postgres\;CMake Files\packages\myddas\pl\;CMake Files\packages\raptor\;CMake Files\packages\raptor\cmake\;CMake Files\packages\raptor\doc\;CMake Files\packages\xml\;CMake Files\packages\CLPBN\;CMake Files\packages\CLPBN\horus\;CMake Files\packages\cplint\;CMake Files\packages\cplint\approx\;CMake Files\packages\cplint\approx\simplecuddLPADs\;CMake Files\packages\gecode\;CMake Files\packages\real\;CMake Files\packages\jpl\;CMake Files\packages\jpl\src\;CMake Files\packages\jpl\src\c\;CMake Files\packages\jpl\src\java\;CMake Files\packages\bdd\;CMake Files\packages\bdd\simplecudd\;CMake Files\packages\bdd\simplecudd_lfi\;CMake Files\packages\ProbLog\;CMake Files\packages\swi-minisat2\;CMake Files\packages\swi-minisat2\C\;CMake Files\packages\clpqr\;CMake Files\OPTYap\;CMake Files\utf8proc\;CMake Files\library\;CMake Files\library\dialect\;CMake Files\library\dialect\swi\;CMake Files\library\dialect\swi\fli\;CMake Files\library\clp\;CMake Files\library\matlab\;CMake Files\library\matrix\;CMake Files\library\random\;CMake Files\library\regex\;CMake Files\library\rltree\;CMake Files\library\system\;CMake Files\library\tries\;CMake Files\library\ytest\;CMake Files\library\lammpi\;CMake Files\CXX\;CMake Files\H\;CMake Files\pl\;CMake Files\swi\;CMake Files\swi\library\;CMake Files\docs\;CMake Files\docs\source\;"/>
<Build>
<Target title="all">
<Option working_dir="/home/vsc/github/yap-6.3/packages/raptor"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/raptor/Makefile&quot; VERBOSE=1 all"/>
<CompileFile command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/raptor/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/raptor/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -f &quot;/home/vsc/github/yap-6.3/packages/raptor/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
</Build>
<Unit filename="/home/vsc/github/yap-6.3/CMakeLists.txt">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/GitSHA1.c.in">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/Threads.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/YapTermConfig.h.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/config.h.cmake">
<Option virtualFolder="CMake Files\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/CheckPrototypeExists.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/Config.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindCUDD.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindGMP.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindGecode.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindMySQL.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindODBC.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindPythonModule.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindR.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/FindReadline.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/GetGitRevisionDescription.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/GetGitRevisionDescription.cmake.in">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroLogFeature.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroOptionalAddSubdirectory.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/MacroOptionalFindPackage.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/PackageDocs.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/Sources.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/TestForHighBitCharacters.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/TestSTDC.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/UseSWIG.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/cudd.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/cudd_config.h.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/disallow.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/java.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/cmake/python.cmake">
<Option virtualFolder="CMake Files\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/.git/HEAD">
<Option virtualFolder="CMake Files\.git\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/.git/refs/heads/master">
<Option virtualFolder="CMake Files\.git\refs\heads\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/os/CMakeLists.txt">
<Option virtualFolder="CMake Files\os\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/os/YapIOConfig.h.cmake">
<Option virtualFolder="CMake Files\os\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/MANIFEST.in">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/YAP4PY.md">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/setup.py.in">
<Option virtualFolder="CMake Files\packages\python\swig\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/swig/yap4py/__init__.py.in">
<Option virtualFolder="CMake Files\packages\python\swig\yap4py\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/python/yap_kernel/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\python\yap_kernel\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/sqlite3/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\sqlite3\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/mysql/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\mysql\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/odbc/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\odbc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/postgres/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\postgres\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/myddas/pl/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\myddas\pl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\raptor\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/cmake/FindRAPTOR.cmake">
<Option virtualFolder="CMake Files\packages\raptor\cmake\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/raptor/doc/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\raptor\doc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/xml/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\xml\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\CLPBN\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/CLPBN/horus/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\CLPBN\horus\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/cplint/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\cplint\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/cplint/approx/simplecuddLPADs/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\cplint\approx\simplecuddLPADs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/gecode/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\gecode\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/real/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\real\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/real/rconfig.h.cmake">
<Option virtualFolder="CMake Files\packages\real\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/src/c/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\src\c\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/jpl/src/java/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\jpl\src\java\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\simplecudd\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/bdd/simplecudd_lfi/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\bdd\simplecudd_lfi\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/ProbLog/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\ProbLog\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/swi-minisat2/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\swi-minisat2\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/swi-minisat2/C/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\swi-minisat2\C\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/packages/clpqr/CMakeLists.txt">
<Option virtualFolder="CMake Files\packages\clpqr\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/OPTYap/CMakeLists.txt">
<Option virtualFolder="CMake Files\OPTYap\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/utf8proc/CMakeLists.txt">
<Option virtualFolder="CMake Files\utf8proc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/utf8proc/utils.cmake">
<Option virtualFolder="CMake Files\utf8proc\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/dialect/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\dialect\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/dialect/swi/fli/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\dialect\swi\fli\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/clp/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\clp\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/matlab/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\matlab\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/matrix/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\matrix\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/random/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\random\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/regex/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\regex\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/rltree/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\rltree\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/system/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\system\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/system/sys_config.h.cmake">
<Option virtualFolder="CMake Files\library\system\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/tries/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\tries\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/ytest/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\ytest\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/library/lammpi/CMakeLists.txt">
<Option virtualFolder="CMake Files\library\lammpi\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/CXX/CMakeLists.txt">
<Option virtualFolder="CMake Files\CXX\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/H/CMakeLists.txt">
<Option virtualFolder="CMake Files\H\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/pl/CMakeLists.txt">
<Option virtualFolder="CMake Files\pl\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/swi/library/CMakeLists.txt">
<Option virtualFolder="CMake Files\swi\library\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/CMakeLists.txt">
<Option virtualFolder="CMake Files\docs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/Doxyfile.in">
<Option virtualFolder="CMake Files\docs\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/source/conf.py.in">
<Option virtualFolder="CMake Files\docs\source\"/>
</Unit>
<Unit filename="/home/vsc/github/yap-6.3/docs/source/index.rst">
<Option virtualFolder="CMake Files\docs\source\"/>
</Unit>
</Project>
</CodeBlocks_project_file>

2424
packages/raptor/doc/Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,197 @@
#!/Usr/bin/env python3
# -*- coding: utf-8 -*-
#
# YAP documentation build configuration file, created by
# sphinx-quickstart on Sun Mar 26 10:27:55 2017.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
from recommonmark.parser import CommonMarkParser
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
'breathe'
]
breathe_projects = { "yap": "/home/vsc/github/yap-6.3/packages/raptor/doc/xml" }
breathe_default_project = "yap"
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
source_suffix = ['.rst', '.md']
# source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = 'YAP'
copyright = '2017, Vitor Santos Costa'
author = 'Vitor Santos Costa'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '6.3'
# The full version, including alpha/beta/rc tags.
release = '6.3.5'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser',
}
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'YAPdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'YAP.tex', 'YAP Documentation',
'Vitor Santos Costa', 'manual'),
]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'yap', 'YAP Documentation',
[author], 1)
]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'YAP', 'YAP Documentation',
author, 'YAP', 'One line description of project.',
'Miscellaneous'),
]
# -- Options for Epub output ----------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
epub_author = author
epub_publisher = author
epub_copyright = copyright
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None}

View File

@ -0,0 +1,45 @@
.. YAP documentation master file, created by
sphinx-quickstart on Sun Mar 26 10:27:55 2017.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to YAP's documentation!
===============================
.. doxygenindex::
.. doxygenfunction::
.. doxygenstruct::
.. doxygenenum::
.. doxygentypedef::
.. doxygenclass::
.. toctree::
:maxdepth: 2
:caption: Contents:
'../../md/attributes.md'
'../../md'/builtins.md'
'../../md'/download.md'
'../../md'/extensions.md'
'../../md'/fli.md'
'../../md'/library.md'
'../../md'/load_files.md'
'../../md'/modules.md'
'../../md'/packages.md'
'../../md'/run.md'
'../../md'/swi.md'
'../../md'/syntax.md'
'../../md'/yap.md'
'classlist.rst'
'file.rst'
'group.rst'
'section.rst'
'union.rst'
'namespace.rst'
Indices and tables
==================
* :ref:`search`

Some files were not shown because too many files have changed in this diff Show More