From e2ab1b30b1a669425cb86ffa7def9529e7fa4fb1 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 19 May 2021 20:56:37 -0700 Subject: disallow null traces We now use traces everywhere for error-checking. Null traces introduce the possibility of changing a functions error response, and therefore its semantics. --- shell/parse.mu | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'shell/parse.mu') diff --git a/shell/parse.mu b/shell/parse.mu index eceebd7d..a977216c 100644 --- a/shell/parse.mu +++ b/shell/parse.mu @@ -218,7 +218,10 @@ fn parse-atom _curr-token: (addr cell), _out: (addr handle cell), trace: (addr t var stream-storage: (stream byte 0x400) var stream/ecx: (addr stream byte) <- address stream-storage write stream, "=> number " - print-number out-addr, stream, 0/no-trace + var nested-trace-storage: trace + var nested-trace/edi: (addr trace) <- address nested-trace-storage + initialize-trace nested-trace, 1/only-errors, 0x10/capacity, 0/visible + print-number out-addr, stream, nested-trace trace trace, "parse", stream } return @@ -246,7 +249,10 @@ fn parse-atom _curr-token: (addr cell), _out: (addr handle cell), trace: (addr t var stream-storage: (stream byte 0x400) var stream/ecx: (addr stream byte) <- address stream-storage write stream, "=> symbol " - print-symbol out-addr, stream, 0/no-trace + var nested-trace-storage: trace + var nested-trace/edi: (addr trace) <- address nested-trace-storage + initialize-trace nested-trace, 1/only-errors, 0x10/capacity, 0/visible + print-symbol out-addr, stream, nested-trace trace trace, "parse", stream } } -- cgit 1.4.1-2-gfad0