1
0
mirror of https://github.com/janet-lang/janet synced 2025-06-29 16:43:01 +00:00

Fix some example issue and warnings under -Os.

This commit is contained in:
Calvin Rose 2019-12-08 12:39:37 -06:00
parent 66d82c4513
commit eb1c21b0da
3 changed files with 17 additions and 25 deletions

View File

@ -249,10 +249,12 @@ valgrind: $(JANET_TARGET)
test: $(JANET_TARGET) $(TEST_PROGRAMS) test: $(JANET_TARGET) $(TEST_PROGRAMS)
for f in test/suite*.janet; do ./$(JANET_TARGET) "$$f" || exit; done 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) valtest: $(JANET_TARGET) $(TEST_PROGRAMS)
for f in test/suite*.janet; do $(VALGRIND_COMMAND) ./$(JANET_TARGET) "$$f" || exit; done 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 $(VALGRIND_COMMAND) ./$(JANET_TARGET) -k auxbin/jpm
callgrind: $(JANET_TARGET) callgrind: $(JANET_TARGET)

View File

@ -1,7 +1,5 @@
# naive matrix implementation for testing typed array # 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 [nrow ncol] {:nrow nrow :ncol ncol :array (tarray/new :float64 (* nrow ncol))})
(defn matrix/row [mat i] (defn matrix/row [mat i]
@ -34,22 +32,21 @@
((matrix/row mat i) j)) ((matrix/row mat i) j))
(defn matrix/get** [mat i j value] (defn matrix/get** [mat i j value]
((matrix/column j) i)) ((matrix/column mat j) i))
(defn tarray/print [array] (defn tarray/print [arr]
(def size (tarray/length array)) (def size (tarray/length arr))
(def buf @"") (prinf "[%2i]" size)
(buffer/format buf "[%2i]" size)
(for i 0 size (for i 0 size
(buffer/format buf " %+6.3f " (array i))) (prinf " %+6.3f " (arr i)))
(print buf)) (print))
(defn matrix/print [mat] (defn matrix/print [mat]
(def {:nrow nrow :ncol ncol :array tarray} mat) (def {:nrow nrow :ncol ncol :array tarray} mat)
(printf "matrix %iX%i %p" nrow ncol tarray) (printf "matrix %iX%i %p" nrow ncol tarray)
(for i 0 nrow (for i 0 nrow
(tarray/print (matrix/row mat i)))) (tarray/print (matrix/row mat i))))
(def nr 5) (def nr 5)
@ -57,27 +54,20 @@
(def A (matrix nr nc)) (def A (matrix nr nc))
(loop (i :range (0 nr) j :range (0 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) (matrix/print A)
(loop (i :range (0 nr) j :range (0 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) (matrix/print A)
(loop (i :range (0 nr) j :range (0 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) (matrix/print A)
(printf "properties:\n%p" (tarray/properties (A :array))) (printf "properties:\n%p" (tarray/properties (A :array)))
(for i 0 nr (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 (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))))

View File

@ -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 /* 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, * instructions will be. Usually it's the next instruction in memory,
* but for branching instructions it is also the target of the branch. */ * 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 */ /* Set temporary breakpoints */
switch (*pc & 0x7F) { switch (*pc & 0x7F) {