From 624b9e86a110b492d2cb2c8bcf8cb3a60200c056 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Tue, 19 Aug 2014 12:12:04 -0700 Subject: 54 --- new.arc | 8 +++++--- new.arc.t | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/new.arc b/new.arc index 0f0b4b71..54b1ac2f 100644 --- a/new.arc +++ b/new.arc @@ -1,9 +1,11 @@ ;; simple slab allocator. Intended only to carve out isolated memory for ;; different threads/routines as they request. -(on-init - ((Root_allocator_pointer location) <- literal 1000) ; 1-1000 reserved -) +(= Allocator_start 1000) ; lower locations reserved + +(enq (fn () + (run `(((Root_allocator_pointer location) <- literal ,Allocator_start)))) + initialization-fns*) (init-fn new ((2 integer-address) <- copy (Root_allocator_pointer integer)) diff --git a/new.arc.t b/new.arc.t index e256ea86..c10444de 100644 --- a/new.arc.t +++ b/new.arc.t @@ -5,7 +5,7 @@ (add-fns '((main))) (run function*!main) -(if (~iso memory* (obj Root_allocator_pointer 1000)) +(if (~iso memory*!Root_allocator_pointer Allocator_start) (prn "F - allocator initialized")) (reset) @@ -15,5 +15,7 @@ ((x integer-address deref) <- literal 34)))) (run function*!main) ;? (prn memory*) -(if (~iso memory*!Root_allocator_pointer 1001) +(if (~iso memory*!Root_allocator_pointer (+ Allocator_start 1)) (prn "F - 'new' increments allocator pointer")) +(if (~iso memory*.Allocator_start 34) + (prn "F - 'new' returns old location")) -- cgit 1.4.1-2-gfad0