clean up trace depth in a few places

It turns out the problem was that `and` wasn't cleaning up after itself
when it short-circuited evaluation. Similar problems in a couple more places.
This commit is contained in:
Kartik K. Agaram 2021-05-31 10:38:35 -07:00
parent 940401ff9e
commit e3c7445330
1 changed files with 3 additions and 0 deletions

View File

@ -342,6 +342,7 @@ fn evaluate _in-ah: (addr handle cell), _out-ah: (addr handle cell), env-h: (han
compare nil?, 0/false
{
break-if-=
trace-higher trace
return
}
var rest/eax: (addr cell) <- lookup *rest-ah
@ -388,6 +389,7 @@ fn evaluate _in-ah: (addr handle cell), _out-ah: (addr handle cell), env-h: (han
compare nil?, 0/false
{
break-if-!=
trace-higher trace
return
}
var rest/eax: (addr cell) <- lookup *rest-ah
@ -545,6 +547,7 @@ fn evaluate _in-ah: (addr handle cell), _out-ah: (addr handle cell), env-h: (han
compare error?, 0/false
break-if-=
trace-higher trace
trace-higher trace
return
}
#