about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-06-11 19:26:20 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-06-11 19:26:20 -0700
commitcbf3de0f0814bbca23a9702574425742895bc834 (patch)
tree9b219571c0159bd2f3513659ddc000a0718873bc
parent040b60bc6ea97e93d867479a71db47c15a3be637 (diff)
downloadmu-cbf3de0f0814bbca23a9702574425742895bc834.tar.gz
back to the pending test
I'm ready again to take on commit 6169ec59c after lots of refactoring.
-rw-r--r--shell/global.mu64
1 files changed, 4 insertions, 60 deletions
diff --git a/shell/global.mu b/shell/global.mu
index 2b0a5e99..606dd7a9 100644
--- a/shell/global.mu
+++ b/shell/global.mu
@@ -276,7 +276,6 @@ fn refresh-cursor-definition _self: (addr global-table) {
   refresh-definition self, *cursor-index
 }
 
-# HERE: reconcile what happens here
 fn refresh-definition _self: (addr global-table), _index: int {
   var self/esi: (addr global-table) <- copy _self
   var data-ah/eax: (addr handle array global) <- get self, data
@@ -284,68 +283,14 @@ fn refresh-definition _self: (addr global-table), _index: int {
   var index/ebx: int <- copy _index
   var offset/ebx: (offset global) <- compute-offset data, index
   var curr-global/ebx: (addr global) <- index data, offset
-  var curr-input-ah/eax: (addr handle gap-buffer) <- get curr-global, input
-  var _curr-input/eax: (addr gap-buffer) <- lookup *curr-input-ah
-  var curr-input/edx: (addr gap-buffer) <- copy _curr-input
+  var curr-input-ah/edx: (addr handle gap-buffer) <- get curr-global, input
   var curr-trace-ah/eax: (addr handle trace) <- get curr-global, trace
   var curr-trace/eax: (addr trace) <- lookup *curr-trace-ah
   clear-trace curr-trace
-  var read-result-h: (handle cell)
-  var read-result-ah/ecx: (addr handle cell) <- address read-result-h
-  read-cell curr-input, read-result-ah, curr-trace
-  {
-    var error?/eax: boolean <- has-errors? curr-trace
-    compare error?, 0/false
-    break-if-=
-    return
-  }
-  macroexpand read-result-ah, self, curr-trace
-  {
-    var error?/eax: boolean <- has-errors? curr-trace
-    compare error?, 0/false
-    break-if-=
-    return
-  }
-  var nil-h: (handle cell)
-  {
-    var nil-ah/eax: (addr handle cell) <- address nil-h
-    allocate-pair nil-ah
-  }
   var curr-value-ah/edi: (addr handle cell) <- get curr-global, value
-  debug-print "GL", 4/fg, 0/bg
-  evaluate read-result-ah, curr-value-ah, nil-h, self, curr-trace, 0/no-screen-cell, 0/no-keyboard-cell, 0/definitions-created, 1/call-number
-  debug-print "GZ", 4/fg, 0/bg
-  {
-    var error?/eax: boolean <- has-errors? curr-trace
-    compare error?, 0/false
-    break-if-=
-    return
-  }
-  # update definition name if necessary
-  var curr-global-name-ah/edx: (addr handle array byte) <- get curr-global, name
-  var _curr-global-name/eax: (addr array byte) <- lookup *curr-global-name-ah
-  var curr-global-name/ebx: (addr array byte) <- copy _curr-global-name
-  var read-result/eax: (addr cell) <- lookup *read-result-ah
-  {
-    var is-definition?/eax: boolean <- is-definition? read-result
-    compare is-definition?, 0/false
-    break-if-!=
-    return
-  }
-  # (no error checking since it's a definition and there were no errors)
-  var rest-ah/eax: (addr handle cell) <- get read-result, right
-  var rest/eax: (addr cell) <- lookup *rest-ah
-  var correct-definition-symbol-ah/eax: (addr handle cell) <- get rest, left
-  var correct-definition-symbol/eax: (addr cell) <- lookup *correct-definition-symbol-ah
-  var correct-definition-name-ah/eax: (addr handle stream byte) <- get correct-definition-symbol, text-data
-  var correct-definition-name/eax: (addr stream byte) <- lookup *correct-definition-name-ah
-  {
-    var still-matches?/eax: boolean <- stream-data-equal? correct-definition-name, curr-global-name
-    compare still-matches?, 0/false
-    break-if-=
-    return
-  }
-  stream-to-array correct-definition-name, curr-global-name-ah
+  var definitions-created-storage: (stream int 0x10)
+  var definitions-created/ecx: (addr stream int) <- address definitions-created-storage
+  read-and-evaluate-and-save-gap-buffer-to-globals curr-input-ah, curr-value-ah, self, definitions-created, curr-trace, 0/no-screen, 0/no-keyboard
 }
 
 fn assign-or-create-global _self: (addr global-table), name: (addr array byte), value: (handle cell), index-updated: (addr int), trace: (addr trace) {
@@ -590,7 +535,6 @@ fn is-definition? _expr: (addr cell) -> _/eax: boolean {
   return 0/false
 }
 
-# HERE: ..and this
 fn read-and-evaluate-and-save-gap-buffer-and-save-trace-to-globals in-ah: (addr handle gap-buffer), _globals: (addr global-table) {
   var globals/esi: (addr global-table) <- copy _globals
   var definitions-created-storage: (stream int 0x10)