diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-11-09 21:25:56 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-11-09 21:25:56 -0800 |
commit | 7e4f8983f8d7357d576bc51a32f49159c0c82203 (patch) | |
tree | 85597062cdb18f9c33ef613af5a9bf0b24fa7b7f | |
parent | c01289dddea2398fe7f4335f5d0babc4a9e789c5 (diff) | |
download | mu-7e4f8983f8d7357d576bc51a32f49159c0c82203.tar.gz |
7219
We're still busted, but on the right track.
-rw-r--r-- | apps/tile/environment.mu | 60 | ||||
-rw-r--r-- | apps/tile/rpn.mu | 6 | ||||
-rw-r--r-- | apps/tile/table.mu | 72 |
3 files changed, 69 insertions, 69 deletions
diff --git a/apps/tile/environment.mu b/apps/tile/environment.mu index d9718525..f392a6f6 100644 --- a/apps/tile/environment.mu +++ b/apps/tile/environment.mu @@ -1276,8 +1276,8 @@ fn call-path-element-length _x: (addr handle call-path-element) -> _/eax: int { # # Along the way, compute the column the cursor should be positioned at (cursor-col-addr). fn render-line screen: (addr screen), functions: (addr handle function), bindings: (addr table), first-line: (addr line), _line: (addr line), expanded-words: (addr handle call-path), top-row: int, left-col: int, curr-path: (addr handle call-path-element), cursor-word: (addr word), cursor-call-path: (addr handle call-path-element), cursor-row-addr: (addr int), cursor-col-addr: (addr int) -> _/ecx: int { - print-string 0, "## render-line: " - dump-table bindings +#? print-string 0, "## render-line: " +#? dump-table bindings # curr-word var line/esi: (addr line) <- copy _line var first-word-ah/eax: (addr handle word) <- get line, data @@ -1291,9 +1291,9 @@ fn render-line screen: (addr screen), functions: (addr handle function), binding { compare curr-word, 0 break-if-= - print-string 0, "-- word " - print-word 0, curr-word - print-string 0, "\n" +#? print-string 0, "-- word " +#? print-word 0, curr-word +#? print-string 0, "\n" #? print-string 0, "-- word in final line: " #? { #? var foo/eax: int <- copy curr-word @@ -1330,8 +1330,8 @@ fn render-line screen: (addr screen), functions: (addr handle function), binding increment top-row } # obtain stack at call site - print-string 0, "sub 0 bindings: " - dump-table bindings +#? print-string 0, "sub 0 bindings: " +#? dump-table bindings var stack-storage: value-stack var stack/edx: (addr value-stack) <- address stack-storage initialize-value-stack stack, 0x10 @@ -1340,12 +1340,12 @@ fn render-line screen: (addr screen), functions: (addr handle function), binding var prev-word/eax: (addr word) <- lookup *prev-word-ah compare prev-word, 0 break-if-= - print-string 0, "sub 1 bindings: " - dump-table bindings +#? print-string 0, "sub 1 bindings: " +#? dump-table bindings evaluate functions, bindings, first-line, prev-word, stack } - print-string 0, "sub 2 bindings: " - dump-table bindings +#? print-string 0, "sub 2 bindings: " +#? dump-table bindings # construct new bindings var callee-bindings-storage: table var callee-bindings/esi: (addr table) <- address callee-bindings-storage @@ -1357,11 +1357,11 @@ fn render-line screen: (addr screen), functions: (addr handle function), binding var callee-body-first-word/edx: (addr handle word) <- get callee-body, data # - render subsidiary stack push-to-call-path-element curr-path, callee-body-first-word # leak - print-string 0, "subsidiary { " - dump-table callee-bindings - syscall_exit +#? print-string 0, "subsidiary { " +#? dump-table callee-bindings +#? syscall_exit curr-col <- render-line screen, functions, callee-bindings, callee-body, callee-body, expanded-words, top-row, curr-col, curr-path, cursor-word, cursor-call-path, cursor-row-addr, cursor-col-addr - print-string 0, "}\n" +#? print-string 0, "}\n" drop-from-call-path-element curr-path # move-cursor screen, top-row, curr-col @@ -1377,23 +1377,23 @@ fn render-line screen: (addr screen), functions: (addr handle function), binding #? print-string 0, "rendering column from " #? print-int32-decimal 0, curr-col #? print-string 0, "\n" - print-string 0, "main 0 bindings: " - dump-table bindings +#? print-string 0, "main 0 bindings: " +#? dump-table bindings var bindings2-storage: table var bindings2/ebx: (addr table) <- address bindings2-storage shallow-copy-table-values bindings, bindings2 - print-string 0, "main 1 bindings: " - dump-table bindings - print-string 0, "main 1 bindings2: " - dump-table bindings2 - print-string 0, "word: " - print-word 0, curr-word - print-string 0, "\n" +#? print-string 0, "main 1 bindings: " +#? dump-table bindings +#? print-string 0, "main 1 bindings2: " +#? dump-table bindings2 +#? print-string 0, "word: " +#? print-word 0, curr-word +#? print-string 0, "\n" curr-col <- render-column screen, functions, bindings2, first-line, line, curr-word, top-row, curr-col - print-string 0, "main 2 bindings: " - dump-table bindings - print-string 0, "main 2 bindings2: " - dump-table bindings2 +#? print-string 0, "main 2 bindings: " +#? dump-table bindings +#? print-string 0, "main 2 bindings2: " +#? dump-table bindings2 # cache cursor column if necessary $render-line:cache-cursor-column: { #? print-string 0, "cache cursor? " @@ -1450,8 +1450,8 @@ fn callee functions: (addr handle function), word: (addr word), out: (addr handl # # Return the farthest column written. fn render-column screen: (addr screen), functions: (addr handle function), bindings: (addr table), first-line: (addr line), line: (addr line), final-word: (addr word), top-row: int, left-col: int -> _/ecx: int { - print-string 0, "render-column: " - dump-table bindings +#? print-string 0, "render-column: " +#? dump-table bindings var max-width/esi: int <- copy 0 { # indent stack diff --git a/apps/tile/rpn.mu b/apps/tile/rpn.mu index 6b53f888..ab722f09 100644 --- a/apps/tile/rpn.mu +++ b/apps/tile/rpn.mu @@ -11,9 +11,9 @@ fn evaluate functions: (addr handle function), bindings: (addr table), scratch: break-if-= # update curr-stream emit-word curr, curr-stream - print-string-to-real-screen "eval: " - print-stream-to-real-screen curr-stream - print-string-to-real-screen "\n" +#? print-string-to-real-screen "eval: " +#? print-stream-to-real-screen curr-stream +#? print-string-to-real-screen "\n" $evaluate:process-word: { ### if curr-stream is an operator, perform it ## numbers diff --git a/apps/tile/table.mu b/apps/tile/table.mu index 5e8bfeb3..91407e09 100644 --- a/apps/tile/table.mu +++ b/apps/tile/table.mu @@ -53,42 +53,42 @@ fn shallow-copy-table-values _src: (addr table), dest: (addr table) { #? print-string-to-real-screen "\n" #? } bind-in-table dest, key-ah, val - var foo: (handle value) - var foo2/ecx: (addr handle value) <- address foo - var foo3/eax: (addr array byte) <- lookup *key-ah - print-string-to-real-screen foo3 - print-string-to-real-screen " -> " - lookup-binding dest, foo3, foo2 - var _foo4/eax: (addr value) <- lookup *foo2 - var foo4/ecx: (addr value) <- copy _foo4 - var foo5/eax: (addr int) <- get foo4, type - print-int32-hex-to-real-screen *foo5 - print-string-to-real-screen ": " - var foo6/eax: (addr int) <- get foo4, int-data - print-int32-hex-to-real-screen *foo6 - print-string-to-real-screen " " - var foo7/eax: (addr handle array byte) <- get foo4, text-data - var foo8/eax: (addr array byte) <- lookup *foo7 - var foo9/eax: int <- copy foo8 - print-int32-hex-to-real-screen foo9 - print-string-to-real-screen " " - var foo10/eax: (addr handle array value) <- get foo4, array-data - var foo11/eax: (addr array value) <- lookup *foo10 - var foo12/eax: int <- copy foo11 - print-int32-hex-to-real-screen foo12 - print-string-to-real-screen " " - var foo10/eax: (addr handle array value) <- get foo4, array-data - var foo13/eax: (addr handle buffered-file) <- get foo4, file-data - var foo14/eax: (addr buffered-file) <- lookup *foo13 - var foo15/eax: int <- copy foo14 - print-int32-hex-to-real-screen foo15 - print-string-to-real-screen " " - var foo10/eax: (addr handle array value) <- get foo4, array-data - var foo16/eax: (addr handle screen) <- get foo4, screen-data - var foo17/eax: (addr screen) <- lookup *foo16 - var foo18/eax: int <- copy foo17 - print-int32-hex-to-real-screen foo18 - print-string-to-real-screen "\n" +#? var foo: (handle value) +#? var foo2/ecx: (addr handle value) <- address foo +#? var foo3/eax: (addr array byte) <- lookup *key-ah +#? print-string-to-real-screen foo3 +#? print-string-to-real-screen " -> " +#? lookup-binding dest, foo3, foo2 +#? var _foo4/eax: (addr value) <- lookup *foo2 +#? var foo4/ecx: (addr value) <- copy _foo4 +#? var foo5/eax: (addr int) <- get foo4, type +#? print-int32-hex-to-real-screen *foo5 +#? print-string-to-real-screen ": " +#? var foo6/eax: (addr int) <- get foo4, int-data +#? print-int32-hex-to-real-screen *foo6 +#? print-string-to-real-screen " " +#? var foo7/eax: (addr handle array byte) <- get foo4, text-data +#? var foo8/eax: (addr array byte) <- lookup *foo7 +#? var foo9/eax: int <- copy foo8 +#? print-int32-hex-to-real-screen foo9 +#? print-string-to-real-screen " " +#? var foo10/eax: (addr handle array value) <- get foo4, array-data +#? var foo11/eax: (addr array value) <- lookup *foo10 +#? var foo12/eax: int <- copy foo11 +#? print-int32-hex-to-real-screen foo12 +#? print-string-to-real-screen " " +#? var foo10/eax: (addr handle array value) <- get foo4, array-data +#? var foo13/eax: (addr handle buffered-file) <- get foo4, file-data +#? var foo14/eax: (addr buffered-file) <- lookup *foo13 +#? var foo15/eax: int <- copy foo14 +#? print-int32-hex-to-real-screen foo15 +#? print-string-to-real-screen " " +#? var foo10/eax: (addr handle array value) <- get foo4, array-data +#? var foo16/eax: (addr handle screen) <- get foo4, screen-data +#? var foo17/eax: (addr screen) <- lookup *foo16 +#? var foo18/eax: int <- copy foo17 +#? print-int32-hex-to-real-screen foo18 +#? print-string-to-real-screen "\n" } i <- increment loop |