about summary refs log tree commit diff stats
path: root/mu.arc
diff options
context:
space:
mode:
Diffstat (limited to 'mu.arc')
-rw-r--r--mu.arc15
1 files changed, 10 insertions, 5 deletions
diff --git a/mu.arc b/mu.arc
index 757db53e..9390206c 100644
--- a/mu.arc
+++ b/mu.arc
@@ -819,7 +819,7 @@
                     (assert nil "couldn't find field in @instr")))))
             (each arg args
               (assert (~isa-field v.arg) "arg @arg is also a field name")
-              (when (maybe-add arg location idx)
+              (when (and (~is 'quasiquote car.arg) (maybe-add arg location idx))
                 (err "use before set: @arg"))))
           (each arg oargs
             (trace "cn0" "checking " arg)
@@ -1165,15 +1165,20 @@
       rewrite
         (let (name (_make-br-fn fragment))  rest
           (assert (is 'make-br-fn _make-br-fn))
-          (= rewrite-rules*.name fragment))
+          (set rewrite-rules*.name)
+          (= function*.name (convert-names:convert-braces:insert-code fragment name)))
 
       ;else  ; must be rewriteable to one of the above
-        (let new-form (rewrite rewrite-rules*.op rest)
+        (let new-form (rewrite op rest)
           (add-code new-form))
       )))
 
-(def rewrite (rewrite-rule params)
-  rewrite-rule)
+(def rewrite (op params)
+  (prn "a: " params)
+  (prn "b: " function*.op)
+  (= routine* (annotate 'routine (obj call-stack (list
+                (obj fn-name op  pc 0  args params  caller-arg-idx 0)))))
+  (run-for-time-slice 10000))
 
 (def freeze-functions ()
   (each (name body)  canon.function*