about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-11-07 11:56:34 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-11-07 11:56:34 -0800
commit57b367448ab53f344ca7e524e1f390f6190e51ed (patch)
tree3edff3d6566f3aeff1379b07bedee2e0c2ecfb5f
parent0ecba1bcb1440d27d1c9335491d77981d611e600 (diff)
downloadmu-57b367448ab53f344ca7e524e1f390f6190e51ed.tar.gz
251
-rw-r--r--mu.arc13
1 files changed, 8 insertions, 5 deletions
diff --git a/mu.arc b/mu.arc
index e8e6a048..469990d0 100644
--- a/mu.arc
+++ b/mu.arc
@@ -226,6 +226,9 @@
   ((abort-routine*)))
 
 ;; running a single routine
+(def nondummy (operand)  ; precondition for helpers below
+  (~is '_ operand))
+
 (mac v (operand)  ; for value
   `(,operand 0))
 
@@ -542,7 +545,7 @@
                         (let (caller-oargs _ _)  (parse-instr (body.routine* pc.routine*))
                           (trace "reply" arg " " caller-oargs)
                           (each (dest val)  (zip caller-oargs results)
-                            (unless (is dest '_)
+                            (when nondummy.dest
                               (trace "reply" val " => " dest)
                               (setm dest val))))
                         (++ pc.routine*)
@@ -566,7 +569,7 @@
 ;?               (prn "store: " tmp " " oarg)
               (if (acons tmp)
                 (for i 0 (< i (min len.tmp len.oarg)) ++.i
-                  (unless (is oarg.i '_)
+                  (when (nondummy oarg.i)
                     (setm oarg.i tmp.i)))
                 (when oarg  ; must be a list
                   (trace "run" "writing to oarg " tmp " => " oarg.0)
@@ -738,16 +741,16 @@
     (each instr instrs
       (let (oargs op args)  (parse-instr instr)
         (each arg args
-          (when (and acons.arg (offset v.arg))
+          (when (and nondummy.arg (offset v.arg))
             (zap offset v.arg)))
         (each arg oargs
-          (when (and acons.arg (offset v.arg))
+          (when (and nondummy.arg (offset v.arg))
             (zap offset v.arg)))))
     instrs))
 
 (def maybe-add (arg offset idx)
   (trace "maybe-add" arg)
-  (when (and (~is arg '_)
+  (when (and nondummy.arg
              (~in ty.arg 'literal 'offset 'fn)
              (~offset v.arg)
              (isa v.arg 'sym)