diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-05-31 10:38:35 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-05-31 10:38:39 -0700 |
commit | e3c74453309a685594b93f344cba9cb59b7ac456 (patch) | |
tree | 9ced02eafda64a4658f7c90e028459f47d51aa1c | |
parent | 940401ff9e39e827065b586894801704b5aea6eb (diff) | |
download | mu-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.
-rw-r--r-- | shell/evaluate.mu | 3 |
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 } # |