about summary refs log tree commit diff stats
path: root/999spaces.cc
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-07-27 16:01:55 -0700
committerKartik Agaram <vc@akkartik.com>2019-07-27 17:47:59 -0700
commit6e1eeeebfb453fa7c871869c19375ce60fbd7413 (patch)
tree539c4a3fdf1756ae79770d5c4aaf6366f1d1525e /999spaces.cc
parent8846a7f85cc04b77b2fe8a67b6d317723437b00c (diff)
downloadmu-6e1eeeebfb453fa7c871869c19375ce60fbd7413.tar.gz
5485 - promote SubX to top-level
Diffstat (limited to '999spaces.cc')
-rw-r--r--999spaces.cc86
1 files changed, 0 insertions, 86 deletions
diff --git a/999spaces.cc b/999spaces.cc
deleted file mode 100644
index adbbf8a9..00000000
--- a/999spaces.cc
+++ /dev/null
@@ -1,86 +0,0 @@
-//: Since different layers all carve out different parts of various namespaces
-//: (recipes, memory, etc.) for their own use, there's no previous place where
-//: we can lay out the big picture of what uses what. So we'll do that here
-//: and just have to manually remember to update it when we move boundaries
-//: around.
-//:
-//:: Memory
-//:
-//: Location 0 - unused (since it can help uncover bugs)
-//: Locations 1-899 - reserved for tests
-//: Locations 900-999 - reserved for predefined globals in Mu scenarios, like keyboard, screen, etc.
-:(before "End Reset")
-assert(Max_variables_in_scenarios == 900);
-//: Locations 1000 ('Reserved_for_tests') onward - available to the allocator in chunks of size Initial_memory_per_routine.
-assert(Reserved_for_tests == 1000);
-
-//:: Recipes
-//:
-//: 0 - unused (IDLE; do nothing)
-//: 1-199 - primitives
-assert(MAX_PRIMITIVE_RECIPES < 200);
-//: 200-999 - defined in .mu files as sequences of primitives
-assert(Next_recipe_ordinal == 1000);
-//: 1000 onwards - reserved for tests, cleared between tests
-
-//:: Depths for tracing
-//:
-//: 0 - errors
-//: 1-99 - app-level trace statements in Mu
-//: 100-9999 - call-stack statements (mostly label run)
-assert(Initial_callstack_depth == 100);
-
-//:: Summary of transforms and their dependencies
-//: begin transforms
-//:   begin instruction inserting transforms
-//:     52 insert fragments
-//:      ↳ 52.2 check fragments
-//:   ---
-//:     53 rewrite 'stash' instructions
-//:   end instruction inserting transforms
-//:
-//:   begin instruction modifying transforms
-//:     56.2 check header ingredients
-//:      ↳ 56.4 fill in return ingredients
-//:     48 check or set types by name
-//:
-//:     begin type modifying transforms
-//:       56.3 deduce types from header
-//:     ---
-//:       30 check or set invalid containers
-//:     end type modifying transforms
-//:         ↱ 46 collect surrounding spaces
-//:      ↳ 42 transform names
-//:         ↳ 57 static dispatch
-//:   ---
-//:     13 update instruction operation
-//:     40 transform braces
-//:     41 transform labels
-//:   end instruction modifying transforms
-//:    ↳ 60 check immutable ingredients
-//:
-//:   begin checks
-//:   ---
-//:     21 check instruction
-//:     ↳ 61 check indirect calls against header
-//:     ↳ 56 check calls against header
-//:     ↳ 43 transform 'new' to 'allocate'
-//:     30 check merge calls
-//:     36 check types of return instructions
-//:     43 check default space
-//:     56 check return instructions against header
-//:   end checks
-//: end transforms
-
-//:: Summary of type-checking in different phases
-//: when dispatching instructions we accept first recipe that:
-//:   strictly matches all types
-//:   maps literal 0 or literal 1 to boolean for some ingredients
-//:   performs some other acceptable type conversion
-//:     literal 0 -> address
-//:     literal -> character
-//: when checking instructions we ensure that types match, and that literals map to some scalar
-//:   (address can only map to literal 0)
-//:   (boolean can only map to literal 0 or literal 1)
-//:     (but conditionals can take any scalar)
-//: at runtime we perform no checks