about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--mu.arc8
-rw-r--r--mu.arc.t13
-rw-r--r--x.mu1
3 files changed, 18 insertions, 4 deletions
diff --git a/mu.arc b/mu.arc
index 6990d35c..204d0b74 100644
--- a/mu.arc
+++ b/mu.arc
@@ -19,9 +19,11 @@
         add
           (= memory*.oarg1
              (+ memory*.arg1 memory*.arg2))
-        ; else
-          (prn "aaa")  ; user-defined functions go here
-        ))))
+        ; else user-defined function
+          (run function*.op)
+        )))
+;?   (prn "return")
+  )
 
 (awhen cdr.argv
   (each file it
diff --git a/mu.arc.t b/mu.arc.t
index 85dd1cc5..be4075ec 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -8,3 +8,16 @@
 (run function*!test1)
 (if (~iso memory* (obj 1 1  2 3  3 4))
   (prn "F - load and add instructions work"))
+
+(clear)
+(add-fns
+  '((add-fn
+      (3 <- add 1 2))
+    (main
+      (1 <- loadi 1)
+      (2 <- loadi 3)
+      (_ <- add-fn))))
+(run function*!main)
+;? (prn memory*)
+(if (~iso memory* (obj 1 1  2 3  3 4))
+  (prn "F - compound functions work"))
diff --git a/x.mu b/x.mu
index 6fbfaec0..98a75608 100644
--- a/x.mu
+++ b/x.mu
@@ -2,5 +2,4 @@
   (1 <- loadi 1)
   (2 <- loadi 3)
   (3 <- add 1 2)
-  (x <- prn a)
 )
5485 - promote SubX to top-level' href='/akkartik/mu/commit/test_layers?h=main&id=6e1eeeebfb453fa7c871869c19375ce60fbd7413'>6e1eeeeb ^
1baa04db ^

6e1eeeeb ^
d9ee2076 ^
f902aa09 ^
4ba60f35 ^
4cc52b14 ^

6e1eeeeb ^
6e1eeeeb ^
9e5e87ca ^

6e1eeeeb ^


fd91f7f6 ^
6e1eeeeb ^


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32