diff options
Diffstat (limited to 'sys.arc')
-rw-r--r-- | sys.arc | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/sys.arc b/sys.arc deleted file mode 100644 index b5f9c436..00000000 --- a/sys.arc +++ /dev/null @@ -1,58 +0,0 @@ -(load "mu.arc") - -; memory map: 0-2 for convenience constants -(enq (fn () - (run `(((0 integer) <- literal 0) - ((1 integer) <- literal 1) - ((2 integer) <- literal 2)))) - initialization-fns*) - -(enq (fn () - (build-type-table) - initialization-fns*) - -(= Free 3) -(= Type-array Free) -(def build-type-table () - (allocate-type-array) - (build-types) - (fill-in-type-array)) - -(def allocate-type-array () - (= memory*.Free len.types*) - (++ Free) - (++ Free len.types*)) - -(def build-types () - (each type types* ; todo - ( - -(def sizeof (typeinfo) - (if (~or typeinfo!record typeinfo!array) - typeinfo!size - typeinfo!record - (sum idfn - (accum yield - (each elem typeinfo!elems - (yield (sizeof type*.elem))))) - typeinfo!array - (* (sizeof (type* typeinfo!elem)) - ( - - -;; 'new' - simple slab allocator. Intended only to carve out isolated memory -;; for different threads/routines as they request. -; memory map: 3 for root custodian (size 1) -(= Root_custodian 3) -(= Allocator_start 1000) ; lower locations reserved - -(enq (fn () - (run `(((,Root_custodian location) <- literal ,Allocator_start)))) - initialization-fns*) - -; (type-addr val) <- new (custodian x), (type t) -; memory map: 4-5 locals for slab allocator -(init-fn new - ((4 integer-address) <- copy (3 location)) - ((3 location) <- add (3 location) (1 integer)) - (reply (4 integer-address))) |