about summary refs log tree commit diff stats
path: root/apps/assort.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-10-26 23:42:27 -0700
committerKartik Agaram <vc@akkartik.com>2019-10-26 23:42:27 -0700
commit0fba3393a5becfb38dea19464e02dc17a64b7574 (patch)
tree4fa462062d03169727d6ca884c77d57316634957 /apps/assort.subx
parentf0b7e327c5e612ea2f72f2e41c046a2105076654 (diff)
downloadmu-0fba3393a5becfb38dea19464e02dc17a64b7574.tar.gz
5715
Clean up pseudocode to match planned syntax for the type- and memory-safe
level-2 Mu language.

http://akkartik.name/post/mu-2019-2 is already out of date.
Diffstat (limited to 'apps/assort.subx')
-rw-r--r--apps/assort.subx14
1 files changed, 7 insertions, 7 deletions
diff --git a/apps/assort.subx b/apps/assort.subx
index c423bc14..e78cde41 100644
--- a/apps/assort.subx
+++ b/apps/assort.subx
@@ -88,7 +88,7 @@ $subx-assort-main:end:
 
 subx-assort:  # in : (address buffered-file), out : (address buffered-file)
     # pseudocode:
-    #   var table : (address stream) = new-stream(10 rows, 8 bytes each)
+    #   var table : (address stream {string, (address stream byte)} 10/rows)
     #   read-segments(in, table)
     #   write-segments(out, table)
     #
@@ -97,7 +97,7 @@ subx-assort:  # in : (address buffered-file), out : (address buffered-file)
     89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
     # . save registers
     51/push-ecx
-    # var table/ecx : (address stream byte) = stream(10 * 8)
+    # var table/ecx : (address stream byte 10*8)
     81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x50/imm32        # subtract from esp
     68/push  0x50/imm32/length
     68/push  0/imm32/read
@@ -453,8 +453,8 @@ test-subx-assort:
 # beware: leaks memory (one name per segment read)
 read-segments:  # in : (address buffered-file), table : (address stream {string, (address stream byte)})
     # pseudocode:
-    #   var curr-segment = null
-    #   var line = new-stream(512, 1)
+    #   var curr-segment : (handle stream byte) = 0
+    #   var line : (stream byte 512)
     #   while true
     #     clear-stream(line)
     #     read-line-buffered(in, line)
@@ -470,7 +470,7 @@ read-segments:  # in : (address buffered-file), table : (address stream {string,
     #       curr-segment = *segment-slot
     #       if curr-segment != 0
     #         continue
-    #       curr-segment = new-stream(Segment-size)
+    #       curr-segment = new-stream(Heap, Segment-size, 1)
     #       *segment-slot = curr-segment
     #     rewind-stream(line)
     #     write-stream(curr-segment, line)  # abort if curr-segment overflows
@@ -494,7 +494,7 @@ read-segments:  # in : (address buffered-file), table : (address stream {string,
     52/push-edx
     53/push-ebx
     56/push-esi
-    # var line/ecx : (address stream byte) = stream(512)
+    # var line/ecx : (stream byte 512)
     81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
     68/push  0x200/imm32/length
     68/push  0/imm32/read
@@ -724,7 +724,7 @@ $read-segments:check-for-segment-header:
     e8/call  leaky-get-or-insert-slice/disp32
     # . . discard args
     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
-    # curr-segment = *segment-slot
+    # var curr-segment/ebx : (handle stream byte) = *segment-slot
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # copy *eax to ebx
     # if (curr-segment != 0) continue
     81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32           # compare ebx