From afadac25a40513f785634e989dff332f5861d65c Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 5 Jan 2015 23:57:19 -0800 Subject: 505 - simplify tagged-value I could swear there was an issue earlier where tagged-values had to contain pointers for some core function. But I can't find it anymore. Ok, assume we can store primitives in it and pointers only for aggregates (and-records and arrays). --- channel.mu | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'channel.mu') diff --git a/channel.mu b/channel.mu index 854ab858..9c5ca0f2 100644 --- a/channel.mu +++ b/channel.mu @@ -13,9 +13,8 @@ (print-primitive (("\n" literal))) ; 'box' n into a dynamically typed 'tagged value' because that's what ; channels take - (n2:integer-address <- new integer:literal) - (n2:integer-address/deref <- copy n:integer) - (n3:tagged-value-address <- init-tagged-value integer-address:literal n2:integer-address) + (n2:integer <- copy n:integer) + (n3:tagged-value-address <- init-tagged-value integer:literal n2:integer) (chan:channel-address/deref <- write chan:channel-address n3:tagged-value-address/deref) (n:integer <- add n:integer 1:literal) (loop) @@ -30,10 +29,10 @@ ; read a tagged value from the channel (x:tagged-value chan:channel-address/deref <- read chan:channel-address) ; unbox the tagged value into an integer - (n2:integer-address <- maybe-coerce x:tagged-value integer-address:literal) + (n2:integer <- maybe-coerce x:tagged-value integer:literal) ; other threads might get between these prints (print-primitive (("consume: " literal))) - (print-primitive n2:integer-address/deref) + (print-primitive n2:integer) (print-primitive (("\n" literal))) (loop) } -- cgit 1.4.1-2-gfad0