From eb1c21b0da4803c29fc7e66c1f78e30587d17feb Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Sun, 8 Dec 2019 12:39:37 -0600 Subject: [PATCH] Fix some example issue and warnings under -Os. --- Makefile | 4 +++- examples/tarray.janet | 36 +++++++++++++----------------------- src/core/vm.c | 2 +- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index ed1eb0ce..40e970e4 100644 --- a/Makefile +++ b/Makefile @@ -249,10 +249,12 @@ valgrind: $(JANET_TARGET) test: $(JANET_TARGET) $(TEST_PROGRAMS) for f in test/suite*.janet; do ./$(JANET_TARGET) "$$f" || exit; done - $(JANET_TARGET) -k auxbin/jpm + for f in examples/*.janet; do ./$(JANET_TARGET) -k "$$f"; done + ./$(JANET_TARGET) -k auxbin/jpm valtest: $(JANET_TARGET) $(TEST_PROGRAMS) for f in test/suite*.janet; do $(VALGRIND_COMMAND) ./$(JANET_TARGET) "$$f" || exit; done + for f in examples/*.janet; do ./$(JANET_TARGET) -k "$$f"; done $(VALGRIND_COMMAND) ./$(JANET_TARGET) -k auxbin/jpm callgrind: $(JANET_TARGET) diff --git a/examples/tarray.janet b/examples/tarray.janet index b55fa58b..f36520a5 100644 --- a/examples/tarray.janet +++ b/examples/tarray.janet @@ -1,7 +1,5 @@ # naive matrix implementation for testing typed array -(defmacro printf [& xs] ['print ['string/format (splice xs)]]) - (defn matrix [nrow ncol] {:nrow nrow :ncol ncol :array (tarray/new :float64 (* nrow ncol))}) (defn matrix/row [mat i] @@ -34,22 +32,21 @@ ((matrix/row mat i) j)) (defn matrix/get** [mat i j value] - ((matrix/column j) i)) + ((matrix/column mat j) i)) -(defn tarray/print [array] - (def size (tarray/length array)) - (def buf @"") - (buffer/format buf "[%2i]" size) +(defn tarray/print [arr] + (def size (tarray/length arr)) + (prinf "[%2i]" size) (for i 0 size - (buffer/format buf " %+6.3f " (array i))) - (print buf)) - + (prinf " %+6.3f " (arr i))) + (print)) + (defn matrix/print [mat] (def {:nrow nrow :ncol ncol :array tarray} mat) (printf "matrix %iX%i %p" nrow ncol tarray) (for i 0 nrow - (tarray/print (matrix/row mat i)))) + (tarray/print (matrix/row mat i)))) (def nr 5) @@ -57,27 +54,20 @@ (def A (matrix nr nc)) (loop (i :range (0 nr) j :range (0 nc)) - (matrix/set A i j i)) + (matrix/set A i j i)) (matrix/print A) (loop (i :range (0 nr) j :range (0 nc)) - (matrix/set* A i j i)) + (matrix/set* A i j i)) (matrix/print A) (loop (i :range (0 nr) j :range (0 nc)) - (matrix/set** A i j i)) + (matrix/set** A i j i)) (matrix/print A) (printf "properties:\n%p" (tarray/properties (A :array))) (for i 0 nr - (printf "row properties:[%i]\n%p" i (tarray/properties (matrix/row A i)))) + (printf "row properties:[%i]\n%p" i (tarray/properties (matrix/row A i)))) (for i 0 nc - (printf "col properties:[%i]\n%p" i (tarray/properties (matrix/column A i)))) - - - - - - - + (printf "col properties:[%i]\n%p" i (tarray/properties (matrix/column A i)))) diff --git a/src/core/vm.c b/src/core/vm.c index 413c4a0b..6064143f 100644 --- a/src/core/vm.c +++ b/src/core/vm.c @@ -1030,7 +1030,7 @@ JanetSignal janet_step(JanetFiber *fiber, Janet in, Janet *out) { /* Check current opcode (sans debug flag). This tells us where the next or next two candidate * instructions will be. Usually it's the next instruction in memory, * but for branching instructions it is also the target of the branch. */ - uint32_t *nexta = NULL, *nextb = NULL, olda, oldb; + uint32_t *nexta = NULL, *nextb = NULL, olda = 0, oldb = 0; /* Set temporary breakpoints */ switch (*pc & 0x7F) {