guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 55/99: Implement immediate version of vector primitives.


From: Christopher Allan Webber
Subject: [Guile-commits] 55/99: Implement immediate version of vector primitives.
Date: Sun, 10 Oct 2021 21:50:59 -0400 (EDT)

cwebber pushed a commit to branch compile-to-js-merge
in repository guile.

commit 0b9b08a28d5c103241b1bf53df8992fbcfce0ce7
Author: Ian Price <ianprice90@googlemail.com>
AuthorDate: Wed Aug 2 21:03:11 2017 +0100

    Implement immediate version of vector primitives.
    
    * module/language/js-il/runtime.js
      (make-vector/immediate, vector-set!/immediate,
      vector-ref/immediate): New Primitives.
---
 module/language/js-il/runtime.js | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/module/language/js-il/runtime.js b/module/language/js-il/runtime.js
index 6b33f5c..a140147 100644
--- a/module/language/js-il/runtime.js
+++ b/module/language/js-il/runtime.js
@@ -235,9 +235,21 @@ scheme.primitives["vector?"] = function (obj) {
     return coerce_bool(obj instanceof scheme.Vector);
 };
 
-scheme.primitives["make-vector/immediate"] = not_implemented_yet;
-scheme.primitives["vector-set!/immediate"] = not_implemented_yet;
-scheme.primitives["vector-ref/immediate"] = not_implemented_yet;
+scheme.primitives["make-vector/immediate"] = function(length, init) {
+    var v = new scheme.Vector();
+
+    var temp = []
+    for (var i=0; i < length; i++) {
+        temp[i] = init;
+    }
+
+    v.array = temp;
+
+    return v;
+};
+
+scheme.primitives["vector-set!/immediate"] = scheme.primitives["vector-set!"];
+scheme.primitives["vector-ref/immediate"] = scheme.primitives["vector-ref"];
 
 // Bytevectors
 



reply via email to

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