Merge branch 'master' of git.dcc.fc.up.pt:yap-6.3

This commit is contained in:
Costa Vitor
2012-07-18 17:36:10 -05:00
14 changed files with 16971 additions and 5856 deletions

View File

@@ -13086,7 +13086,7 @@ Yap_absmi(int inp)
goto fail;
}
PP = PredMetaCall;
SREG = (CELL *) pen;
SREG = (CELL *) PP;
ASP = ENV_YREG;
if (ASP > (CELL *)PROTECT_FROZEN_B(B))
ASP = (CELL *)PROTECT_FROZEN_B(B);
@@ -13097,7 +13097,7 @@ Yap_absmi(int inp)
goto creep_pe;
}
saveregs_and_ycache();
if (!Yap_gc(((PredEntry *)SREG)->ArityOfPE, ENV, NEXTOP(PREG, Osbpp))) {
if (!Yap_gc(PP->ArityOfPE, ENV, NEXTOP(PREG, Osbpp))) {
Yap_NilError(OUT_OF_STACK_ERROR,LOCAL_ErrorMessage);
}
setregs_and_ycache();
@@ -13295,7 +13295,7 @@ Yap_absmi(int inp)
goto fail;
}
PP = PredMetaCall;
SREG = (CELL *) pen;
SREG = (CELL *) PP;
ASP = ENV_YREG;
if (ASP > (CELL *)PROTECT_FROZEN_B(B))
ASP = (CELL *)PROTECT_FROZEN_B(B);
@@ -13306,7 +13306,7 @@ Yap_absmi(int inp)
goto creep_pe;
}
saveregs_and_ycache();
if (!Yap_gc(((PredEntry *)SREG)->ArityOfPE, ENV, NEXTOP(PREG, Osbmp))) {
if (!Yap_gc(PP->ArityOfPE, ENV, NEXTOP(PREG, Osbmp))) {
Yap_NilError(OUT_OF_STACK_ERROR,LOCAL_ErrorMessage);
}
setregs_and_ycache();

View File

@@ -3953,9 +3953,10 @@ Yap_assemble(int mode, Term t, PredEntry *ap, int is_fact, struct intermediates
if (ap->PredFlags & LogUpdatePredFlag) {
((LogUpdClause *)(cip->code_addr))->ClSize = size;
Yap_LUClauseSpace += size;
} else
} else {
((StaticClause *)(cip->code_addr))->ClSize = size;
Yap_ClauseSpace += size;
}
} else {
if (ap->PredFlags & LogUpdatePredFlag) {
Yap_LUIndexSpace_Tree += size;

View File

@@ -435,6 +435,8 @@ X_API Int STD_PROTO(YAP_Init,(YAP_init_args *));
X_API Int STD_PROTO(YAP_FastInit,(char *));
X_API PredEntry *STD_PROTO(YAP_FunctorToPred,(Functor));
X_API PredEntry *STD_PROTO(YAP_AtomToPred,(Atom));
X_API PredEntry *STD_PROTO(YAP_FunctorToPredInModule,(Functor, Term));
X_API PredEntry *STD_PROTO(YAP_AtomToPredInModule,(Atom, Term));
X_API Int STD_PROTO(YAP_CallProlog,(Term));
X_API void *STD_PROTO(YAP_AllocSpaceFromYap,(unsigned int));
X_API void *STD_PROTO(YAP_ReallocSpaceFromYap,(void*,unsigned int));
@@ -2249,6 +2251,20 @@ YAP_AtomToPred(Atom at)
return RepPredProp(PredPropByAtom(at, CurrentModule));
}
X_API PredEntry *
YAP_FunctorToPredInModule(Functor func, Term mod)
{
CACHE_REGS
return RepPredProp(PredPropByFunc(func, mod));
}
X_API PredEntry *
YAP_AtomToPredInModule(Atom at, Term mod)
{
CACHE_REGS
return RepPredProp(PredPropByAtom(at, mod));
}
static int
run_emulator(YAP_dogoalinfo *dgi)