diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-11-29 10:34:20 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-11-29 10:34:20 -0800 |
commit | 8a7b5db344bb09fffeea73be79677afd2651d4c7 (patch) | |
tree | 631436fbd28d6b6399920faa1eadbfcd98d5019f | |
parent | 6bf34cf3ec3edb237b521180f5631b923fe0e6b3 (diff) | |
download | mu-8a7b5db344bb09fffeea73be79677afd2651d4c7.tar.gz |
386
-rw-r--r-- | mu.arc.t | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/mu.arc.t b/mu.arc.t index 700b156b..a4edc044 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -2477,18 +2477,18 @@ ((1 channel-address) <- new-channel (3 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) - ((4 integer) <- get (1 channel-address deref) (first-full offset)) - ((5 integer) <- get (1 channel-address deref) (first-free offset)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) + ((5 integer) <- get (1 channel-address deref) (first-full offset)) + ((6 integer) <- get (1 channel-address deref) (first-free offset)) ]))) ;? (set dump-trace*) ;? (= dump-trace* (obj blacklist '("sz" "m" "setm" "addr" "array-len" "cvt0" "cvt1"))) ;? (= dump-trace* (obj whitelist '("jump"))) (run 'main) ;? (prn canon.memory*) -(if (or (~is 0 memory*.4) - (~is 1 memory*.5)) +(if (or (~is 0 memory*.5) + (~is 1 memory*.6)) (prn "F - 'write' enqueues item to channel")) ;? (quit) @@ -2499,21 +2499,21 @@ ((1 channel-address) <- new-channel (3 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) - ((4 tagged-value) (1 channel-address deref) <- read (1 channel-address)) - ((6 integer-address) <- maybe-coerce (4 tagged-value) (integer-address literal)) - ((7 integer) <- get (1 channel-address deref) (first-full offset)) - ((8 integer) <- get (1 channel-address deref) (first-free offset)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) + ((5 tagged-value) (1 channel-address deref) <- read (1 channel-address)) + ((7 integer-address) <- maybe-coerce (5 tagged-value) (integer-address literal)) + ((8 integer) <- get (1 channel-address deref) (first-full offset)) + ((9 integer) <- get (1 channel-address deref) (first-free offset)) ]))) ;? (set dump-trace*) ;? (= dump-trace* (obj blacklist '("sz" "m" "setm" "addr" "array-len" "cvt0" "cvt1"))) (run 'main) ;? (prn int-canon.memory*) -(if (~is memory*.6 memory*.2) +(if (~is memory*.7 memory*.2) (prn "F - 'read' returns written value")) -(if (or (~is 1 memory*.7) - (~is 1 memory*.8)) +(if (or (~is 1 memory*.8) + (~is 1 memory*.9)) (prn "F - 'read' dequeues item from channel")) (reset) @@ -2525,22 +2525,22 @@ ; write a value ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) ; first-free will now be 1 - ((4 integer) <- get (1 channel-address deref) (first-free offset)) + ((5 integer) <- get (1 channel-address deref) (first-free offset)) ; read one value (_ (1 channel-address deref) <- read (1 channel-address)) ; write a second value; verify that first-free wraps around to 0. - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) - ((5 integer) <- get (1 channel-address deref) (first-free offset)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) + ((6 integer) <- get (1 channel-address deref) (first-free offset)) ]))) ;? (set dump-trace*) ;? (= dump-trace* (obj blacklist '("sz" "m" "setm" "addr" "array-len" "cvt0" "cvt1"))) (run 'main) ;? (prn canon.memory*) -(if (or (~is 1 memory*.4) - (~is 0 memory*.5)) +(if (or (~is 1 memory*.5) + (~is 0 memory*.6)) (prn "F - 'write' can wrap pointer back to start")) (reset) @@ -2552,24 +2552,24 @@ ; write a value ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) ; read one value (_ (1 channel-address deref) <- read (1 channel-address)) ; first-full will now be 1 - ((4 integer) <- get (1 channel-address deref) (first-full offset)) + ((5 integer) <- get (1 channel-address deref) (first-full offset)) ; write a second value - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) ; read second value; verify that first-full wraps around to 0. (_ (1 channel-address deref) <- read (1 channel-address)) - ((5 integer) <- get (1 channel-address deref) (first-full offset)) + ((6 integer) <- get (1 channel-address deref) (first-full offset)) ]))) ;? (set dump-trace*) ;? (= dump-trace* (obj blacklist '("sz" "m" "setm" "addr" "array-len" "cvt0" "cvt1"))) (run 'main) ;? (prn canon.memory*) -(if (or (~is 1 memory*.4) - (~is 0 memory*.5)) +(if (or (~is 1 memory*.5) + (~is 0 memory*.6)) (prn "F - 'read' can wrap pointer back to start")) (reset) @@ -2594,16 +2594,16 @@ ((1 channel-address) <- new-channel (3 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) - ((4 boolean) <- empty? (1 channel-address deref)) - ((5 boolean) <- full? (1 channel-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) + ((5 boolean) <- empty? (1 channel-address deref)) + ((6 boolean) <- full? (1 channel-address deref)) ]))) ;? (set dump-trace*) (run 'main) ;? (prn memory*) -(if (or (~is nil memory*.4) - (~is nil memory*.5)) +(if (or (~is nil memory*.5) + (~is nil memory*.6)) (prn "F - a channel after writing is never empty")) (reset) @@ -2613,16 +2613,16 @@ ((1 channel-address) <- new-channel (1 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) - ((4 boolean) <- empty? (1 channel-address deref)) - ((5 boolean) <- full? (1 channel-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) + ((5 boolean) <- empty? (1 channel-address deref)) + ((6 boolean) <- full? (1 channel-address deref)) ]))) ;? (set dump-trace*) (run 'main) ;? (prn memory*) -(if (or (~is nil memory*.4) - (~is t memory*.5)) +(if (or (~is nil memory*.5) + (~is t memory*.6)) (prn "F - a channel after writing may be full")) (reset) @@ -2632,18 +2632,18 @@ ((1 channel-address) <- new-channel (3 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) (_ (1 channel-address deref) <- read (1 channel-address)) - ((4 boolean) <- empty? (1 channel-address deref)) - ((5 boolean) <- full? (1 channel-address deref)) + ((5 boolean) <- empty? (1 channel-address deref)) + ((6 boolean) <- full? (1 channel-address deref)) ]))) ;? (set dump-trace*) (run 'main) ;? (prn memory*) -(if (or (~is nil memory*.4) - (~is nil memory*.5)) +(if (or (~is nil memory*.5) + (~is nil memory*.6)) (prn "F - a channel after reading is never full")) (reset) @@ -2653,17 +2653,17 @@ ((1 channel-address) <- new-channel (3 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) (_ (1 channel-address deref) <- read (1 channel-address)) - ((4 boolean) <- empty? (1 channel-address deref)) - ((5 boolean) <- full? (1 channel-address deref)) + ((5 boolean) <- empty? (1 channel-address deref)) + ((6 boolean) <- full? (1 channel-address deref)) ]))) ;? (set dump-trace*) (run 'main) ;? (prn memory*) -(if (or (~is t memory*.4) - (~is nil memory*.5)) +(if (or (~is t memory*.5) + (~is nil memory*.6)) (prn "F - a channel after reading may be empty")) ; The key property of channels; writing to a full channel blocks the current @@ -2699,10 +2699,10 @@ ((1 channel-address) <- new-channel (1 literal)) ((2 integer-address) <- new (integer literal)) ((2 integer-address deref) <- copy (34 literal)) - ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address)) - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((3 tagged-value) <- save-type (2 integer-address)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) ; channel has capacity 1, but receives a second write - ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value-address deref)) + ((1 channel-address deref) <- write (1 channel-address) (3 tagged-value)) ]))) ;? (set dump-trace*) ;? (= dump-trace* (obj whitelist '("run" "schedule" "addr"))) @@ -2727,15 +2727,15 @@ ((default-scope scope-address) <- new (scope literal) (30 literal)) ((chan channel-address) <- new-channel (3 literal)) (fork (f2 fn) (chan channel-address)) - ((1 tagged-value global) <- read (chan channel-address)) + ((1 tagged-value global) <- read (chan channel-address)) ; output ]) (def f2 [ ((default-scope scope-address) <- new (scope literal) (30 literal)) ((n integer-address) <- new (integer literal)) ((n integer-address deref) <- copy (24 literal)) ((ochan channel-address) <- arg) - ((x tagged-value-address) <- new-tagged-value (integer-address literal) (n integer-address)) - ((ochan channel-address deref) <- write (ochan channel-address) (x tagged-value-address deref)) + ((x tagged-value) <- save-type (n integer-address)) + ((ochan channel-address deref) <- write (ochan channel-address) (x tagged-value)) ]))) ;? (set dump-trace*) ;? (= dump-trace* (obj whitelist '("schedule" "run" "addr"))) |