about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-11-27 20:09:45 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-11-27 20:09:45 -0800
commit571dd7a57aa1c4d162d8f28d2495f802ba630cd1 (patch)
treea5b20e5039602bfe2866632ba72a69852bb3c185
parent6507c1755616fab0ead65409283115376b3989e4 (diff)
downloadmu-571dd7a57aa1c4d162d8f28d2495f802ba630cd1.tar.gz
353 - found lots of holes in array support
I've uncovered a few while enhancing 'interpolate', but I'll wait to fix
them all before I commit the enhancements.
-rw-r--r--mu.arc.t68
1 files changed, 34 insertions, 34 deletions
diff --git a/mu.arc.t b/mu.arc.t
index 65406d13..32cd2f26 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -707,7 +707,7 @@
 ; Regardless of a type's length, you can move it around just like a primitive.
 
 (reset)
-(new-trace "compound-operand-copy")
+(new-trace "copy-record")
 (add-code
   '((def main [
       ((1 integer) <- copy (34 literal))
@@ -720,39 +720,6 @@
 (if (~iso memory* (obj 1 34  2 nil  3 34  4 nil))
   (prn "F - ops can operate on records spanning multiple locations"))
 
-(reset)
-(new-trace "compound-arg")
-(add-code
-  '((def test1 [
-      ((4 integer-boolean-pair) <- arg)
-     ])
-    (def main [
-      ((1 integer) <- copy (34 literal))
-      ((2 boolean) <- copy (nil literal))
-      (test1 (1 integer-boolean-pair))
-     ])))
-(run 'main)
-(if (~iso memory* (obj 1 34  2 nil  4 34  5 nil))
-  (prn "F - 'arg' can copy records spanning multiple locations"))
-
-(reset)
-(new-trace "compound-arg-indirect")
-;? (set dump-trace*)
-(add-code
-  '((def test1 [
-      ((4 integer-boolean-pair) <- arg)
-     ])
-    (def main [
-      ((1 integer) <- copy (34 literal))
-      ((2 boolean) <- copy (nil literal))
-      ((3 integer-boolean-pair-address) <- copy (1 literal))
-      (test1 (3 integer-boolean-pair-address deref))
-     ])))
-(run 'main)
-;? (prn memory*)
-(if (~iso memory* (obj 1 34  2 nil  3 1  4 34  5 nil))
-  (prn "F - 'arg' can copy records spanning multiple locations in indirect mode"))
-
 ; A special kind of record is the 'tagged type'. It lets us represent
 ; dynamically typed values, which save type information in memory rather than
 ; in the code to use them. This will let us do things like create heterogenous
@@ -1168,6 +1135,39 @@
   (prn "F - 'arg' passes by value"))
 
 (reset)
+(new-trace "arg-record")
+(add-code
+  '((def test1 [
+      ((4 integer-boolean-pair) <- arg)
+     ])
+    (def main [
+      ((1 integer) <- copy (34 literal))
+      ((2 boolean) <- copy (nil literal))
+      (test1 (1 integer-boolean-pair))
+     ])))
+(run 'main)
+(if (~iso memory* (obj 1 34  2 nil  4 34  5 nil))
+  (prn "F - 'arg' can copy records spanning multiple locations"))
+
+(reset)
+(new-trace "arg-record-indirect")
+;? (set dump-trace*)
+(add-code
+  '((def test1 [
+      ((4 integer-boolean-pair) <- arg)
+     ])
+    (def main [
+      ((1 integer) <- copy (34 literal))
+      ((2 boolean) <- copy (nil literal))
+      ((3 integer-boolean-pair-address) <- copy (1 literal))
+      (test1 (3 integer-boolean-pair-address deref))
+     ])))
+(run 'main)
+;? (prn memory*)
+(if (~iso memory* (obj 1 34  2 nil  3 1  4 34  5 nil))
+  (prn "F - 'arg' can copy records spanning multiple locations in indirect mode"))
+
+(reset)
 (new-trace "new-fn-reply-oarg")
 (add-code
   '((def test1 [
/ranger/blame/Makefile?h=v1.9.0b1&id=debd6c327b3af0d8975ea80036a9c21bfb6ec090'>^
b0a216f5 ^


5fca2a0b ^
b0b3af33 ^


b0a216f5 ^
b0b3af33 ^

2c5ea01d ^
5fca2a0b ^
b0b3af33 ^
2c5ea01d ^
582f3519 ^
b06433bc ^
582f3519 ^

94c5d83e ^
dee6cfa6 ^
e9e4b4ff ^
b0a216f5 ^
a082b66a ^

b0a216f5 ^
e9e4b4ff ^





ad75190c ^
e9e4b4ff ^
5fca2a0b ^


7ed4e620 ^
5fca2a0b ^

c7720fff ^



8d21b83c ^


e9e4b4ff ^
25a4162d ^
e9e4b4ff ^
0c2c782d ^
636d9393 ^
b0a216f5 ^
c0d63e78 ^



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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93