Merge /home/vsc/yt

This commit is contained in:
Vitor Santos Costa 2017-06-12 18:03:18 +01:00
commit bba62ea6eb
50 changed files with 3605 additions and 3589 deletions

View File

@ -25,6 +25,7 @@
#ifndef C_INTERFACE_C #ifndef C_INTERFACE_C
#define C_INTERFACE_C 1 #define C_INTERFACE_C 1
#define _EXPORT_KERNEL 1
#include <stdlib.h> #include <stdlib.h>
#if HAVE_UNISTD_H #if HAVE_UNISTD_H
@ -1079,7 +1080,7 @@ static uintptr_t complete_exit(choiceptr ptr, int has_cp,
return TRUE; return TRUE;
} }
Int YAP_Execute(PredEntry *pe, CPredicate exec_code) { X_API Int YAP_Execute(PredEntry *pe, CPredicate exec_code) {
CACHE_REGS CACHE_REGS
Int ret; Int ret;
Int OASP = LCL0 - (CELL *)B; Int OASP = LCL0 - (CELL *)B;
@ -1120,7 +1121,7 @@ Int YAP_Execute(PredEntry *pe, CPredicate exec_code) {
#define REDO_INT 0x02 /* Returned an integer */ #define REDO_INT 0x02 /* Returned an integer */
#define REDO_PTR 0x03 /* returned a pointer */ #define REDO_PTR 0x03 /* returned a pointer */
Int YAP_ExecuteFirst(PredEntry *pe, CPredicate exec_code) { X_API Int YAP_ExecuteFirst(PredEntry *pe, CPredicate exec_code) {
CACHE_REGS CACHE_REGS
CELL ocp = LCL0 - (CELL *)B; CELL ocp = LCL0 - (CELL *)B;
/* for slots to work */ /* for slots to work */
@ -1168,7 +1169,7 @@ Int YAP_ExecuteFirst(PredEntry *pe, CPredicate exec_code) {
} }
} }
Int YAP_ExecuteOnCut(PredEntry *pe, CPredicate exec_code, X_API Int YAP_ExecuteOnCut(PredEntry *pe, CPredicate exec_code,
struct cut_c_str *top) { struct cut_c_str *top) {
CACHE_REGS CACHE_REGS
Int oB = LCL0 - (CELL *)B; Int oB = LCL0 - (CELL *)B;
@ -1216,7 +1217,7 @@ Int YAP_ExecuteOnCut(PredEntry *pe, CPredicate exec_code,
} }
} }
Int YAP_ExecuteNext(PredEntry *pe, CPredicate exec_code) { X_API Int YAP_ExecuteNext(PredEntry *pe, CPredicate exec_code) {
CACHE_REGS CACHE_REGS
/* for slots to work */ /* for slots to work */
Yap_StartSlots(); Yap_StartSlots();
@ -1847,7 +1848,7 @@ X_API YAP_opaque_tag_t YAP_NewOpaqueType(struct YAP_opaque_handler_struct *f) {
return i + USER_BLOB_START; return i + USER_BLOB_START;
} }
Term YAP_NewOpaqueObject(YAP_opaque_tag_t tag, size_t bytes) { X_API Term YAP_NewOpaqueObject(YAP_opaque_tag_t tag, size_t bytes) {
Term t = Yap_AllocExternalDataInStack((CELL)tag, bytes); Term t = Yap_AllocExternalDataInStack((CELL)tag, bytes);
if (t == TermNil) if (t == TermNil)
return 0L; return 0L;
@ -2322,7 +2323,7 @@ bool Yap_embedded = true;
/* this routine is supposed to be called from an external program /* this routine is supposed to be called from an external program
that wants to control Yap */ that wants to control Yap */
YAP_file_type_t YAP_Init(YAP_init_args *yap_init) { X_API YAP_file_type_t YAP_Init(YAP_init_args *yap_init) {
YAP_file_type_t restore_result = yap_init->boot_file_type; YAP_file_type_t restore_result = yap_init->boot_file_type;
bool do_bootstrap = (restore_result & YAP_CONSULT_MODE); bool do_bootstrap = (restore_result & YAP_CONSULT_MODE);
CELL Trail = 0, Stack = 0, Heap = 0, Atts = 0; CELL Trail = 0, Stack = 0, Heap = 0, Atts = 0;
@ -3088,7 +3089,7 @@ X_API void YAP_signal(int sig) { Yap_signal(sig); }
X_API int YAP_SetYAPFlag(Term flag, Term val) { return setYapFlag(flag, val); } X_API int YAP_SetYAPFlag(Term flag, Term val) { return setYapFlag(flag, val); }
/* yhandle_t YAP_VarSlotToNumber(yhandle_t) */ /* yhandle_t YAP_VarSlotToNumber(yhandle_t) */
yhandle_t YAP_VarSlotToNumber(yhandle_t s) { X_API yhandle_t YAP_VarSlotToNumber(yhandle_t s) {
CACHE_REGS CACHE_REGS
Term *t = (CELL *)Deref(Yap_GetFromSlot(s)); Term *t = (CELL *)Deref(Yap_GetFromSlot(s));
if (t < HR) if (t < HR)
@ -3097,14 +3098,14 @@ yhandle_t YAP_VarSlotToNumber(yhandle_t s) {
} }
/* Term YAP_ModuleUser() */ /* Term YAP_ModuleUser() */
Term YAP_ModuleUser(void) { return MkAtomTerm(AtomUser); } X_API Term YAP_ModuleUser(void) { return MkAtomTerm(AtomUser); }
/* int YAP_PredicateHasClauses() */ /* int YAP_PredicateHasClauses() */
yhandle_t YAP_NumberOfClausesForPredicate(PredEntry *pe) { X_API yhandle_t YAP_NumberOfClausesForPredicate(PredEntry *pe) {
return pe->cs.p_code.NOfClauses; return pe->cs.p_code.NOfClauses;
} }
int YAP_MaxOpPriority(Atom at, Term module) { X_API int YAP_MaxOpPriority(Atom at, Term module) {
AtomEntry *ae = RepAtom(at); AtomEntry *ae = RepAtom(at);
OpEntry *info; OpEntry *info;
WRITE_LOCK(ae->ARWLock); WRITE_LOCK(ae->ARWLock);
@ -3122,7 +3123,7 @@ int YAP_MaxOpPriority(Atom at, Term module) {
return ret; return ret;
} }
int YAP_OpInfo(Atom at, Term module, int opkind, int *yap_type, int *prio) { X_API int YAP_OpInfo(Atom at, Term module, int opkind, int *yap_type, int *prio) {
AtomEntry *ae = RepAtom(at); AtomEntry *ae = RepAtom(at);
OpEntry *info; OpEntry *info;
int n; int n;
@ -3184,14 +3185,14 @@ int YAP_OpInfo(Atom at, Term module, int opkind, int *yap_type, int *prio) {
return 1; return 1;
} }
int YAP_Argv(char ***argvp) { X_API int YAP_Argv(char ***argvp) {
if (argvp) { if (argvp) {
*argvp = GLOBAL_argv; *argvp = GLOBAL_argv;
} }
return GLOBAL_argc; return GLOBAL_argc;
} }
YAP_tag_t YAP_TagOfTerm(Term t) { X_API YAP_tag_t YAP_TagOfTerm(Term t) {
if (IsVarTerm(t)) { if (IsVarTerm(t)) {
CELL *pt = VarOfTerm(t); CELL *pt = VarOfTerm(t);
if (IsUnboundVar(pt)) { if (IsUnboundVar(pt)) {
@ -3246,7 +3247,7 @@ Term YAP_BPROLOG_curr_toam_status;
* *
* @return a positive number with the size, or 0. * @return a positive number with the size, or 0.
*/ */
size_t YAP_UTF8_TextLength(Term t) { X_API size_t YAP_UTF8_TextLength(Term t) {
utf8proc_uint8_t dst[8]; utf8proc_uint8_t dst[8];
size_t sz = 0; size_t sz = 0;
@ -3280,7 +3281,7 @@ size_t YAP_UTF8_TextLength(Term t) {
return sz; return sz;
} }
Int YAP_ListLength(Term t) { X_API Int YAP_ListLength(Term t) {
Term *aux; Term *aux;
Int n = Yap_SkipList(&t, &aux); Int n = Yap_SkipList(&t, &aux);
@ -3291,14 +3292,14 @@ Int YAP_ListLength(Term t) {
return -1; return -1;
} }
Int YAP_NumberVars(Term t, Int nbv) { return Yap_NumberVars(t, nbv, FALSE); } X_API Int YAP_NumberVars(Term t, Int nbv) { return Yap_NumberVars(t, nbv, FALSE); }
Term YAP_UnNumberVars(Term t) { X_API Term YAP_UnNumberVars(Term t) {
/* don't allow sharing of ground terms */ /* don't allow sharing of ground terms */
return Yap_UnNumberTerm(t, FALSE); return Yap_UnNumberTerm(t, FALSE);
} }
int YAP_IsNumberedVariable(Term t) { X_API int YAP_IsNumberedVariable(Term t) {
return IsApplTerm(t) && FunctorOfTerm(t) == FunctorDollarVar && return IsApplTerm(t) && FunctorOfTerm(t) == FunctorDollarVar &&
IsIntegerTerm(ArgOfTerm(1, t)); IsIntegerTerm(ArgOfTerm(1, t));
} }

View File

@ -159,7 +159,7 @@ void jmp_deb2(void) { fprintf(stderr, "Here\n"); }
void jmp_deb(int i) { void jmp_deb(int i) {
if (i) if (i)
printf("Here we go %ld\n", old_value++); printf("Here we go " Int_FORMAT "\n", old_value++);
if (old_value == 716) if (old_value == 716)
jmp_deb2(); jmp_deb2();
} }
@ -354,8 +354,8 @@ bool low_level_trace__(yap_low_level_port port, PredEntry *pred, CELL *args) {
printf("\n"); printf("\n");
} }
#endif #endif
b += snprintf(b, top - b, "%lld %ld ", vsc_count, LCL0 - (CELL *)B); b += snprintf(b, top - b, Int_FORMAT " "UInt_FORMAT " ", vsc_count, LCL0 - (CELL *)B);
b += snprintf(b, top - b, "%ld ", LCL0 - (CELL *)Yap_REGS.CUT_C_TOP); b += snprintf(b, top - b, Int_FORMAT " ", LCL0 - (CELL *)Yap_REGS.CUT_C_TOP);
#if defined(THREADS) || defined(YAPOR) #if defined(THREADS) || defined(YAPOR)
b += snprintf(b, top - b, "(%d)", worker_id); b += snprintf(b, top - b, "(%d)", worker_id);
#endif #endif
@ -482,7 +482,7 @@ static Int reset_total_choicepoints(USES_REGS1) {
} }
static Int show_low_level_trace(USES_REGS1) { static Int show_low_level_trace(USES_REGS1) {
fprintf(stderr, "Call counter=%llu\n", vsc_count); fprintf(stderr, "Call counter=" Int_FORMAT "\n", vsc_count);
return (TRUE); return (TRUE);
} }

View File

@ -55,7 +55,6 @@ option(BUILD_SHARED_LIBS "Build shared library" ON)
set (CMAKE_POSITION_INDEPENDENT_CODE TRUE) set (CMAKE_POSITION_INDEPENDENT_CODE TRUE)
set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
include(Prelims NO_POLICY_SCOPE) include(Prelims NO_POLICY_SCOPE)
include(Sources NO_POLICY_SCOPE) include(Sources NO_POLICY_SCOPE)
@ -110,6 +109,9 @@ else()
List (APPEND YLIBS $<TARGET_OBJECTS:libswi> ) List (APPEND YLIBS $<TARGET_OBJECTS:libswi> )
if (WIN32) if (WIN32)
List (APPEND YLIBS $<TARGET_OBJECTS:YAP++> ) List (APPEND YLIBS $<TARGET_OBJECTS:YAP++> )
if (PYTHON_INCLUDE_DIRS AND PYTHON_LIBRARIES )
List (APPEND YLIBS $<TARGET_OBJECTS:YAPPython0> )
endif()
endif() endif()
@ -128,6 +130,9 @@ add_library( # Sets the name of the library.
if (WIN32) if (WIN32)
target_link_libraries(libYap ${WINDLLS}) target_link_libraries(libYap ${WINDLLS})
if (PYTHON_INCLUDE_DIRS AND PYTHON_LIBRARIES )
target_link_libraries(libYap ${PYTHON_LIBRARIES})
endif()
endif (WIN32) endif (WIN32)
include(libYap NO_POLICY_SCOPE) include(libYap NO_POLICY_SCOPE)

View File

@ -68,7 +68,7 @@ enum PropTag {
* predicates, operators, modules, almost everything. * predicates, operators, modules, almost everything.
* *
*/ */
class YAPAtom { class X_API YAPAtom {
friend class YAPEngine; friend class YAPEngine;
friend class YAPModuleProp; friend class YAPModuleProp;
friend class YAPPredicate; friend class YAPPredicate;
@ -104,7 +104,7 @@ public:
* predicates, operators, modules, almost everything. * predicates, operators, modules, almost everything.
* *
*/ */
class YAPProp { class X_API YAPProp {
friend class YAPModuleProp; friend class YAPModuleProp;
friend class YAPFunctor; friend class YAPFunctor;
/// does nothing, p is defined by the subclass /// does nothing, p is defined by the subclass

View File

@ -43,7 +43,7 @@ class YAPModule;
* Info about the module is in YAPModuleProp * Info about the module is in YAPModuleProp
* *
*/ */
class YAPModule : protected YAPAtomTerm { class X_API YAPModule : protected YAPAtomTerm {
friend class YAPPredicate; friend class YAPPredicate;
friend class YAPModuleProp; friend class YAPModuleProp;
Term t() { return gt(); } Term t() { return gt(); }
@ -61,7 +61,7 @@ public:
* A YAPModuleProp controls access to a module property. * A YAPModuleProp controls access to a module property.
* *
*/ */
class YAPModuleProp : public YAPProp { class X_API YAPModuleProp : public YAPProp {
friend class YAPPredicate; friend class YAPPredicate;
ModEntry *m; ModEntry *m;
@ -77,7 +77,7 @@ public:
/** /**
* @brief YAPFunctor represents Prolog functors Name/Arity * @brief YAPFunctor represents Prolog functors Name/Arity
*/ */
class YAPFunctor : public YAPProp { class X_API YAPFunctor : public YAPProp {
friend class YAPApplTerm; friend class YAPApplTerm;
friend class YAPTerm; friend class YAPTerm;
friend class YAPPredicate; friend class YAPPredicate;
@ -127,7 +127,7 @@ public:
* *
* This class interfaces with PredEntry in Yatom. * This class interfaces with PredEntry in Yatom.
*/ */
class YAPPredicate : public YAPModuleProp { class X_API YAPPredicate : public YAPModuleProp {
friend class YAPQuery; friend class YAPQuery;
friend class YAPEngine; friend class YAPEngine;
@ -297,7 +297,7 @@ Yap_ThrowError(DOMAIN_ERROR_OUT_OF_RANGE, MkIntTerm(0), "YAPFunctor::functor");
* *
* This class interfaces with Predicates Implemented in Prolog. * This class interfaces with Predicates Implemented in Prolog.
*/ */
class YAPPrologPredicate : public YAPPredicate { class X_API YAPPrologPredicate : public YAPPredicate {
public: public:
YAPPrologPredicate(YAPTerm t) : YAPPredicate(t){}; YAPPrologPredicate(YAPTerm t) : YAPPredicate(t){};
YAPPrologPredicate(const char *s, arity_t arity) : YAPPredicate(s, arity){}; YAPPrologPredicate(const char *s, arity_t arity) : YAPPredicate(s, arity){};
@ -319,7 +319,7 @@ public:
* *
* This class interfaces with Predicates Implemented in Prolog. * This class interfaces with Predicates Implemented in Prolog.
*/ */
class YAPFLIP : public YAPPredicate { class X_API YAPFLIP : public YAPPredicate {
public: public:
YAPFLIP(CPredicate call, YAPAtom name, uintptr_t arity, YAPFLIP(CPredicate call, YAPAtom name, uintptr_t arity,
YAPModule module = YAPModule(), CPredicate retry = 0, YAPModule module = YAPModule(), CPredicate retry = 0,

View File

@ -1,6 +1,6 @@
#define YAP_CPP_INTERFACE 1 #define _EXPORT_KERNEL 1
#include "yapi.hh" #include "yapi.hh"
extern "C" { extern "C" {
@ -1012,7 +1012,7 @@ YAPEngine::YAPEngine(int argc, char *argv[],
return ap; return ap;
} }
X_API bool YAPPrologPredicate::assertClause(YAPTerm cl, bool last, bool YAPPrologPredicate::assertClause(YAPTerm cl, bool last,
YAPTerm source) YAPTerm source)
{ {
CACHE_REGS CACHE_REGS

View File

@ -23,11 +23,11 @@
#ifndef YAPIE_HH #ifndef YAPIE_HH
#define YAPIE_HH #define YAPIE_HH
class YAPPPredicate; class X_API YAPPPredicate;
class YAPTerm; class X_API YAPTerm;
/// take information on a Prolog error: /// take information on a Prolog error:
class YAPError { class X_API YAPError {
yap_error_number ID; yap_error_number ID;
std::string goal, info; std::string goal, info;
int swigcode; int swigcode;

View File

@ -19,7 +19,7 @@
#ifndef YAPQ_HH #ifndef YAPQ_HH
#define YAPQ_HH 1 #define YAPQ_HH 1
class YAPPredicate; class X_API YAPPredicate;
/** /**
Queries and engines Queries and engines
@ -31,7 +31,7 @@ class YAPPredicate;
* interface to a YAP Query; * interface to a YAP Query;
* uses an SWI-like status info internally. * uses an SWI-like status info internally.
*/ */
class YAPQuery : public YAPPredicate class X_API YAPQuery : public YAPPredicate
{ {
bool q_open; bool q_open;
int q_state; int q_state;
@ -171,7 +171,7 @@ inline bool command()
/// This class implements a callback Prolog-side. It will be inherited by the /// This class implements a callback Prolog-side. It will be inherited by the
/// Java or Python /// Java or Python
/// class that actually implements the callback. /// class that actually implements the callback.
class YAPCallback class X_API YAPCallback
{ {
public: public:
virtual ~YAPCallback() {} virtual ~YAPCallback() {}
@ -181,7 +181,7 @@ public:
/// @brief Setup all arguments to a new engine /// @brief Setup all arguments to a new engine
class YAPEngineArgs { class X_API YAPEngineArgs {
public: public:

View File

@ -34,7 +34,7 @@ class YAPError;
/** /**
* @brief Generic Prolog Term * @brief Generic Prolog Term
*/ */
class YAPTerm { class X_API YAPTerm {
friend class YAPPredicate; friend class YAPPredicate;
friend class YAPPrologPredicate; friend class YAPPrologPredicate;
friend class YAPQuery; friend class YAPQuery;
@ -254,39 +254,10 @@ public:
inline bool initialized() { return t != 0; }; inline bool initialized() { return t != 0; };
}; };
/**
* @brief Variable Term
*/
class YAPVarTerm : public YAPTerm {
YAPVarTerm(Term t) {
if (IsVarTerm(t)) {
mk(t);
}
}
public:
/// constructor
YAPVarTerm();
/// get the internal representation
CELL *getVar() { return VarOfTerm(gt()); }
/// is the variable bound to another one
bool unbound() { return IsUnboundVar(VarOfTerm(gt())); }
virtual bool isVar() { return true; } /// type check for unbound
virtual bool isAtom() { return false; } /// type check for atom
virtual bool isInteger() { return false; } /// type check for integer
virtual bool isFloat() { return false; } /// type check for floating-point
virtual bool isString() { return false; } /// type check for a string " ... "
virtual bool isCompound() { return false; } /// is a primitive term
virtual bool isAppl() { return false; } /// is a structured term
virtual bool isPair() { return false; } /// is a pair term
virtual bool isGround() { return false; } /// term is ground
virtual bool isList() { return false; } /// term is a list
};
/** /**
* @brief Compound Term * @brief Compound Term
*/ */
class YAPApplTerm : public YAPTerm { class X_API YAPApplTerm : public YAPTerm {
friend class YAPTerm; friend class YAPTerm;
public: public:
@ -324,7 +295,7 @@ public:
/** /**
* @brief List Constructor Term * @brief List Constructor Term
*/ */
class YAPPairTerm : public YAPTerm { class X_API YAPPairTerm : public YAPTerm {
friend class YAPTerm; friend class YAPTerm;
@ -362,7 +333,7 @@ public:
* @brief Number Term * @brief Number Term
*/ */
class YAPNumberTerm : public YAPTerm { class X_API YAPNumberTerm : public YAPTerm {
public: public:
YAPNumberTerm(){}; YAPNumberTerm(){};
bool isTagged() { return IsIntTerm(gt()); } bool isTagged() { return IsIntTerm(gt()); }
@ -372,7 +343,7 @@ public:
* @brief Integer Term * @brief Integer Term
*/ */
class YAPIntegerTerm : public YAPNumberTerm { class X_API YAPIntegerTerm : public YAPNumberTerm {
public: public:
YAPIntegerTerm(intptr_t i); YAPIntegerTerm(intptr_t i);
intptr_t getInteger() { return IntegerOfTerm(gt()); }; intptr_t getInteger() { return IntegerOfTerm(gt()); };
@ -382,14 +353,14 @@ public:
* @brief Floating Point Term * @brief Floating Point Term
*/ */
class YAPFloatTerm : public YAPNumberTerm { class X_API YAPFloatTerm : public YAPNumberTerm {
public: public:
YAPFloatTerm(double dbl) { mk(MkFloatTerm(dbl)); }; YAPFloatTerm(double dbl) { mk(MkFloatTerm(dbl)); };
double getFl() { return FloatOfTerm(gt()); }; double getFl() { return FloatOfTerm(gt()); };
}; };
class YAPListTerm : public YAPTerm { class X_API YAPListTerm : public YAPTerm {
public: public:
/// Create a list term out of a standard term. Check if a valid operation. /// Create a list term out of a standard term. Check if a valid operation.
/// ///
@ -447,7 +418,7 @@ public:
/** /**
* @brief String Term * @brief String Term
*/ */
class YAPStringTerm : public YAPTerm { class X_API YAPStringTerm : public YAPTerm {
public: public:
/// your standard constructor /// your standard constructor
YAPStringTerm(char *s); YAPStringTerm(char *s);
@ -464,7 +435,7 @@ public:
* @brief Atom Term * @brief Atom Term
* Term Representation of an Atom * Term Representation of an Atom
*/ */
class YAPAtomTerm : public YAPTerm { class X_API YAPAtomTerm : public YAPTerm {
friend class YAPModule; friend class YAPModule;
// Constructor: receives a C-atom; // Constructor: receives a C-atom;
YAPAtomTerm(Term t) : YAPTerm(t) { IsAtomTerm(t); } YAPAtomTerm(Term t) : YAPTerm(t) { IsAtomTerm(t); }
@ -498,4 +469,35 @@ public:
}; };
#endif /* YAPT_HH */ #endif /* YAPT_HH */
/**
* @brief Variable Term
*/
class X_API YAPVarTerm : public YAPTerm {
friend class YAPTerm;
public:
/// constructor
YAPVarTerm();
/// get the internal representation
CELL *getVar() { return VarOfTerm(gt()); }
/// is the variable bound to another one
YAPVarTerm(Term t) {
if (IsVarTerm(t)) {
mk(t);
}
}
bool unbound() { return IsUnboundVar(VarOfTerm(gt())); }
virtual bool isVar() { return true; } /// type check for unbound
virtual bool isAtom() { return false; } /// type check for atom
virtual bool isInteger() { return false; } /// type check for integer
virtual bool isFloat() { return false; } /// type check for floating-point
virtual bool isString() { return false; } /// type check for a string " ... "
virtual bool isCompound() { return false; } /// is a primitive term
virtual bool isAppl() { return false; } /// is a structured term
virtual bool isPair() { return false; } /// is a pair term
virtual bool isGround() { return false; } /// term is ground
virtual bool isList() { return false; } /// term is a list
};
/// @} /// @}

View File

@ -90,7 +90,6 @@ ATOMS
#ifdef EUROTRA #ifdef EUROTRA
Term TermDollarU MkAT AtomDollarU Term TermDollarU MkAT AtomDollarU
#endif #endif
Term TermAnswer MkAT AtomAnswer
//modules //modules
Term USER_MODULE MkAT AtomUser Term USER_MODULE MkAT AtomUser

View File

@ -83,7 +83,6 @@
#ifdef EUROTRA #ifdef EUROTRA
#define TermDollarU Yap_heap_regs->TermDollarU_ #define TermDollarU Yap_heap_regs->TermDollarU_
#endif #endif
#define TermAnswer Yap_heap_regs->TermAnswer_
#define USER_MODULE Yap_heap_regs->USER_MODULE_ #define USER_MODULE Yap_heap_regs->USER_MODULE_
#define IDB_MODULE Yap_heap_regs->IDB_MODULE_ #define IDB_MODULE Yap_heap_regs->IDB_MODULE_

View File

@ -87,7 +87,6 @@ EXTERNAL AtomHashEntry *HashChain;
#ifdef EUROTRA #ifdef EUROTRA
EXTERNAL Term TermDollarU; EXTERNAL Term TermDollarU;
#endif #endif
EXTERNAL Term TermAnswer;
//modules //modules
EXTERNAL Term USER_MODULE; EXTERNAL Term USER_MODULE;
EXTERNAL Term IDB_MODULE; EXTERNAL Term IDB_MODULE;

View File

@ -87,7 +87,6 @@
#ifdef EUROTRA #ifdef EUROTRA
Term TermDollarU_; Term TermDollarU_;
#endif #endif
Term TermAnswer_;
//modules //modules
Term USER_MODULE_; Term USER_MODULE_;
Term IDB_MODULE_; Term IDB_MODULE_;

View File

@ -83,7 +83,6 @@
#ifdef EUROTRA #ifdef EUROTRA
TermDollarU = MkAtomTerm(AtomDollarU); TermDollarU = MkAtomTerm(AtomDollarU);
#endif #endif
TermAnswer = MkAtomTerm(AtomAnswer);
USER_MODULE = MkAtomTerm(AtomUser); USER_MODULE = MkAtomTerm(AtomUser);
IDB_MODULE = MkAtomTerm(AtomIDB); IDB_MODULE = MkAtomTerm(AtomIDB);

View File

@ -83,7 +83,6 @@
#ifdef EUROTRA #ifdef EUROTRA
TermDollarU = AtomTermAdjust(TermDollarU); TermDollarU = AtomTermAdjust(TermDollarU);
#endif #endif
TermAnswer = AtomTermAdjust(TermAnswer);
USER_MODULE = AtomTermAdjust(USER_MODULE); USER_MODULE = AtomTermAdjust(USER_MODULE);
IDB_MODULE = AtomTermAdjust(IDB_MODULE); IDB_MODULE = AtomTermAdjust(IDB_MODULE);

View File

@ -1,6 +1,16 @@
set (Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.6 3.4 ) set (Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.6 3.4 )
set (PythonInterp_FIND_VERSION 3)
find_package(PythonInterp) find_package(PythonInterp)
get_filename_component( d ${PYTHON_EXECUTABLE} DIRECTORY )
get_filename_component( s ${PYTHON_EXECUTABLE} EXT )
get_filename_component( n ${PYTHON_EXECUTABLE} NAME_WE )
set( o ${d}/${n}3${s} )
if (EXISTS o)
set (PYTHON_EXECUTABLE ${o})
endif()
find_package(PythonLibs) find_package(PythonLibs)
@ -29,6 +39,7 @@ ENDIF()
if (PYTHONLIBS_FOUND AND SWIG_FOUND) if (PYTHONLIBS_FOUND AND SWIG_FOUND)
add_subdirectory(packages/python/swig) add_subdirectory(packages/python/swig)
include(FindPythonModule) include(FindPythonModule)
find_python_module( jupyter ) find_python_module( jupyter )

View File

@ -2052,24 +2052,5 @@ calls it, or to nothing if 'inline' is not supported under any name. */
#endif #endif
#endif #endif
/**
* X_API macro
*
* @brief Linux exports all symbols by default, but WIN32 does
* not. cmake can enable exports, using CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
*
* @param _WIN32
*
* @return
*/
#if _WIN32 && !defined(YAP_KERNEL)
#define X_API __declspec(dllimport)
#else
#define X_API
#endif
#define O_API
#endif #endif

View File

@ -81,7 +81,7 @@ typedef struct vfs {
/// in this space, usual w,r,a,b flags plus B (store in a buffer) /// in this space, usual w,r,a,b flags plus B (store in a buffer)
bool (*close)(int sno); /// close the object bool (*close)(int sno); /// close the object
int (*get_char)(int sno); /// get an octet to the stream int (*get_char)(int sno); /// get an octet to the stream
int (*put_char)(int sno, wchar_t ch); /// output an octet to the stream int (*put_char)(int sno, int ch); /// output an octet to the stream
void (*flush)(int sno); /// flush a stream void (*flush)(int sno); /// flush a stream
int64_t (*seek)(int sno, int64_t offset, int64_t (*seek)(int sno, int64_t offset,
int whence); /// jump around the stream int whence); /// jump around the stream

View File

@ -18,6 +18,36 @@
#define _YAPDEFS_H 1 #define _YAPDEFS_H 1
/**
* X_API macro
*
* @brief Linux exports all symbols by default, but WIN32 does
* not. cmake can enable exports, using CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
*
* @param _WIN32
*
* @return
*/
#if _WIN32
#if defined(_EXPORT_KERNEL)
// __declspec(dllexport)
#define X_API
#else
// __declspec(dllimport)
#define X_API
#endif
// __declspec(dllexport)
#define O_API
// __declspec(dllimport)
#define I_API
#else
#define O_API
#define I_API
#define X_API
#endif
#include <setjmp.h> #include <setjmp.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -22,6 +22,7 @@
* @addtogroup swi-c-interface * @addtogroup swi-c-interface
* *
*/ */
#define _EXPORT_KERNEL 1
#include <Yap.h> #include <Yap.h>
#include <Yatom.h> #include <Yatom.h>
@ -44,7 +45,7 @@
static PL_blob_t unregistered_blob_atom = { static PL_blob_t unregistered_blob_atom = {
PL_BLOB_MAGIC, PL_BLOB_NOCOPY | PL_BLOB_TEXT, "unregistered"}; PL_BLOB_MAGIC, PL_BLOB_NOCOPY | PL_BLOB_TEXT, "unregistered"};
int PL_is_blob(term_t t, PL_blob_t **type) { X_API int PL_is_blob(term_t t, PL_blob_t **type) {
CACHE_REGS CACHE_REGS
Term yt = Yap_GetFromSlot(t); Term yt = Yap_GetFromSlot(t);
Atom a; Atom a;

View File

@ -20,6 +20,7 @@ Moyle. All rights reserved.
*/ */
#define PL_KERNEL 1 #define PL_KERNEL 1
#define _EXPORT_KERNEL 1
//=== includes =============================================================== //=== includes ===============================================================
#include <assert.h> #include <assert.h>

View File

@ -188,7 +188,7 @@ bool Yap_set_stream_to_buf(StreamDesc *st, const char *buf, size_t nchars) {
flags = Input_Stream_f | InMemory_Stream_f; flags = Input_Stream_f | InMemory_Stream_f;
st->vfs = NULL; st->vfs = NULL;
Yap_initStream(st - GLOBAL_Stream, f, NULL, TermNil, LOCAL_encoding, flags, Yap_initStream(st - GLOBAL_Stream, f, NULL, TermNil, LOCAL_encoding, flags,
AtomRead); AtomRead, NULL);
// like any file stream. // like any file stream.
/* currently these streams are not seekable */ /* currently these streams are not seekable */
st->status = Input_Stream_f | InMemory_Stream_f; st->status = Input_Stream_f | InMemory_Stream_f;
@ -222,7 +222,7 @@ int Yap_open_buf_read_stream(const char *buf, size_t nchars, encoding_t *encp,
st->file = f = NULL; st->file = f = NULL;
flags = Input_Stream_f | InMemory_Stream_f; flags = Input_Stream_f | InMemory_Stream_f;
st->vfs = NULL; st->vfs = NULL;
Yap_initStream(sno, f, NULL, TermNil, encoding, flags, AtomRead); Yap_initStream(sno, f, NULL, TermNil, encoding, flags, AtomRead, NULL);
// like any file stream. // like any file stream.
/* currently these streams are not seekable */ /* currently these streams are not seekable */
st->status = Input_Stream_f | InMemory_Stream_f; st->status = Input_Stream_f | InMemory_Stream_f;

View File

@ -7,11 +7,18 @@ set (PYTHON_HEADERS python.h)
set (CMAKE_POSITION_INDEPENDENT_CODE TRUE) set (CMAKE_POSITION_INDEPENDENT_CODE TRUE)
add_library (YAPPython SHARED ${PYTHON_SOURCES}) add_library (YAPPython0 OBJECT ${PYTHON_SOURCES})
if (WIN32)
add_library (YAPPython SHARED pyload.c )
endif()
# arithmetic hassle.
set_property(TARGET YAPPython PROPERTY CXX_STANDARD 11)
set_property(TARGET YAPPython PROPERTY CXX_STANDARD_REQUIRED ON)
target_link_libraries(YAPPython libYap ${PYTHON_LIBRARY}) target_link_libraries(YAPPython libYap ${PYTHON_LIBRARY})
set_property( SOURCE ${PYTHON_SOURCES} APPEND PROPERTY COMPILE_DEFINITIONS YAP_KERNEL=1) set_property( SOURCE ${PYTHON_SOURCES} APPEND PROPERTY COMPILE_DEFINITIONS YAP_KERNEL=1 _GNU-SOURCE=1)
set (PYTHON_PL python.pl) set (PYTHON_PL python.pl)

View File

@ -1,5 +1,5 @@
#include "python.h" #include "py4yap.h"
static foreign_t array_to_python_list(term_t addr, term_t type, term_t szt, static foreign_t array_to_python_list(term_t addr, term_t type, term_t szt,
term_t py) { term_t py) {

View File

@ -1,6 +1,6 @@
#include "python.h" #include "py4yap.h"
extern PyObject *py_Local, *py_Global; extern PyObject *py_Local, *py_Global;

View File

@ -1,5 +1,5 @@
#include "python.h" #include "py4yap.h"
static foreign_t repr_term(PyObject *pVal, term_t t) { static foreign_t repr_term(PyObject *pVal, term_t t) {
term_t to = PL_new_term_ref(), t1 = PL_new_term_ref(); term_t to = PL_new_term_ref(), t1 = PL_new_term_ref();

View File

@ -13,6 +13,7 @@
#endif #endif
#include <Python.h> #include <Python.h>
#include <SWI-Prolog.h> #include <SWI-Prolog.h>
#ifdef HAVE_STAT #ifdef HAVE_STAT
#undef HAVE_STATa #undef HAVE_STATa
@ -22,6 +23,12 @@
#define EXTRA_MESSSAGES 1 #define EXTRA_MESSSAGES 1
#ifndef PYTHON_H #ifndef PYTHON_H
#define X_API
#define I_API
#define O_API
#define PYTHON_H 1 #define PYTHON_H 1
PyObject *find_obj(PyObject *ob, term_t lhs, bool eval); PyObject *find_obj(PyObject *ob, term_t lhs, bool eval);

View File

@ -1,4 +1,4 @@
#include "python.h" #include "py4yap.h"
/** /**
* *
@ -700,6 +700,7 @@ static PyObject *structseq_repr(PyObject *iobj) {
} }
#endif #endif
PyObject *term_to_nametuple(const char *s, arity_t arity, PyObject *tuple) { PyObject *term_to_nametuple(const char *s, arity_t arity, PyObject *tuple) {
PyObject *o; PyObject *o;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
@ -722,7 +723,7 @@ PyObject *term_to_nametuple(const char *s, arity_t arity, PyObject *tuple) {
return NULL; return NULL;
typp->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; typp->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
// typp->tp_str = structseq_str; // typp->tp_str = structseq_str;
// typp->tp_repr = structseq_repr; typp->tp_repr = structseq_repr;
// typp = PyStructSequence_NewType(desc); // typp = PyStructSequence_NewType(desc);
// don't do this: we cannot add a type as an atribute. // don't do this: we cannot add a type as an atribute.
//PyModule_AddObject(py_Main, s, (PyObject *)typp); //PyModule_AddObject(py_Main, s, (PyObject *)typp);

27
packages/python/pyload.c Normal file
View File

@ -0,0 +1,27 @@
#include "py4yap.h"
X_API bool init_python(void) {
return true;
}
#ifdef _WIN32
#include <windows.h>
int WINAPI win_python(HANDLE, DWORD, LPVOID);
int WINAPI win_python(HANDLE hinst, DWORD reason, LPVOID reserved) {
switch (reason) {
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return 1;
}
#endif

View File

@ -1,5 +1,5 @@
#include "python.h" #include "py4yap.h"
PyObject *py_Main; PyObject *py_Main;

View File

@ -1,6 +1,5 @@
#include "python.h" #include "py4yap.h"
#include <YapStreams.h>
#include <VFS.h> #include <VFS.h>
atom_t ATOM_true, ATOM_false, ATOM_colon, ATOM_dot, ATOM_none, ATOM_t, atom_t ATOM_true, ATOM_false, ATOM_colon, ATOM_dot, ATOM_none, ATOM_t,
@ -25,8 +24,13 @@ VFS_t pystream;
static void * static void *
py_open( const char *name, const char *io_mode) { py_open( const char *name, const char *io_mode) {
#if HAVE_STRCASESTR
if (strcasestr(name,"//python/")== name) if (strcasestr(name,"//python/")== name)
name += strlen("//python/"); name += strlen("//python/");
#else
if (strstr(name,"//python/")== name)
name += strlen("//python/");
#endif
// we assume object is already open, so there is no need to open it. // we assume object is already open, so there is no need to open it.
PyObject *stream = string_to_python( name, true, NULL); PyObject *stream = string_to_python( name, true, NULL);
if (stream == Py_None) if (stream == Py_None)
@ -202,29 +206,3 @@ X_API bool do_init_python(void) {
return true; return true;
} }
X_API bool init_python(void) {
if (python_in_python)
return true;
return do_init_python();
}
#ifdef _WIN32
#include <windows.h>
int WINAPI win_python(HANDLE, DWORD, LPVOID);
int WINAPI win_python(HANDLE hinst, DWORD reason, LPVOID reserved) {
switch (reason) {
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return 1;
}
#endif

View File

@ -1,7 +1,7 @@
# This is a CMake example for Python # This is a CMake example for Python
INCLUDE(NewUseSWIG) #INCLUDE(NewUseSWIG)
include(FindPythonModule) include(FindPythonModule)
@ -23,19 +23,7 @@ SET_SOURCE_FILES_PROPERTIES(../../swig/yap.i PROPERTIES SWIG_FLAGS "-O;-py3")
SET_SOURCE_FILES_PROPERTIES(../../swiyap.i PROPERTIES SWIG_MODULE_NAME yap) SET_SOURCE_FILES_PROPERTIES(../../swiyap.i PROPERTIES SWIG_MODULE_NAME yap)
#SET_SOURCE_FILES_PROPERTIES(../../swi/yap.i PROPERTIES OUTPUT_NAME yap) #SET_SOURCE_FILES_PROPERTIES(../../swi/yap.i PROPERTIES OUTPUT_NAME yap)
SWIG_ADD_LIBRARY(Py2YAP LANGUAGE python SHARED SOURCES ../../swig/yap.i )
if (WIN32)
SWIG_LINK_LIBRARIES(Py2YAP YAPPython libYap ${PYTHON_LIBRARIES} )
else()
SWIG_LINK_LIBRARIES( Py2YAP libYap YAP++ YAPPython ${PYTHON_LIBRARIES} )
endif()
set_target_properties ( ${SWIG_MODULE_Py2YAP_REAL_NAME}
PROPERTIES
NO_SONAME ON
OUTPUT_NAME _yap
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
DEPENDS YAPPython YAPPython YAP++
)
# inform we are compiling YAP # inform we are compiling YAP
# s used in MSYS # s used in MSYS
# #
@ -44,7 +32,7 @@ else()
# RUNTIME DESTINATION ${PYTHON_MODULE_PATH} # RUNTIME DESTINATION ${PYTHON_MODULE_PATH}
# ARCHIVE DESTINATION ${PYTHON_MODULE_PATH} # ARCHIVE DESTINATION ${PYTHON_MODULE_PATH}
# LIBRARY DESTINATION ${PYTHON_MODULE_PATH} # LIBRARY DESTINATION ${PYTHON_MODULE_PATH}
# ) # )x
set (dlls $<TARGET_FILE:matrix> set (dlls $<TARGET_FILE:matrix>
@ -62,6 +50,9 @@ endif()
set (PL ${pl_library} ${PROLOG_SOURCES} ) set (PL ${pl_library} ${PROLOG_SOURCES} )
add_custom_target( YAP4PY_SETUP add_custom_target( YAP4PY_SETUP
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/yap.py
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/packages/swig/yap.i ${CMAKE_CURRENT_BINARY_DIR}/yap.i
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py
COMMAND ${CMAKE_COMMAND} -E copy ${dlls} ${CMAKE_BINARY_DIR}/libYap${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_BINARY_DIR}/${YAP_STARTUP} ${PYTHON_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/yap4py COMMAND ${CMAKE_COMMAND} -E copy ${dlls} ${CMAKE_BINARY_DIR}/libYap${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_BINARY_DIR}/${YAP_STARTUP} ${PYTHON_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/yap4py
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog

View File

@ -1,3 +0,0 @@
// make Python happy...

View File

@ -54,22 +54,21 @@ pkg_root = pjoin(here, name)
my_extra_link_args = [] my_extra_link_args = []
if platform.system() == 'Darwin': if platform.system() == 'Darwin':
my_extra_link_args = ['-Wl,-rpath', '-Wl,${_ABS_PYTHON_MODULE_PATH}'] my_extra_link_args = ['-Wl,-rpath', '-Wl,${_ABS_PYTHON_MODULE_PATH}']
so = 'dylib'
# or dll in glob('yap/dlls/*'): # or dll in glob('yap/dlls/*'):
# move( dll ,'lib' ) # move( dll ,'lib' )
elif platform.system() == 'Windows':
my_extra_link_args = ['-Wl,-export-all-symbols','-Wl,-enable-auto-import','-Wl,-enable-runtime-pseudo-relocs']
cplus = ['']
cplus=['${RELATIVE_SOURCE}CXX/yapi.cpp'] bpy2yap = ['${CMAKE_SOURCE_DIR}/packages/python/python.c',
'${CMAKE_SOURCE_DIR}/packages/python/pl2py.c',
py2yap=['${RELATIVE_SOURCE}packages/python/python.c', '${CMAKE_SOURCE_DIR}/packages/python/pybips.c',
'${RELATIVE_SOURCE}packages/python/pl2py.c', '${CMAKE_SOURCE_DIR}/packages/python/py2pl.c',
'${RELATIVE_SOURCE}packages/python/pybips.c', '${CMAKE_SOURCE_DIR}/packages/python/pl2pl.c',
'${RELATIVE_SOURCE}packages/python/py2pl.c', '${CMAKE_SOURCE_DIR}/packages/python/pypreds.c'
'${RELATIVE_SOURCE}packages/python/pl2pl.c',
'${RELATIVE_SOURCE}packages/python/pypreds.c'
] ]
native_sources = ['yapPYTHON_wrap.cxx']+py2yap+cplus native_sources = ['yap.i']
here = path.abspath(path.dirname(__file__)) here = path.abspath(path.dirname(__file__))
# Get the long description from the README file # Get the long description from the README file
@ -78,25 +77,28 @@ extensions=[Extension('_yap', native_sources,
define_macros=[('MAJOR_VERSION', '1'), define_macros=[('MAJOR_VERSION', '1'),
('MINOR_VERSION', '0'), ('MINOR_VERSION', '0'),
('_YAP_NOT_INSTALLED_', '1'), ('_YAP_NOT_INSTALLED_', '1'),
('_GNU_SOURCE', '1'),
('YAP_PYTHON', '1')], ('YAP_PYTHON', '1')],
runtime_library_dirs=['yap4py', '${libdir}', '${bindir}'], runtime_library_dirs=['yap4py', '${libdir}', '${bindir}'],
swig_opts=['-modern', '-c++', '-py3','-I${RELATIVE_SOURCE}/CXX'], swig_opts=['-modern', '-c++', '-py3', '-I${CMAKE_SOURCE_DIR}/CXX', '-I${CMAKE_SOURCE_DIR}/include',
'-I${CMAKE_SOURCE_DIR}/H', '-I${CMAKE_SOURCE_DIR}/H/generated',
'-I${CMAKE_SOURCE_DIR}/os', '-I${CMAKE_SOURCE_DIR}/OPTYap', '-I../../..'],
library_dirs=['../../..', '../../../CXX', '../../packages/python', "${dlls}", "${bindir}", '.'], library_dirs=['../../..', '../../../CXX', '../../packages/python', "${dlls}", "${bindir}", '.'],
extra_link_args=my_extra_link_args, extra_link_args=my_extra_link_args,
extra_compile_args=['-g3','-O0'],
libraries=['Yap', '${GMP_LIBRARIES}'], libraries=['Yap', '${GMP_LIBRARIES}'],
include_dirs=['../../..', include_dirs=['../../..',
'${GMP_INCLUDE_DIRS}', '${GMP_INCLUDE_DIRS}',
'${RELATIVE_SOURCE}H', '${CMAKE_SOURCE_DIR}/H',
'${RELATIVE_SOURCE}H/generated', '${CMAKE_SOURCE_DIR}/H/generated',
'${RELATIVE_SOURCE}OPTYap', '${CMAKE_SOURCE_DIR}/OPTYap',
'${RELATIVE_SOURCE}os', '${CMAKE_SOURCE_DIR}/os',
'${RELATIVE_SOURCE}include', '${CMAKE_SOURCE_DIR}/include',
'${RELATIVE_SOURCE}CXX', '.'] '${CMAKE_SOURCE_DIR}/CXX', '.']
)] )]
packages = ['yap4py'] packages = ['yap4py']
def visit(d0, pls): def visit(d0, pls):
for (r, ds, fs) in walk('.'): for (r, ds, fs) in walk('.'):
for f in fs: for f in fs:
@ -107,13 +109,13 @@ def visit(d0, pls):
pls = visit(os.path.join(d0, i), pls) pls = visit(os.path.join(d0, i), pls)
return pls return pls
package_data = { package_data = {
'': visit('.', []) '': visit('.', [])
} }
version_ns = {'__version__': '6.3.5', 'minor-version': '6', 'minor-version': '3', 'patch': '5'} version_ns = {'__version__': '6.3.5', 'minor-version': '6', 'minor-version': '3', 'patch': '5'}
setup_args = dict( setup_args = dict(
name=name, name=name,
version=version_ns['__version__'], version=version_ns['__version__'],

View File

@ -1,10 +0,0 @@
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

@ -1,11 +0,0 @@
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

@ -1 +0,0 @@
yapex

View File

@ -3,6 +3,7 @@
#include "rconfig.h" #include "rconfig.h"
#if HAVE_R_H || !defined(_YAP_NOT_INSTALLED_) #if HAVE_R_H || !defined(_YAP_NOT_INSTALLED_)
#include <SWI-Prolog.h> #include <SWI-Prolog.h>
#undef ERROR
#if HAVE_R_EMBEDDED_H #if HAVE_R_EMBEDDED_H
#include <Rembedded.h> #include <Rembedded.h>
#endif #endif
@ -1873,7 +1874,9 @@ static foreign_t init_R(void) {
R_SignalHandlers = 0; R_SignalHandlers = 0;
#endif #endif
Rf_initEmbeddedR(argc, argv); Rf_initEmbeddedR(argc, argv);
#ifndef WIN32
R_CStackLimit = -1; R_CStackLimit = -1;
#endif
return TRUE; return TRUE;
} }

View File

@ -1,12 +1,12 @@
#ifdef SWIGPYTHON
%{
#include <Python.h>
%}
#endif
%{ %{
#include <cmath>
#include <gmpxx.h> #include <gmpxx.h>
extern "C"{ extern "C"{
#ifdef SWIGPYTHON
#include <Python.h>
#endif
#include "Yap.h" #include "Yap.h"
} }
%} %}