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);
|
BIND(pt0, d0, bind_glist);
|
||||||
#ifdef COROUTINING
|
#ifdef COROUTINING
|
||||||
DO_TRAIL(pt0, d0);
|
DO_TRAIL(pt0, d0);
|
||||||
if (pt0 < H0) WakeUp(pt0);
|
if (pt0 < H0) {
|
||||||
|
WakeUp(pt0);
|
||||||
|
S_SREG = H;
|
||||||
|
}
|
||||||
bind_glist:
|
bind_glist:
|
||||||
#endif
|
#endif
|
||||||
/* don't put an ENDD just after a label */
|
/* 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
|
Madrid by the CLIP group. This package is distributed under the FSF's
|
||||||
LGPL. Documentation on this package is distributed separately from
|
LGPL. Documentation on this package is distributed separately from
|
||||||
yap.tex.
|
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
|
@end itemize
|
||||||
|
|
||||||
@node Install, Run, Intro, Top
|
@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
|
suspend if unification may still succeed or fail, and will fail if they
|
||||||
always unify.
|
always unify.
|
||||||
|
|
||||||
@item freeze(@var{X},@var{G})
|
@item freeze(?@var{X},:@var{G})
|
||||||
@findex freeze/2
|
@findex freeze/2
|
||||||
@syindex freeze/2
|
@syindex freeze/2
|
||||||
@cnindex 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},
|
Unify @var{G} with a conjunction of goals suspended on variable @var{X},
|
||||||
or @code{true} if no goal has suspended.
|
or @code{true} if no goal has suspended.
|
||||||
|
|
||||||
@item when(@var{C},@var{G})
|
@item when(+@var{C},:@var{G})
|
||||||
@findex when/2
|
@findex when/2
|
||||||
@syindex when/2
|
@syindex when/2
|
||||||
@cnindex 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.
|
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
|
@findex call_residue/2
|
||||||
@syindex call_residue/2
|
@syindex call_residue/2
|
||||||
@cnindex call_residue/2
|
@cnindex call_residue/2
|
||||||
|
@ -553,6 +553,7 @@ source_module(Mod) :-
|
|||||||
call_with_args(:,?,?,?,?,?,?,?),
|
call_with_args(:,?,?,?,?,?,?,?),
|
||||||
call_with_args(:,?,?,?,?,?,?,?,?),
|
call_with_args(:,?,?,?,?,?,?,?,?),
|
||||||
call_with_args(:,?,?,?,?,?,?,?,?,?),
|
call_with_args(:,?,?,?,?,?,?,?,?,?),
|
||||||
|
call_residue(:,?),
|
||||||
catch(:,+,:),
|
catch(:,+,:),
|
||||||
clause(:,?),
|
clause(:,?),
|
||||||
clause(:,?,?),
|
clause(:,?,?),
|
||||||
@ -563,6 +564,7 @@ source_module(Mod) :-
|
|||||||
ensure_loaded(:),
|
ensure_loaded(:),
|
||||||
findall(?,:,?),
|
findall(?,:,?),
|
||||||
findall(?,:,?,?),
|
findall(?,:,?,?),
|
||||||
|
freeze(?,:),
|
||||||
if(:,:,:),
|
if(:,:,:),
|
||||||
incore(:),
|
incore(:),
|
||||||
listing(:),
|
listing(:),
|
||||||
@ -584,6 +586,7 @@ source_module(Mod) :-
|
|||||||
use_module(:),
|
use_module(:),
|
||||||
use_module(:,?),
|
use_module(:,?),
|
||||||
use_module(?,:,?),
|
use_module(?,:,?),
|
||||||
|
when(?,:),
|
||||||
^(+,:),
|
^(+,:),
|
||||||
\+(:).
|
\+(:).
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user