diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-10-29 10:29:30 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-10-29 10:29:30 -0700 |
commit | 4ed7fd4b94a154df6ed65e15e64e3265b569116a (patch) | |
tree | 6b543db06a7e6684744ea60f3391261b11599026 /mu.arc | |
parent | 6857d6c824c672e441b5e94f52efbe352765860f (diff) | |
download | mu-4ed7fd4b94a154df6ed65e15e64e3265b569116a.tar.gz |
169
Diffstat (limited to 'mu.arc')
-rw-r--r-- | mu.arc | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/mu.arc b/mu.arc index 19952cac..612a210b 100644 --- a/mu.arc +++ b/mu.arc @@ -157,17 +157,16 @@ (++ n)))) (def m (loc) ; read memory, respecting metadata -;? (if (~isa v.loc 'int) prn.loc) - (assert (or (isa v.loc 'int) - (is ty.loc 'literal))) - (trace "m" loc " " sz.loc) - (if (is 'literal ty.loc) - (v loc) - (is 1 sz.loc) - (memory* addr.loc) - :else - (annotate 'record - (map memory* (addrs addr.loc sz.loc))))) + (point return + (if (is 'literal ty.loc) + (return v.loc)) + (assert (isa v.loc 'int)) + (trace "m" loc " " sz.loc) + (if (is 1 sz.loc) + (memory* addr.loc) + :else + (annotate 'record + (map memory* (addrs addr.loc sz.loc)))))) (def setm (loc val) ; set memory, respecting metadata (assert (isa v.loc 'int)) |