- improvements to GC
   2 generations
   generic speedups
- new scheme for attvars
   - hProlog like interface also supported
- SWI compatibility layer
   - extra predicates
   - global variables
   - moved to Prolog module
- CLP(R) by Leslie De Koninck, Tom Schrijvers, Cristian Holzbaur, Bart
Demoen and Jan Wielemacker
- load_files/2

from 5.0.1

- WIN32 missing include files (untested)
- -L trouble (my thanks to Takeyuchi Shiramoto-san)!
- debugging of backtrable user-C preds would core dump.
- redeclaring a C-predicate as Prolog core dumps.
- badly protected  YapInterface.h.
- break/0 was failing at exit.
- YAP_cut_fail and YAP_cut_succeed were different from manual.
- tracing through data-bases could core dump.
- cut could break on very large computations.
- first pass at BigNum issues (reported by Roberto).
- debugger could get go awol after fail port.
- weird message on wrong debugger option.


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1402 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc
2005-10-18 17:04:43 +00:00
parent cf655a6a9b
commit e6a15addf5
23 changed files with 700 additions and 482 deletions

View File

@@ -11,8 +11,11 @@
* File: cdmgr.c *
* comments: Code manager *
* *
* Last rev: $Date: 2005-10-15 02:05:57 $,$Author: vsc $ *
* Last rev: $Date: 2005-10-18 17:04:43 $,$Author: vsc $ *
* $Log: not supported by cvs2svn $
* Revision 1.169 2005/10/15 02:05:57 vsc
* fix for trying to add clauses to a C pred.
*
* Revision 1.168 2005/08/05 14:55:02 vsc
* first steps to allow mavars with tabling
* fix trailing for tabling with multiple get_cons
@@ -3670,23 +3673,23 @@ p_system_pred(void)
restart_system_pred:
if (IsVarTerm(t1))
return (FALSE);
return FALSE;
if (IsAtomTerm(t1)) {
pe = RepPredProp(Yap_GetPredPropByAtom(AtomOfTerm(t1), mod));
} else if (IsApplTerm(t1)) {
Functor funt = FunctorOfTerm(t1);
if (IsExtensionFunctor(funt)) {
return(FALSE);
return FALSE;
}
if (funt == FunctorModule) {
Term nmod = ArgOfTerm(1, t1);
if (IsVarTerm(nmod)) {
Yap_Error(INSTANTIATION_ERROR,ARG1,"system_predicate/1");
return(FALSE);
return FALSE;
}
if (!IsAtomTerm(nmod)) {
Yap_Error(TYPE_ERROR_ATOM,ARG1,"system_predicate/1");
return(FALSE);
return FALSE;
}
t1 = ArgOfTerm(2, t1);
goto restart_system_pred;
@@ -3695,10 +3698,14 @@ p_system_pred(void)
} else if (IsPairTerm(t1)) {
return TRUE;
} else
return (FALSE);
return FALSE;
if (EndOfPAEntr(pe))
return(FALSE);
return(!pe->ModuleOfPred || pe->PredFlags & (UserCPredFlag|CPredFlag|BinaryTestPredFlag|AsmPredFlag|TestPredFlag));
return FALSE;
return(!pe->ModuleOfPred || /* any predicate in prolog module */
/* any C-pred */
pe->PredFlags & (UserCPredFlag|CPredFlag|BinaryTestPredFlag|AsmPredFlag|TestPredFlag) ||
/* any weird user built-in */
pe->OpcodeOfPred == Yap_opcode(_try_userc));
}
static Int /* $system_predicate(P) */