about summary refs log tree commit diff stats
path: root/edit/005-sandbox.mu
diff options
context:
space:
mode:
Diffstat (limited to 'edit/005-sandbox.mu')
-rw-r--r--edit/005-sandbox.mu214
1 files changed, 107 insertions, 107 deletions
diff --git a/edit/005-sandbox.mu b/edit/005-sandbox.mu
index 89f52fb6..4d4b93ef 100644
--- a/edit/005-sandbox.mu
+++ b/edit/005-sandbox.mu
@@ -7,10 +7,10 @@
 def! main [
   local-scope
   open-console
-  initial-recipe:address:shared:array:character <- restore [recipes.mu]
-  initial-sandbox:address:shared:array:character <- new []
+  initial-recipe:address:array:character <- restore [recipes.mu]
+  initial-sandbox:address:array:character <- new []
   hide-screen 0/screen
-  env:address:shared:programming-environment-data <- new-programming-environment 0/screen, initial-recipe, initial-sandbox
+  env:address:programming-environment-data <- new-programming-environment 0/screen, initial-recipe, initial-sandbox
   env <- restore-sandboxes env
   render-all 0/screen, env
   event-loop 0/screen, 0/console, env
@@ -18,7 +18,7 @@ def! main [
 ]
 
 container programming-environment-data [
-  sandbox:address:shared:sandbox-data  # list of sandboxes, from top to bottom
+  sandbox:address:sandbox-data  # list of sandboxes, from top to bottom
   render-from:number
   number-of-sandboxes:number
 ]
@@ -28,30 +28,30 @@ after <programming-environment-initialization> [
 ]
 
 container sandbox-data [
-  data:address:shared:array:character
-  response:address:shared:array:character
+  data:address:array:character
+  response:address:array:character
   # coordinates to track clicks
   # constraint: will be 0 for sandboxes at positions before env.render-from
   starting-row-on-screen:number
   code-ending-row-on-screen:number  # past end of code
-  screen:address:shared:screen  # prints in the sandbox go here
-  next-sandbox:address:shared:sandbox-data
+  screen:address:screen  # prints in the sandbox go here
+  next-sandbox:address:sandbox-data
 ]
 
 scenario run-and-show-results [
   trace-until 100/app  # trace too long
   assume-screen 100/width, 15/height
   # recipe editor is empty
-  1:address:shared:array:character <- new []
+  1:address:array:character <- new []
   # sandbox editor contains an instruction without storing outputs
-  2:address:shared:array:character <- new [divide-with-remainder 11, 3]
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
+  2:address:array:character <- new [divide-with-remainder 11, 3]
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
   # run the code in the editors
   assume-console [
     press F4
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # check that screen prints the results
   screen-should-contain [
@@ -101,7 +101,7 @@ scenario run-and-show-results [
     press F4
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # check that screen prints the results
   screen-should-contain [
@@ -139,23 +139,23 @@ after <global-keypress> [
   }
 ]
 
-def run-sandboxes env:address:shared:programming-environment-data, screen:address:shared:screen -> errors-found?:boolean, env:address:shared:programming-environment-data, screen:address:shared:screen [
+def run-sandboxes env:address:programming-environment-data, screen:address:screen -> errors-found?:boolean, env:address:programming-environment-data, screen:address:screen [
   local-scope
   load-ingredients
   errors-found?:boolean, env, screen <- update-recipes env, screen
   return-if errors-found?
   # check contents of right editor (sandbox)
   <run-sandboxes-begin>
-  current-sandbox:address:shared:editor-data <- get *env, current-sandbox:offset
+  current-sandbox:address:editor-data <- get *env, current-sandbox:offset
   {
-    sandbox-contents:address:shared:array:character <- editor-contents current-sandbox
+    sandbox-contents:address:array:character <- editor-contents current-sandbox
     break-unless sandbox-contents
     # if contents exist, first save them
     # run them and turn them into a new sandbox-data
-    new-sandbox:address:shared:sandbox-data <- new sandbox-data:type
+    new-sandbox:address:sandbox-data <- new sandbox-data:type
     *new-sandbox <- put *new-sandbox, data:offset, sandbox-contents
     # push to head of sandbox list
-    dest:address:shared:sandbox-data <- get *env, sandbox:offset
+    dest:address:sandbox-data <- get *env, sandbox:offset
     *new-sandbox <- put *new-sandbox, next-sandbox:offset, dest
     *env <- put *env, sandbox:offset, new-sandbox
     # update sandbox count
@@ -163,14 +163,14 @@ def run-sandboxes env:address:shared:programming-environment-data, screen:addres
     sandbox-count <- add sandbox-count, 1
     *env <- put *env, number-of-sandboxes:offset, sandbox-count
     # clear sandbox editor
-    init:address:shared:duplex-list:character <- push 167/§, 0/tail
+    init:address:duplex-list:character <- push 167/§, 0/tail
     *current-sandbox <- put *current-sandbox, data:offset, init
     *current-sandbox <- put *current-sandbox, top-of-screen:offset, init
   }
   # save all sandboxes before running, just in case we die when running
   save-sandboxes env
   # run all sandboxes
-  curr:address:shared:sandbox-data <- get *env, sandbox:offset
+  curr:address:sandbox-data <- get *env, sandbox:offset
   idx:number <- copy 0
   {
     break-unless curr
@@ -184,45 +184,45 @@ def run-sandboxes env:address:shared:programming-environment-data, screen:addres
 
 # copy code from recipe editor, persist, load into mu
 # replaced in a later layer (whereupon errors-found? will actually be set)
-def update-recipes env:address:shared:programming-environment-data, screen:address:shared:screen -> errors-found?:boolean, env:address:shared:programming-environment-data, screen:address:shared:screen [
+def update-recipes env:address:programming-environment-data, screen:address:screen -> errors-found?:boolean, env:address:programming-environment-data, screen:address:screen [
   local-scope
   load-ingredients
-  recipes:address:shared:editor-data <- get *env, recipes:offset
-  in:address:shared:array:character <- editor-contents recipes
+  recipes:address:editor-data <- get *env, recipes:offset
+  in:address:array:character <- editor-contents recipes
   save [recipes.mu], in  # newlayer: persistence
   reload in
   errors-found? <- copy 0/false
 ]
 
 # replaced in a later layer
-def! update-sandbox sandbox:address:shared:sandbox-data, env:address:shared:programming-environment-data, idx:number -> sandbox:address:shared:sandbox-data, env:address:shared:programming-environment-data [
+def! update-sandbox sandbox:address:sandbox-data, env:address:programming-environment-data, idx:number -> sandbox:address:sandbox-data, env:address:programming-environment-data [
   local-scope
   load-ingredients
-  data:address:shared:array:character <- get *sandbox, data:offset
-  response:address:shared:array:character, _, fake-screen:address:shared:screen <- run-interactive data
+  data:address:array:character <- get *sandbox, data:offset
+  response:address:array:character, _, fake-screen:address:screen <- run-interactive data
   *sandbox <- put *sandbox, response:offset, response
   *sandbox <- put *sandbox, screen:offset, fake-screen
 ]
 
-def update-status screen:address:shared:screen, msg:address:shared:array:character, color:number -> screen:address:shared:screen [
+def update-status screen:address:screen, msg:address:array:character, color:number -> screen:address:screen [
   local-scope
   load-ingredients
   screen <- move-cursor screen, 0, 2
   screen <- print screen, msg, color, 238/grey/background
 ]
 
-def save-sandboxes env:address:shared:programming-environment-data [
+def save-sandboxes env:address:programming-environment-data [
   local-scope
   load-ingredients
-  current-sandbox:address:shared:editor-data <- get *env, current-sandbox:offset
+  current-sandbox:address:editor-data <- get *env, current-sandbox:offset
   # first clear previous versions, in case we deleted some sandbox
   $system [rm lesson/[0-9]* >/dev/null 2>/dev/null]  # some shells can't handle '>&'
-  curr:address:shared:sandbox-data <- get *env, sandbox:offset
+  curr:address:sandbox-data <- get *env, sandbox:offset
   idx:number <- copy 0
   {
     break-unless curr
-    data:address:shared:array:character <- get *curr, data:offset
-    filename:address:shared:array:character <- to-text idx
+    data:address:array:character <- get *curr, data:offset
+    filename:address:array:character <- to-text idx
     save filename, data
     <end-save-sandbox>
     idx <- add idx, 1
@@ -231,11 +231,11 @@ def save-sandboxes env:address:shared:programming-environment-data [
   }
 ]
 
-def! render-sandbox-side screen:address:shared:screen, env:address:shared:programming-environment-data -> screen:address:shared:screen, env:address:shared:programming-environment-data [
+def! render-sandbox-side screen:address:screen, env:address:programming-environment-data -> screen:address:screen, env:address:programming-environment-data [
   local-scope
   load-ingredients
   trace 11, [app], [render sandbox side]
-  current-sandbox:address:shared:editor-data <- get *env, current-sandbox:offset
+  current-sandbox:address:editor-data <- get *env, current-sandbox:offset
   row:number, column:number <- copy 1, 0
   left:number <- get *current-sandbox, left:offset
   right:number <- get *current-sandbox, right:offset
@@ -250,12 +250,12 @@ def! render-sandbox-side screen:address:shared:screen, env:address:shared:progra
   }
   # render sandboxes
   draw-horizontal screen, row, left, right, 9473/horizontal-double
-  sandbox:address:shared:sandbox-data <- get *env, sandbox:offset
+  sandbox:address:sandbox-data <- get *env, sandbox:offset
   row, screen <- render-sandboxes screen, sandbox, left, right, row, render-from
   clear-rest-of-screen screen, row, left, right
 ]
 
-def render-sandboxes screen:address:shared:screen, sandbox:address:shared:sandbox-data, left:number, right:number, row:number, render-from:number, idx:number -> row:number, screen:address:shared:screen, sandbox:address:shared:sandbox-data [
+def render-sandboxes screen:address:screen, sandbox:address:sandbox-data, left:number, right:number, row:number, render-from:number, idx:number -> row:number, screen:address:screen, sandbox:address:sandbox-data [
   local-scope
   load-ingredients
   return-unless sandbox
@@ -277,14 +277,14 @@ def render-sandboxes screen:address:shared:screen, sandbox:address:shared:sandbo
     # render sandbox contents
     row <- add row, 1
     screen <- move-cursor screen, row, left
-    sandbox-data:address:shared:array:character <- get *sandbox, data:offset
+    sandbox-data:address:array:character <- get *sandbox, data:offset
     row, screen <- render-code screen, sandbox-data, left, right, row
     *sandbox <- put *sandbox, code-ending-row-on-screen:offset, row
     # render sandbox warnings, screen or response, in that order
-    sandbox-response:address:shared:array:character <- get *sandbox, response:offset
+    sandbox-response:address:array:character <- get *sandbox, response:offset
     <render-sandbox-results>
     {
-      sandbox-screen:address:shared:screen <- get *sandbox, screen:offset
+      sandbox-screen:address:screen <- get *sandbox, screen:offset
       empty-screen?:boolean <- fake-screen-is-empty? sandbox-screen
       break-if empty-screen?
       row, screen <- render-screen screen, sandbox-screen, left, right, row
@@ -308,22 +308,22 @@ def render-sandboxes screen:address:shared:screen, sandbox:address:shared:sandbo
     <end-render-sandbox-reset-hidden>
   }
   # draw next sandbox
-  next-sandbox:address:shared:sandbox-data <- get *sandbox, next-sandbox:offset
+  next-sandbox:address:sandbox-data <- get *sandbox, next-sandbox:offset
   next-idx:number <- add idx, 1
   row, screen <- render-sandboxes screen, next-sandbox, left, right, row, render-from, next-idx
 ]
 
 # assumes programming environment has no sandboxes; restores them from previous session
-def restore-sandboxes env:address:shared:programming-environment-data -> env:address:shared:programming-environment-data [
+def restore-sandboxes env:address:programming-environment-data -> env:address:programming-environment-data [
   local-scope
   load-ingredients
   # read all scenarios, pushing them to end of a list of scenarios
   idx:number <- copy 0
-  curr:address:shared:sandbox-data <- copy 0
-  prev:address:shared:sandbox-data <- copy 0
+  curr:address:sandbox-data <- copy 0
+  prev:address:sandbox-data <- copy 0
   {
-    filename:address:shared:array:character <- to-text idx
-    contents:address:shared:array:character <- restore filename
+    filename:address:array:character <- to-text idx
+    contents:address:array:character <- restore filename
     break-unless contents  # stop at first error; assuming file didn't exist
     # create new sandbox for file
     curr <- new sandbox-data:type
@@ -351,7 +351,7 @@ def restore-sandboxes env:address:shared:programming-environment-data -> env:add
 
 # print the fake sandbox screen to 'screen' with appropriate delimiters
 # leave cursor at start of next line
-def render-screen screen:address:shared:screen, sandbox-screen:address:shared:screen, left:number, right:number, row:number -> row:number, screen:address:shared:screen [
+def render-screen screen:address:screen, sandbox-screen:address:screen, left:number, right:number, row:number -> row:number, screen:address:screen [
   local-scope
   load-ingredients
   return-unless sandbox-screen
@@ -362,7 +362,7 @@ def render-screen screen:address:shared:screen, sandbox-screen:address:shared:sc
   column:number <- copy left
   s-width:number <- screen-width sandbox-screen
   s-height:number <- screen-height sandbox-screen
-  buf:address:shared:array:screen-cell <- get *sandbox-screen, data:offset
+  buf:address:array:screen-cell <- get *sandbox-screen, data:offset
   stop-printing:number <- add left, s-width, 3
   max-column:number <- min stop-printing, right
   i:number <- copy 0
@@ -420,20 +420,20 @@ scenario run-updates-results [
   trace-until 100/app  # trace too long
   assume-screen 100/width, 12/height
   # define a recipe (no indent for the 'add' line below so column numbers are more obvious)
-  1:address:shared:array:character <- new [ 
+  1:address:array:character <- new [ 
 recipe foo [
 local-scope
 z:number <- add 2, 2
 reply z
 ]]
   # sandbox editor contains an instruction without storing outputs
-  2:address:shared:array:character <- new [foo]
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
+  2:address:array:character <- new [foo]
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
   # run the code in the editors
   assume-console [
     press F4
   ]
-  event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+  event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   screen-should-contain [
     .                                                                                 run (F4)           .
     .                                                  ┊                                                 .
@@ -453,7 +453,7 @@ reply z
     press F4
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # check that screen updates the result on the right
   screen-should-contain [
@@ -473,16 +473,16 @@ scenario run-instruction-manages-screen-per-sandbox [
   trace-until 100/app  # trace too long
   assume-screen 100/width, 20/height
   # left editor is empty
-  1:address:shared:array:character <- new []
+  1:address:array:character <- new []
   # right editor contains an instruction
-  2:address:shared:array:character <- new [print-integer screen, 4]
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
+  2:address:array:character <- new [print-integer screen, 4]
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
   # run the code in the editor
   assume-console [
     press F4
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # check that it prints a little toy screen
   screen-should-contain [
@@ -502,11 +502,11 @@ scenario run-instruction-manages-screen-per-sandbox [
   ]
 ]
 
-def editor-contents editor:address:shared:editor-data -> result:address:shared:array:character [
+def editor-contents editor:address:editor-data -> result:address:array:character [
   local-scope
   load-ingredients
-  buf:address:shared:buffer <- new-buffer 80
-  curr:address:shared:duplex-list:character <- get *editor, data:offset
+  buf:address:buffer <- new-buffer 80
+  curr:address:duplex-list:character <- get *editor, data:offset
   # skip § sentinel
   assert curr, [editor without data is illegal; must have at least a sentinel]
   curr <- next curr
@@ -523,16 +523,16 @@ def editor-contents editor:address:shared:editor-data -> result:address:shared:a
 
 scenario editor-provides-edited-contents [
   assume-screen 10/width, 5/height
-  1:address:shared:array:character <- new [abc]
-  2:address:shared:editor-data <- new-editor 1:address:shared:array:character, screen:address:shared:screen, 0/left, 10/right
+  1:address:array:character <- new [abc]
+  2:address:editor-data <- new-editor 1:address:array:character, screen:address:screen, 0/left, 10/right
   assume-console [
     left-click 1, 2
     type [def]
   ]
   run [
-    editor-event-loop screen:address:shared:screen, console:address:shared:console, 2:address:shared:editor-data
-    3:address:shared:array:character <- editor-contents 2:address:shared:editor-data
-    4:array:character <- copy *3:address:shared:array:character
+    editor-event-loop screen:address:screen, console:address:console, 2:address:editor-data
+    3:address:array:character <- editor-contents 2:address:editor-data
+    4:array:character <- copy *3:address:array:character
   ]
   memory-should-contain [
     4:array:character <- [abdefc]
@@ -545,10 +545,10 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
   trace-until 100/app  # trace too long
   assume-screen 30/width, 10/height
   # initialize sandbox side
-  1:address:shared:array:character <- new []
-  2:address:shared:array:character <- new [add 2, 2]
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
-  render-all screen, 3:address:shared:programming-environment-data
+  1:address:array:character <- new []
+  2:address:array:character <- new [add 2, 2]
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
+  render-all screen, 3:address:programming-environment-data
   assume-console [
     # create a sandbox
     press F4
@@ -558,9 +558,9 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
 ]
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
     4:character/cursor <- copy 9251/␣
-    print screen:address:shared:screen, 4:character/cursor
+    print screen:address:screen, 4:character/cursor
   ]
   screen-should-contain [
     .                              .  # minor: F4 clears menu tooltip in very narrow screens
@@ -575,9 +575,9 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
     4:character/cursor <- copy 9251/␣
-    print screen:address:shared:screen, 4:character/cursor
+    print screen:address:screen, 4:character/cursor
   ]
   # sandbox editor hidden; first sandbox displayed
   # cursor moves to first sandbox
@@ -595,9 +595,9 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
     press up-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
     4:character/cursor <- copy 9251/␣
-    print screen:address:shared:screen, 4:character/cursor
+    print screen:address:screen, 4:character/cursor
   ]
   # sandbox editor displays again
   screen-should-contain [
@@ -620,7 +620,7 @@ after <global-keypress> [
     sandbox-cursor:number <- get *current-sandbox, cursor-row:offset
     sandbox-cursor-on-last-line?:boolean <- equal sandbox-bottom, sandbox-cursor
     break-unless sandbox-cursor-on-last-line?
-    sandbox:address:shared:sandbox-data <- get *env, sandbox:offset
+    sandbox:address:sandbox-data <- get *env, sandbox:offset
     break-unless sandbox
     # slide down if possible
     {
@@ -672,12 +672,12 @@ after <global-keypress> [
 
 # sandbox belonging to 'env' whose next-sandbox is 'in'
 # return 0 if there's no such sandbox, either because 'in' doesn't exist in 'env', or because it's the first sandbox
-def previous-sandbox env:address:shared:programming-environment-data, in:address:shared:sandbox-data -> out:address:shared:sandbox-data [
+def previous-sandbox env:address:programming-environment-data, in:address:sandbox-data -> out:address:sandbox-data [
   local-scope
   load-ingredients
-  curr:address:shared:sandbox-data <- get *env, sandbox:offset
+  curr:address:sandbox-data <- get *env, sandbox:offset
   return-unless curr, 0/nil
-  next:address:shared:sandbox-data <- get *curr, next-sandbox:offset
+  next:address:sandbox-data <- get *curr, next-sandbox:offset
   {
     return-unless next, 0/nil
     found?:boolean <- equal next, in
@@ -693,24 +693,24 @@ scenario scrolling-down-on-recipe-side [
   trace-until 100/app  # trace too long
   assume-screen 30/width, 10/height
   # initialize sandbox side and create a sandbox
-  1:address:shared:array:character <- new [ 
+  1:address:array:character <- new [ 
 ]
   # create a sandbox
-  2:address:shared:array:character <- new [add 2, 2]
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
-  render-all screen, 3:address:shared:programming-environment-data
+  2:address:array:character <- new [add 2, 2]
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
+  render-all screen, 3:address:programming-environment-data
   assume-console [
     press F4
   ]
-  event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+  event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   # hit 'down' in recipe editor
   assume-console [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
     4:character/cursor <- copy 9251/␣
-    print screen:address:shared:screen, 4:character/cursor
+    print screen:address:screen, 4:character/cursor
   ]
   # cursor moves down on recipe side
   screen-should-contain [
@@ -729,10 +729,10 @@ scenario scrolling-through-multiple-sandboxes [
   trace-until 100/app  # trace too long
   assume-screen 30/width, 10/height
   # initialize environment
-  1:address:shared:array:character <- new []
-  2:address:shared:array:character <- new []
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
-  render-all screen, 3:address:shared:programming-environment-data
+  1:address:array:character <- new []
+  2:address:array:character <- new []
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
+  render-all screen, 3:address:programming-environment-data
   # create 2 sandboxes
   assume-console [
     press ctrl-n
@@ -741,9 +741,9 @@ scenario scrolling-through-multiple-sandboxes [
     type [add 1, 1]
     press F4
   ]
-  event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+  event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   4:character/cursor <- copy 9251/␣
-  print screen:address:shared:screen, 4:character/cursor
+  print screen:address:screen, 4:character/cursor
   screen-should-contain [
     .                              .
     .               ┊␣             .
@@ -761,9 +761,9 @@ scenario scrolling-through-multiple-sandboxes [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
     4:character/cursor <- copy 9251/␣
-    print screen:address:shared:screen, 4:character/cursor
+    print screen:address:screen, 4:character/cursor
   ]
   # sandbox editor hidden; first sandbox displayed
   # cursor moves to first sandbox
@@ -784,7 +784,7 @@ scenario scrolling-through-multiple-sandboxes [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # just second sandbox displayed
   screen-should-contain [
@@ -802,7 +802,7 @@ scenario scrolling-through-multiple-sandboxes [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # no change
   screen-should-contain [
@@ -820,7 +820,7 @@ scenario scrolling-through-multiple-sandboxes [
     press up-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # back to displaying both sandboxes without editor
   screen-should-contain [
@@ -840,9 +840,9 @@ scenario scrolling-through-multiple-sandboxes [
     press up-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
     4:character/cursor <- copy 9251/␣
-    print screen:address:shared:screen, 4:character/cursor
+    print screen:address:screen, 4:character/cursor
   ]
   # back to displaying both sandboxes as well as editor
   screen-should-contain [
@@ -862,7 +862,7 @@ scenario scrolling-through-multiple-sandboxes [
     press up-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # no change
   screen-should-contain [
@@ -883,17 +883,17 @@ scenario scrolling-manages-sandbox-index-correctly [
   trace-until 100/app  # trace too long
   assume-screen 30/width, 10/height
   # initialize environment
-  1:address:shared:array:character <- new []
-  2:address:shared:array:character <- new []
-  3:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character, 2:address:shared:array:character
-  render-all screen, 3:address:shared:programming-environment-data
+  1:address:array:character <- new []
+  2:address:array:character <- new []
+  3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
+  render-all screen, 3:address:programming-environment-data
   # create a sandbox
   assume-console [
     press ctrl-n
     type [add 1, 1]
     press F4
   ]
-  event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+  event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   screen-should-contain [
     .                              .
     .               ┊              .
@@ -909,7 +909,7 @@ scenario scrolling-manages-sandbox-index-correctly [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # sandbox editor hidden; first sandbox displayed
   # cursor moves to first sandbox
@@ -927,7 +927,7 @@ scenario scrolling-manages-sandbox-index-correctly [
     press up-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # back to displaying both sandboxes as well as editor
   screen-should-contain [
@@ -945,7 +945,7 @@ scenario scrolling-manages-sandbox-index-correctly [
     press down-arrow
   ]
   run [
-    event-loop screen:address:shared:screen, console:address:shared:console, 3:address:shared:programming-environment-data
+    event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
   ]
   # sandbox editor hidden; first sandbox displayed
   # cursor moves to first sandbox