about summary refs log tree commit diff stats
path: root/shell/evaluate.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-05-31 10:38:35 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-05-31 10:38:39 -0700
commite3c74453309a685594b93f344cba9cb59b7ac456 (patch)
tree9ced02eafda64a4658f7c90e028459f47d51aa1c /shell/evaluate.mu
parent940401ff9e39e827065b586894801704b5aea6eb (diff)
downloadmu-e3c74453309a685594b93f344cba9cb59b7ac456.tar.gz
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.
Diffstat (limited to 'shell/evaluate.mu')
-rw-r--r--shell/evaluate.mu3
1 files changed, 3 insertions, 0 deletions
diff --git a/shell/evaluate.mu b/shell/evaluate.mu
index d4e92373..d1be2246 100644
--- a/shell/evaluate.mu
+++ b/shell/evaluate.mu
@@ -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
     }
     #