diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-01-17 17:00:44 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-01-17 17:00:44 -0800 |
commit | 4b62edd8a63cfdde37b0537c9be1e91062bb2892 (patch) | |
tree | aa714446d5890b25348c54c6f5fe9a7277165f28 | |
parent | 7990aea904686272fb50bb81cea8f60716901b3a (diff) | |
download | mu-4b62edd8a63cfdde37b0537c9be1e91062bb2892.tar.gz |
578 - switch to non-polymorphic 'print' functions
Also clean up various prints from last few commits. As a convention, for debugging we always print directly to host.
-rw-r--r-- | channel.mu | 4 | ||||
-rw-r--r-- | chessboard-cursor.mu | 4 | ||||
-rw-r--r-- | chessboard-retro.mu | 7 | ||||
-rw-r--r-- | counters.mu | 4 | ||||
-rw-r--r-- | factorial.mu | 2 | ||||
-rw-r--r-- | fork.mu | 4 | ||||
-rw-r--r-- | generic.mu | 2 | ||||
-rw-r--r-- | graphics.mu | 9 | ||||
-rw-r--r-- | mu.arc | 121 | ||||
-rw-r--r-- | stdin.mu | 8 | ||||
-rw-r--r-- | tangle.mu | 2 |
11 files changed, 103 insertions, 64 deletions
diff --git a/channel.mu b/channel.mu index 0dd71ccc..88055398 100644 --- a/channel.mu +++ b/channel.mu @@ -9,7 +9,7 @@ (break-unless done?:boolean) ; other threads might get between these prints (print-primitive-to-host (("produce: " literal))) - (print-primitive nil:literal/terminal n:integer) + (print-integer nil:literal/terminal n:integer) (print-primitive-to-host (("\n" literal))) ; 'box' n into a dynamically typed 'tagged value' because that's what ; channels take @@ -32,7 +32,7 @@ (n2:integer <- maybe-coerce x:tagged-value integer:literal) ; other threads might get between these prints (print-primitive-to-host (("consume: " literal))) - (print-primitive nil:literal/terminal n2:integer) + (print-integer nil:literal/terminal n2:integer) (print-primitive-to-host (("\n" literal))) (loop) } diff --git a/chessboard-cursor.mu b/chessboard-cursor.mu index 53fa3268..e8c13e78 100644 --- a/chessboard-cursor.mu +++ b/chessboard-cursor.mu @@ -57,7 +57,7 @@ (break-if done?:boolean) ; print rank number as a legend (rank:integer <- add row:integer 1:literal) - (print-primitive screen:terminal-address rank:integer) + (print-integer screen:terminal-address rank:integer) (print-primitive-to-host ((" | " literal))) ; print each square in the row (col:integer <- copy 0:literal) @@ -66,7 +66,7 @@ (break-if done?:boolean) (f:file-address <- index b:board-address/deref col:integer) (s:square <- index f:file-address/deref row:integer) - (print-primitive screen:terminal-address s:square) + (print-primitive-to-host s:square) (print-primitive-to-host ((" " literal))) (col:integer <- add col:integer 1:literal) (loop) diff --git a/chessboard-retro.mu b/chessboard-retro.mu index 9b3eab5c..1c90fc8d 100644 --- a/chessboard-retro.mu +++ b/chessboard-retro.mu @@ -28,7 +28,7 @@ { begin (done?:boolean <- equal col:integer 8:literal) (break-if done?:boolean) -;? (print-primitive nil:literal/terminal col:integer) +;? (print-primitive-to-host col:integer) ;? (print-primitive-to-host (("\n" literal))) (file:file-address-address <- index-address b:board-address/deref col:integer) (file:file-address-address/deref curr:list-address <- read-file curr:list-address) @@ -47,7 +47,7 @@ (done?:boolean <- equal row:integer 8:literal) (break-if done?:boolean) ;? (print-primitive-to-host ((" " literal))) -;? (print-primitive row:integer) +;? (print-primitive-to-host row:integer) ;? (print-primitive-to-host (("\n" literal))) (src:tagged-value-address <- list-value-address cursor:list-address) (dest:square-address <- index-address result:file-address/deref row:integer) @@ -74,7 +74,7 @@ (break-if done?:boolean) (f:file-address <- index b:board-address/deref col:integer) (s:square <- index f:file-address/deref row:integer) - (print-primitive nil:literal/terminal s:square) + (print-primitive-to-host s:square) (print-primitive-to-host ((" " literal))) (col:integer <- add col:integer 1:literal) (loop) @@ -86,7 +86,6 @@ ]) (function main [ -;? (print-primitive-to-host (("\u2654 \u265a" literal))) (default-space:space-address <- new space:literal 30:literal) (b:board-address <- read-board) (print-board b:board-address) diff --git a/counters.mu b/counters.mu index 243d22d5..0b7a4882 100644 --- a/counters.mu +++ b/counters.mu @@ -24,9 +24,9 @@ (ares:integer <- increment-counter a:space-address 1:literal) ; check results (print-primitive-to-host (("Contents of counters a: " literal))) - (print-primitive nil:literal/terminal ares:integer) + (print-integer nil:literal/terminal ares:integer) (print-primitive-to-host ((" b: " literal))) - (print-primitive nil:literal/terminal bres:integer) + (print-integer nil:literal/terminal bres:integer) (print-primitive-to-host (("\n" literal))) ]) diff --git a/factorial.mu b/factorial.mu index 703ee6a9..67448595 100644 --- a/factorial.mu +++ b/factorial.mu @@ -17,6 +17,6 @@ (function main [ (1:integer <- factorial 5:literal) (print-primitive-to-host (("result: " literal))) - (print-primitive nil:literal/terminal 1:integer) + (print-integer nil:literal/terminal 1:integer) (print-primitive-to-host (("\n" literal))) ]) diff --git a/fork.mu b/fork.mu index edd8eb8d..8d6463a8 100644 --- a/fork.mu +++ b/fork.mu @@ -3,7 +3,7 @@ (default-space:space-address <- new space:literal 2:literal) (x:integer <- copy 34:literal) { begin - (print-primitive nil:literal/terminal x:integer) + (print-integer nil:literal/terminal x:integer) (loop) } ]) @@ -12,7 +12,7 @@ (default-space:space-address <- new space:literal 2:literal) (y:integer <- copy 35:literal) { begin - (print-primitive nil:literal/terminal y:integer) + (print-integer nil:literal/terminal y:integer) (loop) } ]) diff --git a/generic.mu b/generic.mu index b11fa677..4c2cd958 100644 --- a/generic.mu +++ b/generic.mu @@ -25,6 +25,6 @@ (function main [ (1:integer <- factorial 5:literal) (print-primitive-to-host (("result: " literal))) - (print-primitive nil:literal/terminal 1:integer) + (print-integer nil:literal/terminal 1:integer) (print-primitive-to-host (("\n" literal))) ]) diff --git a/graphics.mu b/graphics.mu index 22d3a5c5..191e5d8e 100644 --- a/graphics.mu +++ b/graphics.mu @@ -7,9 +7,14 @@ (loop-unless click?:boolean) (x:integer <- get pos:integer-integer-pair 0:offset) (y:integer <- get pos:integer-integer-pair 1:offset) - (print-primitive nil:literal/terminal x:integer) +;? (print-primitive-to-host (("AAA " literal))) +;? (print-primitive-to-host x:integer) +;? (print-primitive-to-host ((", " literal))) +;? (print-primitive-to-host y:integer) +;? (print-primitive-to-host (("\n" literal))) + (print-integer nil:literal/terminal x:integer) (print-primitive-to-host ((", " literal))) - (print-primitive nil:literal/terminal y:integer) + (print-integer nil:literal/terminal y:integer) (print-primitive-to-host (("\n" literal))) (loop) } diff --git a/mu.arc b/mu.arc index 38458e51..5efd0e75 100644 --- a/mu.arc +++ b/mu.arc @@ -1537,7 +1537,7 @@ ;? (reply 0:literal) ;? } ;? ; else return 1+length(curr.cdr) -;? (print-primitive-to-host nil:literal/terminal (("recurse\n" literal))) +;? (print-primitive-to-host (("recurse\n" literal))) ;? (next:list-address <- list-next curr:list-address) ;? (sub:integer <- list-length next:list-address) ;? (result:integer <- add sub:integer 1:literal) @@ -1550,8 +1550,8 @@ (break-unless t1:tagged-value-address) ; ++result (result:integer <- add result:integer 1:literal) -;? (print-primitive nil:literal/terminal result:integer) -;? (print-primitive-to-host nil:literal/terminal (("\n" literal))) +;? (print-primitive-to-host result:integer) +;? (print-primitive-to-host (("\n" literal))) ; curr = curr.cdr (curr:list-address <- list-next curr:list-address) (loop) @@ -1719,19 +1719,19 @@ ; while arg received (a:string-address arg-received?:boolean <- next-input) (break-unless arg-received?:boolean) -;? (print-primitive-to-host nil:literal/terminal ("arg now: " literal)) -;? (print-primitive nil:literal/terminal a:string-address) -;? (print-primitive-to-host nil:literal/terminal "@":literal) -;? (print-primitive nil:literal/terminal a:string-address/deref) ; todo: test (m on scoped array) -;? (print-primitive-to-host nil:literal/terminal "\n":literal) +;? (print-primitive-to-host ("arg now: " literal)) +;? (print-primitive-to-host a:string-address) +;? (print-primitive-to-host "@":literal) +;? (print-primitive-to-host a:string-address/deref) ; todo: test (m on scoped array) +;? (print-primitive-to-host "\n":literal) ;? ;? (assert nil:literal) ; result-len = result-len + arg.length - 1 (for the 'underscore' being replaced) (a-len:integer <- length a:string-address/deref) (result-len:integer <- add result-len:integer a-len:integer) (result-len:integer <- subtract result-len:integer 1:literal) -;? (print-primitive-to-host nil:literal/terminal ("result-len now: " literal)) -;? (print-primitive nil:literal/terminal result-len:integer) -;? (print-primitive-to-host nil:literal/terminal "\n":literal) +;? (print-primitive-to-host ("result-len now: " literal)) +;? (print-primitive-to-host result-len:integer) +;? (print-primitive-to-host "\n":literal) (loop) } ; rewind to start of non-template args @@ -1763,9 +1763,9 @@ (result-idx:integer <- add result-idx:integer 1:literal) (loop) } -;? (print-primitive-to-host nil:literal/terminal ("i now: " literal)) -;? (print-primitive nil:literal/terminal i:integer) -;? (print-primitive-to-host nil:literal/terminal "\n":literal) +;? (print-primitive-to-host ("i now: " literal)) +;? (print-primitive-to-host i:integer) +;? (print-primitive-to-host "\n":literal) ; copy 'a' into result (j:integer <- copy 0:literal) { begin @@ -1774,11 +1774,11 @@ (break-if arg-done?:boolean) ; result[result-idx] = a[j] (in:byte <- index a:string-address/deref j:integer) -;? (print-primitive-to-host nil:literal/terminal ("copying: " literal)) -;? (print-primitive nil:literal/terminal in:byte) -;? (print-primitive-to-host nil:literal/terminal (" at: " literal)) -;? (print-primitive nil:literal/terminal result-idx:integer) -;? (print-primitive-to-host nil:literal/terminal "\n":literal) +;? (print-primitive-to-host ("copying: " literal)) +;? (print-primitive-to-host in:byte) +;? (print-primitive-to-host (" at: " literal)) +;? (print-primitive-to-host result-idx:integer) +;? (print-primitive-to-host "\n":literal) (out:byte-address <- index-address result:string-address/deref result-idx:integer) (out:byte-address/deref <- copy in:byte) ; ++j @@ -1789,9 +1789,9 @@ } ; skip '_' in template (i:integer <- add i:integer 1:literal) -;? (print-primitive-to-host nil:literal/terminal ("i now: " literal)) -;? (print-primitive nil:literal/terminal i:integer) -;? (print-primitive-to-host nil:literal/terminal "\n":literal) +;? (print-primitive-to-host ("i now: " literal)) +;? (print-primitive-to-host i:integer) +;? (print-primitive-to-host "\n":literal) (loop) ; interpolate next arg } ; done with holes; copy rest of template directly into result @@ -1801,11 +1801,11 @@ (break-if tem-done?:boolean) ; result[result-idx] = template[i] (in:byte <- index template:string-address/deref i:integer) -;? (print-primitive-to-host nil:literal/terminal ("copying: " literal)) -;? (print-primitive nil:literal/terminal in:byte) -;? (print-primitive-to-host nil:literal/terminal (" at: " literal)) -;? (print-primitive nil:literal/terminal result-idx:integer) -;? (print-primitive-to-host nil:literal/terminal "\n":literal) +;? (print-primitive-to-host ("copying: " literal)) +;? (print-primitive-to-host in:byte) +;? (print-primitive-to-host (" at: " literal)) +;? (print-primitive-to-host result-idx:integer) +;? (print-primitive-to-host "\n":literal) (out:byte-address <- index-address result:string-address/deref result-idx:integer) (out:byte-address/deref <- copy in:byte) ; ++i @@ -1856,9 +1856,9 @@ (loop) } ; allocate space -;? (print-primitive-to-host nil:literal/terminal (("alloc: " literal))) -;? (print-primitive nil:literal/terminal count:integer) -;? (print-primitive-to-host nil:literal/terminal (("\n" literal))) +;? (print-primitive-to-host (("alloc: " literal))) +;? (print-primitive-to-host count:integer) +;? (print-primitive-to-host (("\n" literal))) (result:string-address-array-address <- new string-address-array:literal count:integer) ; repeatedly copy slices (start..end) until delimiter into result[curr-result] (curr-result:integer <- copy 0:literal) @@ -1868,13 +1868,13 @@ (done?:boolean <- greater-or-equal start:integer len:integer) (break-if done?:boolean) (end:integer <- find-next s:string-address delim:character start:integer) -;? (print-primitive-to-host nil:literal/terminal (("i: " literal))) -;? (print-primitive nil:literal/terminal start:integer) -;? (print-primitive-to-host nil:literal/terminal (("-" literal))) -;? (print-primitive nil:literal/terminal end:integer) -;? (print-primitive-to-host nil:literal/terminal ((" => " literal))) -;? (print-primitive nil:literal/terminal curr-result:integer) -;? (print-primitive-to-host nil:literal/terminal (("\n" literal))) +;? (print-primitive-to-host (("i: " literal))) +;? (print-primitive-to-host start:integer) +;? (print-primitive-to-host (("-" literal))) +;? (print-primitive-to-host end:integer) +;? (print-primitive-to-host ((" => " literal))) +;? (print-primitive-to-host curr-result:integer) +;? (print-primitive-to-host (("\n" literal))) ; compute length of slice (slice-len:integer <- subtract end:integer start:integer) ; allocate result[curr-result] @@ -1947,15 +1947,46 @@ (cursor-on-host-to-next-line) ) -(init-fn print-primitive +(init-fn print-character (default-space:space-address <- new space:literal 30:literal) (x:terminal-address <- next-input) - (c:location <- next-input) + (c:character <- next-input) { begin (break-unless x:terminal-address) (reply) } - (print-primitive-to-host c:location) + (print-primitive-to-host c:character) +) + +(init-fn print-string + (default-space:space-address <- new space:literal 30:literal) + (x:terminal-address <- next-input) + (s:string-address <- next-input) + (len:integer <- length s:string-address/deref) +;? (print-primitive-to-host (("print/string: len: " literal))) +;? (print-primitive-to-host len:integer) +;? (print-primitive-to-host (("\n" literal))) + (i:integer <- copy 0:literal) + { begin + (done?:boolean <- greater-or-equal i:integer len:integer) + (break-if done?:boolean) + (c:character <- index s:string-address/deref i:integer) ; todo: unicode + (print-character x:terminal-address c:character) + (i:integer <- add i:integer 1:literal) + (loop) + } +) + +(init-fn print-integer + (default-space:space-address <- new space:literal 30:literal) + (x:terminal-address <- next-input) + (n:integer <- next-input) + ; todo: other bases besides decimal +;? (print-primitive-to-host (("AAA " literal))) +;? (print-primitive-to-host n:integer) + (s:string-address <- integer-to-decimal-string n:integer) +;? (print-primitive-to-host s:string-address) + (print-string x:terminal-address s:string-address) ) (init-fn init-buffer @@ -2020,6 +2051,7 @@ ) (init-fn integer-to-decimal-string + (default-space:space-address <- new space:literal 30:literal) (n:integer <- next-input) ; is it zero? { begin @@ -2084,7 +2116,7 @@ { begin (x:tagged-value stdout:channel-address/deref <- read stdout:channel-address) (c:character <- maybe-coerce x:tagged-value character:literal) - (print-primitive nil:literal/terminal c:character) + (print-character nil:literal/terminal c:character) (loop) } ) @@ -2112,11 +2144,14 @@ (run 'main) (if ($.current-charterm) ($.close-charterm)) (when ($.graphics-open?) ($.close-viewport Viewport) ($.close-graphics)) - (prn "\nmemory: " int-canon.memory*) + (pr "\nmemory: ") + (write int-canon.memory*) + (prn) (each routine completed-routines* (awhen rep.routine!error (prn "error - " it) - (prn routine))) +;? (prn routine) + )) ) (reset) ;? (print-times) diff --git a/stdin.mu b/stdin.mu index fc132092..803dd60c 100644 --- a/stdin.mu +++ b/stdin.mu @@ -5,7 +5,7 @@ ; hook up stdin (stdin:channel-address <- init-channel 1:literal) ;? (print-primitive-to-host (("main: stdin is " literal))) -;? (print-primitive nil:literal/terminal stdin:channel-address) +;? (print-primitive-to-host stdin:channel-address) ;? (print-primitive-to-host (("\n" literal))) (fork-helper send-keys-to-stdin:fn nil:literal/globals nil:literal/limit stdin:channel-address) ; now read characters from stdin until a 'q' is typed @@ -14,13 +14,13 @@ (x:tagged-value stdin:channel-address/deref <- read stdin:channel-address) (c:character <- maybe-coerce x:tagged-value character:literal) ;? (print-primitive-to-host (("main: stdin is " literal))) -;? (print-primitive nil:literal/terminal stdin:channel-address) +;? (print-primitive-to-host stdin:channel-address) ;? (print-primitive-to-host (("\n" literal))) ;? (print-primitive-to-host (("check: " literal))) -;? (print-primitive nil:literal/terminal c:character) +;? (print-primitive-to-host c:character) (done?:boolean <- equal c:character ((#\q literal))) (break-if done?:boolean) - (print-primitive nil:literal/terminal c:character) + (print-character nil:literal/terminal c:character) (loop) } ]) diff --git a/tangle.mu b/tangle.mu index 24940986..720b531f 100644 --- a/tangle.mu +++ b/tangle.mu @@ -30,6 +30,6 @@ (function main [ (1:integer <- factorial 5:literal) (print-primitive-to-host (("result: " literal))) - (print-primitive nil:literal/terminal 1:integer) + (print-integer nil:literal/terminal 1:integer) (print-primitive-to-host (("\n" literal))) ]) |