Merge branch 'master' of ssh://ssh.dcc.fc.up.pt:31064/home/vsc/yap
This commit is contained in:
commit
ef226da706
36
CXX/yapi.cpp
36
CXX/yapi.cpp
@ -613,6 +613,11 @@ bool YAPEngine::mgoal(Term t, Term tmod, bool release) {
|
|||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
YAP_dogoalinfo q;
|
YAP_dogoalinfo q;
|
||||||
BACKUP_MACHINE_REGS();
|
BACKUP_MACHINE_REGS();
|
||||||
|
<<<<<<< HEAD
|
||||||
|
bool rc = YAP_RunGoalOnce(t);
|
||||||
|
RECOVER_MACHINE_REGS();
|
||||||
|
return rc;
|
||||||
|
=======
|
||||||
Term *ts = nullptr;
|
Term *ts = nullptr;
|
||||||
q.CurSlot = Yap_StartSlots();
|
q.CurSlot = Yap_StartSlots();
|
||||||
q.p = P;
|
q.p = P;
|
||||||
@ -653,6 +658,7 @@ bool YAPEngine::mgoal(Term t, Term tmod, bool release) {
|
|||||||
// PyEval_RestoreThread(_save);
|
// PyEval_RestoreThread(_save);
|
||||||
RECOVER_MACHINE_REGS();
|
RECOVER_MACHINE_REGS();
|
||||||
return result;
|
return result;
|
||||||
|
>>>>>>> ef3d435dec2b9606993430da2f66e06d38f3a399
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* called when a query must be terminated and its state fully recovered,
|
* called when a query must be terminated and its state fully recovered,
|
||||||
@ -674,33 +680,52 @@ Term YAPEngine::fun(Term t) {
|
|||||||
arity_t arity;
|
arity_t arity;
|
||||||
Functor f;
|
Functor f;
|
||||||
Atom name;
|
Atom name;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
YAP_dogoalinfo backup = q;
|
||||||
|
CELL *spt;
|
||||||
|
|
||||||
|
=======
|
||||||
q.CurSlot = Yap_StartSlots();
|
q.CurSlot = Yap_StartSlots();
|
||||||
q.p = P;
|
q.p = P;
|
||||||
q.cp = CP;
|
q.cp = CP;
|
||||||
|
|
||||||
Int oenv = LCL0-ENV;
|
Int oenv = LCL0-ENV;
|
||||||
Int oB = LCL0-CellPtr(B);
|
Int oB = LCL0-CellPtr(B);
|
||||||
|
>>>>>>> ef3d435dec2b9606993430da2f66e06d38f3a399
|
||||||
if (IsApplTerm(t)) {
|
if (IsApplTerm(t)) {
|
||||||
ts = RepAppl(t) + 1;
|
ts = RepAppl(t) + 1;
|
||||||
f = (Functor)ts[-1];
|
f = (Functor)ts[-1];
|
||||||
name = NameOfFunctor(f);
|
name = NameOfFunctor(f);
|
||||||
arity = ArityOfFunctor(f);
|
arity = ArityOfFunctor(f);
|
||||||
for (arity_t i = 0; i < arity; i++)
|
for (arity_t i = 0; i < arity; i++)
|
||||||
XREGS[i + 1] = ts[i];
|
HR[i + 1] = ts[i];
|
||||||
|
arity++;
|
||||||
} else if (IsAtomTerm(t)) {
|
} else if (IsAtomTerm(t)) {
|
||||||
name = AtomOfTerm(t);
|
name = AtomOfTerm(t);
|
||||||
f = nullptr;
|
f = nullptr;
|
||||||
arity = 0;
|
arity = 1;
|
||||||
} else if (IsPairTerm(t)) {
|
} else if (IsPairTerm(t)) {
|
||||||
XREGS[1] = ts[0];
|
HR[1] = ts[0];
|
||||||
XREGS[2] = ts[1];
|
HR[2] = ts[1];
|
||||||
arity = 2;
|
arity = 3;
|
||||||
name = AtomDot;
|
name = AtomDot;
|
||||||
f = FunctorDot;
|
f = FunctorDot;
|
||||||
} else {
|
} else {
|
||||||
throw YAPError(SOURCE(), TYPE_ERROR_CALLABLE, t, 0);
|
throw YAPError(SOURCE(), TYPE_ERROR_CALLABLE, t, 0);
|
||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
HR += arity+1;
|
||||||
|
RESET_VARIABLE(HR-1);
|
||||||
|
yhandle yt = Yap_InitHandle(t);
|
||||||
|
Term ot;
|
||||||
|
bool rc = YAP_RunGoalOnce(t);
|
||||||
|
if (rc)
|
||||||
|
ot = Yap_GetArg(arity,Yap_GetFromHandle(yt));
|
||||||
|
else
|
||||||
|
ot = TermNone;
|
||||||
|
RECOVER_MACHINE_REGS();
|
||||||
|
=======
|
||||||
Term ot = XREGS[arity + 1] = MkVarTerm();
|
Term ot = XREGS[arity + 1] = MkVarTerm();
|
||||||
yhandle_t h = Yap_InitHandle(ot);
|
yhandle_t h = Yap_InitHandle(ot);
|
||||||
arity++;
|
arity++;
|
||||||
@ -729,6 +754,7 @@ Term YAPEngine::fun(Term t) {
|
|||||||
RECOVER_MACHINE_REGS();
|
RECOVER_MACHINE_REGS();
|
||||||
return ot;
|
return ot;
|
||||||
}
|
}
|
||||||
|
>>>>>>> ef3d435dec2b9606993430da2f66e06d38f3a399
|
||||||
}
|
}
|
||||||
|
|
||||||
YAPQuery::YAPQuery(YAPFunctor f, YAPTerm mod, YAPTerm ts[])
|
YAPQuery::YAPQuery(YAPFunctor f, YAPTerm mod, YAPTerm ts[])
|
||||||
|
@ -49,21 +49,13 @@ INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} ${CMAKE_CURRENT_BINARY_DIR}/yap4py/i
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh
|
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh
|
||||||
COMMAND ${SWIG_EXECUTABLE} -c++ -python -O -py3 -module "yap" -addextern -I${CMAKE_SOURCE_DIR}/H -I${CMAKE_SOURCE_DIR}/H/generated -I${CMAKE_SOURCE_DIR}/include
|
COMMAND ${SWIG_EXECUTABLE} -c++ -python -O -py3 -module "yap" -addextern -I${CMAKE_SOURCE_DIR}/H -I${CMAKE_SOURCE_DIR}/H/generated -I${CMAKE_SOURCE_DIR}/include -I${CMAKE_SOURCE_DIR}/OPTYap -I${CMAKE_SOURCE_DIR}/os -I${CMAKE_SOURCE_DIR}/utf8proc -I.././.. -I${CMAKE_SOURCE_DIR}/CXX -I${CMAKE_SOURCE_DIR}/packages/python -outdir ${CMAKE_CURRENT_BINARY_DIR}/yap4py -I${GMP_INCLUDE_DIRS} -DX_API="" -o ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx -oh ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh ${SWIG_SOURCES}
|
||||||
-I${CMAKE_SOURCE_DIR}/OPTYap -I${CMAKE_SOURCE_DIR}/os -I${CMAKE_SOURCE_DIR}/utf8proc -I.././.. -I${CMAKE_SOURCE_DIR}/CXX -I${CMAKE_SOURCE_DIR}/packages/python
|
|
||||||
-outdir ${CMAKE_CURRENT_BINARY_DIR}/yap4py -I${GMP_INCLUDE_DIRS} -DX_API="" -o ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx -oh ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh ${SWIG_SOURCES}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
DEPENDS ${SWIG_SOURCES} yap4py/yapi.cpp
|
DEPENDS ${SWIG_SOURCES} YAP++
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_custom_target( YAP4PY ALL
|
add_custom_target( YAP4PY ALL
|
||||||
DEPENDS ${CMAKE_SOURCE_DIR}/CXX/yapi.cpp Py4YAP YAP++ yap4py/yapi.cpp ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
add_custom_command( TARGET YAP4PY
|
|
||||||
PRE_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/yap4py
|
COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/yap4py
|
||||||
COMMAND ${PYTHON_EXECUTABLE} setup.py sdist ${bdist}
|
COMMAND ${PYTHON_EXECUTABLE} setup.py sdist ${bdist}
|
||||||
DEPENDS ${CMAKE_SOURCE_DIR}/CXX/yapi.cpp Py4YAP YAP++ yap4py/yapi.cpp YAP4PY_PY ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh ${PYTHON_SOURCES} Py4YAP STARTUP libYap
|
DEPENDS ${CMAKE_SOURCE_DIR}/CXX/yapi.cpp Py4YAP YAP++ yap4py/yapi.cpp YAP4PY_PY ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.cxx ${CMAKE_CURRENT_BINARY_DIR}/yap4py/yap_wrap.hh ${PYTHON_SOURCES} Py4YAP STARTUP libYap
|
||||||
|
Reference in New Issue
Block a user