From 230415b4e11e005f8ea999d207d6ba29ffc5ada7 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Tue, 26 Aug 2014 12:20:08 -0700 Subject: 77 - 'new' in the interpreter Next we'll try to reimplement it on the simulated machine. But for now, sys.arc is extraneous. Debugging this, the commented out prints started to become onerous enough I couldn't bear to keep them. --- mu.arc.t | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'mu.arc.t') diff --git a/mu.arc.t b/mu.arc.t index 6dfb7824..3695b4c8 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -592,3 +592,27 @@ ;? (prn memory*) (if (~iso memory* (obj 1 4 2 4 3 nil 4 34)) (prn "F - continue might never trigger")) + +(reset) +(let before Memory-in-use-until + (add-fns + '((main + ((1 integer-address) <- new (integer type))))) + (run function*!main) + ;? (prn memory*) + (if (~iso memory*.1 before) + (prn "F - 'new' returns current high-water mark")) + (if (~iso Memory-in-use-until (+ before 1)) + (prn "F - 'new' on primitive types increments high-water mark by their size"))) + +(reset) +(let before Memory-in-use-until + (add-fns + '((main + ((1 type-array-address) <- new (type-array type) (5 literal))))) + (run function*!main) + ;? (prn memory*) + (if (~iso memory*.1 before) + (prn "F - 'new' returns current high-water mark")) + (if (~iso Memory-in-use-until (+ before 5)) + (prn "F - 'new' on primitive arrays increments high-water mark by their size"))) -- cgit 1.4.1-2-gfad0