From 6a92f3b5353b758d9b95c612fbce345d73402c0b Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 26 Jul 2021 02:01:26 -0700 Subject: [PATCH] gracefully trace large arrays --- shell/print.mu | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shell/print.mu b/shell/print.mu index f37c1ec4..4fbba0aa 100644 --- a/shell/print.mu +++ b/shell/print.mu @@ -131,6 +131,14 @@ fn print-cell _in: (addr handle cell), out: (addr stream byte), trace: (addr tra { compare i, max break-if->= + { + var available-space/eax: int <- space-remaining-in-stream out + compare available-space, 0x10 + break-if->= + var dummy/eax: boolean <- try-write out, "..." + error trace, "print-cell: no space for array" + return + } write out " " var curr-ah/eax: (addr handle cell) <- index data, i print-cell curr-ah, out, trace