about summary refs log tree commit diff stats
path: root/mu.arc.t
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-10-05 11:32:25 -0700
committerKartik K. Agaram <vc@akkartik.com>2014-10-05 11:32:25 -0700
commit3b0b336e87f33d41c5a699531ad25e2da4172a78 (patch)
tree81bf9347e7ac8245823bd14a91eab44203c8fca5 /mu.arc.t
parent5812830d53032aa7a8d97a6912fb254f2a8d856e (diff)
downloadmu-3b0b336e87f33d41c5a699531ad25e2da4172a78.tar.gz
102 - fold 'aref' into 'get'
Also separate op for length of an array.
Diffstat (limited to 'mu.arc.t')
-rw-r--r--mu.arc.t30
1 files changed, 24 insertions, 6 deletions
diff --git a/mu.arc.t b/mu.arc.t
index f7c9a7a7..829eb8ca 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -416,11 +416,11 @@
       ((3 boolean) <- literal nil)
       ((4 integer) <- literal 24)
       ((5 boolean) <- literal t)
-      ((6 integer) <- get (1 integer-boolean-pair-array) (0 offset)))))
+      ((6 integer-boolean-pair) <- get (1 integer-boolean-pair-array) (1 offset)))))
 (run 'main)
 ;? (prn memory*)
-(if (~iso memory* (obj 1 2  2 23 3 nil  4 24 5 t  6 2))
-  (prn "F - 'get' accesses length of array"))
+(if (~iso memory* (obj 1 2  2 23 3 nil  4 24 5 t  6 24 7 t))
+  (prn "F - 'get' accesses indices of arrays"))
 
 (reset)
 (add-fns
@@ -430,11 +430,29 @@
       ((3 boolean) <- literal nil)
       ((4 integer) <- literal 24)
       ((5 boolean) <- literal t)
-      ((6 integer-boolean-pair) <- aref (1 integer-boolean-pair-array) (1 offset)))))
+      ((6 integer) <- len (1 integer-boolean-pair-array)))))
 (run 'main)
 ;? (prn memory*)
-(if (~iso memory* (obj 1 2  2 23 3 nil  4 24 5 t  6 24 7 t))
-  (prn "F - 'aref' accesses indices of arrays"))
+(if (~iso memory* (obj 1 2  2 23 3 nil  4 24 5 t  6 2))
+  (prn "F - 'len' accesses length of array"))
+
+(reset)
+(add-fns
+  '((main
+      ((1 integer) <- sizeof (integer-boolean-pair type)))))
+(run 'main)
+;? (prn memory*)
+(if (~iso memory* (obj 1 2))
+  (prn "F - 'sizeof' returns space required by arg"))
+
+(reset)
+(add-fns
+  '((main
+      ((1 integer) <- sizeof (integer-point-pair type)))))
+(run 'main)
+;? (prn memory*)
+(if (~iso memory* (obj 1 3))
+  (prn "F - 'sizeof' is different from number of elems"))
 
 ; todo: test that out-of-bounds access throws an error