guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 10/18: Fix compilation of rank 0 typed array literals


From: Daniel Llorens
Subject: [Guile-commits] 10/18: Fix compilation of rank 0 typed array literals
Date: Mon, 11 Jan 2016 15:05:23 +0000

lloda pushed a commit to branch lloda-array-support
in repository guile.

commit d3e3cef0ea454e5b45f30acb6cd005f9b60e868b
Author: Daniel Llorens <address@hidden>
Date:   Thu Feb 12 13:02:24 2015 +0100

    Fix compilation of rank 0 typed array literals
    
    * module/system/vm/assembler.scm (simple-uniform-vector?): array-length
      fails for rank 0 arrays; fix the shape condition.
    
    * test-suite/tests/arrays.test: test reading of #0f64(x) in compilation
      context.
---
 module/system/vm/assembler.scm |    4 +++-
 test-suite/tests/arrays.test   |    8 +++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/module/system/vm/assembler.scm b/module/system/vm/assembler.scm
index 2d11d88..f851ce3 100644
--- a/module/system/vm/assembler.scm
+++ b/module/system/vm/assembler.scm
@@ -952,7 +952,9 @@ lists.  This procedure can be called many times before 
calling
 (define (simple-uniform-vector? obj)
   (and (array? obj)
        (symbol? (array-type obj))
-       (equal? (array-shape obj) (list (list 0 (1- (array-length obj)))))))
+       (match (array-shape obj)
+         (((0 n)) #t)
+         (else #f))))
 
 (define (statically-allocatable? x)
   "Return @code{#t} if a non-immediate constant can be allocated
diff --git a/test-suite/tests/arrays.test b/test-suite/tests/arrays.test
index c6027c2..9bd0676 100644
--- a/test-suite/tests/arrays.test
+++ b/test-suite/tests/arrays.test
@@ -217,7 +217,13 @@
 (with-test-prefix/c&e "array-equal?"
 
   (pass-if "#s16(...)"
-    (array-equal? #s16(1 2 3) #s16(1 2 3))))
+    (array-equal? #s16(1 2 3) #s16(1 2 3)))
+
+  (pass-if "#0f64(...)"
+    (array-equal? #0f64(99) (make-typed-array 'f64 99)))
+
+  (pass-if "#0(...)"
+    (array-equal? #0(99) (make-array 99))))
 
 ;;;
 ;;; make-shared-array



reply via email to

[Prev in Thread] Current Thread [Next in Thread]