about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-01-17 17:00:44 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-01-17 17:00:44 -0800
commit4b62edd8a63cfdde37b0537c9be1e91062bb2892 (patch)
treeaa714446d5890b25348c54c6f5fe9a7277165f28
parent7990aea904686272fb50bb81cea8f60716901b3a (diff)
downloadmu-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.mu4
-rw-r--r--chessboard-cursor.mu4
-rw-r--r--chessboard-retro.mu7
-rw-r--r--counters.mu4
-rw-r--r--factorial.mu2
-rw-r--r--fork.mu4
-rw-r--r--generic.mu2
-rw-r--r--graphics.mu9
-rw-r--r--mu.arc121
-rw-r--r--stdin.mu8
-rw-r--r--tangle.mu2
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)))
 ])