diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-11-28 17:55:45 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-11-28 17:55:45 -0800 |
commit | 1cb7f78fe8fd30a2b95cda06f7335f2ff20829ab (patch) | |
tree | 54f1e2549393841b1932c7f6460b19ca02c47248 /mu.arc | |
parent | 2ca395e7ea24ff7db0bbdc51a130d7bbb586f569 (diff) | |
download | mu-1cb7f78fe8fd30a2b95cda06f7335f2ff20829ab.tar.gz |
365 - new primitives let us generalize 'addr'
Diffstat (limited to 'mu.arc')
-rw-r--r-- | mu.arc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/mu.arc b/mu.arc index 693bd73c..5ca46993 100644 --- a/mu.arc +++ b/mu.arc @@ -310,10 +310,11 @@ (or types*.typename!size (err "type @typename doesn't have a size: " (tostring:pr types*.typename)))) -(def addr (loc) - (ret result (v absolutize.loc) - (when (pos 'deref metadata.loc) - (zap memory* result)))) +(def addr (operand) + (let loc absolutize.operand + (while (pos 'deref metadata.loc) + (zap deref loc)) + v.loc)) (def addrs (n sz) (accum yield |