fix bug in wakeup when in the middle of unifying a list (found by Bart Demoen).
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@486 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
c98c8fa804
commit
c9be907884
@ -2514,7 +2514,10 @@ absmi(int inp)
|
||||
BIND(pt0, d0, bind_glist);
|
||||
#ifdef COROUTINING
|
||||
DO_TRAIL(pt0, d0);
|
||||
if (pt0 < H0) WakeUp(pt0);
|
||||
if (pt0 < H0) {
|
||||
WakeUp(pt0);
|
||||
S_SREG = H;
|
||||
}
|
||||
bind_glist:
|
||||
#endif
|
||||
/* don't put an ENDD just after a label */
|
||||
|
15
docs/yap.tex
15
docs/yap.tex
@ -449,6 +449,15 @@ Copyright @copyright{} 1998-2001 Paulo Moura
|
||||
Madrid by the CLIP group. This package is distributed under the FSF's
|
||||
LGPL. Documentation on this package is distributed separately from
|
||||
yap.tex.
|
||||
|
||||
@item The yap2swi library implements some of the functionality of
|
||||
SWI's PL interface. Please do refer to the SWI-Prolog home page:
|
||||
|
||||
@code{http://www.swi-prolog.org}
|
||||
|
||||
for more information on SWI-Prolog and for a detailed description of its
|
||||
foreign interface.
|
||||
|
||||
@end itemize
|
||||
|
||||
@node Install, Run, Intro, Top
|
||||
@ -8410,7 +8419,7 @@ Succeed if the two arguments do not unify. A call to @code{dif/2} will
|
||||
suspend if unification may still succeed or fail, and will fail if they
|
||||
always unify.
|
||||
|
||||
@item freeze(@var{X},@var{G})
|
||||
@item freeze(?@var{X},:@var{G})
|
||||
@findex freeze/2
|
||||
@syindex freeze/2
|
||||
@cnindex freeze/2
|
||||
@ -8423,7 +8432,7 @@ Delay execution of goal @var{G} until the variable @var{X} is bound.
|
||||
Unify @var{G} with a conjunction of goals suspended on variable @var{X},
|
||||
or @code{true} if no goal has suspended.
|
||||
|
||||
@item when(@var{C},@var{G})
|
||||
@item when(+@var{C},:@var{G})
|
||||
@findex when/2
|
||||
@syindex when/2
|
||||
@cnindex when/2
|
||||
@ -8445,7 +8454,7 @@ Delay until variable @var{V} is ground.
|
||||
|
||||
Note that @code{when/2} will fail if the conditions fail.
|
||||
|
||||
@item call_residue(@var{G},@var{L})
|
||||
@item call_residue(:@var{G},@var{L})
|
||||
@findex call_residue/2
|
||||
@syindex call_residue/2
|
||||
@cnindex call_residue/2
|
||||
|
@ -553,6 +553,7 @@ source_module(Mod) :-
|
||||
call_with_args(:,?,?,?,?,?,?,?),
|
||||
call_with_args(:,?,?,?,?,?,?,?,?),
|
||||
call_with_args(:,?,?,?,?,?,?,?,?,?),
|
||||
call_residue(:,?),
|
||||
catch(:,+,:),
|
||||
clause(:,?),
|
||||
clause(:,?,?),
|
||||
@ -563,6 +564,7 @@ source_module(Mod) :-
|
||||
ensure_loaded(:),
|
||||
findall(?,:,?),
|
||||
findall(?,:,?,?),
|
||||
freeze(?,:),
|
||||
if(:,:,:),
|
||||
incore(:),
|
||||
listing(:),
|
||||
@ -584,6 +586,7 @@ source_module(Mod) :-
|
||||
use_module(:),
|
||||
use_module(:,?),
|
||||
use_module(?,:,?),
|
||||
when(?,:),
|
||||
^(+,:),
|
||||
\+(:).
|
||||
|
||||
|
Reference in New Issue
Block a user